From 0eb0cdef7cf07a2803b5261c36cbafc3845b0bdb Mon Sep 17 00:00:00 2001 From: Francesco Montorsi Date: Sat, 29 Mar 2008 19:03:36 +0000 Subject: [PATCH] removed latex sources of wxDocs; wxWidgets now uses Doxygen on the 'interface' headers to create its documentation git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/Makefile | 28 - docs/latex/wx/aboutdlginfo.tex | 228 - docs/latex/wx/accel.tex | 188 - docs/latex/wx/accessible.tex | 449 -- docs/latex/wx/activevt.tex | 64 - docs/latex/wx/activexcontainer.tex | 239 - docs/latex/wx/activexevt.tex | 77 - docs/latex/wx/alignv.bmp | Bin 42718 -> 0 bytes docs/latex/wx/alignv.gif | Bin 3731 -> 0 bytes docs/latex/wx/animatctrl.tex | 190 - docs/latex/wx/animation.tex | 163 - docs/latex/wx/app.tex | 850 --- docs/latex/wx/apptraits.tex | 144 - docs/latex/wx/arc.tex | 472 -- docs/latex/wx/archive.tex | 806 --- docs/latex/wx/array.tex | 735 --- docs/latex/wx/arrstrng.tex | 296 - docs/latex/wx/artprov.tex | 307 - docs/latex/wx/auidockart.tex | 214 - docs/latex/wx/auimanager.tex | 324 -- docs/latex/wx/auinotebook.tex | 243 - docs/latex/wx/auipaneinfo.tex | 477 -- docs/latex/wx/auitabart.tex | 109 - docs/latex/wx/autoobj.tex | 205 - docs/latex/wx/back.gif | Bin 978 -> 0 bytes docs/latex/wx/backwardcompat.tex | 173 - docs/latex/wx/bbutton.tex | 322 -- docs/latex/wx/bitmap.tex | 600 -- docs/latex/wx/bitmapcombobox.tex | 187 - docs/latex/wx/bitmaptglbutn.tex | 86 - docs/latex/wx/bmpdatob.tex | 70 - docs/latex/wx/bmphand.tex | 169 - docs/latex/wx/body.tex | 631 -- docs/latex/wx/border.bmp | Bin 46318 -> 0 bytes docs/latex/wx/border.gif | Bin 6174 -> 0 bytes docs/latex/wx/boxsizer.tex | 57 - docs/latex/wx/brush.tex | 391 -- docs/latex/wx/bufferdc.tex | 213 - docs/latex/wx/bullet.bmp | Bin 198 -> 0 bytes docs/latex/wx/busycurs.tex | 50 - docs/latex/wx/busyinfo.tex | 73 - docs/latex/wx/button.tex | 164 - docs/latex/wx/calclevt.tex | 68 - docs/latex/wx/calctrl.tex | 523 -- docs/latex/wx/caret.tex | 169 - docs/latex/wx/category.tex | 767 --- docs/latex/wx/checkbox.tex | 175 - docs/latex/wx/checklst.tex | 132 - docs/latex/wx/chfocevt.tex | 57 - docs/latex/wx/choice.tex | 175 - docs/latex/wx/choicebevt.inc | 13 - docs/latex/wx/choicebk.tex | 81 - docs/latex/wx/clasinfo.tex | 89 - docs/latex/wx/classes.tex | 483 -- docs/latex/wx/clientdat.tex | 121 - docs/latex/wx/clientdc.tex | 41 - docs/latex/wx/clipbrd.tex | 188 - docs/latex/wx/clipevent.tex | 88 - docs/latex/wx/closeevt.tex | 113 - docs/latex/wx/clrpicker.tex | 194 - docs/latex/wx/cmdevent.tex | 208 - docs/latex/wx/cmdlpars.tex | 495 -- docs/latex/wx/cmdproc.tex | 194 - docs/latex/wx/cntxtevt.tex | 66 - docs/latex/wx/collpane.tex | 237 - docs/latex/wx/colordlg.tex | 70 - docs/latex/wx/colour.tex | 411 -- docs/latex/wx/combobox.tex | 340 -- docs/latex/wx/comboctrl.tex | 749 --- docs/latex/wx/combopopup.tex | 188 - docs/latex/wx/command.tex | 93 - docs/latex/wx/conditn.tex | 215 - docs/latex/wx/config.tex | 865 --- docs/latex/wx/constant.tex | 13 - docs/latex/wx/cont.bmp | Bin 120118 -> 0 bytes docs/latex/wx/cont.gif | Bin 25514 -> 0 bytes docs/latex/wx/contbox.bmp | Bin 107254 -> 0 bytes docs/latex/wx/contbox.gif | Bin 10175 -> 0 bytes docs/latex/wx/contents.gif | Bin 996 -> 0 bytes docs/latex/wx/control.tex | 69 - docs/latex/wx/convauto.tex | 115 - docs/latex/wx/countstr.tex | 50 - docs/latex/wx/cppconst.tex | 230 - docs/latex/wx/createevt.tex | 43 - docs/latex/wx/critsect.tex | 62 - docs/latex/wx/crtslock.tex | 67 - docs/latex/wx/csconv.tex | 75 - docs/latex/wx/cshelp.tex | 141 - docs/latex/wx/ctrlsub.tex | 449 -- docs/latex/wx/cursor.tex | 262 - docs/latex/wx/custdobj.tex | 114 - docs/latex/wx/dataform.tex | 126 - docs/latex/wx/dataobj.tex | 205 - docs/latex/wx/dataviewcolumn.tex | 159 - docs/latex/wx/dataviewctrl.tex | 339 -- docs/latex/wx/dataviewevent.tex | 99 - docs/latex/wx/dataviewindexlistmodel.tex | 134 - docs/latex/wx/dataviewitem.tex | 59 - docs/latex/wx/dataviewitemattr.tex | 54 - docs/latex/wx/dataviewmodel.tex | 312 - docs/latex/wx/dataviewmodelnotifier.tex | 98 - docs/latex/wx/dataviewrenderer.tex | 549 -- docs/latex/wx/dataviewtreectrl.tex | 183 - docs/latex/wx/dataviewtreestore.tex | 150 - docs/latex/wx/datectrl.tex | 195 - docs/latex/wx/dateevt.tex | 46 - docs/latex/wx/datespan.tex | 328 -- docs/latex/wx/datetime.tex | 1683 ------ docs/latex/wx/datistrm.tex | 148 - docs/latex/wx/datostrm.tex | 133 - docs/latex/wx/dc.tex | 1307 ----- docs/latex/wx/dcclipper.tex | 66 - docs/latex/wx/dcsvg.tex | 708 --- docs/latex/wx/ddeclint.tex | 75 - docs/latex/wx/ddeconn.tex | 230 - docs/latex/wx/ddeservr.tex | 55 - docs/latex/wx/debugcxt.tex | 288 - docs/latex/wx/debugrpt.tex | 276 - docs/latex/wx/debugrptpvw.tex | 63 - docs/latex/wx/debugrptpvwstd.tex | 50 - docs/latex/wx/debugrptup.tex | 56 - docs/latex/wx/debugrptz.tex | 44 - docs/latex/wx/delgrend.tex | 74 - docs/latex/wx/descent.bmp | Bin 16502 -> 0 bytes docs/latex/wx/descent.gif | Bin 4081 -> 0 bytes docs/latex/wx/destroyevt.tex | 61 - docs/latex/wx/dgramsocket.tex | 121 - docs/latex/wx/dialevt.tex | 52 - docs/latex/wx/dialog.tex | 666 --- docs/latex/wx/dialoglayoutadapter.tex | 48 - docs/latex/wx/dialup.tex | 219 - docs/latex/wx/dir.tex | 237 - docs/latex/wx/dirctrl.tex | 198 - docs/latex/wx/dirdlg.tex | 103 - docs/latex/wx/dirpicker.tex | 156 - docs/latex/wx/dirtrav.tex | 113 - docs/latex/wx/display.tex | 161 - docs/latex/wx/dllload.tex | 152 - docs/latex/wx/dobjcomp.tex | 78 - docs/latex/wx/dobjsmpl.tex | 108 - docs/latex/wx/docchfrm.tex | 101 - docs/latex/wx/docmanag.tex | 480 -- docs/latex/wx/docmdich.tex | 102 - docs/latex/wx/docmdipr.tex | 81 - docs/latex/wx/docprfrm.tex | 90 - docs/latex/wx/doctempl.tex | 269 - docs/latex/wx/document.tex | 364 -- docs/latex/wx/dragimag.tex | 226 - docs/latex/wx/dropevt.tex | 86 - docs/latex/wx/dropsrc.tex | 138 - docs/latex/wx/droptrgt.tex | 149 - docs/latex/wx/dynlib.tex | 261 - docs/latex/wx/editlistbox.tex | 101 - docs/latex/wx/encconv.tex | 203 - docs/latex/wx/eraseevt.tex | 61 - docs/latex/wx/event.tex | 201 - docs/latex/wx/evtblocker.tex | 73 - docs/latex/wx/evthand.tex | 426 -- docs/latex/wx/fdrepdlg.tex | 257 - docs/latex/wx/ffile.tex | 291 - docs/latex/wx/ffilestr.tex | 157 - docs/latex/wx/fildatob.tex | 59 - docs/latex/wx/fildrptg.tex | 59 - docs/latex/wx/file.tex | 352 -- docs/latex/wx/fileconf.tex | 112 - docs/latex/wx/filectrl.tex | 223 - docs/latex/wx/filedlg.tex | 249 - docs/latex/wx/fileevt.tex | 77 - docs/latex/wx/filehist.tex | 186 - docs/latex/wx/fileistr.tex | 59 - docs/latex/wx/filename.tex | 1074 ---- docs/latex/wx/fileostr.tex | 63 - docs/latex/wx/filepicker.tex | 225 - docs/latex/wx/filestrm.tex | 30 - docs/latex/wx/filesys.tex | 196 - docs/latex/wx/filesysh.tex | 154 - docs/latex/wx/filetype.tex | 235 - docs/latex/wx/flexsizr.tex | 173 - docs/latex/wx/fltfactory.tex | 190 - docs/latex/wx/fltinstr.tex | 48 - docs/latex/wx/fltoutst.tex | 49 - docs/latex/wx/focusevt.tex | 56 - docs/latex/wx/font.tex | 611 -- docs/latex/wx/fontdlg.tex | 210 - docs/latex/wx/fontenum.tex | 120 - docs/latex/wx/fontlist.tex | 42 - docs/latex/wx/fontmap.tex | 248 - docs/latex/wx/fontpicker.tex | 214 - docs/latex/wx/forward.gif | Bin 959 -> 0 bytes docs/latex/wx/frame.tex | 523 -- docs/latex/wx/fs.tex | 95 - docs/latex/wx/fs_mem.tex | 122 - docs/latex/wx/fsfile.tex | 146 - docs/latex/wx/ftp.tex | 423 -- docs/latex/wx/function.tex | 5067 ----------------- docs/latex/wx/gauge.tex | 234 - docs/latex/wx/gbposition.tex | 65 - docs/latex/wx/gbsizeritem.tex | 91 - docs/latex/wx/gbspan.tex | 66 - docs/latex/wx/gdiobj.tex | 34 - docs/latex/wx/glcanvas.tex | 172 - docs/latex/wx/glcontext.tex | 60 - docs/latex/wx/graphicsbrush.tex | 29 - docs/latex/wx/graphicscontext.tex | 295 - docs/latex/wx/graphicsfont.tex | 30 - docs/latex/wx/graphicsmatrix.tex | 112 - docs/latex/wx/graphicsobject.tex | 45 - docs/latex/wx/graphicspath.tex | 157 - docs/latex/wx/graphicspen.tex | 28 - docs/latex/wx/graphicsrenderer.tex | 102 - docs/latex/wx/grid.tex | 2183 ------- docs/latex/wx/grid1.bmp | Bin 68518 -> 0 bytes docs/latex/wx/grid1.eps | 771 --- docs/latex/wx/grid1.gif | Bin 90841 -> 0 bytes docs/latex/wx/gridattr.tex | 179 - docs/latex/wx/gridbagsizer.tex | 166 - docs/latex/wx/gridedit.tex | 372 -- docs/latex/wx/gridevt.inc | 31 - docs/latex/wx/gridevt.tex | 353 -- docs/latex/wx/gridrend.tex | 215 - docs/latex/wx/gridsizr.tex | 98 - docs/latex/wx/gridtbl.tex | 236 - docs/latex/wx/gupdlock.tex | 85 - docs/latex/wx/hash.tex | 143 - docs/latex/wx/hashmap.tex | 251 - docs/latex/wx/hashset.tex | 223 - docs/latex/wx/hello.bmp | Bin 32886 -> 0 bytes docs/latex/wx/hello.gif | Bin 3304 -> 0 bytes docs/latex/wx/helpevt.tex | 104 - docs/latex/wx/helpinst.tex | 278 - docs/latex/wx/helpprov.tex | 119 - docs/latex/wx/hprovcnt.tex | 51 - docs/latex/wx/hprovsmp.tex | 24 - docs/latex/wx/hscrolledwindow.tex | 103 - docs/latex/wx/htcell.tex | 304 - docs/latex/wx/htcolor.tex | 42 - docs/latex/wx/htcontnr.tex | 249 - docs/latex/wx/htdcrend.tex | 115 - docs/latex/wx/hteasypr.tex | 164 - docs/latex/wx/htfilter.tex | 67 - docs/latex/wx/hthelpct.tex | 243 - docs/latex/wx/hthlpdat.tex | 79 - docs/latex/wx/hthlpfrm.tex | 382 -- docs/latex/wx/htlnkinf.tex | 63 - docs/latex/wx/htmlcell.tex | 75 - docs/latex/wx/htmlfilt.tex | 10 - docs/latex/wx/htmlhand.tex | 146 - docs/latex/wx/htmlhlpf.tex | 96 - docs/latex/wx/htmllbox.tex | 350 -- docs/latex/wx/htmlprn.tex | 13 - docs/latex/wx/htmlstrt.tex | 66 - docs/latex/wx/htmltags.tex | 151 - docs/latex/wx/htparser.tex | 270 - docs/latex/wx/htprint.tex | 110 - docs/latex/wx/htprintmacros.inc | 19 - docs/latex/wx/httag.tex | 193 - docs/latex/wx/httaghnd.tex | 95 - docs/latex/wx/httagmod.tex | 48 - docs/latex/wx/http.tex | 84 - docs/latex/wx/htwidget.tex | 42 - docs/latex/wx/htwindow.tex | 612 -- docs/latex/wx/htwinhnd.tex | 36 - docs/latex/wx/htwinprs.tex | 304 - docs/latex/wx/hvscrolledwindow.tex | 109 - docs/latex/wx/hworld.tex | 166 - docs/latex/wx/hyperlink.tex | 240 - docs/latex/wx/icon.tex | 368 -- docs/latex/wx/iconbndl.tex | 118 - docs/latex/wx/iconevt.tex | 61 - docs/latex/wx/iconloc.tex | 50 - docs/latex/wx/idleevt.tex | 129 - docs/latex/wx/idmanager.tex | 64 - docs/latex/wx/ignore.txt | 7 - docs/latex/wx/ilayout.tex | 139 - docs/latex/wx/image.tex | 1508 ----- docs/latex/wx/imaglist.tex | 214 - docs/latex/wx/indent.bmp | Bin 32886 -> 0 bytes docs/latex/wx/indent.gif | Bin 11265 -> 0 bytes docs/latex/wx/indlgevt.tex | 42 - docs/latex/wx/inputstr.tex | 158 - docs/latex/wx/ipaddr.tex | 146 - docs/latex/wx/ipcclint.tex | 86 - docs/latex/wx/ipcconn.tex | 245 - docs/latex/wx/ipcservr.tex | 67 - docs/latex/wx/ipvaddr.tex | 113 - docs/latex/wx/joyevent.tex | 128 - docs/latex/wx/joystick.tex | 324 -- docs/latex/wx/keycode.tex | 156 - docs/latex/wx/keyevent.tex | 325 -- docs/latex/wx/keymod.tex | 34 - docs/latex/wx/langcodes.tex | 246 - docs/latex/wx/layalgor.tex | 152 - docs/latex/wx/layout.tex | 112 - docs/latex/wx/libs.bmp | Bin 100370 -> 0 bytes docs/latex/wx/libs.dia | 1208 ---- docs/latex/wx/libs.gif | Bin 9187 -> 0 bytes docs/latex/wx/libs.tex | 138 - docs/latex/wx/list.tex | 419 -- docs/latex/wx/listattr.tex | 88 - docs/latex/wx/listbevt.inc | 13 - docs/latex/wx/listbook.tex | 77 - docs/latex/wx/listbox.tex | 275 - docs/latex/wx/listctrl.tex | 1138 ---- docs/latex/wx/listevt.tex | 159 - docs/latex/wx/listitem.tex | 210 - docs/latex/wx/listview.tex | 149 - docs/latex/wx/locale.tex | 461 -- docs/latex/wx/log.tex | 893 --- docs/latex/wx/longlong.tex | 233 - docs/latex/wx/ltx.tex | 5 - docs/latex/wx/manual.ist | 1 - docs/latex/wx/manual.tex | 712 --- docs/latex/wx/manual2e.tex | 712 --- docs/latex/wx/mask.tex | 92 - docs/latex/wx/maxzevt.tex | 55 - docs/latex/wx/mbcnvfil.tex | 54 - docs/latex/wx/mbcnvut7.tex | 43 - docs/latex/wx/mbcnvut8.tex | 63 - docs/latex/wx/mbcnvutf.tex | 89 - docs/latex/wx/mbconv.tex | 289 - docs/latex/wx/mcaptevt.tex | 108 - docs/latex/wx/mdi.tex | 574 -- docs/latex/wx/mediactrl.tex | 430 -- docs/latex/wx/mediaevt.tex | 58 - docs/latex/wx/membuf.tex | 130 - docs/latex/wx/memorydc.tex | 112 - docs/latex/wx/menu.tex | 1236 ---- docs/latex/wx/menuevt.tex | 82 - docs/latex/wx/menuitem.tex | 413 -- docs/latex/wx/metafile.tex | 140 - docs/latex/wx/mimetype.tex | 197 - docs/latex/wx/minifram.tex | 117 - docs/latex/wx/minimald.tex | 45 - docs/latex/wx/mirrordc.tex | 47 - docs/latex/wx/mltchdlg.tex | 90 - docs/latex/wx/module.tex | 135 - docs/latex/wx/mouseevt.tex | 595 -- docs/latex/wx/moveevt.tex | 50 - docs/latex/wx/msgdlg.tex | 147 - docs/latex/wx/msgqueue.tex | 126 - docs/latex/wx/mutex.tex | 184 - docs/latex/wx/mutexlck.tex | 47 - docs/latex/wx/navevent.tex | 115 - docs/latex/wx/nbsizer.tex | 41 - docs/latex/wx/node.tex | 67 - docs/latex/wx/notebook.tex | 429 -- docs/latex/wx/noteevt.inc | 13 - docs/latex/wx/noteevt.tex | 92 - docs/latex/wx/notifevt.tex | 65 - docs/latex/wx/notifmsg.tex | 113 - docs/latex/wx/object.tex | 386 -- docs/latex/wx/objectdataptr.tex | 180 - docs/latex/wx/odcbox.tex | 225 - docs/latex/wx/outptstr.tex | 113 - docs/latex/wx/pagedlg.tex | 327 -- docs/latex/wx/paintdc.tex | 46 - docs/latex/wx/paintevt.tex | 105 - docs/latex/wx/palette.tex | 189 - docs/latex/wx/panel.tex | 170 - docs/latex/wx/pantabv.tex | 73 - docs/latex/wx/passdlg.tex | 43 - docs/latex/wx/pathlist.tex | 107 - docs/latex/wx/pen.tex | 430 -- docs/latex/wx/pickerbase.tex | 146 - docs/latex/wx/platinfo.tex | 462 -- docs/latex/wx/point.tex | 92 - docs/latex/wx/porting.tex | 470 -- docs/latex/wx/portnote.tex | 33 - docs/latex/wx/position.tex | 108 - docs/latex/wx/postscpt.tex | 54 - docs/latex/wx/powerevt.tex | 71 - docs/latex/wx/prevwin.tex | 191 - docs/latex/wx/print.tex | 1429 ----- docs/latex/wx/process.tex | 282 - docs/latex/wx/procevt.tex | 61 - docs/latex/wx/progdlg.tex | 125 - docs/latex/wx/propdlg.tex | 164 - docs/latex/wx/protocol.tex | 112 - docs/latex/wx/psbox.tex | 520 -- docs/latex/wx/quantize.tex | 53 - docs/latex/wx/qylayevt.tex | 126 - docs/latex/wx/radiobox.tex | 439 -- docs/latex/wx/radiobut.tex | 123 - docs/latex/wx/re_syntax.tex | 660 --- docs/latex/wx/realpoin.tex | 39 - docs/latex/wx/recguard.tex | 109 - docs/latex/wx/rect.tex | 401 -- docs/latex/wx/referenc.tex | 82 - docs/latex/wx/refs.bib | 59 - docs/latex/wx/regex.tex | 253 - docs/latex/wx/region.tex | 409 -- docs/latex/wx/regkey.tex | 280 - docs/latex/wx/renderer.tex | 292 - docs/latex/wx/rendver.tex | 63 - docs/latex/wx/richtextbuffer.tex | 834 --- .../wx/richtextcharacterstyledefinition.tex | 33 - docs/latex/wx/richtextctrl.bmp | Bin 351054 -> 0 bytes docs/latex/wx/richtextctrl.gif | Bin 34130 -> 0 bytes docs/latex/wx/richtextctrl.tex | 1475 ----- docs/latex/wx/richtextevent.tex | 138 - docs/latex/wx/richtextfilehandler.tex | 154 - docs/latex/wx/richtextformattingdialog.tex | 285 - docs/latex/wx/richtextheaderfooterdata.tex | 179 - docs/latex/wx/richtexthtmlhandler.tex | 141 - docs/latex/wx/richtextliststyledefinition.tex | 100 - docs/latex/wx/richtextoverview.tex | 412 -- .../wx/richtextparagraphstyledefinition.tex | 45 - docs/latex/wx/richtextprinting.tex | 174 - docs/latex/wx/richtextprintout.tex | 89 - docs/latex/wx/richtextrange.tex | 143 - docs/latex/wx/richtextstyledefinition.tex | 88 - docs/latex/wx/richtextstylelistbox.tex | 323 -- .../latex/wx/richtextstyleorganiserdialog.tex | 147 - docs/latex/wx/richtextstylesheet.tex | 175 - docs/latex/wx/richtextxmlhandler.tex | 120 - docs/latex/wx/sashevt.tex | 93 - docs/latex/wx/sashlayw.tex | 159 - docs/latex/wx/sashwin.tex | 213 - docs/latex/wx/sbsizer.tex | 48 - docs/latex/wx/sckaddr.tex | 59 - docs/latex/wx/scopedptr.tex | 90 - docs/latex/wx/scpdarry.tex | 102 - docs/latex/wx/scpdptr.tex | 205 - docs/latex/wx/screendc.tex | 71 - docs/latex/wx/scrlwevt.tex | 66 - docs/latex/wx/scrolbar.tex | 301 - docs/latex/wx/scrolevt.inc | 52 - docs/latex/wx/scrolevt.tex | 58 - docs/latex/wx/scrolwin.tex | 481 -- docs/latex/wx/semaphor.tex | 139 - docs/latex/wx/setcursorevt.tex | 88 - docs/latex/wx/settings.tex | 187 - docs/latex/wx/setup.tex | 3 - docs/latex/wx/sharedptr.tex | 107 - docs/latex/wx/sistream.tex | 40 - docs/latex/wx/size.tex | 231 - docs/latex/wx/sizeevt.tex | 70 - docs/latex/wx/sizer.tex | 828 --- docs/latex/wx/sizer00.bmp | Bin 2318 -> 0 bytes docs/latex/wx/sizer00.eps | 678 --- docs/latex/wx/sizer00.gif | Bin 545 -> 0 bytes docs/latex/wx/sizer01.bmp | Bin 3238 -> 0 bytes docs/latex/wx/sizer01.eps | 809 --- docs/latex/wx/sizer01.gif | Bin 677 -> 0 bytes docs/latex/wx/sizer02.bmp | Bin 4038 -> 0 bytes docs/latex/wx/sizer02.eps | 936 --- docs/latex/wx/sizer02.gif | Bin 737 -> 0 bytes docs/latex/wx/sizer03.bmp | Bin 3342 -> 0 bytes docs/latex/wx/sizer03.eps | 853 --- docs/latex/wx/sizer03.gif | Bin 772 -> 0 bytes docs/latex/wx/sizer04.bmp | Bin 7670 -> 0 bytes docs/latex/wx/sizer04.eps | 1548 ----- docs/latex/wx/sizer04.gif | Bin 1521 -> 0 bytes docs/latex/wx/sizer05.bmp | Bin 3238 -> 0 bytes docs/latex/wx/sizer05.eps | 814 --- docs/latex/wx/sizer05.gif | Bin 695 -> 0 bytes docs/latex/wx/sizer06.bmp | Bin 18526 -> 0 bytes docs/latex/wx/sizer06.eps | 3017 ---------- docs/latex/wx/sizer06.gif | Bin 2181 -> 0 bytes docs/latex/wx/sizer07.bmp | Bin 9862 -> 0 bytes docs/latex/wx/sizer07.eps | 1684 ------ docs/latex/wx/sizer07.gif | Bin 1175 -> 0 bytes docs/latex/wx/sizer08.bmp | Bin 6566 -> 0 bytes docs/latex/wx/sizer08.eps | 1329 ----- docs/latex/wx/sizer08.gif | Bin 1130 -> 0 bytes docs/latex/wx/sizer09.bmp | Bin 13798 -> 0 bytes docs/latex/wx/sizer09.eps | 2305 -------- docs/latex/wx/sizer09.gif | Bin 1468 -> 0 bytes docs/latex/wx/sizer10.bmp | Bin 17814 -> 0 bytes docs/latex/wx/sizer10.eps | 2967 ---------- docs/latex/wx/sizer10.gif | Bin 1965 -> 0 bytes docs/latex/wx/sizer11.bmp | Bin 12790 -> 0 bytes docs/latex/wx/sizer11.eps | 2271 -------- docs/latex/wx/sizer11.gif | Bin 1662 -> 0 bytes docs/latex/wx/sizeritem.tex | 272 - docs/latex/wx/slider.tex | 363 -- docs/latex/wx/sngchdlg.tex | 110 - docs/latex/wx/snglinst.tex | 137 - docs/latex/wx/socket.tex | 1211 ---- docs/latex/wx/socksrv.tex | 150 - docs/latex/wx/sostream.tex | 54 - docs/latex/wx/sound.tex | 119 - docs/latex/wx/spinbutt.tex | 159 - docs/latex/wx/spinctrl.tex | 150 - docs/latex/wx/spinevt.inc | 28 - docs/latex/wx/spinevt.tex | 57 - docs/latex/wx/splash.tex | 88 - docs/latex/wx/splitevt.tex | 128 - docs/latex/wx/splitpar.tex | 47 - docs/latex/wx/splitter.bmp | Bin 56958 -> 0 bytes docs/latex/wx/splitter.eps | 301 - docs/latex/wx/splitter.gif | Bin 5272 -> 0 bytes docs/latex/wx/splitter.tex | 492 -- docs/latex/wx/srchctrl.tex | 161 - docs/latex/wx/stackframe.tex | 130 - docs/latex/wx/stackwalker.tex | 108 - docs/latex/wx/statbmp.tex | 138 - docs/latex/wx/statbox.tex | 90 - docs/latex/wx/statline.tex | 88 - docs/latex/wx/stattext.tex | 200 - docs/latex/wx/statusbr.tex | 263 - docs/latex/wx/stdbtnsz.tex | 86 - docs/latex/wx/stdevtid.tex | 140 - docs/latex/wx/stdpaths.tex | 303 - docs/latex/wx/stockitems.tex | 67 - docs/latex/wx/stopwtch.tex | 68 - docs/latex/wx/strcldat.tex | 43 - docs/latex/wx/stream.tex | 341 -- docs/latex/wx/strmbase.tex | 137 - docs/latex/wx/strmbfrd.tex | 93 - docs/latex/wx/strmmem.tex | 128 - docs/latex/wx/strmsock.tex | 81 - docs/latex/wx/strmzlib.tex | 163 - docs/latex/wx/strtotxt.tex | 80 - docs/latex/wx/styledtextctrl.tex | 3373 ----------- docs/latex/wx/styledtextevent.tex | 254 - docs/latex/wx/symbolpickerdialog.tex | 188 - docs/latex/wx/sysclevt.tex | 49 - docs/latex/wx/sysopt.tex | 179 - docs/latex/wx/tab.tex | 245 - docs/latex/wx/tabview.tex | 355 -- docs/latex/wx/tapp.tex | 119 - docs/latex/wx/tarstrm.tex | 537 -- docs/latex/wx/taskbar.tex | 147 - docs/latex/wx/taui.tex | 45 - docs/latex/wx/tbitmap.tex | 171 - docs/latex/wx/tbook.tex | 56 - docs/latex/wx/tbuffer.tex | 31 - docs/latex/wx/tchanges.tex | 145 - docs/latex/wx/tclipbrd.tex | 72 - docs/latex/wx/tcommdlg.tex | 214 - docs/latex/wx/tconfig.tex | 50 - docs/latex/wx/tconstr.tex | 179 - docs/latex/wx/tcontain.tex | 59 - docs/latex/wx/tcpclint.tex | 72 - docs/latex/wx/tcpconn.tex | 229 - docs/latex/wx/tcpservr.tex | 53 - docs/latex/wx/tdate.tex | 218 - docs/latex/wx/tdc.tex | 42 - docs/latex/wx/tdebug.tex | 122 - docs/latex/wx/tdelwin.tex | 131 - docs/latex/wx/tdialog.tex | 101 - docs/latex/wx/tdnd.tex | 84 - docs/latex/wx/tdocview.tex | 325 -- docs/latex/wx/tempfile.tex | 144 - docs/latex/wx/tempfilestrm.tex | 61 - docs/latex/wx/tenvvars.tex | 32 - docs/latex/wx/tevent.tex | 594 -- docs/latex/wx/tex2rtf.ini | 61 - docs/latex/wx/tex2rtf_css.ini | 62 - docs/latex/wx/texcept.tex | 75 - docs/latex/wx/texhelp.sty | 309 - docs/latex/wx/texhelp2e.sty | 373 -- docs/latex/wx/texpr.tex | 203 - docs/latex/wx/text.tex | 1153 ---- docs/latex/wx/textattr.tex | 901 --- docs/latex/wx/textdlg.tex | 71 - docs/latex/wx/textfile.tex | 306 - docs/latex/wx/tfile.tex | 31 - docs/latex/wx/tfont.tex | 64 - docs/latex/wx/tfontenc.tex | 85 - docs/latex/wx/tglbtn.tex | 129 - docs/latex/wx/tgrid.tex | 60 - docs/latex/wx/tguide.tex | 51 - docs/latex/wx/thread.tex | 500 -- docs/latex/wx/threadh.tex | 105 - docs/latex/wx/ti18n.tex | 74 - docs/latex/wx/timaglst.tex | 13 - docs/latex/wx/timer.tex | 217 - docs/latex/wx/timespan.tex | 379 -- docs/latex/wx/tipc.tex | 221 - docs/latex/wx/tipprov.tex | 67 - docs/latex/wx/tipwin.tex | 81 - docs/latex/wx/tlistctl.tex | 6 - docs/latex/wx/tlog.tex | 175 - docs/latex/wx/tlw.tex | 493 -- docs/latex/wx/tmbconv.tex | 176 - docs/latex/wx/tnoneng.tex | 164 - docs/latex/wx/tokenizr.tex | 159 - docs/latex/wx/toolbar.tex | 918 --- docs/latex/wx/toolbook.tex | 57 - docs/latex/wx/tooltip.tex | 83 - docs/latex/wx/topics.tex | 86 - docs/latex/wx/topics2.tex | 67 - docs/latex/wx/tprint.tex | 233 - docs/latex/wx/trackable.tex | 29 - docs/latex/wx/treebook.tex | 296 - docs/latex/wx/treebookevent.tex | 84 - docs/latex/wx/treebookevt.inc | 12 - docs/latex/wx/treectrl.tex | 1124 ---- docs/latex/wx/treedata.tex | 78 - docs/latex/wx/treeevt.tex | 123 - docs/latex/wx/treetst.bmp | Bin 14982 -> 0 bytes docs/latex/wx/treetst.gif | Bin 2490 -> 0 bytes docs/latex/wx/trefcount.tex | 98 - docs/latex/wx/truntime.tex | 109 - docs/latex/wx/tsamples.tex | 574 -- docs/latex/wx/tscroll.tex | 90 - docs/latex/wx/tsizer.tex | 352 -- docs/latex/wx/tsplittr.tex | 63 - docs/latex/wx/tstream.tex | 87 - docs/latex/wx/tstring.tex | 259 - docs/latex/wx/tstyles.tex | 25 - docs/latex/wx/ttab.tex | 190 - docs/latex/wx/tthreads.tex | 53 - docs/latex/wx/ttips.tex | 69 - docs/latex/wx/ttoolbar.tex | 287 - docs/latex/wx/ttreectl.tex | 81 - docs/latex/wx/tunicode.tex | 207 - docs/latex/wx/tusage.tex | 22 - docs/latex/wx/tvalidat.tex | 122 - docs/latex/wx/twindowid.tex | 63 - docs/latex/wx/twinsizes.tex | 102 - docs/latex/wx/txrc.tex | 632 -- docs/latex/wx/txtdatob.tex | 85 - docs/latex/wx/txtdrptg.tex | 54 - docs/latex/wx/txtstrm.tex | 304 - docs/latex/wx/up.gif | Bin 998 -> 0 bytes docs/latex/wx/upduievt.tex | 253 - docs/latex/wx/uri.tex | 379 -- docs/latex/wx/url.tex | 174 - docs/latex/wx/urldataob.tex | 75 - docs/latex/wx/valgen.tex | 96 - docs/latex/wx/validatr.tex | 110 - docs/latex/wx/valtext.tex | 136 - docs/latex/wx/varhscrollhelper.tex | 182 - docs/latex/wx/varhvscrollhelper.tex | 177 - docs/latex/wx/variant.tex | 637 --- docs/latex/wx/varscrollhelperbase.tex | 248 - docs/latex/wx/varvscrollhelper.tex | 182 - docs/latex/wx/vector.tex | 152 - docs/latex/wx/view.tex | 216 - docs/latex/wx/vlbox.tex | 397 -- docs/latex/wx/vscrolledwindow.tex | 182 - docs/latex/wx/weakref.tex | 152 - docs/latex/wx/weakrefdynamic.tex | 42 - docs/latex/wx/window.tex | 4164 -------------- docs/latex/wx/windowdc.tex | 42 - docs/latex/wx/wizard.tex | 374 -- docs/latex/wx/wizevt.tex | 79 - docs/latex/wx/wizpage.tex | 181 - docs/latex/wx/wnddisbl.tex | 49 - docs/latex/wx/wrapsizer.tex | 55 - docs/latex/wx/wupdlock.tex | 62 - docs/latex/wx/wx.css | 117 - docs/latex/wx/wxManualTemplate.dot | Bin 19456 -> 0 bytes docs/latex/wx/wxPython.tex | 480 -- docs/latex/wx/wxgtk.tex | 33 - docs/latex/wx/wxhtml.tex | 28 - docs/latex/wx/wxmac.tex | 16 - docs/latex/wx/wxmgl.tex | 27 - docs/latex/wx/wxmsw.tex | 456 -- docs/latex/wx/wxos2.tex | 5 - docs/latex/wx/wxpalm.tex | 10 - docs/latex/wx/wxstring.tex | 1676 ------ docs/latex/wx/wxtab1.bmp | Bin 73718 -> 0 bytes docs/latex/wx/wxtab1.eps | 1086 ---- docs/latex/wx/wxtab1.gif | Bin 98236 -> 0 bytes docs/latex/wx/wxusedef.tex | 322 -- docs/latex/wx/wxx11.tex | 21 - docs/latex/wx/xlocale.tex | 114 - docs/latex/wx/xmlattr.tex | 88 - docs/latex/wx/xmldocument.tex | 257 - docs/latex/wx/xmlnode.tex | 321 -- docs/latex/wx/xmlres.tex | 302 - docs/latex/wx/xmlresh.tex | 241 - docs/latex/wx/zipstrm.tex | 751 --- 667 files changed, 159416 deletions(-) delete mode 100644 docs/latex/wx/Makefile delete mode 100644 docs/latex/wx/aboutdlginfo.tex delete mode 100644 docs/latex/wx/accel.tex delete mode 100644 docs/latex/wx/accessible.tex delete mode 100644 docs/latex/wx/activevt.tex delete mode 100644 docs/latex/wx/activexcontainer.tex delete mode 100644 docs/latex/wx/activexevt.tex delete mode 100644 docs/latex/wx/alignv.bmp delete mode 100644 docs/latex/wx/alignv.gif delete mode 100644 docs/latex/wx/animatctrl.tex delete mode 100644 docs/latex/wx/animation.tex delete mode 100644 docs/latex/wx/app.tex delete mode 100644 docs/latex/wx/apptraits.tex delete mode 100644 docs/latex/wx/arc.tex delete mode 100644 docs/latex/wx/archive.tex delete mode 100644 docs/latex/wx/array.tex delete mode 100644 docs/latex/wx/arrstrng.tex delete mode 100644 docs/latex/wx/artprov.tex delete mode 100644 docs/latex/wx/auidockart.tex delete mode 100644 docs/latex/wx/auimanager.tex delete mode 100644 docs/latex/wx/auinotebook.tex delete mode 100644 docs/latex/wx/auipaneinfo.tex delete mode 100644 docs/latex/wx/auitabart.tex delete mode 100644 docs/latex/wx/autoobj.tex delete mode 100644 docs/latex/wx/back.gif delete mode 100644 docs/latex/wx/backwardcompat.tex delete mode 100644 docs/latex/wx/bbutton.tex delete mode 100644 docs/latex/wx/bitmap.tex delete mode 100644 docs/latex/wx/bitmapcombobox.tex delete mode 100644 docs/latex/wx/bitmaptglbutn.tex delete mode 100644 docs/latex/wx/bmpdatob.tex delete mode 100644 docs/latex/wx/bmphand.tex delete mode 100644 docs/latex/wx/body.tex delete mode 100644 docs/latex/wx/border.bmp delete mode 100644 docs/latex/wx/border.gif delete mode 100644 docs/latex/wx/boxsizer.tex delete mode 100644 docs/latex/wx/brush.tex delete mode 100644 docs/latex/wx/bufferdc.tex delete mode 100644 docs/latex/wx/bullet.bmp delete mode 100644 docs/latex/wx/busycurs.tex delete mode 100644 docs/latex/wx/busyinfo.tex delete mode 100644 docs/latex/wx/button.tex delete mode 100644 docs/latex/wx/calclevt.tex delete mode 100644 docs/latex/wx/calctrl.tex delete mode 100644 docs/latex/wx/caret.tex delete mode 100644 docs/latex/wx/category.tex delete mode 100644 docs/latex/wx/checkbox.tex delete mode 100644 docs/latex/wx/checklst.tex delete mode 100644 docs/latex/wx/chfocevt.tex delete mode 100644 docs/latex/wx/choice.tex delete mode 100644 docs/latex/wx/choicebevt.inc delete mode 100644 docs/latex/wx/choicebk.tex delete mode 100644 docs/latex/wx/clasinfo.tex delete mode 100644 docs/latex/wx/classes.tex delete mode 100644 docs/latex/wx/clientdat.tex delete mode 100644 docs/latex/wx/clientdc.tex delete mode 100644 docs/latex/wx/clipbrd.tex delete mode 100644 docs/latex/wx/clipevent.tex delete mode 100644 docs/latex/wx/closeevt.tex delete mode 100644 docs/latex/wx/clrpicker.tex delete mode 100644 docs/latex/wx/cmdevent.tex delete mode 100644 docs/latex/wx/cmdlpars.tex delete mode 100644 docs/latex/wx/cmdproc.tex delete mode 100644 docs/latex/wx/cntxtevt.tex delete mode 100644 docs/latex/wx/collpane.tex delete mode 100644 docs/latex/wx/colordlg.tex delete mode 100644 docs/latex/wx/colour.tex delete mode 100644 docs/latex/wx/combobox.tex delete mode 100644 docs/latex/wx/comboctrl.tex delete mode 100644 docs/latex/wx/combopopup.tex delete mode 100644 docs/latex/wx/command.tex delete mode 100644 docs/latex/wx/conditn.tex delete mode 100644 docs/latex/wx/config.tex delete mode 100644 docs/latex/wx/constant.tex delete mode 100644 docs/latex/wx/cont.bmp delete mode 100644 docs/latex/wx/cont.gif delete mode 100644 docs/latex/wx/contbox.bmp delete mode 100644 docs/latex/wx/contbox.gif delete mode 100644 docs/latex/wx/contents.gif delete mode 100644 docs/latex/wx/control.tex delete mode 100644 docs/latex/wx/convauto.tex delete mode 100644 docs/latex/wx/countstr.tex delete mode 100644 docs/latex/wx/cppconst.tex delete mode 100644 docs/latex/wx/createevt.tex delete mode 100644 docs/latex/wx/critsect.tex delete mode 100644 docs/latex/wx/crtslock.tex delete mode 100644 docs/latex/wx/csconv.tex delete mode 100644 docs/latex/wx/cshelp.tex delete mode 100644 docs/latex/wx/ctrlsub.tex delete mode 100644 docs/latex/wx/cursor.tex delete mode 100644 docs/latex/wx/custdobj.tex delete mode 100644 docs/latex/wx/dataform.tex delete mode 100644 docs/latex/wx/dataobj.tex delete mode 100644 docs/latex/wx/dataviewcolumn.tex delete mode 100644 docs/latex/wx/dataviewctrl.tex delete mode 100644 docs/latex/wx/dataviewevent.tex delete mode 100644 docs/latex/wx/dataviewindexlistmodel.tex delete mode 100644 docs/latex/wx/dataviewitem.tex delete mode 100644 docs/latex/wx/dataviewitemattr.tex delete mode 100644 docs/latex/wx/dataviewmodel.tex delete mode 100644 docs/latex/wx/dataviewmodelnotifier.tex delete mode 100644 docs/latex/wx/dataviewrenderer.tex delete mode 100644 docs/latex/wx/dataviewtreectrl.tex delete mode 100644 docs/latex/wx/dataviewtreestore.tex delete mode 100644 docs/latex/wx/datectrl.tex delete mode 100644 docs/latex/wx/dateevt.tex delete mode 100644 docs/latex/wx/datespan.tex delete mode 100644 docs/latex/wx/datetime.tex delete mode 100644 docs/latex/wx/datistrm.tex delete mode 100644 docs/latex/wx/datostrm.tex delete mode 100644 docs/latex/wx/dc.tex delete mode 100644 docs/latex/wx/dcclipper.tex delete mode 100644 docs/latex/wx/dcsvg.tex delete mode 100644 docs/latex/wx/ddeclint.tex delete mode 100644 docs/latex/wx/ddeconn.tex delete mode 100644 docs/latex/wx/ddeservr.tex delete mode 100644 docs/latex/wx/debugcxt.tex delete mode 100644 docs/latex/wx/debugrpt.tex delete mode 100644 docs/latex/wx/debugrptpvw.tex delete mode 100644 docs/latex/wx/debugrptpvwstd.tex delete mode 100644 docs/latex/wx/debugrptup.tex delete mode 100644 docs/latex/wx/debugrptz.tex delete mode 100644 docs/latex/wx/delgrend.tex delete mode 100644 docs/latex/wx/descent.bmp delete mode 100644 docs/latex/wx/descent.gif delete mode 100644 docs/latex/wx/destroyevt.tex delete mode 100644 docs/latex/wx/dgramsocket.tex delete mode 100644 docs/latex/wx/dialevt.tex delete mode 100644 docs/latex/wx/dialog.tex delete mode 100644 docs/latex/wx/dialoglayoutadapter.tex delete mode 100644 docs/latex/wx/dialup.tex delete mode 100644 docs/latex/wx/dir.tex delete mode 100644 docs/latex/wx/dirctrl.tex delete mode 100644 docs/latex/wx/dirdlg.tex delete mode 100644 docs/latex/wx/dirpicker.tex delete mode 100644 docs/latex/wx/dirtrav.tex delete mode 100644 docs/latex/wx/display.tex delete mode 100644 docs/latex/wx/dllload.tex delete mode 100644 docs/latex/wx/dobjcomp.tex delete mode 100644 docs/latex/wx/dobjsmpl.tex delete mode 100644 docs/latex/wx/docchfrm.tex delete mode 100644 docs/latex/wx/docmanag.tex delete mode 100644 docs/latex/wx/docmdich.tex delete mode 100644 docs/latex/wx/docmdipr.tex delete mode 100644 docs/latex/wx/docprfrm.tex delete mode 100644 docs/latex/wx/doctempl.tex delete mode 100644 docs/latex/wx/document.tex delete mode 100644 docs/latex/wx/dragimag.tex delete mode 100644 docs/latex/wx/dropevt.tex delete mode 100644 docs/latex/wx/dropsrc.tex delete mode 100644 docs/latex/wx/droptrgt.tex delete mode 100644 docs/latex/wx/dynlib.tex delete mode 100644 docs/latex/wx/editlistbox.tex delete mode 100644 docs/latex/wx/encconv.tex delete mode 100644 docs/latex/wx/eraseevt.tex delete mode 100644 docs/latex/wx/event.tex delete mode 100644 docs/latex/wx/evtblocker.tex delete mode 100644 docs/latex/wx/evthand.tex delete mode 100644 docs/latex/wx/fdrepdlg.tex delete mode 100644 docs/latex/wx/ffile.tex delete mode 100644 docs/latex/wx/ffilestr.tex delete mode 100644 docs/latex/wx/fildatob.tex delete mode 100644 docs/latex/wx/fildrptg.tex delete mode 100644 docs/latex/wx/file.tex delete mode 100644 docs/latex/wx/fileconf.tex delete mode 100644 docs/latex/wx/filectrl.tex delete mode 100644 docs/latex/wx/filedlg.tex delete mode 100644 docs/latex/wx/fileevt.tex delete mode 100644 docs/latex/wx/filehist.tex delete mode 100644 docs/latex/wx/fileistr.tex delete mode 100644 docs/latex/wx/filename.tex delete mode 100644 docs/latex/wx/fileostr.tex delete mode 100644 docs/latex/wx/filepicker.tex delete mode 100644 docs/latex/wx/filestrm.tex delete mode 100644 docs/latex/wx/filesys.tex delete mode 100644 docs/latex/wx/filesysh.tex delete mode 100644 docs/latex/wx/filetype.tex delete mode 100644 docs/latex/wx/flexsizr.tex delete mode 100644 docs/latex/wx/fltfactory.tex delete mode 100644 docs/latex/wx/fltinstr.tex delete mode 100644 docs/latex/wx/fltoutst.tex delete mode 100644 docs/latex/wx/focusevt.tex delete mode 100644 docs/latex/wx/font.tex delete mode 100644 docs/latex/wx/fontdlg.tex delete mode 100644 docs/latex/wx/fontenum.tex delete mode 100644 docs/latex/wx/fontlist.tex delete mode 100644 docs/latex/wx/fontmap.tex delete mode 100644 docs/latex/wx/fontpicker.tex delete mode 100644 docs/latex/wx/forward.gif delete mode 100644 docs/latex/wx/frame.tex delete mode 100644 docs/latex/wx/fs.tex delete mode 100644 docs/latex/wx/fs_mem.tex delete mode 100644 docs/latex/wx/fsfile.tex delete mode 100644 docs/latex/wx/ftp.tex delete mode 100644 docs/latex/wx/function.tex delete mode 100644 docs/latex/wx/gauge.tex delete mode 100644 docs/latex/wx/gbposition.tex delete mode 100644 docs/latex/wx/gbsizeritem.tex delete mode 100644 docs/latex/wx/gbspan.tex delete mode 100644 docs/latex/wx/gdiobj.tex delete mode 100644 docs/latex/wx/glcanvas.tex delete mode 100644 docs/latex/wx/glcontext.tex delete mode 100644 docs/latex/wx/graphicsbrush.tex delete mode 100644 docs/latex/wx/graphicscontext.tex delete mode 100644 docs/latex/wx/graphicsfont.tex delete mode 100644 docs/latex/wx/graphicsmatrix.tex delete mode 100644 docs/latex/wx/graphicsobject.tex delete mode 100644 docs/latex/wx/graphicspath.tex delete mode 100644 docs/latex/wx/graphicspen.tex delete mode 100644 docs/latex/wx/graphicsrenderer.tex delete mode 100644 docs/latex/wx/grid.tex delete mode 100644 docs/latex/wx/grid1.bmp delete mode 100644 docs/latex/wx/grid1.eps delete mode 100644 docs/latex/wx/grid1.gif delete mode 100644 docs/latex/wx/gridattr.tex delete mode 100644 docs/latex/wx/gridbagsizer.tex delete mode 100644 docs/latex/wx/gridedit.tex delete mode 100644 docs/latex/wx/gridevt.inc delete mode 100644 docs/latex/wx/gridevt.tex delete mode 100644 docs/latex/wx/gridrend.tex delete mode 100644 docs/latex/wx/gridsizr.tex delete mode 100644 docs/latex/wx/gridtbl.tex delete mode 100644 docs/latex/wx/gupdlock.tex delete mode 100644 docs/latex/wx/hash.tex delete mode 100644 docs/latex/wx/hashmap.tex delete mode 100644 docs/latex/wx/hashset.tex delete mode 100644 docs/latex/wx/hello.bmp delete mode 100644 docs/latex/wx/hello.gif delete mode 100644 docs/latex/wx/helpevt.tex delete mode 100644 docs/latex/wx/helpinst.tex delete mode 100644 docs/latex/wx/helpprov.tex delete mode 100644 docs/latex/wx/hprovcnt.tex delete mode 100644 docs/latex/wx/hprovsmp.tex delete mode 100644 docs/latex/wx/hscrolledwindow.tex delete mode 100644 docs/latex/wx/htcell.tex delete mode 100644 docs/latex/wx/htcolor.tex delete mode 100644 docs/latex/wx/htcontnr.tex delete mode 100644 docs/latex/wx/htdcrend.tex delete mode 100644 docs/latex/wx/hteasypr.tex delete mode 100644 docs/latex/wx/htfilter.tex delete mode 100644 docs/latex/wx/hthelpct.tex delete mode 100644 docs/latex/wx/hthlpdat.tex delete mode 100644 docs/latex/wx/hthlpfrm.tex delete mode 100644 docs/latex/wx/htlnkinf.tex delete mode 100644 docs/latex/wx/htmlcell.tex delete mode 100644 docs/latex/wx/htmlfilt.tex delete mode 100644 docs/latex/wx/htmlhand.tex delete mode 100644 docs/latex/wx/htmlhlpf.tex delete mode 100644 docs/latex/wx/htmllbox.tex delete mode 100644 docs/latex/wx/htmlprn.tex delete mode 100644 docs/latex/wx/htmlstrt.tex delete mode 100644 docs/latex/wx/htmltags.tex delete mode 100644 docs/latex/wx/htparser.tex delete mode 100644 docs/latex/wx/htprint.tex delete mode 100644 docs/latex/wx/htprintmacros.inc delete mode 100644 docs/latex/wx/httag.tex delete mode 100644 docs/latex/wx/httaghnd.tex delete mode 100644 docs/latex/wx/httagmod.tex delete mode 100644 docs/latex/wx/http.tex delete mode 100644 docs/latex/wx/htwidget.tex delete mode 100644 docs/latex/wx/htwindow.tex delete mode 100644 docs/latex/wx/htwinhnd.tex delete mode 100644 docs/latex/wx/htwinprs.tex delete mode 100644 docs/latex/wx/hvscrolledwindow.tex delete mode 100644 docs/latex/wx/hworld.tex delete mode 100644 docs/latex/wx/hyperlink.tex delete mode 100644 docs/latex/wx/icon.tex delete mode 100644 docs/latex/wx/iconbndl.tex delete mode 100644 docs/latex/wx/iconevt.tex delete mode 100644 docs/latex/wx/iconloc.tex delete mode 100644 docs/latex/wx/idleevt.tex delete mode 100644 docs/latex/wx/idmanager.tex delete mode 100644 docs/latex/wx/ignore.txt delete mode 100644 docs/latex/wx/ilayout.tex delete mode 100644 docs/latex/wx/image.tex delete mode 100644 docs/latex/wx/imaglist.tex delete mode 100644 docs/latex/wx/indent.bmp delete mode 100644 docs/latex/wx/indent.gif delete mode 100644 docs/latex/wx/indlgevt.tex delete mode 100644 docs/latex/wx/inputstr.tex delete mode 100644 docs/latex/wx/ipaddr.tex delete mode 100644 docs/latex/wx/ipcclint.tex delete mode 100644 docs/latex/wx/ipcconn.tex delete mode 100644 docs/latex/wx/ipcservr.tex delete mode 100644 docs/latex/wx/ipvaddr.tex delete mode 100644 docs/latex/wx/joyevent.tex delete mode 100644 docs/latex/wx/joystick.tex delete mode 100644 docs/latex/wx/keycode.tex delete mode 100644 docs/latex/wx/keyevent.tex delete mode 100644 docs/latex/wx/keymod.tex delete mode 100644 docs/latex/wx/langcodes.tex delete mode 100644 docs/latex/wx/layalgor.tex delete mode 100644 docs/latex/wx/layout.tex delete mode 100644 docs/latex/wx/libs.bmp delete mode 100644 docs/latex/wx/libs.dia delete mode 100644 docs/latex/wx/libs.gif delete mode 100644 docs/latex/wx/libs.tex delete mode 100644 docs/latex/wx/list.tex delete mode 100644 docs/latex/wx/listattr.tex delete mode 100644 docs/latex/wx/listbevt.inc delete mode 100644 docs/latex/wx/listbook.tex delete mode 100644 docs/latex/wx/listbox.tex delete mode 100644 docs/latex/wx/listctrl.tex delete mode 100644 docs/latex/wx/listevt.tex delete mode 100644 docs/latex/wx/listitem.tex delete mode 100644 docs/latex/wx/listview.tex delete mode 100644 docs/latex/wx/locale.tex delete mode 100644 docs/latex/wx/log.tex delete mode 100644 docs/latex/wx/longlong.tex delete mode 100644 docs/latex/wx/ltx.tex delete mode 100644 docs/latex/wx/manual.ist delete mode 100644 docs/latex/wx/manual.tex delete mode 100644 docs/latex/wx/manual2e.tex delete mode 100644 docs/latex/wx/mask.tex delete mode 100644 docs/latex/wx/maxzevt.tex delete mode 100644 docs/latex/wx/mbcnvfil.tex delete mode 100644 docs/latex/wx/mbcnvut7.tex delete mode 100644 docs/latex/wx/mbcnvut8.tex delete mode 100644 docs/latex/wx/mbcnvutf.tex delete mode 100644 docs/latex/wx/mbconv.tex delete mode 100644 docs/latex/wx/mcaptevt.tex delete mode 100644 docs/latex/wx/mdi.tex delete mode 100644 docs/latex/wx/mediactrl.tex delete mode 100644 docs/latex/wx/mediaevt.tex delete mode 100644 docs/latex/wx/membuf.tex delete mode 100644 docs/latex/wx/memorydc.tex delete mode 100644 docs/latex/wx/menu.tex delete mode 100644 docs/latex/wx/menuevt.tex delete mode 100644 docs/latex/wx/menuitem.tex delete mode 100644 docs/latex/wx/metafile.tex delete mode 100644 docs/latex/wx/mimetype.tex delete mode 100644 docs/latex/wx/minifram.tex delete mode 100644 docs/latex/wx/minimald.tex delete mode 100644 docs/latex/wx/mirrordc.tex delete mode 100644 docs/latex/wx/mltchdlg.tex delete mode 100644 docs/latex/wx/module.tex delete mode 100644 docs/latex/wx/mouseevt.tex delete mode 100644 docs/latex/wx/moveevt.tex delete mode 100644 docs/latex/wx/msgdlg.tex delete mode 100644 docs/latex/wx/msgqueue.tex delete mode 100644 docs/latex/wx/mutex.tex delete mode 100644 docs/latex/wx/mutexlck.tex delete mode 100644 docs/latex/wx/navevent.tex delete mode 100644 docs/latex/wx/nbsizer.tex delete mode 100644 docs/latex/wx/node.tex delete mode 100644 docs/latex/wx/notebook.tex delete mode 100644 docs/latex/wx/noteevt.inc delete mode 100644 docs/latex/wx/noteevt.tex delete mode 100644 docs/latex/wx/notifevt.tex delete mode 100644 docs/latex/wx/notifmsg.tex delete mode 100644 docs/latex/wx/object.tex delete mode 100644 docs/latex/wx/objectdataptr.tex delete mode 100644 docs/latex/wx/odcbox.tex delete mode 100644 docs/latex/wx/outptstr.tex delete mode 100644 docs/latex/wx/pagedlg.tex delete mode 100644 docs/latex/wx/paintdc.tex delete mode 100644 docs/latex/wx/paintevt.tex delete mode 100644 docs/latex/wx/palette.tex delete mode 100644 docs/latex/wx/panel.tex delete mode 100644 docs/latex/wx/pantabv.tex delete mode 100644 docs/latex/wx/passdlg.tex delete mode 100644 docs/latex/wx/pathlist.tex delete mode 100644 docs/latex/wx/pen.tex delete mode 100644 docs/latex/wx/pickerbase.tex delete mode 100644 docs/latex/wx/platinfo.tex delete mode 100644 docs/latex/wx/point.tex delete mode 100644 docs/latex/wx/porting.tex delete mode 100644 docs/latex/wx/portnote.tex delete mode 100644 docs/latex/wx/position.tex delete mode 100644 docs/latex/wx/postscpt.tex delete mode 100644 docs/latex/wx/powerevt.tex delete mode 100644 docs/latex/wx/prevwin.tex delete mode 100644 docs/latex/wx/print.tex delete mode 100644 docs/latex/wx/process.tex delete mode 100644 docs/latex/wx/procevt.tex delete mode 100644 docs/latex/wx/progdlg.tex delete mode 100644 docs/latex/wx/propdlg.tex delete mode 100644 docs/latex/wx/protocol.tex delete mode 100644 docs/latex/wx/psbox.tex delete mode 100644 docs/latex/wx/quantize.tex delete mode 100644 docs/latex/wx/qylayevt.tex delete mode 100644 docs/latex/wx/radiobox.tex delete mode 100644 docs/latex/wx/radiobut.tex delete mode 100644 docs/latex/wx/re_syntax.tex delete mode 100644 docs/latex/wx/realpoin.tex delete mode 100644 docs/latex/wx/recguard.tex delete mode 100644 docs/latex/wx/rect.tex delete mode 100644 docs/latex/wx/referenc.tex delete mode 100644 docs/latex/wx/refs.bib delete mode 100644 docs/latex/wx/regex.tex delete mode 100644 docs/latex/wx/region.tex delete mode 100644 docs/latex/wx/regkey.tex delete mode 100644 docs/latex/wx/renderer.tex delete mode 100644 docs/latex/wx/rendver.tex delete mode 100644 docs/latex/wx/richtextbuffer.tex delete mode 100644 docs/latex/wx/richtextcharacterstyledefinition.tex delete mode 100644 docs/latex/wx/richtextctrl.bmp delete mode 100644 docs/latex/wx/richtextctrl.gif delete mode 100644 docs/latex/wx/richtextctrl.tex delete mode 100644 docs/latex/wx/richtextevent.tex delete mode 100644 docs/latex/wx/richtextfilehandler.tex delete mode 100644 docs/latex/wx/richtextformattingdialog.tex delete mode 100644 docs/latex/wx/richtextheaderfooterdata.tex delete mode 100644 docs/latex/wx/richtexthtmlhandler.tex delete mode 100644 docs/latex/wx/richtextliststyledefinition.tex delete mode 100644 docs/latex/wx/richtextoverview.tex delete mode 100644 docs/latex/wx/richtextparagraphstyledefinition.tex delete mode 100644 docs/latex/wx/richtextprinting.tex delete mode 100644 docs/latex/wx/richtextprintout.tex delete mode 100644 docs/latex/wx/richtextrange.tex delete mode 100644 docs/latex/wx/richtextstyledefinition.tex delete mode 100644 docs/latex/wx/richtextstylelistbox.tex delete mode 100644 docs/latex/wx/richtextstyleorganiserdialog.tex delete mode 100644 docs/latex/wx/richtextstylesheet.tex delete mode 100644 docs/latex/wx/richtextxmlhandler.tex delete mode 100644 docs/latex/wx/sashevt.tex delete mode 100644 docs/latex/wx/sashlayw.tex delete mode 100644 docs/latex/wx/sashwin.tex delete mode 100644 docs/latex/wx/sbsizer.tex delete mode 100644 docs/latex/wx/sckaddr.tex delete mode 100644 docs/latex/wx/scopedptr.tex delete mode 100644 docs/latex/wx/scpdarry.tex delete mode 100644 docs/latex/wx/scpdptr.tex delete mode 100644 docs/latex/wx/screendc.tex delete mode 100644 docs/latex/wx/scrlwevt.tex delete mode 100644 docs/latex/wx/scrolbar.tex delete mode 100644 docs/latex/wx/scrolevt.inc delete mode 100644 docs/latex/wx/scrolevt.tex delete mode 100644 docs/latex/wx/scrolwin.tex delete mode 100644 docs/latex/wx/semaphor.tex delete mode 100644 docs/latex/wx/setcursorevt.tex delete mode 100644 docs/latex/wx/settings.tex delete mode 100644 docs/latex/wx/setup.tex delete mode 100644 docs/latex/wx/sharedptr.tex delete mode 100644 docs/latex/wx/sistream.tex delete mode 100644 docs/latex/wx/size.tex delete mode 100644 docs/latex/wx/sizeevt.tex delete mode 100644 docs/latex/wx/sizer.tex delete mode 100644 docs/latex/wx/sizer00.bmp delete mode 100644 docs/latex/wx/sizer00.eps delete mode 100644 docs/latex/wx/sizer00.gif delete mode 100644 docs/latex/wx/sizer01.bmp delete mode 100644 docs/latex/wx/sizer01.eps delete mode 100644 docs/latex/wx/sizer01.gif delete mode 100644 docs/latex/wx/sizer02.bmp delete mode 100644 docs/latex/wx/sizer02.eps delete mode 100644 docs/latex/wx/sizer02.gif delete mode 100644 docs/latex/wx/sizer03.bmp delete mode 100644 docs/latex/wx/sizer03.eps delete mode 100644 docs/latex/wx/sizer03.gif delete mode 100644 docs/latex/wx/sizer04.bmp delete mode 100644 docs/latex/wx/sizer04.eps delete mode 100644 docs/latex/wx/sizer04.gif delete mode 100644 docs/latex/wx/sizer05.bmp delete mode 100644 docs/latex/wx/sizer05.eps delete mode 100644 docs/latex/wx/sizer05.gif delete mode 100644 docs/latex/wx/sizer06.bmp delete mode 100644 docs/latex/wx/sizer06.eps delete mode 100644 docs/latex/wx/sizer06.gif delete mode 100644 docs/latex/wx/sizer07.bmp delete mode 100644 docs/latex/wx/sizer07.eps delete mode 100644 docs/latex/wx/sizer07.gif delete mode 100644 docs/latex/wx/sizer08.bmp delete mode 100644 docs/latex/wx/sizer08.eps delete mode 100644 docs/latex/wx/sizer08.gif delete mode 100644 docs/latex/wx/sizer09.bmp delete mode 100644 docs/latex/wx/sizer09.eps delete mode 100644 docs/latex/wx/sizer09.gif delete mode 100644 docs/latex/wx/sizer10.bmp delete mode 100644 docs/latex/wx/sizer10.eps delete mode 100644 docs/latex/wx/sizer10.gif delete mode 100644 docs/latex/wx/sizer11.bmp delete mode 100644 docs/latex/wx/sizer11.eps delete mode 100644 docs/latex/wx/sizer11.gif delete mode 100644 docs/latex/wx/sizeritem.tex delete mode 100644 docs/latex/wx/slider.tex delete mode 100644 docs/latex/wx/sngchdlg.tex delete mode 100644 docs/latex/wx/snglinst.tex delete mode 100644 docs/latex/wx/socket.tex delete mode 100644 docs/latex/wx/socksrv.tex delete mode 100644 docs/latex/wx/sostream.tex delete mode 100644 docs/latex/wx/sound.tex delete mode 100644 docs/latex/wx/spinbutt.tex delete mode 100644 docs/latex/wx/spinctrl.tex delete mode 100644 docs/latex/wx/spinevt.inc delete mode 100644 docs/latex/wx/spinevt.tex delete mode 100644 docs/latex/wx/splash.tex delete mode 100644 docs/latex/wx/splitevt.tex delete mode 100644 docs/latex/wx/splitpar.tex delete mode 100644 docs/latex/wx/splitter.bmp delete mode 100644 docs/latex/wx/splitter.eps delete mode 100644 docs/latex/wx/splitter.gif delete mode 100644 docs/latex/wx/splitter.tex delete mode 100644 docs/latex/wx/srchctrl.tex delete mode 100644 docs/latex/wx/stackframe.tex delete mode 100644 docs/latex/wx/stackwalker.tex delete mode 100644 docs/latex/wx/statbmp.tex delete mode 100644 docs/latex/wx/statbox.tex delete mode 100644 docs/latex/wx/statline.tex delete mode 100644 docs/latex/wx/stattext.tex delete mode 100644 docs/latex/wx/statusbr.tex delete mode 100644 docs/latex/wx/stdbtnsz.tex delete mode 100644 docs/latex/wx/stdevtid.tex delete mode 100644 docs/latex/wx/stdpaths.tex delete mode 100644 docs/latex/wx/stockitems.tex delete mode 100644 docs/latex/wx/stopwtch.tex delete mode 100644 docs/latex/wx/strcldat.tex delete mode 100644 docs/latex/wx/stream.tex delete mode 100644 docs/latex/wx/strmbase.tex delete mode 100644 docs/latex/wx/strmbfrd.tex delete mode 100644 docs/latex/wx/strmmem.tex delete mode 100644 docs/latex/wx/strmsock.tex delete mode 100644 docs/latex/wx/strmzlib.tex delete mode 100644 docs/latex/wx/strtotxt.tex delete mode 100644 docs/latex/wx/styledtextctrl.tex delete mode 100644 docs/latex/wx/styledtextevent.tex delete mode 100644 docs/latex/wx/symbolpickerdialog.tex delete mode 100644 docs/latex/wx/sysclevt.tex delete mode 100644 docs/latex/wx/sysopt.tex delete mode 100644 docs/latex/wx/tab.tex delete mode 100644 docs/latex/wx/tabview.tex delete mode 100644 docs/latex/wx/tapp.tex delete mode 100644 docs/latex/wx/tarstrm.tex delete mode 100644 docs/latex/wx/taskbar.tex delete mode 100644 docs/latex/wx/taui.tex delete mode 100644 docs/latex/wx/tbitmap.tex delete mode 100644 docs/latex/wx/tbook.tex delete mode 100644 docs/latex/wx/tbuffer.tex delete mode 100644 docs/latex/wx/tchanges.tex delete mode 100644 docs/latex/wx/tclipbrd.tex delete mode 100644 docs/latex/wx/tcommdlg.tex delete mode 100644 docs/latex/wx/tconfig.tex delete mode 100644 docs/latex/wx/tconstr.tex delete mode 100644 docs/latex/wx/tcontain.tex delete mode 100644 docs/latex/wx/tcpclint.tex delete mode 100644 docs/latex/wx/tcpconn.tex delete mode 100644 docs/latex/wx/tcpservr.tex delete mode 100644 docs/latex/wx/tdate.tex delete mode 100644 docs/latex/wx/tdc.tex delete mode 100644 docs/latex/wx/tdebug.tex delete mode 100644 docs/latex/wx/tdelwin.tex delete mode 100644 docs/latex/wx/tdialog.tex delete mode 100644 docs/latex/wx/tdnd.tex delete mode 100644 docs/latex/wx/tdocview.tex delete mode 100644 docs/latex/wx/tempfile.tex delete mode 100644 docs/latex/wx/tempfilestrm.tex delete mode 100644 docs/latex/wx/tenvvars.tex delete mode 100644 docs/latex/wx/tevent.tex delete mode 100644 docs/latex/wx/tex2rtf.ini delete mode 100644 docs/latex/wx/tex2rtf_css.ini delete mode 100644 docs/latex/wx/texcept.tex delete mode 100644 docs/latex/wx/texhelp.sty delete mode 100644 docs/latex/wx/texhelp2e.sty delete mode 100644 docs/latex/wx/texpr.tex delete mode 100644 docs/latex/wx/text.tex delete mode 100644 docs/latex/wx/textattr.tex delete mode 100644 docs/latex/wx/textdlg.tex delete mode 100644 docs/latex/wx/textfile.tex delete mode 100644 docs/latex/wx/tfile.tex delete mode 100644 docs/latex/wx/tfont.tex delete mode 100644 docs/latex/wx/tfontenc.tex delete mode 100644 docs/latex/wx/tglbtn.tex delete mode 100644 docs/latex/wx/tgrid.tex delete mode 100644 docs/latex/wx/tguide.tex delete mode 100644 docs/latex/wx/thread.tex delete mode 100644 docs/latex/wx/threadh.tex delete mode 100644 docs/latex/wx/ti18n.tex delete mode 100644 docs/latex/wx/timaglst.tex delete mode 100644 docs/latex/wx/timer.tex delete mode 100644 docs/latex/wx/timespan.tex delete mode 100644 docs/latex/wx/tipc.tex delete mode 100644 docs/latex/wx/tipprov.tex delete mode 100644 docs/latex/wx/tipwin.tex delete mode 100644 docs/latex/wx/tlistctl.tex delete mode 100644 docs/latex/wx/tlog.tex delete mode 100644 docs/latex/wx/tlw.tex delete mode 100644 docs/latex/wx/tmbconv.tex delete mode 100644 docs/latex/wx/tnoneng.tex delete mode 100644 docs/latex/wx/tokenizr.tex delete mode 100644 docs/latex/wx/toolbar.tex delete mode 100644 docs/latex/wx/toolbook.tex delete mode 100644 docs/latex/wx/tooltip.tex delete mode 100644 docs/latex/wx/topics.tex delete mode 100644 docs/latex/wx/topics2.tex delete mode 100644 docs/latex/wx/tprint.tex delete mode 100644 docs/latex/wx/trackable.tex delete mode 100644 docs/latex/wx/treebook.tex delete mode 100644 docs/latex/wx/treebookevent.tex delete mode 100644 docs/latex/wx/treebookevt.inc delete mode 100644 docs/latex/wx/treectrl.tex delete mode 100644 docs/latex/wx/treedata.tex delete mode 100644 docs/latex/wx/treeevt.tex delete mode 100644 docs/latex/wx/treetst.bmp delete mode 100644 docs/latex/wx/treetst.gif delete mode 100644 docs/latex/wx/trefcount.tex delete mode 100644 docs/latex/wx/truntime.tex delete mode 100644 docs/latex/wx/tsamples.tex delete mode 100644 docs/latex/wx/tscroll.tex delete mode 100644 docs/latex/wx/tsizer.tex delete mode 100644 docs/latex/wx/tsplittr.tex delete mode 100644 docs/latex/wx/tstream.tex delete mode 100644 docs/latex/wx/tstring.tex delete mode 100644 docs/latex/wx/tstyles.tex delete mode 100644 docs/latex/wx/ttab.tex delete mode 100644 docs/latex/wx/tthreads.tex delete mode 100644 docs/latex/wx/ttips.tex delete mode 100644 docs/latex/wx/ttoolbar.tex delete mode 100644 docs/latex/wx/ttreectl.tex delete mode 100644 docs/latex/wx/tunicode.tex delete mode 100644 docs/latex/wx/tusage.tex delete mode 100644 docs/latex/wx/tvalidat.tex delete mode 100644 docs/latex/wx/twindowid.tex delete mode 100644 docs/latex/wx/twinsizes.tex delete mode 100644 docs/latex/wx/txrc.tex delete mode 100644 docs/latex/wx/txtdatob.tex delete mode 100644 docs/latex/wx/txtdrptg.tex delete mode 100644 docs/latex/wx/txtstrm.tex delete mode 100644 docs/latex/wx/up.gif delete mode 100644 docs/latex/wx/upduievt.tex delete mode 100644 docs/latex/wx/uri.tex delete mode 100644 docs/latex/wx/url.tex delete mode 100644 docs/latex/wx/urldataob.tex delete mode 100644 docs/latex/wx/valgen.tex delete mode 100644 docs/latex/wx/validatr.tex delete mode 100644 docs/latex/wx/valtext.tex delete mode 100644 docs/latex/wx/varhscrollhelper.tex delete mode 100644 docs/latex/wx/varhvscrollhelper.tex delete mode 100644 docs/latex/wx/variant.tex delete mode 100644 docs/latex/wx/varscrollhelperbase.tex delete mode 100644 docs/latex/wx/varvscrollhelper.tex delete mode 100644 docs/latex/wx/vector.tex delete mode 100644 docs/latex/wx/view.tex delete mode 100644 docs/latex/wx/vlbox.tex delete mode 100644 docs/latex/wx/vscrolledwindow.tex delete mode 100644 docs/latex/wx/weakref.tex delete mode 100644 docs/latex/wx/weakrefdynamic.tex delete mode 100644 docs/latex/wx/window.tex delete mode 100644 docs/latex/wx/windowdc.tex delete mode 100644 docs/latex/wx/wizard.tex delete mode 100644 docs/latex/wx/wizevt.tex delete mode 100644 docs/latex/wx/wizpage.tex delete mode 100644 docs/latex/wx/wnddisbl.tex delete mode 100644 docs/latex/wx/wrapsizer.tex delete mode 100644 docs/latex/wx/wupdlock.tex delete mode 100644 docs/latex/wx/wx.css delete mode 100644 docs/latex/wx/wxManualTemplate.dot delete mode 100644 docs/latex/wx/wxPython.tex delete mode 100644 docs/latex/wx/wxgtk.tex delete mode 100644 docs/latex/wx/wxhtml.tex delete mode 100644 docs/latex/wx/wxmac.tex delete mode 100644 docs/latex/wx/wxmgl.tex delete mode 100644 docs/latex/wx/wxmsw.tex delete mode 100644 docs/latex/wx/wxos2.tex delete mode 100644 docs/latex/wx/wxpalm.tex delete mode 100644 docs/latex/wx/wxstring.tex delete mode 100644 docs/latex/wx/wxtab1.bmp delete mode 100644 docs/latex/wx/wxtab1.eps delete mode 100644 docs/latex/wx/wxtab1.gif delete mode 100644 docs/latex/wx/wxusedef.tex delete mode 100644 docs/latex/wx/wxx11.tex delete mode 100644 docs/latex/wx/xlocale.tex delete mode 100644 docs/latex/wx/xmlattr.tex delete mode 100644 docs/latex/wx/xmldocument.tex delete mode 100644 docs/latex/wx/xmlnode.tex delete mode 100644 docs/latex/wx/xmlres.tex delete mode 100644 docs/latex/wx/xmlresh.tex delete mode 100644 docs/latex/wx/zipstrm.tex diff --git a/docs/latex/wx/Makefile b/docs/latex/wx/Makefile deleted file mode 100644 index 9c680d3744..0000000000 --- a/docs/latex/wx/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -FIGS_GIF = \ - sizer00.gif sizer01.gif sizer02.gif sizer03.gif sizer04.gif \ - sizer05.gif sizer06.gif sizer07.gif sizer08.gif sizer09.gif \ - sizer10.gif sizer11.gif - -FIGS_EPS = $(FIGS_GIF:.gif=.eps) -LATEX = hugelatex -MAKEINDEX = makeindex -DVIPS = dvips - -all: manual.ps - -manual.ps: manual.dvi - $(DVIPS) $< -o $@ - -manual.dvi: manual.tex $(FIGS_EPS) - $(LATEX) manual.tex - $(MAKEINDEX) -s manual.ist manual - $(LATEX) manual.tex - $(MAKEINDEX) -s manual.ist manual - $(LATEX) manual.tex - - -$(FIGS_EPS): %.eps : %.gif - giftopnm $< | pnmtops -noturn > $@ - -clean: - -rm -f *.dvi *.aux *.idx *.ilg *.ind *.log *.toc $(FIGS_EPS) *~ \ No newline at end of file diff --git a/docs/latex/wx/aboutdlginfo.tex b/docs/latex/wx/aboutdlginfo.tex deleted file mode 100644 index db37172c2c..0000000000 --- a/docs/latex/wx/aboutdlginfo.tex +++ /dev/null @@ -1,228 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: aboutdlginfo.tex -%% Purpose: wxAboutDialogInfo documentation -%% Author: Vadim Zeitlin -%% Created: 2006-10-08 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxAboutDialogInfo}}\label{wxaboutdialoginfo} - -wxAboutDialogInfo contains information shown in the standard \textit{About} -dialog displayed by the \helpref{wxAboutBox()}{wxaboutbox} function. - -This class contains the general information about the program, such as its -name, version, copyright and so on, as well as lists of the program developers, -documentation writers, artists and translators. The simple properties from the -former group are represented as a string with the exception of the program icon -and the program web site, while the lists from the latter group are stored as -\helpref{wxArrayString}{wxarraystring} and can be either set entirely at once -using \helpref{SetDevelopers}{wxaboutdialoginfosetdevelopers} and similar -functions or built one by one using \helpref{AddDeveloper}{wxaboutdialoginfoadddeveloper} -etc. - -Please also notice that while all the main platforms have the native -implementation of the about dialog, they are often more limited than the -generic version provided by wxWidgets and so the generic version is used if -wxAboutDialogInfo has any fields not supported by the native version. Currently -GTK+ version supports all the possible fields natively but MSW and Mac versions -don't support URLs, licence text nor custom icons in the about dialog and if -either of those is used, \helpref{wxAboutBox()}{wxaboutbox} will automatically -use the generic version so you should avoid specifying these fields to achieve -more native look and feel. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxAboutDialogInfo::wxAboutDialogInfo}\label{wxaboutdialoginfowxaboutdialoginfo} - -\func{}{wxAboutDialogInfo}{\void} - -Default constructor leaves all fields are initially uninitialized, in general -you should call at least \helpref{SetVersion}{wxaboutdialoginfosetversion}, -\helpref{SetCopyright}{wxaboutdialoginfosetcopyright} and -\helpref{SetDescription}{wxaboutdialoginfosetdescription}. - - -\membersection{wxAboutDialogInfo::AddArtist}\label{wxaboutdialoginfoaddartist} - -\func{void}{AddArtist}{\param{const wxString\& }{artist}} - -Adds an artist name to be shown in the program credits. - -\wxheading{See also} - -\helpref{SetArtists}{wxaboutdialoginfosetartists} - - -\membersection{wxAboutDialogInfo::AddDeveloper}\label{wxaboutdialoginfoadddeveloper} - -\func{void}{AddDeveloper}{\param{const wxString\& }{developer}} - -Adds a developer name to be shown in the program credits. - -\wxheading{See also} - -\helpref{SetDevelopers}{wxaboutdialoginfosetdevelopers} - - -\membersection{wxAboutDialogInfo::AddDocWriter}\label{wxaboutdialoginfoadddocwriter} - -\func{void}{AddDocWriter}{\param{const wxString\& }{docwriter}} - -Adds a documentation writer name to be shown in the program credits. - -\wxheading{See also} - -\helpref{SetDocWriters}{wxaboutdialoginfosetdocwriters} - - -\membersection{wxAboutDialogInfo::AddTranslator}\label{wxaboutdialoginfoaddtranslator} - -\func{void}{AddTranslator}{\param{const wxString\& }{translator}} - -Adds a translator name to be shown in the program credits. Notice that if no -translator names are specified explicitely, \helpref{wxAboutBox()}{wxaboutbox} -will try to use the translation of the string \texttt{translator-credits} from -the currently used message catalog -- this can be used to show just the name of -the translator of the program in the current language. - -\wxheading{See also} - -\helpref{SetTranslators}{wxaboutdialoginfosettranslators} - - -\membersection{wxAboutDialogInfo::SetArtists}\label{wxaboutdialoginfosetartists} - -\func{void}{SetArtists}{\param{const wxArrayString\& }{artists}} - -Sets the the list of artists to be shown in the program credits. - -\wxheading{See also} - -\helpref{AddArtist}{wxaboutdialoginfoaddartist} - - -\membersection{wxAboutDialogInfo::SetCopyright}\label{wxaboutdialoginfosetcopyright} - -\func{void}{SetCopyright}{\param{const wxString\& }{copyright}} - -Set the short string containing the program copyright information. Notice that -any occurrences of \texttt{"(C)"} in \arg{copyright} will be replaced by the -copyright symbol (circled C) automatically, which means that you can avoid -using this symbol in the program source code which can be problematic, - - -\membersection{wxAboutDialogInfo::SetDescription}\label{wxaboutdialoginfosetdescription} - -\func{void}{SetDescription}{\param{const wxString\& }{desc}} - -Set brief, but possibly multiline, description of the program. - - -\membersection{wxAboutDialogInfo::SetDevelopers}\label{wxaboutdialoginfosetdevelopers} - -\func{void}{SetDevelopers}{\param{const wxArrayString\& }{developers}} - -Set the list of developers of the program. - -\wxheading{See also} - -\helpref{AddDeveloper}{wxaboutdialoginfoadddeveloper} - - -\membersection{wxAboutDialogInfo::SetDocWriters}\label{wxaboutdialoginfosetdocwriters} - -\func{void}{SetDocWriters}{\param{const wxArrayString\& }{docwriters}} - -Set the list of documentation writers. - -\wxheading{See also} - -\helpref{AddDocWriter}{wxaboutdialoginfoadddocwriter} - - -\membersection{wxAboutDialogInfo::SetIcon}\label{wxaboutdialoginfoseticon} - -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} - -Set the icon to be shown in the dialog. By default the icon of the main frame -will be shown if the native about dialog supports custom icons. If it doesn't -but a valid icon is specified using this method, the generic about dialog is -used instead so you should avoid calling this function for maximally native -look and feel. - - -\membersection{wxAboutDialogInfo::SetLicence}\label{wxaboutdialoginfosetlicence} - -\func{void}{SetLicence}{\param{const wxString\& }{licence}} - -Set the long, multiline string containing the text of the program licence. - -Only GTK+ version supports showing the licence text in the native about dialog -currently so the generic version will be used under all the other platforms if -this method is called. To preserve the native look and feel it is advised that -you do not call this method but provide a separate menu item in the -\texttt{"Help"} menu for displaying the text of your program licence. - - -\membersection{wxAboutDialogInfo::SetLicense}\label{wxaboutdialoginfosetlicense} - -\func{void}{SetLicense}{\param{const wxString\& }{licence}} - -This is the same as \helpref{SetLicence}{wxaboutdialoginfosetlicence}. - - -\membersection{wxAboutDialogInfo::SetName}\label{wxaboutdialoginfosetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Set the name of the program. If this method is not called, the string returned -by \helpref{wxApp::GetAppName()}{wxappgetappname} will be shown in the dialog. - - -\membersection{wxAboutDialogInfo::SetTranslators}\label{wxaboutdialoginfosettranslators} - -\func{void}{SetTranslators}{\param{const wxArrayString\& }{translators}} - -Set the list of translators. Please see -\helpref{AddTranslator}{wxaboutdialoginfoaddtranslator} for additional -discussion. - - -\membersection{wxAboutDialogInfo::SetVersion}\label{wxaboutdialoginfosetversion} - -\func{void}{SetVersion}{\param{const wxString\& }{version}} - -Set the version of the program. The version is in free format, i.e. not -necessarily in the \texttt{x.y.z} form but it shouldn't contain the "version" -word. - - -\membersection{wxAboutDialogInfo::SetWebSite}\label{wxaboutdialoginfosetwebsite} - -\func{void}{SetWebSite}{\param{const wxString\& }{url}, \param{const wxString\& }{desc = wxEmptyString}} - -Set the web site for the program and its description (which defaults to URL -itself if empty). - -Please notice that only GTK+ version currently supports showing the link in the -native about dialog so if this method is called, the generic version will be -used under all the other platforms. - - diff --git a/docs/latex/wx/accel.tex b/docs/latex/wx/accel.tex deleted file mode 100644 index aa210ce7b0..0000000000 --- a/docs/latex/wx/accel.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{\class{wxAcceleratorEntry}}\label{wxacceleratorentry} - -An object used by an application wishing to create an \helpref{accelerator table}{wxacceleratortable}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxAcceleratorTable}{wxacceleratortable}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAcceleratorEntry::wxAcceleratorEntry}\label{wxacceleratorentryctor} - -\func{}{wxAcceleratorEntry}{\void} - -Default constructor. - -\func{}{wxAcceleratorEntry}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}} - -Constructor. - -\wxheading{Parameters} - -\docparam{flags}{One of wxACCEL\_ALT, wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates -which modifier key is held down.} - -\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.} - -\docparam{cmd}{The menu or control command identifier.} - -\membersection{wxAcceleratorEntry::GetCommand}\label{wxacceleratorentrygetcommand} - -\constfunc{int}{GetCommand}{\void} - -Returns the command identifier for the accelerator table entry. - -\membersection{wxAcceleratorEntry::GetFlags}\label{wxacceleratorentrygetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags for the accelerator table entry. - -\membersection{wxAcceleratorEntry::GetKeyCode}\label{wxacceleratorentrygetkeycode} - -\constfunc{int}{GetKeyCode}{\void} - -Returns the keycode for the accelerator table entry. - -\membersection{wxAcceleratorEntry::Set}\label{wxacceleratorentryset} - -\func{void}{Set}{\param{int}{ flags}, \param{int}{ keyCode}, \param{int}{ cmd}} - -Sets the accelerator entry parameters. - -\wxheading{Parameters} - -\docparam{flags}{One of wxACCEL\_ALT, wxACCEL\_SHIFT, wxACCEL\_CTRL and wxACCEL\_NORMAL. Indicates -which modifier key is held down.} - -\docparam{keyCode}{The keycode to be detected. See \helpref{Keycodes}{keycodes} for a full list of keycodes.} - -\docparam{cmd}{The menu or control command identifier.} - -\section{\class{wxAcceleratorTable}}\label{wxacceleratortable} - -An accelerator table allows the application to specify a table of keyboard shortcuts for -menus or other commands. On Windows and Mac OS X, menu or button commands are supported; on GTK, -only menu commands are supported. - -The object {\bf wxNullAcceleratorTable} is defined to be a table with no data, and is the -initial accelerator table for a window. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullAcceleratorTable} - -\wxheading{Example} - -{\small% -\begin{verbatim} - wxAcceleratorEntry entries[4]; - entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW); - entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT); - entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT); - entries[3].Set(wxACCEL_NORMAL, WXK_DELETE, wxID_CUT); - wxAcceleratorTable accel(4, entries); - frame->SetAcceleratorTable(accel); -\end{verbatim} -}% - -\wxheading{Remarks} - -An accelerator takes precedence over normal processing and can be a convenient way to program some event handling. -For example, you can use an accelerator table to enable a dialog with a multi-line text control to -accept CTRL-Enter as meaning `OK' (but not in GTK+ at present). - -\wxheading{See also} - -\helpref{wxAcceleratorEntry}{wxacceleratorentry}, \helpref{wxWindow::SetAcceleratorTable}{wxwindowsetacceleratortable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAcceleratorTable::wxAcceleratorTable}\label{wxacceleratortablector} - -\func{}{wxAcceleratorTable}{\void} - -Default constructor. - -\func{}{wxAcceleratorTable}{\param{const wxAcceleratorTable\& }{bitmap}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxAcceleratorTable}{\param{int}{ n}, \param{wxAcceleratorEntry}{ entries[]}} - -Creates from an array of \helpref{wxAcceleratorEntry}{wxacceleratorentry} objects. - -\func{}{wxAcceleratorTable}{\param{const wxString\&}{ resource}} - -Loads the accelerator table from a Windows resource (Windows only). - -\wxheading{Parameters} - -\docparam{n}{Number of accelerator entries.} - -\docparam{entries}{The array of entries.} - -\docparam{resource}{Name of a Windows accelerator.} - -\pythonnote{The wxPython constructor accepts a list of -wxAcceleratorEntry objects, or 3-tuples consisting of flags, keyCode, -and cmd values like you would construct wxAcceleratorEntry objects with.} - -\perlnote{The wxPerl constructor accepts a list of either -Wx::AcceleratorEntry objects or references to 3-element arrays -( flags, keyCode, cmd ), like the parameters of Wx::AcceleratorEntry::new.} - -\membersection{wxAcceleratorTable::\destruct{wxAcceleratorTable}}\label{wxacceleratortabledtor} - -\func{}{\destruct{wxAcceleratorTable}}{\void} - -Destroys the wxAcceleratorTable object. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\membersection{wxAcceleratorTable::IsOk}\label{wxacceleratortableisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the accelerator table is valid. - -\membersection{wxAcceleratorTable::operator $=$}\label{wxacceleratortableassign} - -\func{wxAcceleratorTable\& }{operator $=$}{\param{const wxAcceleratorTable\& }{accel}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{accel}{Accelerator table to assign.} - -\wxheading{Return value} - -Returns a reference to this object. - diff --git a/docs/latex/wx/accessible.tex b/docs/latex/wx/accessible.tex deleted file mode 100644 index 195330ab11..0000000000 --- a/docs/latex/wx/accessible.tex +++ /dev/null @@ -1,449 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% access.h at 11/Apr/03 12:31:15 -% - -\section{\class{wxAccessible}}\label{wxaccessible} - -The wxAccessible class allows wxWidgets applications, and -wxWidgets itself, to return extended information about user interface elements -to client applications such as screen readers. This is the -main way in which wxWidgets implements accessibility features. - -At present, only Microsoft Active Accessibility is supported -by this class. - -To use this class, derive from wxAccessible, implement appropriate -functions, and associate an object of the class with a -window using \helpref{wxWindow::SetAccessible}{wxwindowsetaccessible}. - -All functions return an indication of success, failure, or not implemented -using values of the wxAccStatus enum type. - -If you return wxACC\_NOT\_IMPLEMENTED from any function, the system will try to -implement the appropriate functionality. However this will not work with -all functions. - -Most functions work with an {\it object id}, which can be zero to refer to -'this' UI element, or greater than zero to refer to the nth child element. -This allows you to specify elements that don't have a corresponding wxWindow or -wxAccessible; for example, the sash of a splitter window. - -For details on the semantics of functions and types, please refer to the -Microsoft Active Accessibility 1.2 documentation. - -This class is compiled into wxWidgets only if the wxUSE\_ACCESSIBILITY setup -symbol is set to 1. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Data structures} - -Functions return a wxAccStatus error code, which -may be one of the following: - -{\small -\begin{verbatim} -typedef enum -{ - wxACC_FAIL, // The function failed - wxACC_FALSE, // The function returned false - wxACC_OK, // The function completed successfully - wxACC_NOT_IMPLEMENTED, // The function is not implemented - wxACC_NOT_SUPPORTED // The function is not supported -} wxAccStatus -\end{verbatim} -} - -Directions of navigation are represented by -the following: - -{\small -\begin{verbatim} -typedef enum -{ - wxNAVDIR_DOWN, - wxNAVDIR_FIRSTCHILD, - wxNAVDIR_LASTCHILD, - wxNAVDIR_LEFT, - wxNAVDIR_NEXT, - wxNAVDIR_PREVIOUS, - wxNAVDIR_RIGHT, - wxNAVDIR_UP -} wxNavDir -\end{verbatim} -} - -The role of a user interface element is represented -by the following type: - -{\small -\begin{verbatim} -typedef enum { - wxROLE_NONE, - wxROLE_SYSTEM_ALERT, - wxROLE_SYSTEM_ANIMATION, - wxROLE_SYSTEM_APPLICATION, - wxROLE_SYSTEM_BORDER, - wxROLE_SYSTEM_BUTTONDROPDOWN, - wxROLE_SYSTEM_BUTTONDROPDOWNGRID, - wxROLE_SYSTEM_BUTTONMENU, - wxROLE_SYSTEM_CARET, - wxROLE_SYSTEM_CELL, - wxROLE_SYSTEM_CHARACTER, - wxROLE_SYSTEM_CHART, - wxROLE_SYSTEM_CHECKBUTTON, - wxROLE_SYSTEM_CLIENT, - wxROLE_SYSTEM_CLOCK, - wxROLE_SYSTEM_COLUMN, - wxROLE_SYSTEM_COLUMNHEADER, - wxROLE_SYSTEM_COMBOBOX, - wxROLE_SYSTEM_CURSOR, - wxROLE_SYSTEM_DIAGRAM, - wxROLE_SYSTEM_DIAL, - wxROLE_SYSTEM_DIALOG, - wxROLE_SYSTEM_DOCUMENT, - wxROLE_SYSTEM_DROPLIST, - wxROLE_SYSTEM_EQUATION, - wxROLE_SYSTEM_GRAPHIC, - wxROLE_SYSTEM_GRIP, - wxROLE_SYSTEM_GROUPING, - wxROLE_SYSTEM_HELPBALLOON, - wxROLE_SYSTEM_HOTKEYFIELD, - wxROLE_SYSTEM_INDICATOR, - wxROLE_SYSTEM_LINK, - wxROLE_SYSTEM_LIST, - wxROLE_SYSTEM_LISTITEM, - wxROLE_SYSTEM_MENUBAR, - wxROLE_SYSTEM_MENUITEM, - wxROLE_SYSTEM_MENUPOPUP, - wxROLE_SYSTEM_OUTLINE, - wxROLE_SYSTEM_OUTLINEITEM, - wxROLE_SYSTEM_PAGETAB, - wxROLE_SYSTEM_PAGETABLIST, - wxROLE_SYSTEM_PANE, - wxROLE_SYSTEM_PROGRESSBAR, - wxROLE_SYSTEM_PROPERTYPAGE, - wxROLE_SYSTEM_PUSHBUTTON, - wxROLE_SYSTEM_RADIOBUTTON, - wxROLE_SYSTEM_ROW, - wxROLE_SYSTEM_ROWHEADER, - wxROLE_SYSTEM_SCROLLBAR, - wxROLE_SYSTEM_SEPARATOR, - wxROLE_SYSTEM_SLIDER, - wxROLE_SYSTEM_SOUND, - wxROLE_SYSTEM_SPINBUTTON, - wxROLE_SYSTEM_STATICTEXT, - wxROLE_SYSTEM_STATUSBAR, - wxROLE_SYSTEM_TABLE, - wxROLE_SYSTEM_TEXT, - wxROLE_SYSTEM_TITLEBAR, - wxROLE_SYSTEM_TOOLBAR, - wxROLE_SYSTEM_TOOLTIP, - wxROLE_SYSTEM_WHITESPACE, - wxROLE_SYSTEM_WINDOW -} wxAccRole -\end{verbatim} -} - -Objects are represented by the following type: - -{\small -\begin{verbatim} -typedef enum { - wxOBJID_WINDOW = 0x00000000, - wxOBJID_SYSMENU = 0xFFFFFFFF, - wxOBJID_TITLEBAR = 0xFFFFFFFE, - wxOBJID_MENU = 0xFFFFFFFD, - wxOBJID_CLIENT = 0xFFFFFFFC, - wxOBJID_VSCROLL = 0xFFFFFFFB, - wxOBJID_HSCROLL = 0xFFFFFFFA, - wxOBJID_SIZEGRIP = 0xFFFFFFF9, - wxOBJID_CARET = 0xFFFFFFF8, - wxOBJID_CURSOR = 0xFFFFFFF7, - wxOBJID_ALERT = 0xFFFFFFF6, - wxOBJID_SOUND = 0xFFFFFFF5 -} wxAccObject -\end{verbatim} -} - -Selection actions are identified by -this type: - -{\small -\begin{verbatim} -typedef enum -{ - wxACC_SEL_NONE = 0, - wxACC_SEL_TAKEFOCUS = 1, - wxACC_SEL_TAKESELECTION = 2, - wxACC_SEL_EXTENDSELECTION = 4, - wxACC_SEL_ADDSELECTION = 8, - wxACC_SEL_REMOVESELECTION = 16 -} wxAccSelectionFlags -\end{verbatim} -} - -States are represented by the following: - -{\small -\begin{verbatim} -#define wxACC_STATE_SYSTEM_ALERT_HIGH 0x00000001 -#define wxACC_STATE_SYSTEM_ALERT_MEDIUM 0x00000002 -#define wxACC_STATE_SYSTEM_ALERT_LOW 0x00000004 -#define wxACC_STATE_SYSTEM_ANIMATED 0x00000008 -#define wxACC_STATE_SYSTEM_BUSY 0x00000010 -#define wxACC_STATE_SYSTEM_CHECKED 0x00000020 -#define wxACC_STATE_SYSTEM_COLLAPSED 0x00000040 -#define wxACC_STATE_SYSTEM_DEFAULT 0x00000080 -#define wxACC_STATE_SYSTEM_EXPANDED 0x00000100 -#define wxACC_STATE_SYSTEM_EXTSELECTABLE 0x00000200 -#define wxACC_STATE_SYSTEM_FLOATING 0x00000400 -#define wxACC_STATE_SYSTEM_FOCUSABLE 0x00000800 -#define wxACC_STATE_SYSTEM_FOCUSED 0x00001000 -#define wxACC_STATE_SYSTEM_HOTTRACKED 0x00002000 -#define wxACC_STATE_SYSTEM_INVISIBLE 0x00004000 -#define wxACC_STATE_SYSTEM_MARQUEED 0x00008000 -#define wxACC_STATE_SYSTEM_MIXED 0x00010000 -#define wxACC_STATE_SYSTEM_MULTISELECTABLE 0x00020000 -#define wxACC_STATE_SYSTEM_OFFSCREEN 0x00040000 -#define wxACC_STATE_SYSTEM_PRESSED 0x00080000 -#define wxACC_STATE_SYSTEM_PROTECTED 0x00100000 -#define wxACC_STATE_SYSTEM_READONLY 0x00200000 -#define wxACC_STATE_SYSTEM_SELECTABLE 0x00400000 -#define wxACC_STATE_SYSTEM_SELECTED 0x00800000 -#define wxACC_STATE_SYSTEM_SELFVOICING 0x01000000 -#define wxACC_STATE_SYSTEM_UNAVAILABLE 0x02000000 -\end{verbatim} -} - -Event identifiers that can be sent via \helpref{wxAccessible::NotifyEvent}{wxaccessiblenotifyevent} are -as follows: - -{\small -\begin{verbatim} -#define wxACC_EVENT_SYSTEM_SOUND 0x0001 -#define wxACC_EVENT_SYSTEM_ALERT 0x0002 -#define wxACC_EVENT_SYSTEM_FOREGROUND 0x0003 -#define wxACC_EVENT_SYSTEM_MENUSTART 0x0004 -#define wxACC_EVENT_SYSTEM_MENUEND 0x0005 -#define wxACC_EVENT_SYSTEM_MENUPOPUPSTART 0x0006 -#define wxACC_EVENT_SYSTEM_MENUPOPUPEND 0x0007 -#define wxACC_EVENT_SYSTEM_CAPTURESTART 0x0008 -#define wxACC_EVENT_SYSTEM_CAPTUREEND 0x0009 -#define wxACC_EVENT_SYSTEM_MOVESIZESTART 0x000A -#define wxACC_EVENT_SYSTEM_MOVESIZEEND 0x000B -#define wxACC_EVENT_SYSTEM_CONTEXTHELPSTART 0x000C -#define wxACC_EVENT_SYSTEM_CONTEXTHELPEND 0x000D -#define wxACC_EVENT_SYSTEM_DRAGDROPSTART 0x000E -#define wxACC_EVENT_SYSTEM_DRAGDROPEND 0x000F -#define wxACC_EVENT_SYSTEM_DIALOGSTART 0x0010 -#define wxACC_EVENT_SYSTEM_DIALOGEND 0x0011 -#define wxACC_EVENT_SYSTEM_SCROLLINGSTART 0x0012 -#define wxACC_EVENT_SYSTEM_SCROLLINGEND 0x0013 -#define wxACC_EVENT_SYSTEM_SWITCHSTART 0x0014 -#define wxACC_EVENT_SYSTEM_SWITCHEND 0x0015 -#define wxACC_EVENT_SYSTEM_MINIMIZESTART 0x0016 -#define wxACC_EVENT_SYSTEM_MINIMIZEEND 0x0017 -#define wxACC_EVENT_OBJECT_CREATE 0x8000 -#define wxACC_EVENT_OBJECT_DESTROY 0x8001 -#define wxACC_EVENT_OBJECT_SHOW 0x8002 -#define wxACC_EVENT_OBJECT_HIDE 0x8003 -#define wxACC_EVENT_OBJECT_REORDER 0x8004 -#define wxACC_EVENT_OBJECT_FOCUS 0x8005 -#define wxACC_EVENT_OBJECT_SELECTION 0x8006 -#define wxACC_EVENT_OBJECT_SELECTIONADD 0x8007 -#define wxACC_EVENT_OBJECT_SELECTIONREMOVE 0x8008 -#define wxACC_EVENT_OBJECT_SELECTIONWITHIN 0x8009 -#define wxACC_EVENT_OBJECT_STATECHANGE 0x800A -#define wxACC_EVENT_OBJECT_LOCATIONCHANGE 0x800B -#define wxACC_EVENT_OBJECT_NAMECHANGE 0x800C -#define wxACC_EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D -#define wxACC_EVENT_OBJECT_VALUECHANGE 0x800E -#define wxACC_EVENT_OBJECT_PARENTCHANGE 0x800F -#define wxACC_EVENT_OBJECT_HELPCHANGE 0x8010 -#define wxACC_EVENT_OBJECT_DEFACTIONCHANGE 0x8011 -#define wxACC_EVENT_OBJECT_ACCELERATORCHANGE 0x8012 -\end{verbatim} -} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAccessible::wxAccessible}\label{wxaccessiblewxaccessible} - -\func{}{wxAccessible}{\param{wxWindow* }{win = NULL}} - -Constructor, taking an optional window. The object can be associated with -a window later. - -\membersection{wxAccessible::\destruct{wxAccessible}}\label{wxaccessibledtor} - -\func{}{\destruct{wxAccessible}}{\void} - -Destructor. - -\membersection{wxAccessible::DoDefaultAction}\label{wxaccessibledodefaultaction} - -\func{virtual wxAccStatus}{DoDefaultAction}{\param{int }{childId}} - -Performs the default action for the object. {\it childId} is 0 (the action for this object) -or greater than 0 (the action for a child). Return wxACC\_NOT\_SUPPORTED if there -is no default action for this window (e.g. an edit control). - -\membersection{wxAccessible::GetChild}\label{wxaccessiblegetchild} - -\func{virtual wxAccStatus}{GetChild}{\param{int }{childId}, \param{wxAccessible** }{child}} - -Gets the specified child (starting from 1). If {\it child} is NULL and the return value is wxACC\_OK, -this means that the child is a simple element and not an accessible object. - -\membersection{wxAccessible::GetChildCount}\label{wxaccessiblegetchildcount} - -\func{virtual wxAccStatus}{GetChildCount}{\param{int* }{childCount}} - -Returns the number of children in {\it childCount}. - -\membersection{wxAccessible::GetDefaultAction}\label{wxaccessiblegetdefaultaction} - -\func{virtual wxAccStatus}{GetDefaultAction}{\param{int }{childId}, \param{wxString* }{actionName}} - -Gets the default action for this object (0) or a child (greater than 0). -Return wxACC\_OK even if there is no action. {\it actionName} is the action, or the empty -string if there is no action. The retrieved string describes the action that is performed on an object, -not what the object does as a result. For example, a toolbar button that prints -a document has a default action of "Press" rather than "Prints the current document." - -\membersection{wxAccessible::GetDescription}\label{wxaccessiblegetdescription} - -\func{virtual wxAccStatus}{GetDescription}{\param{int }{childId}, \param{wxString* }{description}} - -Returns the description for this object or a child. - -\membersection{wxAccessible::GetFocus}\label{wxaccessiblegetfocus} - -\func{virtual wxAccStatus}{GetFocus}{\param{int* }{childId}, \param{wxAccessible** }{child}} - -Gets the window with the keyboard focus. If childId is 0 and child is NULL, no object in -this subhierarchy has the focus. If this object has the focus, child should be 'this'. - -\membersection{wxAccessible::GetHelpText}\label{wxaccessiblegethelptext} - -\func{virtual wxAccStatus}{GetHelpText}{\param{int }{childId}, \param{wxString* }{helpText}} - -Returns help text for this object or a child, similar to tooltip text. - -\membersection{wxAccessible::GetKeyboardShortcut}\label{wxaccessiblegetkeyboardshortcut} - -\func{virtual wxAccStatus}{GetKeyboardShortcut}{\param{int }{childId}, \param{wxString* }{shortcut}} - -Returns the keyboard shortcut for this object or child. -Return e.g. ALT+K. - -\membersection{wxAccessible::GetLocation}\label{wxaccessiblegetlocation} - -\func{virtual wxAccStatus}{GetLocation}{\param{wxRect\& }{rect}, \param{int }{elementId}} - -Returns the rectangle for this object (id is 0) or a child element (id is greater than 0). -{\it rect} is in screen coordinates. - -\membersection{wxAccessible::GetName}\label{wxaccessiblegetname} - -\func{virtual wxAccStatus}{GetName}{\param{int }{childId}, \param{wxString* }{name}} - -Gets the name of the specified object. - -\membersection{wxAccessible::GetParent}\label{wxaccessiblegetparent} - -\func{virtual wxAccStatus}{GetParent}{\param{wxAccessible** }{parent}} - -Returns the parent of this object, or NULL. - -\membersection{wxAccessible::GetRole}\label{wxaccessiblegetrole} - -\func{virtual wxAccStatus}{GetRole}{\param{int }{childId}, \param{wxAccRole* }{role}} - -Returns a role constant describing this object. See \helpref{wxAccessible}{wxaccessible} for a list -of these roles. - -\membersection{wxAccessible::GetSelections}\label{wxaccessiblegetselections} - -\func{virtual wxAccStatus}{GetSelections}{\param{wxVariant* }{selections}} - -Gets a variant representing the selected children -of this object. - -Acceptable values are: - -\begin{itemize} -\item a null variant (IsNull() returns TRUE) -\item a list variant (GetType() == wxT("list")) -\item an integer representing the selected child element, -or 0 if this object is selected (GetType() == wxT("long")) -\item a "void*" pointer to a wxAccessible child object -\end{itemize} - -\membersection{wxAccessible::GetState}\label{wxaccessiblegetstate} - -\func{virtual wxAccStatus}{GetState}{\param{int }{childId}, \param{long* }{state}} - -Returns a state constant. See \helpref{wxAccessible}{wxaccessible} for a list -of these states. - -\membersection{wxAccessible::GetValue}\label{wxaccessiblegetvalue} - -\func{virtual wxAccStatus}{GetValue}{\param{int }{childId}, \param{wxString* }{strValue}} - -Returns a localized string representing the value for the object -or child. - -\membersection{wxAccessible::GetWindow}\label{wxaccessiblegetwindow} - -\func{wxWindow*}{GetWindow}{\void} - -Returns the window associated with this object. - -\membersection{wxAccessible::HitTest}\label{wxaccessiblehittest} - -\func{virtual wxAccStatus}{HitTest}{\param{const wxPoint\& }{pt}, \param{int* }{childId}, \param{wxAccessible** }{childObject}} - -Returns a status value and object id to indicate whether the given point was on this or -a child object. Can return either a child object, or an integer -representing the child element, starting from 1. - -{\it pt} is in screen coordinates. - -\membersection{wxAccessible::Navigate}\label{wxaccessiblenavigate} - -\func{virtual wxAccStatus}{Navigate}{\param{wxNavDir }{navDir}, \param{int }{fromId}, \param{int* }{toId}, \param{wxAccessible** }{toObject}} - -Navigates from {\it fromId} to {\it toId}/{\it toObject}. - -\membersection{wxAccessible::NotifyEvent}\label{wxaccessiblenotifyevent} - -\func{virtual static void}{NotifyEvent}{\param{int}{ eventType}, \param{wxWindow* }{window}, \param{wxAccObject }{objectType}, \param{int }{objectType}} - -Allows the application to send an event when something changes in an accessible object. - -\membersection{wxAccessible::Select}\label{wxaccessibleselect} - -\func{virtual wxAccStatus}{Select}{\param{int }{childId}, \param{wxAccSelectionFlags }{selectFlags}} - -Selects the object or child. See \helpref{wxAccessible}{wxaccessible} for a list -of the selection actions. - -\membersection{wxAccessible::SetWindow}\label{wxaccessiblesetwindow} - -\func{void}{SetWindow}{\param{wxWindow* }{window}} - -Sets the window associated with this object. - diff --git a/docs/latex/wx/activevt.tex b/docs/latex/wx/activevt.tex deleted file mode 100644 index c507ff729f..0000000000 --- a/docs/latex/wx/activevt.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxActivateEvent}}\label{wxactivateevent} - -An activate event is sent when a window or application is being activated -or deactivated. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxActivateEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ACTIVATE(func)}}{Process a wxEVT\_ACTIVATE event.} -\twocolitem{{\bf EVT\_ACTIVATE\_APP(func)}}{Process a wxEVT\_ACTIVATE\_APP event.} -\twocolitem{{\bf EVT\_HIBERNATE(func)}}{Process a hibernate event, supplying the member function. -This event applies to wxApp only, and only on Windows SmartPhone and PocketPC. It is generated when the -system is low on memory; the application should free up as much memory as possible, and restore -full working state when it receives a wxEVT\_ACTIVATE or wxEVT\_ACTIVATE\_APP event.} -\end{twocollist}% - -\wxheading{Remarks} - -A top-level window (a dialog or frame) receives an activate event when it is -being activated or deactivated. This is indicated visually by the title -bar changing colour, and a subwindow gaining the keyboard focus. - -An application is activated or deactivated when one of its frames becomes activated, -or a frame becomes inactivated resulting in all application frames being inactive. - -Please note that usually you should call \helpref{event.Skip()}{wxeventskip} in -your handlers for these events as not doing so can result in strange effects. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxApp::IsActive}{wxappisactive} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxActivateEvent::wxActivateEvent}\label{wxactivateeventctor} - -\func{}{wxActivateEvent}{\param{WXTYPE }{eventType = 0}, \param{bool}{ active = true}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxActivateEvent::GetActive}\label{wxactivateeventgetactive} - -\constfunc{bool}{GetActive}{\void} - -Returns true if the application or window is being activated, false otherwise. - diff --git a/docs/latex/wx/activexcontainer.tex b/docs/latex/wx/activexcontainer.tex deleted file mode 100644 index 8468676c68..0000000000 --- a/docs/latex/wx/activexcontainer.tex +++ /dev/null @@ -1,239 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: activexcontainer.tex -%% Purpose: wxActiveXContainer docs -%% Author: Ryan Norton -%% Modified by: -%% Created: 01/30/2005 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxActiveXContainer}}\label{wxactivexcontainer} - -wxActiveXContainer is a host for an activex control on Windows (and -as such is a platform-specific class). Note that the HWND that the class -contains is the actual HWND of the activex control so using dynamic events -and connecting to wxEVT\_SIZE, for example, will recieve the actual size -message sent to the control. - -It is somewhat similar to the ATL class CAxWindow in operation. - -The size of the activex control's content is generally gauranteed to be that -of the client size of the parent of this wxActiveXContainer. - -You can also process activex events through wxEVT\_ACTIVEX or the -corresponding message map macro EVT\_ACTIVEX. - -\wxheading{See also} - -\helpref{wxActiveXEvent}{wxactivexevent} - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Example} - -This is an example of how to use the Adobe Acrobat Reader ActiveX control to read PDF files -(requires Acrobat Reader 4 and up). Controls like this are typically found and dumped from -OLEVIEW.exe that is distributed with Microsoft Visual C++. This example also demonstrates -how to create a backend for \helpref{wxMediaCtrl}{wxmediactrl}. - -\begin{verbatim} -//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// -// wxPDFMediaBackend -// -// http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/iac/IACOverview.pdf -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -#include "wx/mediactrl.h" // wxMediaBackendCommonBase -#include "wx/msw/ole/activex.h" // wxActiveXContainer -#include "wx/msw/ole/automtn.h" // wxAutomationObject - -const IID DIID__DPdf = {0xCA8A9781,0x280D,0x11CF,{0xA2,0x4D,0x44,0x45,0x53,0x54,0x00,0x00}}; -const IID DIID__DPdfEvents = {0xCA8A9782,0x280D,0x11CF,{0xA2,0x4D,0x44,0x45,0x53,0x54,0x00,0x00}}; -const CLSID CLSID_Pdf = {0xCA8A9780,0x280D,0x11CF,{0xA2,0x4D,0x44,0x45,0x53,0x54,0x00,0x00}}; - -class WXDLLIMPEXP_MEDIA wxPDFMediaBackend : public wxMediaBackendCommonBase -{ -public: - wxPDFMediaBackend() : m_pAX(NULL) {} - virtual ~wxPDFMediaBackend() - { - if(m_pAX) - { - m_pAX->DissociateHandle(); - delete m_pAX; - } - } - virtual bool CreateControl(wxControl* ctrl, wxWindow* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) - { - IDispatch* pDispatch; - if( ::CoCreateInstance(CLSID_Pdf, NULL, - CLSCTX_INPROC_SERVER, - DIID__DPdf, (void**)&pDispatch) != 0 ) - return false; - - m_PDF.SetDispatchPtr(pDispatch); // wxAutomationObject will release itself - - if ( !ctrl->wxControl::Create(parent, id, pos, size, - (style & ~wxBORDER_MASK) | wxBORDER_NONE, - validator, name) ) - return false; - - m_ctrl = wxStaticCast(ctrl, wxMediaCtrl); - m_pAX = new wxActiveXContainer(ctrl, - DIID__DPdf, - pDispatch); - - wxPDFMediaBackend::ShowPlayerControls(wxMEDIACTRLPLAYERCONTROLS_NONE); - return true; - } - - virtual bool Play() - { - return true; - } - virtual bool Pause() - { - return true; - } - virtual bool Stop() - { - return true; - } - - virtual bool Load(const wxString& fileName) - { - if(m_PDF.CallMethod(wxT("LoadFile"), fileName).GetBool()) - { - m_PDF.CallMethod(wxT("setCurrentPage"), wxVariant((long)0)); - NotifyMovieLoaded(); // initial refresh - wxSizeEvent event; - m_pAX->OnSize(event); - return true; - } - - return false; - } - virtual bool Load(const wxURI& location) - { - return m_PDF.CallMethod(wxT("LoadFile"), location.BuildUnescapedURI()).GetBool(); - } - virtual bool Load(const wxURI& WXUNUSED(location), - const wxURI& WXUNUSED(proxy)) - { - return false; - } - - virtual wxMediaState GetState() - { - return wxMEDIASTATE_STOPPED; - } - - virtual bool SetPosition(wxLongLong where) - { - m_PDF.CallMethod(wxT("setCurrentPage"), wxVariant((long)where.GetValue())); - return true; - } - virtual wxLongLong GetPosition() - { - return 0; - } - virtual wxLongLong GetDuration() - { - return 0; - } - - virtual void Move(int WXUNUSED(x), int WXUNUSED(y), - int WXUNUSED(w), int WXUNUSED(h)) - { - } - wxSize GetVideoSize() const - { - return wxDefaultSize; - } - - virtual double GetPlaybackRate() - { - return 0; - } - virtual bool SetPlaybackRate(double) - { - return false; - } - - virtual double GetVolume() - { - return 0; - } - virtual bool SetVolume(double) - { - return false; - } - - virtual bool ShowPlayerControls(wxMediaCtrlPlayerControls flags) - { - if(flags) - { - m_PDF.CallMethod(wxT("setShowToolbar"), true); - m_PDF.CallMethod(wxT("setShowScrollbars"), true); - } - else - { - m_PDF.CallMethod(wxT("setShowToolbar"), false); - m_PDF.CallMethod(wxT("setShowScrollbars"), false); - } - - return true; - } - - wxActiveXContainer* m_pAX; - wxAutomationObject m_PDF; - - DECLARE_DYNAMIC_CLASS(wxPDFMediaBackend) -}; - -IMPLEMENT_DYNAMIC_CLASS(wxPDFMediaBackend, wxMediaBackend); -\end{verbatim} - -Put this in one of your existant source files and then create a wxMediaCtrl with -\begin{verbatim} -//[this] is the parent window, "myfile.pdf" is the PDF file to open -wxMediaCtrl* mymediactrl = new wxMediaCtrl(this, wxT("myfile.pdf"), wxID_ANY, - wxDefaultPosition, wxSize(300,300), - 0, wxT("wxPDFMediaBackend")); -\end{verbatim} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxActiveXContainer::wxActiveXContainer}\label{wxactivexcontainerwxactivexcontainer} - -\func{}{wxActiveXContainer}{ - \param{wxWindow* }{parent}, - \param{REFIID }{iid}, - \param{IUnknown* }{pUnk}, - } - -Creates this activex container. - -\docparam{parent}{parent of this control. Must not be NULL.} -\docparam{iid}{COM IID of pUnk to query. Must be a valid interface to an activex control.} -\docparam{pUnk}{Interface of activex control} - diff --git a/docs/latex/wx/activexevt.tex b/docs/latex/wx/activexevt.tex deleted file mode 100644 index c03b1f66a1..0000000000 --- a/docs/latex/wx/activexevt.tex +++ /dev/null @@ -1,77 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: activexevt.tex -%% Purpose: wxActiveXEvent docs -%% Author: Ryan Norton -%% Modified by: -%% Created: 01/30/2005 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxActiveXEvent}}\label{wxactivexevent} - -An event class for handling activex events passed from -\helpref{wxActiveXContainer}{wxactivexcontainer}. ActiveX events are basically -a function call with the parameters passed through an array of wxVariants along -with a return value that is a wxVariant itself. What type the parameters or -return value are depends on the context (i.e. what the .idl specifies). - -Note that unlike the third party wxActiveX function names are not supported. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ACTIVEX(func)}}{ -Sent when the activex control hosted by \helpref{wxActiveXContainer}{wxactivexcontainer} -recieves an activex event.} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxActiveXEvent::ParamCount}\label{wxactivexeventparamcount} - -\constfunc{size\_t}{ParamCount}{\void} - -Obtains the number of parameters passed through the activex event. - - -\membersection{wxActiveXEvent::ParamType}\label{wxactivexeventparamtype} - -\constfunc{wxString}{ParamType}{\param{size\_t }{idx}} - -Obtains the param type of the param number idx specifies as a string. - - -\membersection{wxActiveXEvent::ParamName}\label{wxactivexeventparamname} - -\constfunc{wxString}{ParamName}{\param{size\_t }{idx}} - -Obtains the param name of the param number idx specifies as a string. - - -\membersection{wxActiveXEvent::operator[]}\label{wxactivexeventoparray} - -\func{wxVariant&}{operator[]}{\param{size\_t }{idx}} - -Obtains the actual parameter value specified by idx. - - -\membersection{wxActiveXEvent::GetDispatchId}\label{wxactivexeventgetdispatchid} - -\constfunc{DISPID}{GetDispatchId}{\param{int }{idx}} - -Returns the dispatch id of this activex event. This is the numeric value from -the .idl file specified by the id(). - diff --git a/docs/latex/wx/alignv.bmp b/docs/latex/wx/alignv.bmp deleted file mode 100644 index cee82bcfa4997676e9e4e8a7f78701125afd17d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42718 zcmeI5PiS049LHZl@M=VG@e=IC-Wm{5si!i#P&V0sym)D8KvMD4f`X!WX?yV|l;}mw z(u)TXy=;YmG*D6m|D>1TMMy3iAvC;gB?)e_eb1TS?(6UE+uv_yUUm~p^Lu3X&HUy! z^WFKpnfKmKcIKU(TKhJD?IZnuO22;5ukTI-!HM7*u)nXAiWKdF^yCf8$2* zPWX1P_2*B)3(xNcbMNj3^Iz=+<+E=E*FSkLX#O1s%XjVsZ=Tr=e*ZNNKKpbp`2L5z zpcBVIa`@YW!{P>Z`eVoCM^mxZnCodgno8!E)XWv*!fbp!W*We% zQR!*KQ_IE>mv?I0YU7-0m=d?AcWU}gou6XLH)fZHsx*2UNn^Fu)zIbblq;dht~I8N zM%zY<*XSN|wKSJ%tTuFMx*i?X`es8d^)x!wdbqCQgKC6I)zp>kRAbqE;-smjbvwJO z>PADivszP?6QwGqR?NoMBT5!lbO(s)ovnp?kU8E=;#RVtJ4)2*Y$Yq&7@IB<-AkgV z&XjM=tcE2|(InCECnl_pDXW`fgWF5~EL@(@u1bRvV^>`{{nJ5XjPR#ygqx2^G<+y^ zeT0>;dQ3q2;A0eNK>9~Y!o3$(ZbqpG%jz0&{RLC;3w?2o;um^WgFTn92`QR^y=V*| zVGY8HMKh2ftOk&<24Tgb8AuRT14vlIQ^V?2yRL{j9EG+C<6Yv)qwH4; zm2aFU*dsN%1UTlSD~>ElG)OF@QCN{!NTZz49iXQ!#R`~^ua?Z84DE+WZ?=4D;FV5 z7gor^6%tl1LYOYBkcBHGtXzaJU05LtS4dd72w}RgLKd!&uyPT?bYX=oTp?lQB82I} z3R$>9!pcPm(}fkXaD{}Gix8#@D`epc9V1r5Eoz`adaxR9Q3F=PZ&8E$>gQ0E!(`b^ z*f*h8bBQ|sbUjiH>!Jp`)yo&dwXHB|fQAljs(Nt^>!JqxwWJ-kl5kgnh7SEzqa>K) zp?nrK&=dEQ@YaQJz6u&T#LU=dSamh*iyCZCb~VCFsYa{Oozst)n=oWD;}b(hI>&1-IQvkHJ#fjE4?#+RZ4<69$t$YB<-la5^b&A>ug1OXa2}) zFdF2?Ik1stb>QO2jG{qeA&tU{#6lW{6^Vs30;@gztv7~#B>fL!1dWGRvFJ2Z8b3&J zWS*`DQQkwsMwZ|LILB67K!~%Ie>j)83fh7d`>7^t!Ed~%Y?SSw8m3NEx1wxNe>NdQ zr#~p|s-K4~Cai39`qQ3%R>XZaT-i(G{UqEmo)xDtHoAL;;-?I@LVP_6BM}XjfPaD< zkD{!I{#F|IFT~*q$Kxo*034rV*kq{3u!T7Ci-rSGCRtczU^s$yR%GYI@9UmdUAqP~ zK!*~gaYqGu$qo%`DZZC{(V)M6QAbEvJ%Oy)?)>~0)G~PH4?)>8Ev^;7L z*-GP7QlG7>!TJ4T*D%>UI=g7}FbS((+Z$24GUHzCc-ZS7!mt?g2HDuWn28;S1D6qL z7%FVr7!fPc=ptr0_nM~O$@%KIp09}S=Wy$6zt+OP#Y*GYfS3@ps{`IMbpQ3{dC$P; zTTU{N!=r0}AJjuMSOVDuVdZLdNb3n;#hm~OjlA3I!JYuRU((%O9Dvz1km)cX(eS4y ztb~<60e??vSHjAlfWN1-D`DkNz~58am9X+B;O{BzN?7?5@b{EuY==ruxoqkAnaO>%7}pX#-8Q> z7K&?FC)vj3wp!IsM(=9uPbPC~wbe`h_3)Wwt69}_6;xM4Pq}Sgtf*T>HSCjY16(cIggh3c&TE)MXJ2kU_aGj-Gu0B{nA@|7Mh~2@ zqFNAb6IL`A$||fVDzr^l(Of9&F=F)!{xaW$JRY=^1Lnah_rOMv2SydwuwRLD@xTJuZ0Ldou+Hcr8a)=m3L8Z>G<3Vd z`*!w0$moK1+^jQxIBdIk-+l^{`$Lol>x@}ZBWJ@XhA38)4Rb(9GlkQZBI*ik5~VgrZ7pVih6uUT&#P z#cWX}#EMaB-ir6!_rG}0xxWw3=jS}<{ESVF)YLuu0W}OKmw?O5%kJ*(%*;##0%2=w ztD~dSHbe7^Oty0Ml~dJtS<<9wXz_PL!^P_Auc4uzyu2qK9>+#T=Q%m2(a}e8a!N`{ zfPeRIf&beAVrRhrxy${-e?9?VqXQV&giRXX^(3Hfmk;BVyoU-+-&c$lsD*AV{HB6J73(Il-!f~dvMFJ( zIKMa4QaxE|l$|A@1gM#=wYPluVW@R`vd)&d`&YHS+<2nT$Mn0k$8|j|63cB^*{pgO zK)4RovSZeJsVE-GqM+{NydzukwfseZtebhY@D8g5@bD;8ZvF+(P;#5eDx-5oa?U%PXb6piJYJlCg z(SUD=5IW1bZ8Y6!w?EJiSL+K-LbF#G5{;b}?wK!fOm0i=S!*vJ3GYy70q_32q_c_! zccXxUa8dLX$>8q^oRAICL=L(A@6QFe^E{G-U{%X#M*8}4%7t{JCyFs0E}qDSMT#d& z*Ke$(v7_ePgH>nX6pR|Rijscsc!QFm%Obt{`o5t5YNiROdNs=evbmaVZ6v*hwR7-a z%W;BLujSUhgv{eCP5Y#b>(Txo8xM@MP+WhtDX8E>&t`?+vp*cy3psk$XN!=avOB&p z$1fe;fiDKjO9I$ygi7v+)s*9Z%bHw=u+rb^&jj1oOA=cgp;f#e8(QUgQ0N&p9xn-=T#THVB%P zGaUbBA7s#T{u|--EFD7dnP>SD6tnb5P~kO21}h)EPR~Q=Z*zZ@vHJ1HbbZF2xZP8| zv)zb2qraPv6*0;zrz<^NZZ8^plp(bJk37b5KYIDo+V}f_ZOD*U0ui(y{i4HF8v~NK zz=J_>W!=G$9FcY~tkf@eIHG!e5WvKEw;RO-JsClb>2UPEXVTE@{yfUX8Fr|vt0-?h zuD>UIq-V)WXqf`+(++2>n2J;Zy6zXP8CUP^|77C95{{WTvGQnLUxUvOAcwm3F_0;T z@RR-((DI>;$zSJn*jLswLfb?#o=f+802BeC1fDz&C&y8K;lE`~asj9XI=T!1zFw^p zeSRbYvQSxUNnFf?DlssjjT@0$K+NqPCcZh#p6^$`Yjv*WbJ%Gta#`;K#v_=5qgQcw zuAZGYp$HOCKuD3e!fx+QS}SBNZrfujFKPomzd02SGq{r6;xNO|!Vc?+d zB@}HJFMej#rHM%f-70itJ24`XmoW^)0?~~r7QK~4LWKHZq3%5)9m=R;7`?&UWpg0q z&)c2~ab*1bI5k|m>bKrdp8ciyp&1ocEO#sy?H1>Cqy}XI@pQv{e)rWK^p!{HDRZ?; zqf@hOQgm(;<6bvD=e%~svCk1)*vAx6Tlk#dEI!C|-a16(&}g;I*?h}Vt7ya9^}W!&HhOye;B^D8R0t5@2}IThwxL(M1K zy^s46fc>^Q+pTcd>eX{w=QV*G@VK;aa0S2fZsE9QZLbx2YEoi~K1H=P!SkCMGP_q! z+_CeR95*fTe~ZxvcMVO0B9Gv%4BnjKyH^zQ?h8mpmsEAg4SiN?;&5l5b~GNRSl`wQ zD+@p0FffREowns$Du*$*;8-DRRZo?vNSRnN{BAq18mKGAQIjGrIaR97StY7pV}pBS zSFSwmeLuFwuIOB(#_Xu(azfB}?ThWLB5bYH;)G*p)vRJeA9UvLG78W zmj^qUkd;$^m8(j(NZ-17>n?a<%0~MnN+9n1s93(U(r7zs76}P2g0JOxFR?o}dOd8) zwC98MoH_m#F4d@Vv(B&MnWg`m=u6?fvfp-ip8q<&9ea$tL7}+LTgdTXn>8xjTwQ2 zmfHV}`Z>N|_*{|90}j}ManC)QDWttu!krCwOFX0tiy0ddOLn7*?z3%o_jmM~?mk6R z7O%`g^jZyVl2+y=R_S$Z$@etm4Kt?+g*m83mfAH&??MIPGdnHxo< zjBKmU-{ARZu>Byty1?zoOlUn3o)NidAj*A(4=#SYEU={TF{>D0;787Q0{E4(l?1O4EaS7YR;E-OiKN>~80`VIDk2Nd$$LUma$ zf$*1;>{wE4n%FV~ZVZ^q@GpJq$=t)$wYS*0(Bra9#a6xND;@V|Mwbd`I`+xZX$Ti= z$%jtp>(4f*N&c9{v7vQC>tdU$f^?F1Vn>|fIznzRlJQ^DC65{Ck zez&ZNIi#)|2$}otTvpoG0M-YS6jzGbXZM^O3Sar|yUISrhXg_D+_d)Am~$h!=gaEK zB1Mr;n=X#TR47v%Rs455gi{B}5Y28JY9OPtX?1tspb(E_CD| zO(1@3q}b#Lx_*&@jsM-N`Enl^4=(q-grbDn;`JF(V+km|Qq0W9 zBXAm}8j9x4^i=-~&9jVFV@#+}Hj^BXDYf$gv0PhSSEdpZ?#x6et0k&BB|_NDuI>4o|XxOIaZu ztT&RJ)TADtK6E!p_5@3L!)@0LJzdn2xQ$S^j+0rPlAp{aI}apJ_9s2cOF;;EhJ%w2 z%Mz4M`Q`Im&~R&dqL2X1?*%f?HG1O(25jzcVwSDu9EWtx0Kd$KyJQZ$w5xhq)b3RP zPA!@9!oyR`PrWLuQmci$YlXa*94(XD%@pC5P-I$rUK*)AtqW{nnG7?r_4Nk%esWO5 zJrB0e_ORpM@C<@dmA@FZ}x=+iKofkX}pR`!Z)My3) z@I=j%yx=7xKNueB{4=AnA~2Yu)Bf>^-Hhf0D0nhiWqKw^*zT#&s$LX7^b?czq|>u1 zkiIZB8bNU2p@Gyy)iw47Lk^7$*wE_xED(+7f$J~Q6<%gC%|e+Yv{-SlNCO6&FiqQD zhzB*;`KQLgjN#pWOkbiV445V8kGNxOjPd4?W5p`0`^E5w#<7^3!Lt}6Ox`BGzN->u dG01DgYHr$ZYTh5#H - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxAC\_DEFAULT\_STYLE}}{The default style: wxBORDER\_NONE.} -\twocolitem{\windowstyle{wxAC\_NO\_AUTORESIZE}}{By default, the control will adjust -its size to exactly fit to the size of the animation when \helpref{SetAnimation}{wxanimationctrlsetanimation} -is called. If this style flag is given, the control will not change its size} -\end{twocollist} - -%\wxheading{Event handling} -% -%\twocolwidtha{7cm}% -%\begin{twocollist}\itemsep=0pt -%\twocolitem{{\bf EVT\_ANIMATION\_END(id, func)}}{} -%\end{twocollist} - -\wxheading{See also} - -\helpref{wxAnimation}{wxanimation} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAnimationCtrl::wxAnimationCtrl}\label{wxanimationctrlctor} - -\func{}{wxAnimationCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxAnimation\& }{anim},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxAC\_DEFAULT\_STYLE},\rtfsp -\param{const wxString\& }{name = ``animationctrl"}} - -Initializes the object and calls \helpref{Create}{wxanimationctrlcreate} with -all the parameters. - - -\membersection{wxAnimationCtrl::Create}\label{wxanimationctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxAnimation\& }{anim},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxAC\_DEFAULT\_STYLE},\rtfsp -\param{const wxString\& }{name = ``animationctrl"}} - -After control creation you must explicitely call \helpref{Play}{wxanimationctrlplay} -to start to play the animation. Until that function won't be called, the first frame -of the animation is displayed. - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must be non-\NULL.} - -\docparam{id}{The identifier for the control.} - -\docparam{anim}{The initial animation shown in the control.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxAC\_*} flags.} - -\docparam{name}{Control name.} - - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxAnimationCtrl::GetAnimation}\label{wxanimationctrlgetanimation} - -\constfunc{wxAnimation}{GetAnimation}{\void} - -Returns the animation associated with this control. - - -\membersection{wxAnimationCtrl::GetInactiveBitmap}\label{wxanimationctrlgetinactivebitmap} - -\constfunc{wxBitmap}{GetInactiveBitmap}{\void} - -Returns the inactive bitmap shown in this control when the; -see \helpref{SetInactiveBitmap}{wxanimationctrlsetinactivebitmap} for more info. - - -\membersection{wxAnimationCtrl::IsPlaying}\label{wxanimationctrlisplaying} - -\constfunc{bool}{IsPlaying}{\void} - -Returns \true if the animation is being played. - - -\membersection{wxAnimationCtrl::LoadFile}\label{wxanimationctrlloadfile} - -\func{bool}{LoadFile}{\param{const wxString \&}{ file}, \param{wxAnimationType }{ animType = wxANIMATION\_TYPE\_ANY}} - -Loads the animation from the given file and calls \helpref{SetAnimation}{wxanimationctrlsetanimation}. -See \helpref{wxAnimation::LoadFile}{wxanimationloadfile} for more info. - - -\membersection{wxAnimationCtrl::Play}\label{wxanimationctrlplay} - -\func{bool}{Play}{\void} - -Starts playing the animation. -The animation is always played in loop mode (unless the last frame of the animation -has an infinite delay time) and always start from the first frame -(even if you \helpref{stopped}{wxanimationctrlstop} it while some other frame was -displayed). - - -\membersection{wxAnimationCtrl::SetAnimation}\label{wxanimationctrlsetanimation} - -\func{void}{SetAnimation}{\param{const wxAnimation \&}{ anim}} - -Sets the animation to play in this control. -If the previous animation is being played, it's \helpref{Stopped}{wxanimationctrlstop}. - -Until \helpref{Play}{wxanimationctrlplay} isn't called, a static image, the first -frame of the given animation or the background colour will be shown -(see \helpref{SetInactiveBitmap}{wxanimationctrlsetinactivebitmap} for more info). - - -\membersection{wxAnimationCtrl::SetInactiveBitmap}\label{wxanimationctrlsetinactivebitmap} - -\func{void}{SetInactiveBitmap}{\param{const wxBitmap\& }{bmp}} - -Sets the bitmap to show on the control when it's not playing an animation. -If you set as inactive bitmap {\tt wxNullBitmap} (which is the default), then the -first frame of the animation is instead shown when the control is inactive; in this case, -if there's no valid animation associated with the control (see \helpref{SetAnimation}{wxanimationctrlsetanimation}), -then the background colour of the window is shown. - -If the control is not playing the animation, the given bitmap will be immediately -shown, otherwise it will be shown as soon as \helpref{Stop}{wxanimationctrlstop} -is called. - -Note that the inactive bitmap, if smaller than the control's size, will be centered in -the control; if bigger, it will be stretched to fit it. - - -\membersection{wxAnimationCtrl::Stop}\label{wxanimationctrlstop} - -\func{void}{Stop}{\void} - -Stops playing the animation. -The control will show the first frame of the animation, a custom static image or -the window's background colour as specified by the -last \helpref{SetInactiveBitmap}{wxanimationctrlsetinactivebitmap} call. - diff --git a/docs/latex/wx/animation.tex b/docs/latex/wx/animation.tex deleted file mode 100644 index 62e2a39187..0000000000 --- a/docs/latex/wx/animation.tex +++ /dev/null @@ -1,163 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: animation.tex -%% Purpose: wxAnimation documentation -%% Author: Francesco Montorsi -%% Created: 24-9-2006 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxAnimation}}\label{wxanimation} - -This class encapsulates the concept of a platform-dependent animation. -An animation is a sequence of frames of the same size. -Sound is not supported by wxAnimation. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullAnimation} - -\wxheading{See also} - -\helpref{wxAnimationCtrl}{wxanimationctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxAnimation::wxAnimation}\label{wxanimationctor} - -\func{}{wxAnimation}{\void} - -Default constructor. - -\func{}{wxAnimation}{\param{const wxAnimation\& }{anim}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxAnimation}{\param{const wxString\& }{name}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}} - -Loads an animation from a file. - -\wxheading{Parameters} - -\docparam{name}{The name of the file to load.} - -\docparam{type}{See \helpref{LoadFile}{wxanimationloadfile} for more info.} - - -\membersection{wxAnimation::\destruct{wxAnimation}}\label{wxanimationdtor} - -\func{}{\destruct{wxAnimation}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - - -\membersection{wxAnimation::GetDelay}\label{wxanimationgetdelay} - -\constfunc{int}{GetDelay}{\param{unsigned int }{i}} - -Returns the delay for the i-th frame in milliseconds. -If {\tt -1} is returned the frame is to be displayed forever. - - -\membersection{wxAnimation::GetFrameCount}\label{wxanimationgetframecount} - -\constfunc{unsigned int}{GetFrameCount}{\void} - -Returns the number of frames for this animation. - - -\membersection{wxAnimation::GetFrame}\label{wxanimationgetframe} - -\constfunc{wxImage}{GetFrame}{\param{unsigned int }{i}} - -Returns the i-th frame as a \helpref{wxImage}{wximage}. - - -\membersection{wxAnimation::GetSize}\label{wxanimationgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the size of the animation. - - -\membersection{wxAnimation::IsOk}\label{wxanimationisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if animation data is present. - - -\membersection{wxAnimation::Load}\label{wxanimationload} - -\func{bool}{Load}{\param{wxInputStream\&}{ stream}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}} - -Loads an animation from the given stream. - -\wxheading{Parameters} - -\docparam{stream}{The stream to use to load the animation.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{\indexit{wxANIMATION\_TYPE\_GIF}}{Load an animated GIF file.} -\twocolitem{\indexit{wxANIMATION\_TYPE\_ANI}}{Load an ANI file.} -\twocolitem{\indexit{wxANIMATION\_TYPE\_ANY}}{Try to autodetect the filetype.} -\end{twocollist} -} - -\wxheading{Return value} - -\true if the operation succeeded, \false otherwise. - - -\membersection{wxAnimation::LoadFile}\label{wxanimationloadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{wxAnimationType}{ type = wxANIMATION\_TYPE\_ANY}} - -Loads an animation from a file. - -\wxheading{Parameters} - -\docparam{name}{A filename.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{\indexit{wxANIMATION\_TYPE\_GIF}}{Load an animated GIF file.} -\twocolitem{\indexit{wxANIMATION\_TYPE\_ANI}}{Load an ANI file.} -\twocolitem{\indexit{wxANIMATION\_TYPE\_ANY}}{Try to autodetect the filetype.} -\end{twocollist} -} - -\wxheading{Return value} - -\true if the operation succeeded, \false otherwise. - - -\membersection{wxAnimation::operator $=$}\label{wxanimationassignment} - -\func{wxAnimation\&}{operator $=$}{\param{const wxAnimation\& }{brush}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - diff --git a/docs/latex/wx/app.tex b/docs/latex/wx/app.tex deleted file mode 100644 index 3c2a3a25fa..0000000000 --- a/docs/latex/wx/app.tex +++ /dev/null @@ -1,850 +0,0 @@ -\section{\class{wxApp}}\label{wxapp} - -The {\bf wxApp} class represents the application itself. It is used -to: - -\begin{itemize}\itemsep=0pt -\item set and get application-wide properties; -\item implement the windowing system message or event loop; -\item initiate application processing via \helpref{wxApp::OnInit}{wxapponinit}; -\item allow default processing of events not handled by other -objects in the application. -\end{itemize} - -You should use the macro IMPLEMENT\_APP(appClass) in your application implementation -file to tell wxWidgets how to create an instance of your application class. - -Use DECLARE\_APP(appClass) in a header file if you want the wxGetApp function (which returns -a reference to your application object) to be visible to other files. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxApp overview}{wxappoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxApp::wxApp}\label{wxappctor} - -\func{}{wxApp}{\void} - -Constructor. Called implicitly with a definition of a wxApp object. - - -\membersection{wxApp::\destruct{wxApp}}\label{wxappdtor} - -\func{virtual}{\destruct{wxApp}}{\void} - -Destructor. Will be called implicitly on program exit if the wxApp -object is created on the stack. - - -\membersection{wxApp::argc}\label{wxappargc} - -\member{int}{argc} - -Number of command line arguments (after environment-specific processing). - - -\membersection{wxApp::argv}\label{wxappargv} - -\member{wxChar **}{argv} - -Command line arguments (after environment-specific processing). -Under Windows and Linux/Unix, you should parse the command line -arguments and check for files to be opened when starting your -application. Under OS X, you need to override \helpref{MacOpenFile}{wxappmacopenfile} -since command line arguments are used differently there. - -You may use the \helpref{wxCmdLineParser}{wxcmdlineparser} to -parse command line arguments. - -\membersection{wxApp::CreateLogTarget}\label{wxappcreatelogtarget} - -\func{virtual wxLog*}{CreateLogTarget}{\void} - -Creates a wxLog class for the application to use for logging errors. The default -implementation returns a new wxLogGui class. - -\wxheading{See also} - -\helpref{wxLog}{wxlog} - - -\membersection{wxApp::CreateTraits}\label{wxappcreatetraits} - -\func{virtual wxAppTraits *}{CreateTraits}{\void} - -Creates the \helpref{wxAppTraits}{wxapptraits} object when \helpref{GetTraits}{wxappgettraits} -needs it for the first time. - -\wxheading{See also} - -\helpref{wxAppTraits}{wxapptraits} - - -\membersection{wxApp::Dispatch}\label{wxappdispatch} - -\func{virtual void}{Dispatch}{\void} - -Dispatches the next event in the windowing system event queue. - -This can be used for programming event loops, e.g. - -\begin{verbatim} - while (app.Pending()) - Dispatch(); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxApp::Pending}{wxapppending} - - -\membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop} - -\func{virtual void}{ExitMainLoop}{\void} - -Call this to explicitly exit the main message (event) loop. -You should normally exit the main loop (and the application) by deleting -the top window. - - -\membersection{wxApp::FilterEvent}\label{wxappfilterevent} - -\func{int}{FilterEvent}{\param{wxEvent\& }{event}} - -This function is called before processing any event and allows the application -to preempt the processing of some events. If this method returns $-1$ the event -is processed normally, otherwise either {\tt true} or {\tt false} should be -returned and the event processing stops immediately considering that the event -had been already processed (for the former return value) or that it is not -going to be processed at all (for the latter one). - - -\membersection{wxApp::GetAppDisplayName}\label{wxappgetappdisplayname} - -\constfunc{wxString}{GetAppDisplayName}{\void} - -Returns the user-readable application name. The difference between this string -and the one returned by \helpref{GetAppName}{wxappgetappname} is that this one -is meant to be shown to the user and so should be used for the window titles, -page headers and so on while the other one should be only used internally, e.g. -for the file names or configuration file keys. - -By default, returns the same string as \helpref{GetAppName}{wxappgetappname}. - -\newsince{2.9.0} - - -\membersection{wxApp::GetAppName}\label{wxappgetappname} - -\constfunc{wxString}{GetAppName}{\void} - -Returns the application name. - -\wxheading{Remarks} - -wxWidgets sets this to a reasonable default before -calling \helpref{wxApp::OnInit}{wxapponinit}, but the application can reset it at will. - -\wxheading{See also} - -\helpref{GetAppDisplayName}{wxappgetappdisplayname} - - -\membersection{wxApp::GetClassName}\label{wxappgetclassname} - -\constfunc{wxString}{GetClassName}{\void} - -Gets the class name of the application. The class name may be used in a platform specific -manner to refer to the application. - -\wxheading{See also} - -\helpref{wxApp::SetClassName}{wxappsetclassname} - - -\membersection{wxApp::GetExitOnFrameDelete}\label{wxappgetexitonframedelete} - -\constfunc{bool}{GetExitOnFrameDelete}{\void} - -Returns true if the application will exit when the top-level window is deleted, false -otherwise. - -\wxheading{See also} - -\helpref{wxApp::SetExitOnFrameDelete}{wxappsetexitonframedelete},\\ -\helpref{wxApp shutdown overview}{wxappshutdownoverview} - - -\membersection{wxApp::GetInstance}\label{wxappgetinstance} - -\func{static wxAppConsole *}{GetInstance}{\void} - -Returns the one and only global application object. -Usually \texttt{wxTheApp} is usead instead. - -\wxheading{See also} - -\helpref{wxApp::SetInstance}{wxappsetinstance} - - -\membersection{wxApp::GetTopWindow}\label{wxappgettopwindow} - -\constfunc{virtual wxWindow *}{GetTopWindow}{\void} - -Returns a pointer to the top window. - -\wxheading{Remarks} - -If the top window hasn't been set using \helpref{wxApp::SetTopWindow}{wxappsettopwindow}, this -function will find the first top-level window (frame or dialog) and return that. - -\wxheading{See also} - -\helpref{SetTopWindow}{wxappsettopwindow} - - - -\membersection{wxApp::GetTraits}\label{wxappgettraits} - -\func{wxAppTraits *}{GetTraits}{\void} - -Returns a pointer to the \helpref{wxAppTraits}{wxapptraits} object for the application. -If you want to customize the \helpref{wxAppTraits}{wxapptraits} object, you must override the -\helpref{CreateTraits}{wxappcreatetraits} function. - - - -\membersection{wxApp::GetUseBestVisual}\label{wxappgetusebestvisual} - -\constfunc{bool}{GetUseBestVisual}{\void} - -Returns true if the application will use the best visual on systems that support -different visuals, false otherwise. - -\wxheading{See also} - -\helpref{SetUseBestVisual}{wxappsetusebestvisual} - - -\membersection{wxApp::GetVendorDisplayName}\label{wxappgetvendordisplayname} - -\constfunc{wxString}{GetVendorDisplayName}{\void} - -Returns the user-readable vendor name. The difference between this string -and the one returned by \helpref{GetVendorName}{wxappgetvendorname} is that this one -is meant to be shown to the user and so should be used for the window titles, -page headers and so on while the other one should be only used internally, e.g. -for the file names or configuration file keys. - -By default, returns the same string as \helpref{GetVendorName}{wxappgetvendorname}. - -\newsince{2.9.0} - - -\membersection{wxApp::GetVendorName}\label{wxappgetvendorname} - -\constfunc{wxString}{GetVendorName}{\void} - -Returns the application's vendor name. - - -\membersection{wxApp::IsActive}\label{wxappisactive} - -\constfunc{bool}{IsActive}{\void} - -Returns \true if the application is active, i.e. if one of its windows is -currently in the foreground. If this function returns \false and you need to -attract users attention to the application, you may use -\helpref{wxTopLevelWindow::RequestUserAttention}{wxtoplevelwindowrequestuserattention} -to do it. - - -\membersection{wxApp::IsMainLoopRunning}\label{wxappismainlooprunning} - -\func{static bool}{IsMainLoopRunning}{\void} - -Returns \true if the main event loop is currently running, i.e. if the -application is inside \helpref{OnRun}{wxapponrun}. - -This can be useful to test whether events can be dispatched. For example, -if this function returns \false, non-blocking sockets cannot be used because -the events from them would never be processed. - - -\membersection{wxApp::MacNewFile}\label{wxappmacnewfile} - -\func{void}{MacNewFile}{\void} - -Mac specific. Called in response of an "open-application" Apple event. -Override this to create a new document in your app. - -\membersection{wxApp::MacOpenFile}\label{wxappmacopenfile} - -\func{void}{MacOpenFile}{\param{const wxString\& }{fileName}} - -Mac specific. Called in response of an "open-document" Apple event. You need to -override this method in order to open a document file after the -user double clicked on it or if the document file was dropped -on either the running application or the application icon in -Finder. - -\membersection{wxApp::MacOpenURL}\label{wxappmacopenurl} - -\func{void}{MacOpenURL}{\param{const wxString\& }{url}} - -Mac specific. Called in response of a "get-url" Apple event. - -\membersection{wxApp::MacPrintFile}\label{wxappmacprintfile} - -\func{void}{MacPrintFile}{\param{const wxString\& }{fileName}} - -Mac specific. Called in response of a "print-document" Apple event. - - -\membersection{wxApp::MacReopenApp}\label{wxappmacreopenapp} - -\func{void}{MacReopenApp}{\void} - -Mac specific. Called in response of a "reopen-application" Apple event. - -\membersection{wxApp::MainLoop}\label{wxappmainloop} - -\func{virtual int}{MainLoop}{\void} - -Called by wxWidgets on creation of the application. Override this if you wish -to provide your own (environment-dependent) main loop. - -\wxheading{Return value} - -Returns 0 under X, and the wParam of the WM\_QUIT message under Windows. - -%% VZ: OnXXX() functions should *not* be documented -%% -%%\membersection{wxApp::OnActivate}\label{wxapponactivate} -%% -%%\func{void}{OnActivate}{\param{wxActivateEvent\& }{event}} -%% -%%Provide this member function to know whether the application is being -%%activated or deactivated (Windows only). -%% -%%\wxheading{See also} -%% -%%\helpref{wxWindow::OnActivate}{wxwindowonactivate}, \helpref{wxActivateEvent}{wxactivateevent} -%% -%%\membersection{wxApp::OnCharHook}\label{wxapponcharhook} -%% -%%\func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} -%% -%%This event handler function is called (under Windows only) to allow the window to intercept keyboard events -%%before they are processed by child windows. -%% -%%\wxheading{Parameters} -%% -%%\docparam{event}{The keypress event.} -%% -%%\wxheading{Remarks} -%% -%%Use the wxEVT\_CHAR\_HOOK macro in your event table. -%% -%%If you use this member, you can selectively consume keypress events by calling\rtfsp -%%\helpref{wxEvent::Skip}{wxeventskip} for characters the application is not interested in. -%% -%%\wxheading{See also} -%% -%%\helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnChar}{wxwindowonchar},\rtfsp -%%\helpref{wxWindow::OnCharHook}{wxwindowoncharhook}, \helpref{wxDialog::OnCharHook}{wxdialogoncharhook} - - -\membersection{wxApp::OnAssertFailure}\label{wxapponassertfailure} - -\func{void}{OnAssertFailure}{\param{const wxChar }{*file}, \param{int }{line}, \param{const wxChar }{*func}, \param{const wxChar }{*cond}, \param{const wxChar }{*msg}} - -This function is called when an assert failure occurs, i.e. the condition -specified in \helpref{wxASSERT}{wxassert} macro evaluated to {\tt false}. -It is only called in debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) as -asserts are not left in the release code at all. - -The base class version shows the default assert failure dialog box proposing to -the user to stop the program, continue or ignore all subsequent asserts. - -\wxheading{Parameters} - -\docparam{file}{the name of the source file where the assert occurred} - -\docparam{line}{the line number in this file where the assert occurred} - -\docparam{func}{the name of the function where the assert occurred, may be -empty if the compiler doesn't support C99 \texttt{\_\_FUNCTION\_\_}} - -\docparam{cond}{the condition of the failed assert in text form} - -\docparam{msg}{the message specified as argument to -\helpref{wxASSERT\_MSG}{wxassertmsg} or \helpref{wxFAIL\_MSG}{wxfailmsg}, will -be {\tt NULL} if just \helpref{wxASSERT}{wxassert} or \helpref{wxFAIL}{wxfail} -was used} - - -\membersection{wxApp::OnCmdLineError}\label{wxapponcmdlineerror} - -\func{bool}{OnCmdLineError}{\param{wxCmdLineParser\& }{parser}} - -Called when command line parsing fails (i.e. an incorrect command line option -was specified by the user). The default behaviour is to show the program usage -text and abort the program. - -Return {\tt true} to continue normal execution or {\tt false} to return -{\tt false} from \helpref{OnInit}{wxapponinit} thus terminating the program. - -\wxheading{See also} - -\helpref{OnInitCmdLine}{wxapponinitcmdline} - - -\membersection{wxApp::OnCmdLineHelp}\label{wxapponcmdlinehelp} - -\func{bool}{OnCmdLineHelp}{\param{wxCmdLineParser\& }{parser}} - -Called when the help option ({\tt --help}) was specified on the command line. -The default behaviour is to show the program usage text and abort the program. - -Return {\tt true} to continue normal execution or {\tt false} to return -{\tt false} from \helpref{OnInit}{wxapponinit} thus terminating the program. - -\wxheading{See also} - -\helpref{OnInitCmdLine}{wxapponinitcmdline} - - -\membersection{wxApp::OnCmdLineParsed}\label{wxapponcmdlineparsed} - -\func{bool}{OnCmdLineParsed}{\param{wxCmdLineParser\& }{parser}} - -Called after the command line had been successfully parsed. You may override -this method to test for the values of the various parameters which could be -set from the command line. - -Don't forget to call the base class version unless you want to suppress -processing of the standard command line options. - -Return {\tt true} to continue normal execution or {\tt false} to return -{\tt false} from \helpref{OnInit}{wxapponinit} thus terminating the program. - -\wxheading{See also} - -\helpref{OnInitCmdLine}{wxapponinitcmdline} - - -\membersection{wxApp::OnExceptionInMainLoop}\label{wxapponexceptioninmainloop} - -\func{virtual bool}{OnExceptionInMainLoop}{\void} - -This function is called if an unhandled exception occurs inside the main -application event loop. It can return \true to ignore the exception and to -continue running the loop or \false to exit the loop and terminate the -program. In the latter case it can also use C++ \texttt{throw} keyword to -rethrow the current exception. - -The default behaviour of this function is the latter in all ports except under -Windows where a dialog is shown to the user which allows him to choose between -the different options. You may override this function in your class to do -something more appropriate. - -Finally note that if the exception is rethrown from here, it can be caught in -\helpref{OnUnhandledException}{wxapponunhandledexception}. - - -\membersection{wxApp::OnExit}\label{wxapponexit} - -\func{virtual int}{OnExit}{\void} - -Override this member function for any processing which needs to be -done as the application is about to exit. OnExit is called after -destroying all application windows and controls, but before -wxWidgets cleanup. Note that it is not called at all if -\helpref{OnInit}{wxapponinit} failed. - -The return value of this function is currently ignored, return the same value -as returned by the base class method if you override it. - - -\membersection{wxApp::OnFatalException}\label{wxapponfatalexception} - -\func{void}{OnFatalException}{\void} - -This function may be called if something fatal happens: an unhandled -exception under Win32 or a a fatal signal under Unix, for example. However, -this will not happen by default: you have to explicitly call -\helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions} to enable this. - -Generally speaking, this function should only show a message to the user and -return. You may attempt to save unsaved data but this is not guaranteed to -work and, in fact, probably won't. - -\wxheading{See also} - -\helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions} - -%% VZ: the wxApp event handler are private and should not be documented here! -%% -%%\membersection{wxApp::OnIdle}\label{wxapponidle} -%% -%%\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}} -%% -%%Override this member function for any processing which needs to be done -%%when the application is idle. You should call wxApp::OnIdle from your own function, -%%since this forwards OnIdle events to windows and also performs garbage collection for -%%windows whose destruction has been delayed. -%% -%%wxWidgets' strategy for OnIdle processing is as follows. After pending user interface events for an -%%application have all been processed, wxWidgets sends an OnIdle event to the application object. wxApp::OnIdle itself -%%sends an OnIdle event to each application window, allowing windows to do idle processing such as updating -%%their appearance. If either wxApp::OnIdle or a window OnIdle function requested more time, by -%%calling \helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore}, wxWidgets will send another OnIdle -%%event to the application object. This will occur in a loop until either a user event is found to be -%%pending, or OnIdle requests no more time. Then all pending user events are processed until the system -%%goes idle again, when OnIdle is called, and so on. -%% -%%\wxheading{See also} -%% -%%\helpref{wxWindow::OnIdle}{wxwindowonidle}, \helpref{wxIdleEvent}{wxidleevent},\rtfsp -%%\helpref{wxWindow::SendIdleEvents}{wxappsendidleevents} -%% -%%\membersection{wxApp::OnEndSession}\label{wxapponendsession} -%% -%%\func{void}{OnEndSession}{\param{wxCloseEvent\& }{event}} -%% -%%This is an event handler function called when the operating system or GUI session is -%%about to close down. The application has a chance to silently save information, -%%and can optionally close itself. -%% -%%Use the EVT\_END\_SESSION event table macro to handle query end session events. -%% -%%The default handler calls \helpref{wxWindow::Close}{wxwindowclose} with a true argument -%%(forcing the application to close itself silently). -%% -%%\wxheading{Remarks} -%% -%%Under X, OnEndSession is called in response to the `die' event. -%% -%%Under Windows, OnEndSession is called in response to the WM\_ENDSESSION message. -%% -%%\wxheading{See also} -%% -%%\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -%%\helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -%%\helpref{wxCloseEvent}{wxcloseevent},\rtfsp - - -\membersection{wxApp::OnInit}\label{wxapponinit} - -\func{bool}{OnInit}{\void} - -This must be provided by the application, and will usually create the -application's main window, optionally calling -\helpref{wxApp::SetTopWindow}{wxappsettopwindow}. You may use -\helpref{OnExit}{wxapponexit} to clean up anything initialized here, provided -that the function returns \true. - -Notice that if you want to to use the command line processing provided by -wxWidgets you have to call the base class version in the derived class -OnInit(). - -Return \true to continue processing, \false to exit the application -immediately. - - -\membersection{wxApp::OnInitCmdLine}\label{wxapponinitcmdline} - -\func{void}{OnInitCmdLine}{\param{wxCmdLineParser\& }{parser}} - -Called from \helpref{OnInit}{wxapponinit} and may be used to initialize the -parser with the command line options for this application. The base class -versions adds support for a few standard options only. - -\membersection{wxApp::OnRun}\label{wxapponrun} - -\func{virtual int}{OnRun}{\void} - -This virtual function is where the execution of a program written in wxWidgets -starts. The default implementation just enters the main loop and starts -handling the events until it terminates, either because -\helpref{ExitMainLoop}{wxappexitmainloop} has been explicitly called or because -the last frame has been deleted and -\helpref{GetExitOnFrameDelete}{wxappgetexitonframedelete} flag is \true (this -is the default). - -The return value of this function becomes the exit code of the program, so it -should return $0$ in case of successful termination. - - -\membersection{wxApp::OnUnhandledException}\label{wxapponunhandledexception} - -\func{virtual void}{OnUnhandledException}{\void} - -This function is called when an unhandled C++ exception occurs inside -\helpref{OnRun()}{wxapponrun} (the exceptions which occur during the program -startup and shutdown might not be caught at all). Notice that by now the main -event loop has been terminated and the program will exit, if you want to -prevent this from happening (i.e. continue running after catching an exception) -you need to override \helpref{OnExceptionInMainLoop}{wxapponexceptioninmainloop}. - -The default implementation shows information about the exception in debug build -but does nothing in the release build. - - -\membersection{wxApp::ProcessMessage}\label{wxappprocessmessage} - -\func{bool}{ProcessMessage}{\param{WXMSG *}{msg}} - -Windows-only function for processing a message. This function -is called from the main message loop, checking for windows that -may wish to process it. The function returns true if the message -was processed, false otherwise. If you use wxWidgets with another class -library with its own message loop, you should make sure that this -function is called to allow wxWidgets to receive messages. For example, -to allow co-existence with the Microsoft Foundation Classes, override -the PreTranslateMessage function: - -\begin{verbatim} -// Provide wxWidgets message loop compatibility -BOOL CTheApp::PreTranslateMessage(MSG *msg) -{ - if (wxTheApp && wxTheApp->ProcessMessage((WXMSW *)msg)) - return true; - else - return CWinApp::PreTranslateMessage(msg); -} -\end{verbatim} - - -\membersection{wxApp::Pending}\label{wxapppending} - -\func{virtual bool}{Pending}{\void} - -Returns true if unprocessed events are in the window system event queue. - -\wxheading{See also} - -\helpref{wxApp::Dispatch}{wxappdispatch} - - -\membersection{wxApp::SendIdleEvents}\label{wxappsendidleevents} - -\func{bool}{SendIdleEvents}{\param{wxWindow*}{ win}, \param{wxIdleEvent\& }{event}} - -Sends idle events to a window and its children. - -Please note that this function is internal to wxWidgets and shouldn't be used -by user code. - -\wxheading{Remarks} - -These functions poll the top-level windows, and their children, for idle event processing. -If true is returned, more OnIdle processing is requested by one or more window. - -\wxheading{See also} - -\helpref{wxIdleEvent}{wxidleevent} - - -\membersection{wxApp::SetAppDisplayName}\label{wxappsetappdisplayname} - -\func{void}{SetAppDisplayName}{\param{const wxString\& }{name}} - -Set the application name to be used in the user-visible places such as window -titles. See \helpref{GetAppDisplayName}{wxappgetappdisplayname} for more about -the differences between the display name and name. - - -\membersection{wxApp::SetAppName}\label{wxappsetappname} - -\func{void}{SetAppName}{\param{const wxString\& }{name}} - -Sets the name of the application. This name should be used for file names, -configuration file entries and other internal strings. For the user-visible -strings, such as the window titles, the application display name set by -\helpref{SetAppDisplayName}{wxappsetappdisplayname} is used instead. - -By default the application name is set to the name of its executable file. - -\wxheading{See also} - -\helpref{wxApp::GetAppName}{wxappgetappname} - - -\membersection{wxApp::SetClassName}\label{wxappsetclassname} - -\func{void}{SetClassName}{\param{const wxString\& }{name}} - -Sets the class name of the application. This may be used in a platform specific -manner to refer to the application. - -\wxheading{See also} - -\helpref{wxApp::GetClassName}{wxappgetclassname} - - -\membersection{wxApp::SetExitOnFrameDelete}\label{wxappsetexitonframedelete} - -\func{void}{SetExitOnFrameDelete}{\param{bool}{ flag}} - -Allows the programmer to specify whether the application will exit when the -top-level frame is deleted. - -\wxheading{Parameters} - -\docparam{flag}{If true (the default), the application will exit when the top-level frame is -deleted. If false, the application will continue to run.} - -\wxheading{See also} - -\helpref{wxApp::GetExitOnFrameDelete}{wxappgetexitonframedelete},\\ -\helpref{wxApp shutdown overview}{wxappshutdownoverview} - - -\membersection{wxApp::SetInstance}\label{wxappsetinstance} - -\func{static void}{SetInstance}{\param{wxAppConsole* }{app}} - -Allows external code to modify global \texttt{wxTheApp}, but you should really -know what you're doing if you call it. - -\wxheading{Parameters} - -\docparam{app}{Replacement for the global application object.} - -\wxheading{See also} - -\helpref{wxApp::GetInstance}{wxappgetinstance} - - -\membersection{wxApp::SetNativeTheme}\label{wxappsetnativetheme} - -\func{bool}{SetNativeTheme}{\param{const}{wxString\&}{theme}} - -Allows runtime switching of the UI environment theme. Currently implemented for wxGTK2-only. - -Return \true if theme was successfully changed. - -\wxheading{Parameters} - -\docparam{theme}{The name of the new theme or an absolute path to a gtkrc-theme-file} - - -\membersection{wxApp::SetTopWindow}\label{wxappsettopwindow} - -\func{void}{SetTopWindow}{\param{wxWindow* }{window}} - -Sets the `top' window. You can call this from within \helpref{wxApp::OnInit}{wxapponinit} to -let wxWidgets know which is the main window. You don't have to set the top window; -it is only a convenience so that (for example) certain dialogs without parents can use a -specific window as the top window. If no top window is specified by the application, -wxWidgets just uses the first frame or dialog in its top-level window list, when it -needs to use the top window. - -\wxheading{Parameters} - -\docparam{window}{The new top window.} - -\wxheading{See also} - -\helpref{wxApp::GetTopWindow}{wxappgettopwindow}, \helpref{wxApp::OnInit}{wxapponinit} - - -\membersection{wxApp::SetVendorDisplayName}\label{wxappsetvendordisplayname} - -\func{void}{SetVendorDisplayName}{\param{const wxString\& }{name}} - -Set the vendor name to be used in the user-visible places. See -\helpref{GetVendorDisplayName}{wxappgetvendordisplayname} for more about -the differences between the display name and name. - - -\membersection{wxApp::SetVendorName}\label{wxappsetvendorname} - -\func{void}{SetVendorName}{\param{const wxString\& }{name}} - -Sets the name of application's vendor. The name will be used -in registry access. A default name is set by -wxWidgets. - -\wxheading{See also} - -\helpref{wxApp::GetVendorName}{wxappgetvendorname} - - -\membersection{wxApp::SetUseBestVisual}\label{wxappsetusebestvisual} - -\func{void}{SetUseBestVisual}{\param{bool}{ flag}, \param{bool}{ forceTrueColour = false}} - -Allows the programmer to specify whether the application will use the best visual -on systems that support several visual on the same display. This is typically the -case under Solaris and IRIX, where the default visual is only 8-bit whereas certain -applications are supposed to run in TrueColour mode. - -If \arg{forceTrueColour} is true then the application will try to force -using a TrueColour visual and abort the app if none is found. - -Note that this function has to be called in the constructor of the {\tt wxApp} -instance and won't have any effect when called later on. - -This function currently only has effect under GTK. - -\wxheading{Parameters} - -\docparam{flag}{If true, the app will use the best visual.} - - -\membersection{wxApp::HandleEvent}\label{wxapphandleevent} - -\constfunc{virtual void}{HandleEvent}{\param{wxEvtHandler}{ *handler}, \param{wxEventFunction}{ func}, \param{wxEvent\& }{event}} - -This function simply invokes the given method \arg{func} of the specified -event handler \arg{handler} with the \arg{event} as parameter. It exists solely -to allow to catch the C++ exceptions which could be thrown by all event -handlers in the application in one place: if you want to do this, override this -function in your wxApp-derived class and add try/catch clause(s) to it. - - -\membersection{wxApp::Yield}\label{wxappyield} - -\func{bool}{Yield}{\param{bool}{ onlyIfNeeded = false}} - -Yields control to pending messages in the windowing system. This can be useful, for example, when a -time-consuming process writes to a text window. Without an occasional -yield, the text window will not be updated properly, and on systems with -cooperative multitasking, such as Windows 3.1 other processes will not respond. - -Caution should be exercised, however, since yielding may allow the -user to perform actions which are not compatible with the current task. -Disabling menu items or whole menus during processing can avoid unwanted -reentrance of code: see \helpref{::wxSafeYield}{wxsafeyield} for a better -function. - -Note that Yield() will not flush the message logs. This is intentional as -calling Yield() is usually done to quickly update the screen and popping up a -message box dialog may be undesirable. If you do wish to flush the log -messages immediately (otherwise it will be done during the next idle loop -iteration), call \helpref{wxLog::FlushActive}{wxlogflushactive}. - -Calling Yield() recursively is normally an error and an assert failure is -raised in debug build if such situation is detected. However if the -{\it onlyIfNeeded} parameter is {\tt true}, the method will just silently -return {\tt false} instead. - diff --git a/docs/latex/wx/apptraits.tex b/docs/latex/wx/apptraits.tex deleted file mode 100644 index 78cdac60f3..0000000000 --- a/docs/latex/wx/apptraits.tex +++ /dev/null @@ -1,144 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: apptraits.tex -%% Purpose: wxAppTraits -%% Author: Francesco Montorsi -%% Modified by: -%% Created: 5-7-2006 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxAppTraits}}\label{wxapptraits} - -The {\bf wxAppTraits} class defines various configurable aspects of a \helpref{wxApp}{wxapp}. -You can access it using \helpref{wxApp::GetTraits}{wxappgettraits} function and you can -create your own \helpref{wxAppTraits}{wxapptraits} overriding the -\helpref{wxApp::CreateTraits}{wxappcreatetraits} function. - -By default, wxWidgets creates a {\tt wxConsoleAppTraits} object for console applications -(i.e. those applications linked against wxBase library only - see the -\helpref{Libraries list}{librarieslist} page) and a {\tt wxGUIAppTraits} object for GUI -applications. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxApp overview}{wxappoverview}, \helpref{wxApp}{wxapp} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxAppTraits::CreateConfig}\label{wxapptraitscreateconfig} - -\func{virtual wxConfigBase *}{CreateConfig}{\void} - -Called by wxWidgets to create the default configuration object for the -application. The default version creates a registry-based -\helpref{wxRegConfig}{wxconfigbase} class under MSW and -\helpref{wxFileConfig}{wxfileconfig} under all other platforms. The -\helpref{wxApp}{wxapp} \helpref{GetAppName()}{wxappgetappname} and -\helpref{GetVendorName()}{wxappgetvendorname} methods are used to determine the -registry key or file name. - - -\membersection{wxAppTraits::CreateFontMapper}\label{wxapptraitscreatefontmapper} - -\func{virtual wxFontMapper *}{CreateFontMapper}{\void} - -Creates the global font mapper object used for encodings/charset mapping. - - - -\membersection{wxAppTraits::CreateLogTarget}\label{wxapptraitscreatelogtarget} - -\func{virtual wxLog *}{CreateLogTarget}{\void} - -Creates the default log target for the application. - - -\membersection{wxAppTraits::CreateMessageOutput}\label{wxapptraitscreatemessageoutput} - -\func{virtual wxMessageOutput *}{CreateMessageOutput}{\void} - -Creates the global object used for printing out messages. - - -\membersection{wxAppTraits::CreateRenderer}\label{wxapptraitscreaterenderer} - -\func{virtual wxRendererNative *}{CreateRenderer}{\void} - -Returns the renderer to use for drawing the generic controls (return value may be \NULL -in which case the default renderer for the current platform is used); -this is used in GUI mode only and always returns \NULL in console. - -NOTE: returned pointer will be deleted by the caller. - -\membersection{wxAppTraits::GetDesktopEnvironment}\label{wxapptraitsgetdesktopenvironment} - -\constfunc{virtual wxString}{GetDesktopEnvironment}{\void} - -This method returns the name of the desktop environment currently -running in a Unix desktop. Currently only "KDE" or "GNOME" are -supported and the code uses the X11 session protocol vendor name -to figure out, which desktop environment is running. The method -returns an empty string otherwise and on all other platforms. - -\membersection{wxAppTraits::GetStandardPaths}\label{wxapptraitsgetstandardpaths} - -\func{virtual wxStandardPaths \&}{GetStandardPaths}{\void} - -Returns the wxStandardPaths object for the application. -It's normally the same for wxBase and wxGUI except in the case of wxMac and wxCocoa. - -\membersection{wxAppTraits::GetToolkitVersion}\label{wxapptraitsgettoolkitversion} - -\func{virtual wxPortId}{GetToolkitVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}} - -Returns the wxWidgets port ID used by the running program and eventually -fills the given pointers with the values of the major and minor digits -of the native toolkit currently used. -The version numbers returned are thus detected at run-time and not compile-time -(except when this is not possible e.g. wxMotif). - -E.g. if your program is using wxGTK port this function will return wxPORT\_GTK and -put in given pointers the versions of the GTK library in use. - -See \helpref{wxPlatformInfo}{wxplatforminfo} for more details. - - -\membersection{wxAppTraits::HasStderr}\label{wxapptraitshasstderr} - -\func{virtual bool}{HasStderr}{\void} - -Returns \true if {\tt fprintf(stderr)} goes somewhere, \false otherwise. - - -\membersection{wxAppTraits::IsUsingUniversalWidgets}\label{wxapptraitsisusinguniversalwidgets} - -\constfunc{bool}{IsUsingUniversalWidgets}{\void} - -Returns \true if the library was built as wxUniversal. Always returns -\false for wxBase-only apps. - - -\membersection{wxAppTraits::ShowAssertDialog}\label{wxapptraitsshowassertdialog} - -\func{virtual bool}{ShowAssertDialog}{\param{const wxString \&}{ msg}} - -Shows the assert dialog with the specified message in GUI mode or just prints -the string to stderr in console mode. - -Returns \true to suppress subsequent asserts, \false to continue as before. - diff --git a/docs/latex/wx/arc.tex b/docs/latex/wx/arc.tex deleted file mode 100644 index 836828ae1b..0000000000 --- a/docs/latex/wx/arc.tex +++ /dev/null @@ -1,472 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: arc.tex -%% Purpose: Overview of the archive classes -%% Author: M.J.Wetherell -%% RCS-ID: $Id$ -%% Copyright: 2004 M.J.Wetherell -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Archive formats such as zip}\label{wxarc} - -The archive classes handle archive formats such as zip, tar, rar and cab. -Currently \helpref{wxZip}{wxzipinputstream} -and \helpref{wxTar}{wxtarinputstream} classes are included. - -For each archive type, there are the following classes (using zip here -as an example): - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{\helpref{wxZipInputStream}{wxzipinputstream}}{Input stream} -\twocolitem{\helpref{wxZipOutputStream}{wxzipoutputstream}}{Output stream} -\twocolitem{\helpref{wxZipEntry}{wxzipentry}}{Holds the meta-data for an -entry (e.g. filename, timestamp, etc.)} -\end{twocollist} - -There are also abstract wxArchive classes that can be used to write code -that can handle any of the archive types, -see '\helpref{Generic archive programming}{wxarcgeneric}'. -Also see \helpref{wxFileSystem}{fs} for a higher level interface that -can handle archive files in a generic way. - -The classes are designed to handle archives on both seekable streams such -as disk files, or non-seekable streams such as pipes and sockets -(see '\helpref{Archives on non-seekable streams}{wxarcnoseek}'). - -\wxheading{See also} - -\helpref{wxFileSystem}{fs} - - -\subsection{Creating an archive}\label{wxarccreate} - -\helpref{Archive formats such as zip}{wxarc} - -Call \helpref{PutNextEntry()}{wxarchiveoutputstreamputnextentry} to -create each new entry in the archive, then write the entry's data. -Another call to PutNextEntry() closes the current entry and begins the next. - -For example: - -\begin{verbatim} - wxFFileOutputStream out(_T("test.zip")); - wxZipOutputStream zip(out); - wxTextOutputStream txt(zip); - wxString sep(wxFileName::GetPathSeparator()); - - zip.PutNextEntry(_T("entry1.txt")); - txt << _T("Some text for entry1.txt\n"); - - zip.PutNextEntry(_T("subdir") + sep + _T("entry2.txt")); - txt << _T("Some text for subdir/entry2.txt\n"); - -\end{verbatim} - -The name of each entry can be a full path, which makes it possible to -store entries in subdirectories. - - -\subsection{Extracting an archive}\label{wxarcextract} - -\helpref{Archive formats such as zip}{wxarc} - -\helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} returns a pointer -to entry object containing the meta-data for the next entry in the archive -(and gives away ownership). Reading from the input stream then returns the -entry's data. Eof() becomes true after an attempt has been made to read past -the end of the entry's data. - -When there are no more entries, GetNextEntry() returns NULL and sets Eof(). - -\begin{verbatim} - auto_ptr entry; - - wxFFileInputStream in(_T("test.zip")); - wxZipInputStream zip(in); - - while (entry.reset(zip.GetNextEntry()), entry.get() != NULL) - { - // access meta-data - wxString name = entry->GetName(); - // read 'zip' to access the entry's data - } - -\end{verbatim} - - -\subsection{Modifying an archive}\label{wxarcmodify} - -\helpref{Archive formats such as zip}{wxarc} - -To modify an existing archive, write a new copy of the archive to a new file, -making any necessary changes along the way and transferring any unchanged -entries using \helpref{CopyEntry()}{wxarchiveoutputstreamcopyentry}. -For archive types which compress entry data, CopyEntry() is likely to be -much more efficient than transferring the data using Read() and Write() -since it will copy them without decompressing and recompressing them. - -In general modifications are not possible without rewriting the archive, -though it may be possible in some limited cases. Even then, rewriting the -archive is usually a better choice since a failure can be handled without -losing the whole -archive. \helpref{wxTempFileOutputStream}{wxtempfileoutputstream} can -be helpful to do this. - -For example to delete all entries matching the pattern "*.txt": - -\begin{verbatim} - auto_ptr in(new wxFFileInputStream(_T("test.zip"))); - wxTempFileOutputStream out(_T("test.zip")); - - wxZipInputStream inzip(*in); - wxZipOutputStream outzip(out); - - auto_ptr entry; - - // transfer any meta-data for the archive as a whole (the zip comment - // in the case of zip) - outzip.CopyArchiveMetaData(inzip); - - // call CopyEntry for each entry except those matching the pattern - while (entry.reset(inzip.GetNextEntry()), entry.get() != NULL) - if (!entry->GetName().Matches(_T("*.txt"))) - if (!outzip.CopyEntry(entry.release(), inzip)) - break; - - // close the input stream by releasing the pointer to it, do this - // before closing the output stream so that the file can be replaced - in.reset(); - - // you can check for success as follows - bool success = inzip.Eof() && outzip.Close() && out.Commit(); - -\end{verbatim} - - -\subsection{Looking up an archive entry by name}\label{wxarcbyname} - -\helpref{Archive formats such as zip}{wxarc} - -Also see \helpref{wxFileSystem}{fs} for a higher level interface that is -more convenient for accessing archive entries by name. - -To open just one entry in an archive, the most efficient way is -to simply search for it linearly by calling - \helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} until the -required entry is found. This works both for archives on seekable and -non-seekable streams. - -The format of filenames in the archive is likely to be different -from the local filename format. For example zips and tars use -unix style names, with forward slashes as the path separator, -and absolute paths are not allowed. So if on Windows the file -"C:$\backslash$MYDIR$\backslash$MYFILE.TXT" is stored, then when reading -the entry back \helpref{GetName()}{wxarchiveentryname} will return -"MYDIR$\backslash$MYFILE.TXT". The conversion into the internal format -and back has lost some information. - -So to avoid ambiguity when searching for an entry matching a local name, -it is better to convert the local name to the archive's internal format -and search for that: - -\begin{verbatim} - auto_ptr entry; - - // convert the local name we are looking for into the internal format - wxString name = wxZipEntry::GetInternalName(localname); - - // open the zip - wxFFileInputStream in(_T("test.zip")); - wxZipInputStream zip(in); - - // call GetNextEntry() until the required internal name is found - do { - entry.reset(zip.GetNextEntry()); - } - while (entry.get() != NULL && entry->GetInternalName() != name); - - if (entry.get() != NULL) { - // read the entry's data... - } - -\end{verbatim} - -To access several entries randomly, it is most efficient to transfer the -entire catalogue of entries to a container such as a std::map or a - \helpref{wxHashMap}{wxhashmap} then entries looked up by name can be -opened using the \helpref{OpenEntry()}{wxarchiveinputstreamopenentry} method. - -\begin{verbatim} - WX_DECLARE_STRING_HASH_MAP(wxZipEntry*, ZipCatalog); - ZipCatalog::iterator it; - wxZipEntry *entry; - ZipCatalog cat; - - // open the zip - wxFFileInputStream in(_T("test.zip")); - wxZipInputStream zip(in); - - // load the zip catalog - while ((entry = zip.GetNextEntry()) != NULL) { - wxZipEntry*& current = cat[entry->GetInternalName()]; - // some archive formats can have multiple entries with the same name - // (e.g. tar) though it is an error in the case of zip - delete current; - current = entry; - } - - // open an entry by name - if ((it = cat.find(wxZipEntry::GetInternalName(localname))) != cat.end()) { - zip.OpenEntry(*it->second); - // ... now read entry's data - } - -\end{verbatim} - -To open more than one entry simultaneously you need more than one -underlying stream on the same archive: - -\begin{verbatim} - // opening another entry without closing the first requires another - // input stream for the same file - wxFFileInputStream in2(_T("test.zip")); - wxZipInputStream zip2(in2); - if ((it = cat.find(wxZipEntry::GetInternalName(local2))) != cat.end()) - zip2.OpenEntry(*it->second); - -\end{verbatim} - - -\subsection{Generic archive programming}\label{wxarcgeneric} - -\helpref{Archive formats such as zip}{wxarc} - -Also see \helpref{wxFileSystem}{fs} for a higher level interface that -can handle archive files in a generic way. - -The specific archive classes, such as the wxZip classes, inherit from -the following abstract classes which can be used to write code that can -handle any of the archive types: - -\begin{twocollist}\twocolwidtha{5cm} -\twocolitem{\helpref{wxArchiveInputStream}{wxarchiveinputstream}}{Input stream} -\twocolitem{\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}}{Output stream} -\twocolitem{\helpref{wxArchiveEntry}{wxarchiveentry}}{Holds the meta-data for an -entry (e.g. filename)} -\end{twocollist} - -In order to able to write generic code it's necessary to be able to create -instances of the classes without knowing which archive type is being used. -To allow this there is a class factory for each archive type, derived from - \helpref{wxArchiveClassFactory}{wxarchiveclassfactory}, that can create -the other classes. - -For example, given {\it wxArchiveClassFactory* factory}, streams and -entries can be created like this: - -\begin{verbatim} - // create streams without knowing their type - auto_ptr inarc(factory->NewStream(in)); - auto_ptr outarc(factory->NewStream(out)); - - // create an empty entry object - auto_ptr entry(factory->NewEntry()); - -\end{verbatim} - -For the factory itself, the static member - \helpref{wxArchiveClassFactory::Find()}{wxarchiveclassfactoryfind}. -can be used to find a class factory that can handle a given file -extension or mime type. For example, given {\it filename}: - -\begin{verbatim} - const wxArchiveClassFactory *factory; - factory = wxArchiveClassFactory::Find(filename, wxSTREAM_FILEEXT); - - if (factory) - stream = factory->NewStream(new wxFFileInputStream(filename)); - -\end{verbatim} - -{\it Find} does not give away ownership of the returned pointer, so it -does not need to be deleted. - -There are similar class factories for the filter streams that handle the -compression and decompression of a single stream, such as wxGzipInputStream. -These can be found using - \helpref{wxFilterClassFactory::Find()}{wxfilterclassfactoryfind}. - -For example, to list the contents of archive {\it filename}: - -\begin{verbatim} - auto_ptr in(new wxFFileInputStream(filename)); - - if (in->IsOk()) - { - // look for a filter handler, e.g. for '.gz' - const wxFilterClassFactory *fcf; - fcf = wxFilterClassFactory::Find(filename, wxSTREAM_FILEEXT); - if (fcf) { - in.reset(fcf->NewStream(in.release())); - // pop the extension, so if it was '.tar.gz' it is now just '.tar' - filename = fcf->PopExtension(filename); - } - - // look for a archive handler, e.g. for '.zip' or '.tar' - const wxArchiveClassFactory *acf; - acf = wxArchiveClassFactory::Find(filename, wxSTREAM_FILEEXT); - if (acf) { - auto_ptr arc(acf->NewStream(in.release())); - auto_ptr entry; - - // list the contents of the archive - while ((entry.reset(arc->GetNextEntry())), entry.get() != NULL) - std::wcout << entry->GetName().c_str() << "\n"; - } - else { - wxLogError(_T("can't handle '%s'"), filename.c_str()); - } - } - -\end{verbatim} - - -\subsection{Archives on non-seekable streams}\label{wxarcnoseek} - -\helpref{Archive formats such as zip}{wxarc} - -In general, handling archives on non-seekable streams is done in the same -way as for seekable streams, with a few caveats. - -The main limitation is that accessing entries randomly using - \helpref{OpenEntry()}{wxarchiveinputstreamopenentry} -is not possible, the entries can only be accessed sequentially in the order -they are stored within the archive. - -For each archive type, there will also be other limitations which will -depend on the order the entries' meta-data is stored within the archive. -These are not too difficult to deal with, and are outlined below. - -\wxheading{PutNextEntry and the entry size} - -When writing archives, some archive formats store the entry size before -the entry's data (tar has this limitation, zip doesn't). In this case -the entry's size must be passed to - \helpref{PutNextEntry()}{wxarchiveoutputstreamputnextentry} or an error -occurs. - -This is only an issue on non-seekable streams, since otherwise the archive -output stream can seek back and fix up the header once the size of the -entry is known. - -For generic programming, one way to handle this is to supply the size -whenever it is known, and rely on the error message from the output -stream when the operation is not supported. - -\wxheading{GetNextEntry and the weak reference mechanism} - -Some archive formats do not store all an entry's meta-data before the -entry's data (zip is an example). In this case, when reading from a -non-seekable stream, \helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} -can only return a partially populated \helpref{wxArchiveEntry}{wxarchiveentry} -object - not all the fields are set. - -The input stream then keeps a weak reference to the entry object and -updates it when more meta-data becomes available. A weak reference being -one that does not prevent you from deleting the wxArchiveEntry object - the -input stream only attempts to update it if it is still around. - -The documentation for each archive entry type gives the details -of what meta-data becomes available and when. For generic programming, -when the worst case must be assumed, you can rely on all the fields -of wxArchiveEntry being fully populated when GetNextEntry() returns, -with the the following exceptions: - -\begin{twocollist}\twocolwidtha{3cm} -\twocolitem{\helpref{GetSize()}{wxarchiveentrysize}}{Guaranteed to be -available after the entry has been read to \helpref{Eof()}{wxinputstreameof}, -or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called} -\twocolitem{\helpref{IsReadOnly()}{wxarchiveentryisreadonly}}{Guaranteed to -be available after the end of the archive has been reached, i.e. after -GetNextEntry() returns NULL and Eof() is true} -\end{twocollist} - -This mechanism allows \helpref{CopyEntry()}{wxarchiveoutputstreamcopyentry} -to always fully preserve entries' meta-data. No matter what order order -the meta-data occurs within the archive, the input stream will always -have read it before the output stream must write it. - -\wxheading{wxArchiveNotifier} - -Notifier objects can be used to get a notification whenever an input -stream updates a \helpref{wxArchiveEntry}{wxarchiveentry} object's data -via the weak reference mechanism. - -Consider the following code which renames an entry in an archive. -This is the usual way to modify an entry's meta-data, simply set the -required field before writing it with - \helpref{CopyEntry()}{wxarchiveoutputstreamcopyentry}: - -\begin{verbatim} - auto_ptr arc(factory->NewStream(in)); - auto_ptr outarc(factory->NewStream(out)); - auto_ptr entry; - - outarc->CopyArchiveMetaData(*arc); - - while (entry.reset(arc->GetNextEntry()), entry.get() != NULL) { - if (entry->GetName() == from) - entry->SetName(to); - if (!outarc->CopyEntry(entry.release(), *arc)) - break; - } - - bool success = arc->Eof() && outarc->Close(); - -\end{verbatim} - -However, for non-seekable streams, this technique cannot be used for -fields such as \helpref{IsReadOnly()}{wxarchiveentryisreadonly}, -which are not necessarily set when - \helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} returns. In -this case a \helpref{wxArchiveNotifier}{wxarchivenotifier} can be used: - -\begin{verbatim} -class MyNotifier : public wxArchiveNotifier -{ -public: - void OnEntryUpdated(wxArchiveEntry& entry) { entry.SetIsReadOnly(false); } -}; - -\end{verbatim} - -The meta-data changes are done in your notifier's - \helpref{OnEntryUpdated()}{wxarchivenotifieronentryupdated} method, -then \helpref{SetNotifier()}{wxarchiveentrynotifier} is called before -CopyEntry(): - -\begin{verbatim} - auto_ptr arc(factory->NewStream(in)); - auto_ptr outarc(factory->NewStream(out)); - auto_ptr entry; - MyNotifier notifier; - - outarc->CopyArchiveMetaData(*arc); - - while (entry.reset(arc->GetNextEntry()), entry.get() != NULL) { - entry->SetNotifier(notifier); - if (!outarc->CopyEntry(entry.release(), *arc)) - break; - } - - bool success = arc->Eof() && outarc->Close(); - -\end{verbatim} - -SetNotifier() calls OnEntryUpdated() immediately, then the input -stream calls it again whenever it sets more fields in the entry. Since -OnEntryUpdated() will be called at least once, this technique always -works even when it is not strictly necessary to use it. For example, -changing the entry name can be done this way too and it works on seekable -streams as well as non-seekable. - diff --git a/docs/latex/wx/archive.tex b/docs/latex/wx/archive.tex deleted file mode 100644 index 1b9ad6c750..0000000000 --- a/docs/latex/wx/archive.tex +++ /dev/null @@ -1,806 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveClassFactory}}\label{wxarchiveclassfactory} - -Allows the creation of streams to handle archive formats such -as zip and tar. - -For example, given a filename you can search for a factory that will -handle it and create a stream to read it: - -\begin{verbatim} - factory = wxArchiveClassFactory::Find(filename, wxSTREAM_FILEEXT); - if (factory) - stream = factory->NewStream(new wxFFileInputStream(filename)); - -\end{verbatim} - -\helpref{Find()}{wxarchiveclassfactoryfind} can also search -for a factory by MIME type or wxFileSystem protocol. -The available factories can be enumerated -using \helpref{GetFirst() and GetNext()}{wxarchiveclassfactorygetfirst}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -\begin{verbatim} -enum wxStreamProtocolType -{ - wxSTREAM_PROTOCOL, // wxFileSystem protocol (should be only one) - wxSTREAM_MIMETYPE, // MIME types the stream handles - wxSTREAM_ENCODING, // Not used for archives - wxSTREAM_FILEEXT // File extensions the stream handles -}; - -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{Generic archive programming}{wxarcgeneric}\\ -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}\\ -\helpref{wxFilterClassFactory}{wxfilterclassfactory} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveClassFactory::Get/SetConv}\label{wxarchiveclassfactoryconv} - -\constfunc{wxMBConv\&}{GetConv}{\void} - -\func{void}{SetConv}{\param{wxMBConv\& }{conv}} - -The \helpref{wxMBConv}{wxmbconv} object that the created streams -will use when translating meta-data. The initial default, set by the -constructor, is wxConvLocal. - - -\membersection{wxArchiveClassFactory::CanHandle}\label{wxarchiveclassfactorycanhandle} - -\constfunc{bool}{CanHandle}{\param{const wxChar* }{protocol}, \param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -Returns true if this factory can handle the given protocol, MIME type -or file extension. - -When using wxSTREAM\_FILEEXT for the second parameter, the first parameter -can be a complete filename rather than just an extension. - - -\membersection{wxArchiveClassFactory::Find}\label{wxarchiveclassfactoryfind} - -\func{static const wxArchiveClassFactory*}{Find}{\param{const wxChar* }{protocol}, \param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -A static member that finds a factory that can handle a given protocol, MIME -type or file extension. Returns a pointer to the class factory if found, or -NULL otherwise. It does not give away ownership of the factory. - -When using wxSTREAM\_FILEEXT for the second parameter, the first parameter -can be a complete filename rather than just an extension. - - -\membersection{wxArchiveClassFactory::GetFirst/GetNext}\label{wxarchiveclassfactorygetfirst} - -\func{static const wxArchiveClassFactory*}{GetFirst}{\void} - -\constfunc{const wxArchiveClassFactory*}{GetNext}{\void} - -GetFirst and GetNext can be used to enumerate the available factories. - -For example, to list them: - -\begin{verbatim} - wxString list; - const wxArchiveClassFactory *factory = wxArchiveClassFactory::GetFirst(); - - while (factory) { - list << factory->GetProtocol() << _T("\n"); - factory = factory->GetNext(); - } - -\end{verbatim} - -GetFirst()/GetNext() return a pointer to a factory or NULL if no more -are available. They do not give away ownership of the factory. - - -\membersection{wxArchiveClassFactory::GetInternalName}\label{wxarchiveclassfactorygetinternalname} - -\constfunc{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Calls the static GetInternalName() function for the archive entry type, -for example - \helpref{wxZipEntry::GetInternalName()}{wxzipentrygetinternalname}. - - -\membersection{wxArchiveClassFactory::GetProtocol}\label{wxarchiveclassfactorygetprotocol} - -\constfunc{wxString}{GetProtocol}{\void} - -Returns the wxFileSystem protocol supported by this factory. Equivalent -to wxString(*GetProtcols()). - - -\membersection{wxArchiveClassFactory::GetProtocols}\label{wxarchiveclassfactorygetprotocols} - -\constfunc{const wxChar * const*}{GetProtocols}{\param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -Returns the protocols, MIME types or file extensions supported by this -factory, as an array of null terminated strings. It does not give away -ownership of the array or strings. - -For example, to list the file extensions a factory supports: - -\begin{verbatim} - wxString list; - const wxChar *const *p; - - for (p = factory->GetProtocols(wxSTREAM_FILEEXT); *p; p++) - list << *p << _T("\n"); - -\end{verbatim} - - -\membersection{wxArchiveClassFactory::NewEntry}\label{wxarchiveclassfactorynewentry} - -\constfunc{wxArchiveEntry*}{NewEntry}{\void} - -Create a new \helpref{wxArchiveEntry}{wxarchiveentry} object of the -appropriate type. - - -\membersection{wxArchiveClassFactory::NewStream}\label{wxarchiveclassfactorynewstream} - -\constfunc{wxArchiveInputStream*}{NewStream}{\param{wxInputStream\& }{stream}} - -\constfunc{wxArchiveOutputStream*}{NewStream}{\param{wxOutputStream\& }{stream}} - -\constfunc{wxArchiveInputStream*}{NewStream}{\param{wxInputStream* }{stream}} - -\constfunc{wxArchiveOutputStream*}{NewStream}{\param{wxOutputStream* }{stream}} - -Create a new input or output stream to read or write an archive. - -If the parent stream is passed as a pointer then the new archive stream -takes ownership of it. If it is passed by reference then it does not. - - -\membersection{wxArchiveClassFactory::PushFront}\label{wxarchiveclassfactorypushfront} - -\func{void}{PushFront}{\void} - -Adds this class factory to the list returned -by \helpref{GetFirst()/GetNext()}{wxarchiveclassfactorygetfirst}. - -It is not necessary to do this to use the archive streams. It is usually -used when implementing streams, typically the implementation will -add a static instance of its factory class. - -It can also be used to change the order of a factory already in the list, -bringing it to the front. This isn't a thread safe operation -so can't be done when other threads are running that will be using the list. - -The list does not take ownership of the factory. - - -\membersection{wxArchiveClassFactory::Remove}\label{wxarchiveclassfactoryremove} - -\func{void}{Remove}{\void} - -Removes this class factory from the list returned -by \helpref{GetFirst()/GetNext()}{wxarchiveclassfactorygetfirst}. - -Removing from the list isn't a thread safe operation -so can't be done when other threads are running that will be using the list. - -The list does not own the factories, so removing a factory does not delete it. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveEntry}}\label{wxarchiveentry} - -An abstract base class which serves as a common interface to -archive entry classes such as \helpref{wxZipEntry}{wxzipentry}. -These hold the meta-data (filename, timestamp, etc.), for entries -in archive files such as zips and tars. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{Generic archive programming}{wxarcgeneric}\\ -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}\\ -\helpref{wxArchiveNotifier}{wxarchivenotifier} - -\wxheading{Non-seekable streams} - -This information applies only when reading archives from non-seekable -streams. When the stream is -seekable \helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} -returns a fully populated \helpref{wxArchiveEntry}{wxarchiveentry}. -See '\helpref{Archives on non-seekable streams}{wxarcnoseek}' for -more information. - -For generic programming, when the worst case must be assumed, you can -rely on all the fields of wxArchiveEntry being fully populated when -GetNextEntry() returns, with the the following exceptions: - -\begin{twocollist}\twocolwidtha{3cm} -\twocolitem{\helpref{GetSize()}{wxarchiveentrysize}}{Guaranteed to be -available after the entry has been read to \helpref{Eof()}{wxinputstreameof}, -or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called} -\twocolitem{\helpref{IsReadOnly()}{wxarchiveentryisreadonly}}{Guaranteed to -be available after the end of the archive has been reached, i.e. after -GetNextEntry() returns NULL and Eof() is true} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveEntry::Clone}\label{wxarchiveentryclone} - -\constfunc{wxArchiveEntry*}{Clone}{\void} - -Returns a copy of this entry object. - - -\membersection{wxArchiveEntry::Get/SetDateTime}\label{wxarchiveentrydatetime} - -\constfunc{wxDateTime}{GetDateTime}{\void} - -\func{void}{SetDateTime}{\param{const wxDateTime\& }{dt}} - -The entry's timestamp. - - -\membersection{wxArchiveEntry::GetInternalFormat}\label{wxarchiveentrygetinternalformat} - -\constfunc{wxPathFormat}{GetInternalFormat}{\void} - -Returns the path format used internally within the archive to store -filenames. - - -\membersection{wxArchiveEntry::GetInternalName}\label{wxarchiveentrygetinternalname} - -\constfunc{wxString}{GetInternalName}{\void} - -Returns the entry's filename in the internal format used within the -archive. The name can include directory components, i.e. it can be a -full path. - -The names of directory entries are returned without any trailing path -separator. This gives a canonical name that can be used in comparisons. - -\wxheading{See also} - -\helpref{Looking up an archive entry by name}{wxarcbyname} - - -\membersection{wxArchiveEntry::Get/SetName}\label{wxarchiveentryname} - -\constfunc{wxString}{GetName}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{void}{SetName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -The entry's name, by default in the native format. The name can include -directory components, i.e. it can be a full path. - -If this is a directory entry, (i.e. if \helpref{IsDir()}{wxarchiveentryisdir} -is true) then GetName() returns the name with a trailing path separator. - -Similarly, setting a name with a trailing path separator sets IsDir(). - - -\membersection{wxArchiveEntry::GetOffset}\label{wxarchiveentrygetoffset} - -\constfunc{off\_t}{GetOffset}{\void} - -Returns a numeric value unique to the entry within the archive. - - -\membersection{wxArchiveEntry::Get/SetSize}\label{wxarchiveentrysize} - -\constfunc{off\_t}{GetSize}{\void} - -\func{void}{SetSize}{\param{off\_t }{size}} - -The size of the entry's data in bytes. - - -\membersection{wxArchiveEntry::IsDir/SetIsDir}\label{wxarchiveentryisdir} - -\constfunc{bool}{IsDir}{\void} - -\func{void}{SetIsDir}{\param{bool }{isDir = true}} - -True if this is a directory entry. - -Directory entries are entries with no data, which are used to store -the meta-data of directories. They also make it possible for completely -empty directories to be stored. - -The names of entries within an archive can be complete paths, and -unarchivers typically create whatever directories are necessary as they -restore files, even if the archive contains no explicit directory entries. - - -\membersection{wxArchiveEntry::IsReadOnly/SetIsReadOnly}\label{wxarchiveentryisreadonly} - -\constfunc{bool}{IsReadOnly}{\void} - -\func{void}{SetIsReadOnly}{\param{bool }{isReadOnly = true}} - -True if the entry is a read-only file. - - -\membersection{wxArchiveEntry::Set/UnsetNotifier}\label{wxarchiveentrynotifier} - -\func{void}{SetNotifier}{\param{wxArchiveNotifier\& }{notifier}} - -\func{void}{UnsetNotifier}{\void} - -Sets the \helpref{notifier}{wxarchivenotifier} for this entry. -Whenever the \helpref{wxArchiveInputStream}{wxarchiveinputstream} updates -this entry, it will then invoke the associated -notifier's \helpref{OnEntryUpdated}{wxarchivenotifieronentryupdated} -method. - -Setting a notifier is not usually necessary. It is used to handle -certain cases when modifying an archive in a pipeline (i.e. between -non-seekable streams). - -\wxheading{See also} - -\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ -\helpref{wxArchiveNotifier}{wxarchivenotifier} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveInputStream}}\label{wxarchiveinputstream} - -An abstract base class which serves as a common interface to -archive input streams such as \helpref{wxZipInputStream}{wxzipinputstream}. - -\helpref{GetNextEntry()}{wxarchiveinputstreamgetnextentry} returns an - \helpref{wxArchiveEntry}{wxarchiveentry} object containing the meta-data -for the next entry in the archive (and gives away ownership). Reading from -the wxArchiveInputStream then returns the entry's data. Eof() becomes true -after an attempt has been made to read past the end of the entry's data. -When there are no more entries, GetNextEntry() returns NULL and sets Eof(). - -\wxheading{Derived from} - -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} -\begin{verbatim} -typedef wxArchiveEntry entry_type -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveInputStream::CloseEntry}\label{wxarchiveinputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Closes the current entry. On a non-seekable stream reads to the end of -the current entry first. - - -\membersection{wxArchiveInputStream::GetNextEntry}\label{wxarchiveinputstreamgetnextentry} - -\func{wxArchiveEntry*}{GetNextEntry}{\void} - -Closes the current entry if one is open, then reads the meta-data for -the next entry and returns it in a \helpref{wxArchiveEntry}{wxarchiveentry} -object, giving away ownership. Reading this wxArchiveInputStream then -returns the entry's data. - - -\membersection{wxArchiveInputStream::OpenEntry}\label{wxarchiveinputstreamopenentry} - -\func{bool}{OpenEntry}{\param{wxArchiveEntry\& }{entry}} - -Closes the current entry if one is open, then opens the entry specified -by the \helpref{wxArchiveEntry}{wxarchiveentry} object. - -{\it entry} must be from the same archive file that this -wxArchiveInputStream is reading, and it must be reading it from a -seekable stream. - -\wxheading{See also} - -\helpref{Looking up an archive entry by name}{wxarcbyname} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveIterator}}\label{wxarchiveiterator} - -An input iterator template class that can be used to transfer an archive's -catalogue to a container. It is only available if wxUSE\_STL is set to 1 -in setup.h, and the uses for it outlined below require a compiler which -supports member templates. - -\begin{verbatim} -template -class wxArchiveIterator -{ - // this constructor creates an 'end of sequence' object - wxArchiveIterator(); - - // template parameter 'Arc' should be the type of an archive input stream - wxArchiveIterator(Arc& arc) { - // ... - } -}; -\end{verbatim} - -The first template parameter should be the type of archive input stream -(e.g. \helpref{wxArchiveInputStream}{wxarchiveinputstream}) and the -second can either be a pointer to an entry -(e.g. \helpref{wxArchiveEntry}{wxarchiveentry}*), or a string/pointer pair -(e.g. std::pair). - -The {\tt } header defines the following typedefs: - -\begin{verbatim} - typedef wxArchiveIterator wxArchiveIter; - - typedef wxArchiveIterator > wxArchivePairIter; -\end{verbatim} - -The header for any implementation of this interface should define similar -typedefs for its types, for example in {\tt } there is: - -\begin{verbatim} - typedef wxArchiveIterator wxZipIter; - - typedef wxArchiveIterator > wxZipPairIter; - -\end{verbatim} - -Transferring the catalogue of an archive {\it arc} to a vector {\it cat}, -can then be done something like this: - -\begin{verbatim} - std::vector cat((wxArchiveIter)arc, wxArchiveIter()); - -\end{verbatim} - -When the iterator is dereferenced, it gives away ownership of an entry -object. So in the above example, when you have finished with {\it cat} -you must delete the pointers it contains. - -If you have smart pointers with normal copy semantics (i.e. not auto\_ptr -or \helpref{wxScopedPtr}{wxscopedptr}), then you can create an iterator -which uses them instead. For example, with a smart pointer class for -zip entries {\it ZipEntryPtr}: - -\begin{verbatim} - typedef std::vector ZipCatalog; - typedef wxArchiveIterator ZipIter; - ZipCatalog cat((ZipIter)zip, ZipIter()); - -\end{verbatim} - -Iterators that return std::pair objects can be used to -populate a std::multimap, to allow entries to be looked -up by name. The string is initialised using the wxArchiveEntry object's - \helpref{GetInternalName()}{wxarchiveentrygetinternalname} function. - -\begin{verbatim} - typedef std::multimap ZipCatalog; - ZipCatalog cat((wxZipPairIter)zip, wxZipPairIter()); - -\end{verbatim} - -Note that this iterator also gives away ownership of an entry -object each time it is dereferenced. So in the above example, when -you have finished with {\it cat} you must delete the pointers it contains. - -Or if you have them, a pair containing a smart pointer can be used -(again {\it ZipEntryPtr}), no worries about ownership: - -\begin{verbatim} - typedef std::multimap ZipCatalog; - typedef wxArchiveIterator > ZipPairIter; - ZipCatalog cat((ZipPairIter)zip, ZipPairIter()); - -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream} - -\wxheading{Data structures} -\begin{verbatim} -typedef std::input_iterator_tag iterator_category -typedef T value_type -typedef ptrdiff_t difference_type -typedef T* pointer -typedef T& reference -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveIterator::wxArchiveIterator}\label{wxarchiveiteratorwxarchiveiterator} - -\func{}{wxArchiveIterator}{\void} - -Construct an 'end of sequence' instance. - -\func{}{wxArchiveIterator}{\param{Arc\& }{arc}} - -Construct iterator that returns all the entries in the archive input -stream {\it arc}. - - -\membersection{wxArchiveIterator::operator*}\label{wxarchiveiteratoroperatorstar} - -\constfunc{const T\&}{operator*}{\void} - -Returns an entry object from the archive input stream, giving away -ownership. - - -\membersection{wxArchiveIterator::operator++}\label{wxarchiveiteratoroperatorincrement} - -\func{wxArchiveIterator\&}{operator++}{\void} - -\func{wxArchiveIterator\&}{operator++}{\param{int}{}} - -Position the input iterator at the next entry in the archive input stream. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveNotifier}}\label{wxarchivenotifier} - -If you need to know when a - \helpref{wxArchiveInputStream}{wxarchiveinputstream} updates a - \helpref{wxArchiveEntry}{wxarchiveentry} object, you can create -a notifier by deriving from this abstract base class, overriding - \helpref{OnEntryUpdated()}{wxarchivenotifieronentryupdated}. An instance -of your notifier class can then be assigned to the wxArchiveEntry object -using \helpref{wxArchiveEntry::SetNotifier()}{wxarchiveentrynotifier}. -Your OnEntryUpdated() method will then be invoked whenever the input -stream updates the entry. - -Setting a notifier is not usually necessary. It is used to handle -certain cases when modifying an archive in a pipeline (i.e. between -non-seekable streams). -See \helpref{Archives on non-seekable streams}{wxarcnoseek}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveNotifier::OnEntryUpdated}\label{wxarchivenotifieronentryupdated} - -\func{void}{OnEntryUpdated}{\param{class wxArchiveEntry\& }{entry}} - -This method must be overridden in your derived class. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/archive.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxArchiveOutputStream}}\label{wxarchiveoutputstream} - -An abstract base class which serves as a common interface to -archive output streams such as \helpref{wxZipOutputStream}{wxzipoutputstream}. - -\helpref{PutNextEntry()}{wxarchiveoutputstreamputnextentry} is used -to create a new entry in the output archive, then the entry's data is -written to the wxArchiveOutputStream. Another call to PutNextEntry() -closes the current entry and begins the next. - -\wxheading{Derived from} - -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxArchiveInputStream}{wxarchiveinputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArchiveOutputStream::\destruct{wxArchiveOutputStream}}\label{wxarchiveoutputstreamdtor} - -\func{}{\destruct{wxArchiveOutputStream}}{\void} - -Calls \helpref{Close()}{wxarchiveoutputstreamclose} if it has not already -been called. - - -\membersection{wxArchiveOutputStream::Close}\label{wxarchiveoutputstreamclose} - -\func{bool}{Close}{\void} - -Closes the archive, returning true if it was successfully written. -Called by the destructor if not called explicitly. - - -\membersection{wxArchiveOutputStream::CloseEntry}\label{wxarchiveoutputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Close the current entry. It is called implicitly whenever another new -entry is created with \helpref{CopyEntry()}{wxarchiveoutputstreamcopyentry} -or \helpref{PutNextEntry()}{wxarchiveoutputstreamputnextentry}, or -when the archive is closed. - - -\membersection{wxArchiveOutputStream::CopyArchiveMetaData}\label{wxarchiveoutputstreamcopyarchivemetadata} - -\func{bool}{CopyArchiveMetaData}{\param{wxArchiveInputStream\& }{stream}} - -Some archive formats have additional meta-data that applies to the archive -as a whole. For example in the case of zip there is a comment, which -is stored at the end of the zip file. CopyArchiveMetaData() can be used -to transfer such information when writing a modified copy of an archive. - -Since the position of the meta-data can vary between the various archive -formats, it is best to call CopyArchiveMetaData() before transferring -the entries. The \helpref{wxArchiveOutputStream}{wxarchiveoutputstream} -will then hold on to the meta-data and write it at the correct point in -the output file. - -When the input archive is being read from a non-seekable stream, the -meta-data may not be available when CopyArchiveMetaData() is called, -in which case the two streams set up a link and transfer the data -when it becomes available. - - -\membersection{wxArchiveOutputStream::CopyEntry}\label{wxarchiveoutputstreamcopyentry} - -\func{bool}{CopyEntry}{\param{wxArchiveEntry* }{entry}, \param{wxArchiveInputStream\& }{stream}} - -Takes ownership of {\it entry} and uses it to create a new entry in the -archive. {\it entry} is then opened in the input stream {\it stream} -and its contents copied to this stream. - -For archive types which compress entry data, CopyEntry() is likely to be -much more efficient than transferring the data using Read() and Write() -since it will copy them without decompressing and recompressing them. - -{\it entry} must be from the same archive file that {\it stream} is -accessing. For non-seekable streams, {\it entry} must also be the last -thing read from {\it stream}. - - -\membersection{wxArchiveOutputStream::PutNextDirEntry}\label{wxarchiveoutputstreamputnextdirentry} - -\func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}} - -Create a new directory entry -(see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir}) -with the given name and timestamp. - -\helpref{PutNextEntry()}{wxarchiveoutputstreamputnextentry} can -also be used to create directory entries, by supplying a name with -a trailing path separator. - - -\membersection{wxArchiveOutputStream::PutNextEntry}\label{wxarchiveoutputstreamputnextentry} - -\func{bool}{PutNextEntry}{\param{wxArchiveEntry* }{entry}} - -Takes ownership of {\it entry} and uses it to create a new entry in -the archive. The entry's data can then be written by writing to this -wxArchiveOutputStream. - -\func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}} - -Create a new entry with the given name, timestamp and size. The entry's -data can then be written by writing to this wxArchiveOutputStream. - - diff --git a/docs/latex/wx/array.tex b/docs/latex/wx/array.tex deleted file mode 100644 index e9e4b6b5d3..0000000000 --- a/docs/latex/wx/array.tex +++ /dev/null @@ -1,735 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: array.tex -%% Purpose: wxArray -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxArray}}\label{wxarray} - -This section describes the so called {\it dynamic arrays}. This is a C -array-like type safe data structure i.e. the member access time is constant (and not -linear according to the number of container elements as for linked lists). However, these -arrays are dynamic in the sense that they will automatically allocate more -memory if there is not enough of it for adding a new element. They also perform -range checking on the index values but in debug mode only, so please be sure to -compile your application in debug mode to use it (see \helpref{debugging overview}{debuggingoverview} for -details). So, unlike the arrays in some other -languages, attempt to access an element beyond the arrays bound doesn't -automatically expand the array but provokes an assertion failure instead in -debug build and does nothing (except possibly crashing your program) in the -release build. - -The array classes were designed to be reasonably efficient, both in terms of -run-time speed and memory consumption and the executable size. The speed of -array item access is, of course, constant (independent of the number of elements) -making them much more efficient than linked lists (\helpref{wxList}{wxlist}). -Adding items to the arrays is also implemented in more or less constant time - -but the price is preallocating the memory in advance. In the \helpref{memory management}{wxarraymemorymanagement} section -you may find some useful hints about optimizing wxArray memory usage. As for executable size, all -wxArray functions are inline, so they do not take {\it any space at all}. - -wxWidgets has three different kinds of array. All of them derive from -wxBaseArray class which works with untyped data and can not be used directly. -The standard macros WX\_DEFINE\_ARRAY(), WX\_DEFINE\_SORTED\_ARRAY() and -WX\_DEFINE\_OBJARRAY() are used to define a new class deriving from it. The -classes declared will be called in this documentation wxArray, wxSortedArray and -wxObjArray but you should keep in mind that no classes with such names actually -exist, each time you use one of WX\_DEFINE\_XXXARRAY macro you define a class -with a new name. In fact, these names are "template" names and each usage of one -of the macros mentioned above creates a template specialization for the given -element type. - -wxArray is suitable for storing integer types and pointers which it does not -treat as objects in any way, i.e. the element pointed to by the pointer is not -deleted when the element is removed from the array. It should be noted that -all of wxArray's functions are inline, so it costs strictly nothing to define as -many array types as you want (either in terms of the executable size or the -speed) as long as at least one of them is defined and this is always the case -because wxArrays are used by wxWidgets internally. This class has one serious -limitation: it can only be used for storing integral types (bool, char, short, -int, long and their unsigned variants) or pointers (of any kind). An attempt -to use with objects of sizeof() greater than sizeof(long) will provoke a -runtime assertion failure, however declaring a wxArray of floats will not (on -the machines where sizeof(float) <= sizeof(long)), yet it will {\bf not} work, -please use wxObjArray for storing floats and doubles. - -wxSortedArray is a wxArray variant which should be used when searching in the -array is a frequently used operation. It requires you to define an additional -function for comparing two elements of the array element type and always stores -its items in the sorted order (according to this function). Thus, it is - \helpref{Index()}{wxarrayindex} function execution time is $O(log(N))$ instead of -$O(N)$ for the usual arrays but the \helpref{Add()}{wxarrayadd} method is -slower: it is $O(log(N))$ instead of constant time (neglecting time spent in -memory allocation routine). However, in a usual situation elements are added to -an array much less often than searched inside it, so wxSortedArray may lead to -huge performance improvements compared to wxArray. Finally, it should be -noticed that, as wxArray, wxSortedArray can be only used for storing integral -types or pointers. - -wxObjArray class treats its elements like "objects". It may delete them when -they are removed from the array (invoking the correct destructor) and copies -them using the objects copy constructor. In order to implement this behaviour -the definition of the wxObjArray arrays is split in two parts: first, you should -declare the new wxObjArray class using WX\_DECLARE\_OBJARRAY() macro and then -you must include the file defining the implementation of template type: - and define the array class with WX\_DEFINE\_OBJARRAY() macro -from a point where the full (as opposed to `forward') declaration of the array -elements class is in scope. As it probably sounds very complicated here is an -example: - -\begin{verbatim} -#include - -// we must forward declare the array because it is used inside the class -// declaration -class MyDirectory; -class MyFile; - -// this defines two new types: ArrayOfDirectories and ArrayOfFiles which can be -// now used as shown below -WX_DECLARE_OBJARRAY(MyDirectory, ArrayOfDirectories); -WX_DECLARE_OBJARRAY(MyFile, ArrayOfFiles); - -class MyDirectory -{ -... - ArrayOfDirectories m_subdirectories; // all subdirectories - ArrayOfFiles m_files; // all files in this directory -}; - -... - -// now that we have MyDirectory declaration in scope we may finish the -// definition of ArrayOfDirectories -- note that this expands into some C++ -// code and so should only be compiled once (i.e., don't put this in the -// header, but into a source file or you will get linking errors) -#include // this is a magic incantation which must be done! -WX_DEFINE_OBJARRAY(ArrayOfDirectories); - -// that's all! -\end{verbatim} - -It is not as elegant as writing - -\begin{verbatim} -typedef std::vector ArrayOfDirectories; -\end{verbatim} - -but is not that complicated and allows the code to be compiled with any, however -dumb, C++ compiler in the world. - -Remember to #include just before each WX\_DEFINE\_OBJARRAY -ocurrence in your code, even if you have several in the same file. - -Things are much simpler for wxArray and wxSortedArray however: it is enough -just to write - -\begin{verbatim} -WX_DEFINE_ARRAY_INT(int, ArrayOfInts); -WX_DEFINE_SORTED_ARRAY_INT(int, ArrayOfSortedInts); -\end{verbatim} - -i.e. there is only one {\tt DEFINE} macro and no need for separate -{\tt DECLARE} one. For the arrays of the primitive types, the macros -{\tt WX\_DEFINE\_ARRAY\_CHAR/SHORT/INT/SIZE\_T/LONG/DOUBLE} should be used -depending on the sizeof of the values (notice that storing values of smaller -type, e.g. shorts, in an array of larger one, e.g. {\tt ARRAY\_INT}, does -\emph{not} work on all architectures!). - - -\wxheading{See also} - -\helpref{Container classes overview}{wxcontaineroverview}, -\helpref{wxList}{wxlist}, -\helpref{wxVector}{wxvector} - -\wxheading{Include files} - - for wxArray and wxSortedArray and additionally -for wxObjArray. - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - - - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Macros for template array definition}\label{arraymacros} - -To use an array you must first define the array class. This is done with the -help of the macros in this section. The class of array elements must be (at -least) forward declared for WX\_DEFINE\_ARRAY, WX\_DEFINE\_SORTED\_ARRAY and -WX\_DECLARE\_OBJARRAY macros and must be fully declared before you use -WX\_DEFINE\_OBJARRAY macro. - -\helpref{WX\_DEFINE\_ARRAY}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_EXPORTED\_ARRAY}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_USER\_EXPORTED\_ARRAY}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_SORTED\_ARRAY}{wxdefinesortedarray}\\ -\helpref{WX\_DEFINE\_SORTED\_EXPORTED\_ARRAY}{wxdefinesortedarray}\\ -\helpref{WX\_DEFINE\_SORTED\_USER\_EXPORTED\_ARRAY}{wxdefinesortedarray}\\ -\helpref{WX\_DECLARE\_EXPORTED\_OBJARRAY}{wxdeclareobjarray}\\ -\helpref{WX\_DECLARE\_USER\_EXPORTED\_OBJARRAY}{wxdeclareobjarray}\\ -\helpref{WX\_DEFINE\_OBJARRAY}{wxdefineobjarray}\\ -\helpref{WX\_DEFINE\_EXPORTED\_OBJARRAY}{wxdefineobjarray}\\ -\helpref{WX\_DEFINE\_USER\_EXPORTED\_OBJARRAY}{wxdefineobjarray} - -To slightly complicate the matters even further, the operator $->$ defined by -default for the array iterators by these macros only makes sense if the array -element type is not a pointer itself and, although it still works, this -provokes warnings from some compilers and to avoid them you should use the -{\tt \_PTR} versions of the macros above. For example, to define an array of -pointers to {\tt double} you should use: - -\begin{verbatim} -WX_DEFINE_ARRAY_PTR(double *, MyArrayOfDoublePointers); -\end{verbatim} - -Note that the above macros are generally only useful for -wxObject types. There are separate macros for declaring an array of a simple type, -such as an int. - -The following simple types are supported:\\ -int\\ -long\\ -size\_t\\ -double - -To create an array of a simple type, simply append the type you want in CAPS to -the array definition. - -For example, for an integer array, you'd use one of the following variants: - -\helpref{WX\_DEFINE\_ARRAY\_INT}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_EXPORTED\_ARRAY\_INT}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_USER\_EXPORTED\_ARRAY\_INT}{wxdefinearray}\\ -\helpref{WX\_DEFINE\_SORTED\_ARRAY\_INT}{wxdefinesortedarray}\\ -\helpref{WX\_DEFINE\_SORTED\_EXPORTED\_ARRAY\_INT}{wxdefinesortedarray}\\ -\helpref{WX\_DEFINE\_SORTED\_USER\_EXPORTED\_ARRAY\_INT}{wxdefinesortedarray}\\ - -\membersection{Constructors and destructors}\label{arrayconstructorsdestructors} - -Array classes are 100\% C++ objects and as such they have the appropriate copy -constructors and assignment operators. Copying wxArray just copies the elements -but copying wxObjArray copies the arrays items. However, for memory-efficiency -sake, neither of these classes has virtual destructor. It is not very important -for wxArray which has trivial destructor anyhow, but it does mean that you -should avoid deleting wxObjArray through a wxBaseArray pointer (as you would -never use wxBaseArray anyhow it shouldn't be a problem) and that you should not -derive your own classes from the array classes. - -\helpref{wxArray default constructor}{wxarrayctordef}\\ -\helpref{wxArray copy constructors and assignment operators}{wxarrayctorcopy}\\ -\helpref{\destruct{wxArray}}{wxarraydtor} - -\membersection{Memory management}\label{wxarraymemorymanagement} - -Automatic array memory management is quite trivial: the array starts by -preallocating some minimal amount of memory (defined by -WX\_ARRAY\_DEFAULT\_INITIAL\_SIZE) and when further new items exhaust already -allocated memory it reallocates it adding 50\% of the currently allocated -amount, but no more than some maximal number which is defined by -ARRAY\_MAXSIZE\_INCREMENT constant. Of course, this may lead to some memory -being wasted (ARRAY\_MAXSIZE\_INCREMENT in the worst case, i.e. 4Kb in the -current implementation), so the \helpref{Shrink()}{wxarrayshrink} function is -provided to deallocate the extra memory. The \helpref{Alloc()}{wxarrayalloc} -function can also be quite useful if you know in advance how many items you are -going to put in the array and will prevent the array code from reallocating the -memory more times than needed. - -\helpref{Alloc}{wxarrayalloc}\\ -\helpref{Shrink}{wxarrayshrink} - -\membersection{Number of elements and simple item access}\label{arrayelementsaccess} - -Functions in this section return the total number of array elements and allow to -retrieve them - possibly using just the C array indexing $[]$ operator which -does exactly the same as \helpref{Item()}{wxarrayitem} method. - -\helpref{GetCount}{wxarraygetcount}\\ -\helpref{IsEmpty}{wxarrayisempty}\\ -\helpref{Item}{wxarrayitem}\\ -\helpref{Last}{wxarraylast} - -\membersection{Adding items}\label{arrayadding} - -\helpref{Add}{wxarrayadd}\\ -\helpref{AddAt}{wxarrayaddat}\\ -\helpref{Insert}{wxarrayinsert}\\ -\helpref{SetCount}{wxarraysetcount}\\ -\helpref{WX\_APPEND\_ARRAY}{wxappendarray}\\ -\helpref{WX\_PREPEND\_ARRAY}{wxprependarray} - -\membersection{Removing items}\label{arrayremoving} - -\helpref{WX\_CLEAR\_ARRAY}{wxcleararray}\\ -\helpref{Empty}{wxarrayempty}\\ -\helpref{Clear}{wxarrayclear}\\ -\helpref{RemoveAt}{wxarrayremoveat}\\ -\helpref{Remove}{wxarrayremove} - -\membersection{Searching and sorting}\label{arraysearchingandsorting} - -\helpref{Index}{wxarrayindex}\\ -\helpref{IndexForInsert}{wxarrayindexforinsert}\\ -\helpref{Sort}{wxarraysort} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{WX\_DEFINE\_ARRAY}\label{wxdefinearray} - -\func{}{WX\_DEFINE\_ARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DEFINE\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DEFINE\_USER\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}, \param{}{exportspec}} - -This macro defines a new array class named {\it name} and containing the -elements of type {\it T}. The second form is used when compiling wxWidgets as -a DLL under Windows and array needs to be visible outside the DLL. The third is -needed for exporting an array from a user DLL. - -Example: - -\begin{verbatim} -WX_DEFINE_ARRAY_INT(int, MyArrayInt); - -class MyClass; -WX_DEFINE_ARRAY(MyClass *, ArrayOfMyClass); -\end{verbatim} - -Note that wxWidgets predefines the following standard array classes: {\bf wxArrayInt}, -{\bf wxArrayLong}, {\bf wxArrayShort}, {\bf wxArrayDouble}, {\bf wxArrayPtrVoid}. - - -\membersection{WX\_DEFINE\_SORTED\_ARRAY}\label{wxdefinesortedarray} - -\func{}{WX\_DEFINE\_SORTED\_ARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DEFINE\_SORTED\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DEFINE\_SORTED\_USER\_EXPORTED\_ARRAY}{\param{}{T}, \param{}{name}} - -This macro defines a new sorted array class named {\it name} and containing -the elements of type {\it T}. The second form is used when compiling wxWidgets as -a DLL under Windows and array needs to be visible outside the DLL. The third is -needed for exporting an array from a user DLL. - -Example: - -\begin{verbatim} -WX_DEFINE_SORTED_ARRAY_INT(int, MySortedArrayInt); - -class MyClass; -WX_DEFINE_SORTED_ARRAY(MyClass *, ArrayOfMyClass); -\end{verbatim} - -You will have to initialize the objects of this class by passing a comparison -function to the array object constructor like this: - -\begin{verbatim} -int CompareInts(int n1, int n2) -{ - return n1 - n2; -} - -MySortedArrayInt sorted(CompareInts); - -int CompareMyClassObjects(MyClass *item1, MyClass *item2) -{ - // sort the items by their address... - return Stricmp(item1->GetAddress(), item2->GetAddress()); -} - -ArrayOfMyClass another(CompareMyClassObjects); -\end{verbatim} - -\membersection{WX\_DECLARE\_OBJARRAY}\label{wxdeclareobjarray} - -\func{}{WX\_DECLARE\_OBJARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DECLARE\_EXPORTED\_OBJARRAY}{\param{}{T}, \param{}{name}} - -\func{}{WX\_DECLARE\_USER\_EXPORTED\_OBJARRAY}{\param{}{T}, \param{}{name}} - -This macro declares a new object array class named {\it name} and containing -the elements of type {\it T}. The second form is used when compiling wxWidgets as -a DLL under Windows and array needs to be visible outside the DLL. The third is -needed for exporting an array from a user DLL. - -Example: - -\begin{verbatim} -class MyClass; -WX_DECLARE_OBJARRAY(MyClass, wxArrayOfMyClass); // note: not "MyClass *"! -\end{verbatim} - -You must use \helpref{WX\_DEFINE\_OBJARRAY()}{wxdefineobjarray} macro to define -the array class - otherwise you would get link errors. - -\membersection{WX\_DEFINE\_OBJARRAY}\label{wxdefineobjarray} - -\func{}{WX\_DEFINE\_OBJARRAY}{\param{}{name}} - -\func{}{WX\_DEFINE\_EXPORTED\_OBJARRAY}{\param{}{name}} - -\func{}{WX\_DEFINE\_USER\_EXPORTED\_OBJARRAY}{\param{}{name}} - -This macro defines the methods of the array class {\it name} not defined by the -\helpref{WX\_DECLARE\_OBJARRAY()}{wxdeclareobjarray} macro. You must include the -file before using this macro and you must have the full -declaration of the class of array elements in scope! If you forget to do the -first, the error will be caught by the compiler, but, unfortunately, many -compilers will not give any warnings if you forget to do the second - but the -objects of the class will not be copied correctly and their real destructor will -not be called. The latter two forms are merely aliases of the first to satisfy -some people's sense of symmetry when using the exported declarations. - -Example of usage: - -\begin{verbatim} -// first declare the class! -class MyClass -{ -public: - MyClass(const MyClass&); - - ... - - virtual ~MyClass(); -}; - -#include -WX_DEFINE_OBJARRAY(wxArrayOfMyClass); -\end{verbatim} - -\membersection{WX\_APPEND\_ARRAY}\label{wxappendarray} - -\func{void}{WX\_APPEND\_ARRAY}{\param{wxArray\& }{array}, \param{wxArray\& }{other}} - -This macro may be used to append all elements of the {\it other} array to the -{\it array}. The two arrays must be of the same type. - -\membersection{WX\_PREPEND\_ARRAY}\label{wxprependarray} - -\func{void}{WX\_PREPEND\_ARRAY}{\param{wxArray\& }{array}, \param{wxArray\& }{other}} - -This macro may be used to prepend all elements of the {\it other} array to the -{\it array}. The two arrays must be of the same type. - -\membersection{WX\_CLEAR\_ARRAY}\label{wxcleararray} - -\func{void}{WX\_CLEAR\_ARRAY}{\param{wxArray\& }{array}} - -This macro may be used to delete all elements of the array before emptying it. -It can not be used with wxObjArrays - but they will delete their elements anyhow -when you call Empty(). - -\membersection{Default constructors}\label{wxarrayctordef} - -\func{}{wxArray}{\void} - -\func{}{wxObjArray}{\void} - -Default constructor initializes an empty array object. - -\func{}{wxSortedArray}{\param{int (*)(T first, T second)}{compareFunction}} - -There is no default constructor for wxSortedArray classes - you must initialize it -with a function to use for item comparison. It is a function which is passed -two arguments of type {\it T} where {\it T} is the array element type and which -should return a negative, zero or positive value according to whether the first -element passed to it is less than, equal to or greater than the second one. - -\membersection{wxArray copy constructor and assignment operator}\label{wxarrayctorcopy} - -\func{}{wxArray}{\param{const wxArray\& }{array}} - -\func{}{wxSortedArray}{\param{const wxSortedArray\& }{array}} - -\func{}{wxObjArray}{\param{const wxObjArray\& }{array}} - -\func{wxArray\&}{operator$=$}{\param{const wxArray\& }{array}} - -\func{wxSortedArray\&}{operator$=$}{\param{const wxSortedArray\& }{array}} - -\func{wxObjArray\&}{operator$=$}{\param{const wxObjArray\& }{array}} - -The copy constructors and assignment operators perform a shallow array copy -(i.e. they don't copy the objects pointed to even if the source array contains -the items of pointer type) for wxArray and wxSortedArray and a deep copy (i.e. -the array element are copied too) for wxObjArray. - -\membersection{wxArray::\destruct{wxArray}}\label{wxarraydtor} - -\func{}{\destruct{wxArray}}{\void} - -\func{}{\destruct{wxSortedArray}}{\void} - -\func{}{\destruct{wxObjArray}}{\void} - -The wxObjArray destructor deletes all the items owned by the array. This is not -done by wxArray and wxSortedArray versions - you may use -\helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro for this. - -\membersection{wxArray::Add}\label{wxarrayadd} - -\func{void}{Add}{\param{T }{item}, \param{size\_t}{ copies = $1$}} - -\func{size\_t}{Add}{\param{T }{item}} - -\func{void}{Add}{\param{T *}{item}} - -\func{void}{Add}{\param{T \&}{item}, \param{size\_t}{ copies = $1$}} - -Appends the given number of {\it copies} of the {\it item} to the array -consisting of the elements of type {\it T}. - -The first version is used with wxArray. The second is used with wxSortedArray, -returning the index where {\it item} is stored. The third and the -fourth ones are used with wxObjArray. There is an important difference between -them: if you give a pointer to the array, it will take ownership of it, i.e. -will delete it when the item is deleted from the array. If you give a reference -to the array, however, the array will make a copy of the item and will not take -ownership of the original item. Once again, it only makes sense for wxObjArrays -because the other array types never take ownership of their elements. Also note -that you cannot append more than one pointer as reusing it would lead to -deleting it twice (or more) and hence to a crash. - -You may also use \helpref{WX\_APPEND\_ARRAY}{wxappendarray} macro to append all -elements of one array to another one but it is more efficient to use -{\it copies} parameter and modify the elements in place later if you plan to -append a lot of items. - -\membersection{wxSortedArray::AddAt}\label{wxarrayaddat} - -\func{void}{AddAt}{\param{T }{item}, \param{size\_t}{ index}} - -Inserts the given {\it item} into the array in the specified {\it index} - position. - -Be aware that you will set out the order of the array if you give a wrong - position. - -This function is useful in conjunction with -\helpref{IndexForInsert}{wxarrayindexforinsert} for a common operation -of "insert only if not found". - -\membersection{wxArray::Alloc}\label{wxarrayalloc} - -\func{void}{Alloc}{\param{size\_t }{count}} - -Preallocates memory for a given number of array elements. It is worth calling -when the number of items which are going to be added to the array is known in -advance because it will save unneeded memory reallocation. If the array already -has enough memory for the given number of items, nothing happens. In any case, -the existing contents of the array is not modified. - -\membersection{wxArray::Clear}\label{wxarrayclear} - -\func{void}{Clear}{\void} - -This function does the same as \helpref{Empty()}{wxarrayempty} and additionally -frees the memory allocated to the array. - -\membersection{wxObjArray::Detach}\label{wxobjarraydetach} - -\func{T *}{Detach}{\param{size\_t }{index}} - -Removes the element from the array, but, unlike, -\helpref{Remove()}{wxarrayremove} doesn't delete it. The function returns the -pointer to the removed element. - -\membersection{wxArray::Empty}\label{wxarrayempty} - -\func{void}{Empty}{\void} - -Empties the array. For wxObjArray classes, this destroys all of the array -elements. For wxArray and wxSortedArray this does nothing except marking the -array of being empty - this function does not free the allocated memory, use -\helpref{Clear()}{wxarrayclear} for this. - -\membersection{wxArray::GetCount}\label{wxarraygetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Return the number of items in the array. - -\membersection{wxArray::Index}\label{wxarrayindex} - -\constfunc{int}{Index}{\param{T\& }{item}, \param{bool }{searchFromEnd = false}} - -\constfunc{int}{Index}{\param{T\& }{item}} - -The first version of the function is for wxArray and wxObjArray, the second is -for wxSortedArray only. - -Searches the element in the array, starting from either beginning or the end -depending on the value of {\it searchFromEnd} parameter. {\tt wxNOT\_FOUND} is -returned if the element is not found, otherwise the index of the element is -returned. - -Linear search is used for the wxArray and wxObjArray classes but binary search -in the sorted array is used for wxSortedArray (this is why searchFromEnd -parameter doesn't make sense for it). - -{\bf NB:} even for wxObjArray classes, the operator==() of the elements in the -array is {\bf not} used by this function. It searches exactly the given -element in the array and so will only succeed if this element had been -previously added to the array, but fail even if another, identical, element is -in the array. - -\membersection{wxSortedArray::IndexForInsert}\label{wxarrayindexforinsert} - -\constfunc{size\_t}{IndexForInsert}{\param{T }{item}} - -Search for a place to insert {\it item} into the sorted array (binary search). -The index returned is just before the first existing item that is greater or equal -(according to the compare function) to the given {\it item}. - -You have to do extra work to know if the {\it item} already exists in array. - -This function is useful in conjunction with -\helpref{AddAt}{wxarrayaddat} for a common operation -of "insert only if not found". - -\membersection{wxArray::Insert}\label{wxarrayinsert} - -\func{void}{Insert}{\param{T }{item}, \param{size\_t }{n}, \param{size\_t }{copies = $1$}} - -\func{void}{Insert}{\param{T *}{item}, \param{size\_t }{n}} - -\func{void}{Insert}{\param{T \&}{item}, \param{size\_t }{n}, \param{size\_t }{copies = $1$}} - -Insert the given number of {\it copies} of the {\it item} into the array before -the existing item {\it n} - thus, {\it Insert(something, 0u)} will insert an -item in such way that it will become the first array element. - -wxSortedArray doesn't have this function because inserting in wrong place -would break its sorted condition. - -Please see \helpref{Add()}{wxarrayadd} for explanation of the differences -between the overloaded versions of this function. - -\membersection{wxArray::IsEmpty}\label{wxarrayisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns true if the array is empty, false otherwise. - -\membersection{wxArray::Item}\label{wxarrayitem} - -\constfunc{T\&}{Item}{\param{size\_t }{index}} - -Returns the item at the given position in the array. If {\it index} is out of -bounds, an assert failure is raised in the debug builds but nothing special is -done in the release build. - -The returned value is of type "reference to the array element type" for all of -the array classes. - -\membersection{wxArray::Last}\label{wxarraylast} - -\constfunc{T\&}{Last}{\void} - -Returns the last element in the array, i.e. is the same as Item(GetCount() - 1). -An assert failure is raised in the debug mode if the array is empty. - -The returned value is of type "reference to the array element type" for all of -the array classes. - -\membersection{wxArray::Remove}\label{wxarrayremove} - -\func{\void}{Remove}{\param{T }{item}} - -Removes an element from the array by value: the first item of the -array equal to {\it item} is removed, an assert failure will result from an -attempt to remove an item which doesn't exist in the array. - -When an element is removed from wxObjArray it is deleted by the array - use -\helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On the -other hand, when an object is removed from a wxArray nothing happens - you -should delete it manually if required: - -\begin{verbatim} -T *item = array[n]; -delete item; -array.Remove(n) -\end{verbatim} - -See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all -elements of a wxArray (supposed to contain pointers). - -\membersection{wxArray::RemoveAt}\label{wxarrayremoveat} - -\func{\void}{RemoveAt}{\param{size\_t }{index}, \param{size\_t }{count = $1$}} - -Removes {\it count} elements starting at {\it index} from the array. When an -element is removed from wxObjArray it is deleted by the array - use -\helpref{Detach()}{wxobjarraydetach} if you don't want this to happen. On -the other hand, when an object is removed from a wxArray nothing happens - -you should delete it manually if required: - -\begin{verbatim} -T *item = array[n]; -delete item; -array.RemoveAt(n) -\end{verbatim} - -See also \helpref{WX\_CLEAR\_ARRAY}{wxcleararray} macro which deletes all -elements of a wxArray (supposed to contain pointers). - -\membersection{wxArray::SetCount}\label{wxarraysetcount} - -\func{void}{SetCount}{\param{size\_t }{count}, \param{T }{defval = T($0$)}} - -This function ensures that the number of array elements is at least -{\it count}. If the array has already {\it count} or more items, nothing is -done. Otherwise, {\tt count - GetCount()} elements are added and initialized to -the value {\it defval}. - -\wxheading{See also} - -\helpref{GetCount}{wxarraygetcount} - -\membersection{wxArray::Shrink}\label{wxarrayshrink} - -\func{void}{Shrink}{\void} - -Frees all memory unused by the array. If the program knows that no new items -will be added to the array it may call Shrink() to reduce its memory usage. -However, if a new item is added to the array, some extra memory will be -allocated again. - -\membersection{wxArray::Sort}\label{wxarraysort} - -\func{void}{Sort}{\param{CMPFUNC }{compareFunction}} - -The notation CMPFUNC should be read as if we had the following declaration: - -\begin{verbatim} -template int CMPFUNC(T *first, T *second); -\end{verbatim} - -where {\it T} is the type of the array elements. I.e. it is a function returning -{\it int} which is passed two arguments of type {\it T *}. - -Sorts the array using the specified compare function: this function should -return a negative, zero or positive value according to whether the first element -passed to it is less than, equal to or greater than the second one. - -wxSortedArray doesn't have this function because it is always sorted. - diff --git a/docs/latex/wx/arrstrng.tex b/docs/latex/wx/arrstrng.tex deleted file mode 100644 index fc5877f8cb..0000000000 --- a/docs/latex/wx/arrstrng.tex +++ /dev/null @@ -1,296 +0,0 @@ -\section{\class{wxArrayString}}\label{wxarraystring} - -wxArrayString is an efficient container for storing -\helpref{wxString}{wxstring} objects. It has the same features as all -\helpref{wxArray}{wxarray} classes, i.e. it dynamically expands when new items -are added to it (so it is as easy to use as a linked list), but the access -time to the elements is constant, instead of being linear in number of -elements as in the case of linked lists. It is also very size efficient and -doesn't take more space than a C array {\it wxString[]} type (wxArrayString -uses its knowledge of internals of wxString class to achieve this). - -This class is used in the same way as other dynamic \helpref{arrays}{wxarray}, -except that no {\it WX\_DEFINE\_ARRAY} declaration is needed for it. When a -string is added or inserted in the array, a copy of the string is created, so -the original string may be safely deleted (e.g. if it was a {\it wxChar *} -pointer the memory it was using can be freed immediately after this). In -general, there is no need to worry about string memory deallocation when using -this class - it will always free the memory it uses itself. - -The references returned by \helpref{Item}{wxarraystringitem}, -\helpref{Last}{wxarraystringlast} or -\helpref{operator[]}{wxarraystringoperatorindex} are not constant, so the -array elements may be modified in place like this - -\begin{verbatim} - array.Last().MakeUpper(); -\end{verbatim} - -There is also a variant of wxArrayString called wxSortedArrayString which has -exactly the same methods as wxArrayString, but which always keeps the string -in it in (alphabetical) order. wxSortedArrayString uses binary search in its -\helpref{Index}{wxarraystringindex} function (instead of linear search for -wxArrayString::Index) which makes it much more efficient if you add strings to -the array rarely (because, of course, you have to pay for Index() efficiency -by having Add() be slower) but search for them often. Several methods should -not be used with sorted array (basically, all which break the order of items) -which is mentioned in their description. - -Final word: none of the methods of wxArrayString is virtual including its -destructor, so this class should not be used as a base class. - -\wxheading{Derived from} - -Although this is not true strictly speaking, this class may be considered as a -specialization of \helpref{wxArray}{wxarray} class for the wxString member -data: it is not implemented like this, but it does have all of the wxArray -functions. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxArray}{wxarray}, \helpref{wxString}{wxstring}, \helpref{wxString overview}{wxstringoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxArrayString::wxArrayString}\label{wxarraystringctor} - -\func{}{wxArrayString}{\void} - -Default constructor. - -\func{}{wxArrayString}{\param{const wxArrayString\&}{ array}} - -Copy constructor. Note that when an array is assigned to a sorted array, its contents is -automatically sorted during construction. - -\func{}{wxArrayString}{\param{size\_t}{ sz}, \param{const char**}{ arr}} - -\func{}{wxArrayString}{\param{size\_t}{ sz}, \param{const wchar\_t**}{ arr}} - -Constructor from a C string array. Pass a size {\it sz} and array {\it arr}. - -\func{}{wxArrayString}{\param{size\_t}{ sz}, \param{const wxString*}{ arr}} - -Constructor from a wxString array. Pass a size {\it sz} and array {\it arr}. - -\membersection{wxArrayString::\destruct{wxArrayString}}\label{wxarraystringdtor} - -\func{}{\destruct{wxArrayString}}{} - -Destructor frees memory occupied by the array strings. For the performance -reasons it is not virtual, so this class should not be derived from. - -\membersection{wxArrayString::operator=}\label{wxarraystringoperatorassign} - -\func{wxArrayString \&}{operator $=$}{\param{const wxArrayString\&}{ array}} - -Assignment operator. - -\membersection{wxArrayString::operator==}\label{wxarraystringoperatorequal} - -\constfunc{bool}{operator $==$}{\param{const wxArrayString\&}{ array}} - -Compares 2 arrays respecting the case. Returns true only if the arrays have -the same number of elements and the same strings in the same order. - -\membersection{wxArrayString::operator!=}\label{wxarraystringoperatornotequal} - -\constfunc{bool}{operator $!=$}{\param{const wxArrayString\&}{ array}} - -Compares 2 arrays respecting the case. Returns true if the arrays have -different number of elements or if the elements don't match pairwise. - -\membersection{wxArrayString::operator[]}\label{wxarraystringoperatorindex} - -\func{wxString\&}{operator[]}{\param{size\_t }{nIndex}} - -Return the array element at position {\it nIndex}. An assert failure will -result from an attempt to access an element beyond the end of array in debug -mode, but no check is done in release mode. - -This is the operator version of \helpref{Item}{wxarraystringitem} method. - -\membersection{wxArrayString::Add}\label{wxarraystringadd} - -\func{size\_t}{Add}{\param{const wxString\& }{str}, \param{size\_t}{ copies = $1$}} - -Appends the given number of {\it copies} of the new item {\it str} to the -array and returns the index of the first new item in the array. - -{\bf Warning:} For sorted arrays, the index of the inserted item will not be, -in general, equal to \helpref{GetCount()}{wxarraystringgetcount} - 1 because -the item is inserted at the correct position to keep the array sorted and not -appended. - -See also: \helpref{Insert}{wxarraystringinsert} - -\membersection{wxArrayString::Alloc}\label{wxarraystringalloc} - -\func{void}{Alloc}{\param{size\_t }{nCount}} - -Preallocates enough memory to store {\it nCount} items. This function may be -used to improve array class performance before adding a known number of items -consecutively. - -See also: \helpref{Dynamic array memory management}{wxarraymemorymanagement} - -\membersection{wxArrayString::Clear}\label{wxarraystringclear} - -\func{void}{Clear}{\void} - -Clears the array contents and frees memory. - -See also: \helpref{Empty}{wxarraystringempty} - -\membersection{wxArrayString::Empty}\label{wxarraystringempty} - -\func{void}{Empty}{\void} - -Empties the array: after a call to this function -\helpref{GetCount}{wxarraystringgetcount} will return $0$. However, this -function does not free the memory used by the array and so should be used when -the array is going to be reused for storing other strings. Otherwise, you -should use \helpref{Clear}{wxarraystringclear} to empty the array and free -memory. - -\membersection{wxArrayString::GetCount}\label{wxarraystringgetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of items in the array. - -\membersection{wxArrayString::Index}\label{wxarraystringindex} - -\func{int}{Index}{\param{const wxString\& }{ sz}, \param{bool}{ bCase = true}, \param{bool}{ bFromEnd = false}} - -Search the element in the array, starting from the beginning if -{\it bFromEnd} is false or from end otherwise. If {\it bCase}, comparison is -case sensitive (default), otherwise the case is ignored. - -This function uses linear search for wxArrayString and binary search for -wxSortedArrayString, but it ignores the {\it bCase} and {\it bFromEnd} -parameters in the latter case. - -Returns index of the first item matched or {\tt wxNOT\_FOUND} if there is no match. - -\membersection{wxArrayString::Insert}\label{wxarraystringinsert} - -\func{void}{Insert}{\param{const wxString\& }{str}, \param{size\_t}{ nIndex}, \param{size\_t }{copies = $1$}} - -Insert the given number of {\it copies} of the new element in the array before the position {\it nIndex}. Thus, for -example, to insert the string in the beginning of the array you would write - -\begin{verbatim} -Insert("foo", 0); -\end{verbatim} - -If {\it nIndex} is equal to {\it GetCount()} this function behaves as -\helpref{Add}{wxarraystringadd}. - -{\bf Warning:} this function should not be used with sorted arrays because it -could break the order of items and, for example, subsequent calls to -\helpref{Index()}{wxarraystringindex} would then not work! - -\membersection{wxArrayString::IsEmpty}\label{wxarraystringisempty} - -\func{bool}{IsEmpty}{} - -Returns true if the array is empty, false otherwise. This function returns the -same result as {\it GetCount() == 0} but is probably easier to read. - -\membersection{wxArrayString::Item}\label{wxarraystringitem} - -\constfunc{wxString\&}{Item}{\param{size\_t }{nIndex}} - -Return the array element at position {\it nIndex}. An assert failure will -result from an attempt to access an element beyond the end of array in debug -mode, but no check is done in release mode. - -See also \helpref{operator[]}{wxarraystringoperatorindex} for the operator -version. - -\membersection{wxArrayString::Last}\label{wxarraystringlast} - -\func{wxString&}{Last}{} - -Returns the last element of the array. Attempt to access the last element of -an empty array will result in assert failure in debug build, however no checks -are done in release mode. - -\membersection{wxArrayString::Remove}\label{wxarraystringremove} - -\func{void}{Remove}{\param{const wxString\&}{ sz}} - -Removes the first item matching this value. An assert failure is provoked by -an attempt to remove an element which does not exist in debug build. - -See also: \helpref{Index}{wxarraystringindex} - -\membersection{wxArrayString::RemoveAt}\label{wxarraystringremoveat} - -\func{void}{RemoveAt}{\param{size\_t }{nIndex}, \param{size\_t }{count = $1$}} - -Removes {\it count} items starting at position {\it nIndex} from the array. - -\membersection{wxArrayString::Shrink}\label{wxarraystringshrink} - -\func{void}{Shrink}{\void} - -Releases the extra memory allocated by the array. This function is useful to -minimize the array memory consumption. - -See also: \helpref{Alloc}{wxarraystringalloc}, \helpref{Dynamic array memory management}{wxarraymemorymanagement} - -\membersection{wxArrayString::Sort}\label{wxarraystringsort} - -\func{void}{Sort}{\param{bool}{ reverseOrder = false}} - -Sorts the array in alphabetical order or in reverse alphabetical order if -{\it reverseOrder} is true. The sort is case-sensitive. - -{\bf Warning:} this function should not be used with sorted array because it -could break the order of items and, for example, subsequent calls to -\helpref{Index()}{wxarraystringindex} would then not work! - -\func{void}{Sort}{\param{CompareFunction }{compareFunction}} - -Sorts the array using the specified {\it compareFunction} for item comparison. -{\it CompareFunction} is defined as a function taking two {\it const -wxString\&} parameters and returning an {\it int} value less than, equal to or -greater than 0 if the first string is less than, equal to or greater than the -second one. - -\wxheading{Example} - -The following example sorts strings by their length. - -\begin{verbatim} -static int CompareStringLen(const wxString& first, const wxString& second) -{ - return first.length() - second.length(); -} - -... - -wxArrayString array; - -array.Add("one"); -array.Add("two"); -array.Add("three"); -array.Add("four"); - -array.Sort(CompareStringLen); -\end{verbatim} - -{\bf Warning:} this function should not be used with sorted array because it -could break the order of items and, for example, subsequent calls to -\helpref{Index()}{wxarraystringindex} would then not work! - diff --git a/docs/latex/wx/artprov.tex b/docs/latex/wx/artprov.tex deleted file mode 100644 index 18c24acaeb..0000000000 --- a/docs/latex/wx/artprov.tex +++ /dev/null @@ -1,307 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% artprov.h at 08/Apr/02 17:44:57 -% - -\section{\class{wxArtProvider}}\label{wxartprovider} - -wxArtProvider class is used to customize the look of wxWidgets application. -When wxWidgets needs to display an icon or a bitmap (e.g. in the standard file -dialog), it does not use a hard-coded resource but asks wxArtProvider for it -instead. This way users can plug in their own wxArtProvider class and easily -replace standard art with their own version. All -that is needed is to derive a class from wxArtProvider, override either its -\helpref{CreateBitmap}{wxartprovidercreatebitmap} and/or its -\helpref{CreateIconBundle}{wxartprovidercreateiconbundle} methods -and register the provider with -\helpref{wxArtProvider::Push}{wxartproviderpush}: - -\begin{verbatim} - class MyProvider : public wxArtProvider - { - protected: - wxBitmap CreateBitmap(const wxArtID& id, - const wxArtClient& client, - const wxSize size) - - // optionally override this one as well - wxIconBundle CreateIconBundle(const wxArtID& id, - const wxArtClient& client) - { ... } - }; - ... - wxArtProvider::Push(new MyProvider); -\end{verbatim} - -If you need bitmap images (of the same artwork) that should be displayed at different sizes -you should probably consider overriding \helpref{CreateIconBundle()}{wxartprovidercreateiconbundle} -and supplying icon bundles that contain different bitmap sizes. - -There's another way of taking advantage of this class: you can use it in your code and use -platform native icons as provided by \helpref{wxArtProvider::GetBitmap}{wxartprovidergetbitmap} or -\helpref{wxArtProvider::GetIcon}{wxartprovidergeticon} (NB: this is not yet really -possible as of wxWidgets 2.3.3, the set of wxArtProvider bitmaps is too -small). - - -\membersection{Identifying art resources}\label{artprovideridentifying} - -Every bitmap and icon bundle are known to wxArtProvider under an unique ID that is used when -requesting a resource from it. The ID is represented by wxArtID type and can -have one of these predefined values (you can see bitmaps represented by these -constants in the \helpref{artprov}{sampleartprovider} sample): -\begin{itemize}\itemsep=0pt - -\item wxART\_ERROR -\item wxART\_QUESTION -\item wxART\_WARNING -\item wxART\_INFORMATION -\item wxART\_ADD\_BOOKMARK -\item wxART\_DEL\_BOOKMARK -\item wxART\_HELP\_SIDE\_PANEL -\item wxART\_HELP\_SETTINGS -\item wxART\_HELP\_BOOK -\item wxART\_HELP\_FOLDER -\item wxART\_HELP\_PAGE -\item wxART\_GO\_BACK -\item wxART\_GO\_FORWARD -\item wxART\_GO\_UP -\item wxART\_GO\_DOWN -\item wxART\_GO\_TO\_PARENT -\item wxART\_GO\_HOME -\item wxART\_PRINT -\item wxART\_HELP -\item wxART\_TIP -\item wxART\_REPORT\_VIEW -\item wxART\_LIST\_VIEW -\item wxART\_NEW\_DIR -\item wxART\_FOLDER -\item wxART\_FOLDER\_OPEN -\item wxART\_GO\_DIR\_UP -\item wxART\_EXECUTABLE\_FILE -\item wxART\_NORMAL\_FILE -\item wxART\_TICK\_MARK -\item wxART\_CROSS\_MARK -\item wxART\_MISSING\_IMAGE -\item wxART\_NEW -\item wxART\_FILE\_OPEN -\item wxART\_FILE\_SAVE -\item wxART\_FILE\_SAVE\_AS -\item wxART\_DELETE -\item wxART\_COPY -\item wxART\_CUT -\item wxART\_PASTE -\item wxART\_UNDO -\item wxART\_REDO -\item wxART\_QUIT -\item wxART\_FIND -\item wxART\_FIND\_AND\_REPLACE -\item wxART\_HARDDISK -\item wxART\_FLOPPY -\item wxART\_CDROM -\item wxART\_REMOVABLE - -\end{itemize} - -Additionally, any string recognized by custom art providers registered using -\helpref{Push}{wxartproviderpush} may be used. - -\wxheading{GTK+ Note} - -When running under GTK+ 2, GTK+ stock item IDs (e.g. {\tt "gtk-cdrom"}) may -be used as well. Additionally, if wxGTK was compiled against GTK+ >= 2.4, then -it is also possible to load icons from current icon theme by specifying their -name (without extension and directory components). Icon themes recognized -by GTK+ follow the -\urlref{freedesktop.org Icon Themes specification}{http://freedesktop.org/Standards/icon-theme-spec}. Note that themes are not guaranteed to contain all -icons, so wxArtProvider may return {\tt wxNullBitmap} or {\tt wxNullIcon}. -Default theme is typically installed in {\tt /usr/share/icons/hicolor}. - - -\membersection{Clients}\label{artproviderclients} - -Client is the entity that calls wxArtProvider's GetBitmap or GetIcon -function. It is represented by wxClientID type and can have one of these -values: -\begin{itemize}\itemsep=0pt -\item wxART\_TOOLBAR -\item wxART\_MENU -\item wxART\_BUTTON -\item wxART\_FRAME\_ICON -\item wxART\_CMN\_DIALOG -\item wxART\_HELP\_BROWSER -\item wxART\_MESSAGE\_BOX -\item wxART\_OTHER (used for all requests that don't fit into any of the categories above) -\end{itemize} -Client ID servers as a hint to wxArtProvider that is supposed to help it to -choose the best looking bitmap. For example it is often desirable to use -slightly different icons in menus and toolbars even though they represent the -same action (e.g. {\tt wx\_ART\_FILE\_OPEN}). Remember that this is really -only a hint for wxArtProvider -- it is common that -\helpref{wxArtProvider::GetBitmap}{wxartprovidergetbitmap} -returns identical bitmap for different {\it client} values! - -\wxheading{See also} - -See the \helpref{artprov}{sampleartprovider} sample for an example of wxArtProvider usage. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxArtProvider::\destruct{wxArtProvider}}\label{wxartproviderdtor} - -\func{}{\destruct{wxArtProvider}}{\void} - -The destructor automatically removes the provider from the provider stack used -by \helpref{GetBitmap}{wxartprovidergetbitmap}. - - -\membersection{wxArtProvider::CreateBitmap}\label{wxartprovidercreatebitmap} - -\func{wxBitmap}{CreateBitmap}{\param{const wxArtID\& }{id}, \param{const wxArtClient\& }{client}, \param{const wxSize\& }{size}} - -Derived art provider classes must override this method to create requested art -resource. Note that returned bitmaps are cached by wxArtProvider and it is -therefore not necessary to optimize CreateBitmap() for speed (e.g. you may -create wxBitmap objects from XPMs here). - -\wxheading{Parameters} - -\docparam{id}{wxArtID unique identifier of the bitmap.} - -\docparam{client}{wxArtClient identifier of the client (i.e. who is asking for the bitmap). -This only servers as a hint.} - -\docparam{size}{Preferred size of the bitmap. The function may return a bitmap of different -dimensions, it will be automatically rescaled to meet client's request.} - -\wxheading{Note} - -This is {\bf not} part of wxArtProvider's public API, use -\helpref{wxArtProvider::GetBitmap}{wxartprovidergetbitmap} or -\helpref{wxArtProvider::GetIconBundle}{wxartprovidergeticonbundle} or -\helpref{wxArtProvider::GetIcon}{wxartprovidergeticon} -to query wxArtProvider for a resource. - -\wxheading{See also} - -\helpref{CreateIconBundle}{wxartprovidercreateiconbundle} - - -\membersection{wxArtProvider::CreateIconBundle}\label{wxartprovidercreateiconbundle} - -\func{wxIconBundle}{CreateIconBundle}{\param{const wxArtID\& }{id}, \param{const wxArtClient\& }{client}} - -This method is similar to \helpref{CreateBitmap}{wxartprovidercreatebitmap} but -can be used when a bitmap (or an icon) exists in several sizes. - - - -\membersection{wxArtProvider::Delete}\label{wxartproviderdelete} - -\func{static bool}{Delete}{\param{wxArtProvider* }{provider}} - -Delete the given \arg{provider}. - - -\membersection{wxArtProvider::GetBitmap}\label{wxartprovidergetbitmap} - -\func{static wxBitmap}{GetBitmap}{\param{const wxArtID\& }{id}, \param{const wxArtClient\& }{client = wxART\_OTHER}, \param{const wxSize\& }{size = wxDefaultSize}} - -Query registered providers for bitmap with given ID. - -\wxheading{Parameters} - -\docparam{id}{wxArtID unique identifier of the bitmap.} - -\docparam{client}{wxArtClient identifier of the client (i.e. who is asking for the bitmap).} - -\docparam{size}{Size of the returned bitmap or {\tt wxDefaultSize} if size doesn't matter.} - -\wxheading{Return value} - -The bitmap if one of registered providers recognizes the ID or wxNullBitmap otherwise. - - -\membersection{wxArtProvider::GetIconBundle}\label{wxartprovidergeticonbundle} - -\func{static wxIconBundle}{GetIconBundle}{\param{const wxArtID\& }{id}, \param{const wxArtClient\& }{client = wxART\_OTHER}} - -Query registered providers for icon bundle with given ID. - -\wxheading{Parameters} - -\docparam{id}{wxArtID unique identifier of the icon bundle.} - -\docparam{client}{wxArtClient identifier of the client (i.e. who is asking for the icon bundle).} - -\wxheading{Return value} - -The icon bundle if one of registered providers recognizes the ID or wxNullIconBundle otherwise. - - -\membersection{wxArtProvider::GetIcon}\label{wxartprovidergeticon} - -\func{static wxIcon}{GetIcon}{\param{const wxArtID\& }{id}, \param{const wxArtClient\& }{client = wxART\_OTHER}, \param{const wxSize\& }{size = wxDefaultSize}} - -Same as \helpref{wxArtProvider::GetBitmap}{wxartprovidergetbitmap}, but -return a wxIcon object (or wxNullIcon on failure). - -\func{static wxSize}{GetSizeHint}{\param{const wxArtClient\& }{client}, \param{bool }{platform\_default = false}} - -Returns a suitable size hint for the given {\it wxArtClient}. If -{\it platform\_default} is \true, return a size based on the current platform, -otherwise return the size from the topmost wxArtProvider. {\it wxDefaultSize} may be -returned if the client doesn't have a specified size, like wxART\_OTHER for example. - - -\membersection{wxArtProvider::Insert}\label{wxartproviderinsert} - -\func{static void}{Insert}{\param{wxArtProvider* }{provider}} - -Register new art provider and add it to the bottom of providers stack (i.e. -it will be queried as the last one). - -\wxheading{See also} - -\helpref{Push}{wxartproviderpush} - - -\membersection{wxArtProvider::Pop}\label{wxartproviderctor} - -\func{static bool}{Pop}{\void} - -Remove latest added provider and delete it. - - -\membersection{wxArtProvider::Push}\label{wxartproviderpush} - -\func{static void}{Push}{\param{wxArtProvider* }{provider}} - -Register new art provider and add it to the top of providers stack (i.e. it -will be queried as the first provider). - -\wxheading{See also} - -\helpref{Insert}{wxartproviderinsert} - - -\membersection{wxArtProvider::Remove}\label{wxartproviderremove} - -\func{static bool}{Remove}{\param{wxArtProvider* }{provider}} - -Remove a provider from the stack if it is on it. The provider is {\emph not} -deleted, unlike when using \helpref{Delete()}{wxartproviderdelete}. - diff --git a/docs/latex/wx/auidockart.tex b/docs/latex/wx/auidockart.tex deleted file mode 100644 index 36ece54d7f..0000000000 --- a/docs/latex/wx/auidockart.tex +++ /dev/null @@ -1,214 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% dockart.h at 04/Nov/06 21:54:42 -% - -\section{\class{wxAuiDockArt}}\label{wxauidockart} - -wxAuiDockArt is part of the wxAUI class framework. -See also \helpref{wxAUI overview}{wxauioverview}. - -Dock art provider code - a dock provider provides all drawing -functionality to the wxAui dock manager. This allows the dock -manager to have a plugable look-and-feel. - -By default, a \helpref{wxAuiManager}{wxauimanager} uses an -instance of this class called {\bf wxAuiDefaultDockArt} which -provides bitmap art and a colour scheme that is adapted to -the major platforms' look. You can either derive from that -class to alter its behaviour or write a completely new dock -art class. Call \helpref{wxAuiManager::SetArtProvider}{wxauimanagersetartprovider} -to make use this new dock art. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAui}{librarieslist} - -\wxheading{See also} - -\helpref{wxAuiManager}{wxauimanager}, -\helpref{wxAuiPaneInfo}{wxauipaneinfo} - -\wxheading{Data structures} - -\begin{verbatim} -enum wxAuiPaneDockArtSetting -{ - wxAUI_DOCKART_SASH_SIZE = 0, - wxAUI_DOCKART_CAPTION_SIZE = 1, - wxAUI_DOCKART_GRIPPER_SIZE = 2, - wxAUI_DOCKART_PANE_BORDER_SIZE = 3, - wxAUI_DOCKART_PANE_BUTTON_SIZE = 4, - wxAUI_DOCKART_BACKGROUND_COLOUR = 5, - wxAUI_DOCKART_SASH_COLOUR = 6, - wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7, - wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8, - wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9, - wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10, - wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11, - wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12, - wxAUI_DOCKART_BORDER_COLOUR = 13, - wxAUI_DOCKART_GRIPPER_COLOUR = 14, - wxAUI_DOCKART_CAPTION_FONT = 15, - wxAUI_DOCKART_GRADIENT_TYPE = 16 -} -\end{verbatim} - -\begin{verbatim} -enum wxAuiPaneDockArtGradients -{ - wxAUI_GRADIENT_NONE = 0, - wxAUI_GRADIENT_VERTICAL = 1, - wxAUI_GRADIENT_HORIZONTAL = 2 -} -\end{verbatim} - -\begin{verbatim} -enum wxAuiPaneButtonState -{ - wxAUI_BUTTON_STATE_NORMAL = 0, - wxAUI_BUTTON_STATE_HOVER = 1, - wxAUI_BUTTON_STATE_PRESSED = 2 -} -\end{verbatim} - -\begin{verbatim} -enum wxAuiButtonId -{ - wxAUI_BUTTON_CLOSE = 101, - wxAUI_BUTTON_MAXIMIZE_RESTORE = 102, - wxAUI_BUTTON_MINIMIZE = 103, - wxAUI_BUTTON_PIN = 104, - wxAUI_BUTTON_OPTIONS = 105, - wxAUI_BUTTON_WINDOWLIST = 106, - wxAUI_BUTTON_LEFT = 107, - wxAUI_BUTTON_RIGHT = 108, - wxAUI_BUTTON_UP = 109, - wxAUI_BUTTON_DOWN = 110, - wxAUI_BUTTON_CUSTOM1 = 201, - wxAUI_BUTTON_CUSTOM2 = 202, - wxAUI_BUTTON_CUSTOM3 = 203 -}; -\end{verbatim} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAuiDockArt::wxAuiDockArt}\label{wxauidockartwxauidockart} - -\func{}{wxAuiDockArt}{\void} - -Constructor. - -\membersection{wxAuiDockArt::\destruct{wxAuiDockArt}}\label{wxauidockartdtor} - -\func{}{\destruct{wxAuiDockArt}}{\void} - -Destructor. - -\membersection{wxAuiDockArt::DrawBackground}\label{wxauidockartdrawbackground} - -\func{virtual void}{DrawBackground}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{int }{orientation}, \param{const wxRect\& }{rect}} - -Draws a background. - -\membersection{wxAuiDockArt::DrawBorder}\label{wxauidockartdrawborder} - -\func{virtual void}{DrawBorder}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{const wxRect\& }{rect}, \param{wxAuiPaneInfo\& }{pane}} - -Draws a border. - -\membersection{wxAuiDockArt::DrawCaption}\label{wxauidockartdrawcaption} - -\func{virtual void}{DrawCaption}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{const wxString\& }{text}, \param{const wxRect\& }{rect}, \param{wxAuiPaneInfo\& }{pane}} - -Draws a caption. - -\membersection{wxAuiDockArt::DrawGripper}\label{wxauidockartdrawgripper} - -\func{virtual void}{DrawGripper}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{const wxRect\& }{rect}, \param{wxAuiPaneInfo\& }{pane}} - -Draws a gripper. - -\membersection{wxAuiDockArt::DrawPaneButton}\label{wxauidockartdrawpanebutton} - -\func{virtual void}{DrawPaneButton}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{int }{button}, \param{int }{button\_state}, \param{const wxRect\& }{rect}, \param{wxAuiPaneInfo\& }{pane}} - -Draws a button in the pane's title bar. - -{\it button} can be one of the values of {\bf wxAuiButtonId}. - -{\it button\_state} can be one of the values of {\bf wxAuiPaneButtonState}. - -\membersection{wxAuiDockArt::DrawSash}\label{wxauidockartdrawsash} - -\func{virtual void}{DrawSash}{\param{wxDC\& }{dc}, \param{wxWindow* }{window}, \param{int }{orientation}, \param{const wxRect\& }{rect}} - -Draws a sash between two windows. - -\membersection{wxAuiDockArt::GetColor}\label{wxauidockartgetcolor} - -\func{virtual wxColour}{GetColor}{\param{int }{id}} - -The same as \helpref{GetColour}{wxauidockartgetcolour}. - -\membersection{wxAuiDockArt::GetColour}\label{wxauidockartgetcolour} - -\func{virtual wxColour}{GetColour}{\param{int }{id}} - -Get the colour of a certain setting. - -{\it id} can be one of the colour values of {\bf wxAuiPaneDockArtSetting}. - - -\membersection{wxAuiDockArt::GetFont}\label{wxauidockartgetfont} - -\func{virtual wxFont}{GetFont}{\param{int }{id}} - -Get a font setting. - -\membersection{wxAuiDockArt::GetMetric}\label{wxauidockartgetmetric} - -\func{virtual int}{GetMetric}{\param{int }{id}} - -Get the value of a certain setting. - -{\it id} can be one of the size values of {\bf wxAuiPaneDockArtSetting}. - - -\membersection{wxAuiDockArt::SetColor}\label{wxauidockartsetcolor} - -\func{virtual void}{SetColor}{\param{int }{id}, \param{const wxColour\& }{color}} - -The same as \helpref{SetColour}{wxauidockartsetcolour}. - -\membersection{wxAuiDockArt::SetColour}\label{wxauidockartsetcolour} - -\func{virtual void}{SetColour}{\param{int }{id}, \param{const wxColor\& }{colour}} - -Set a certain setting with the value {\it colour}. - -{\it id} can be one of the colour values of {\bf wxAuiPaneDockArtSetting}. - -\membersection{wxAuiDockArt::SetFont}\label{wxauidockartsetfont} - -\func{virtual void}{SetFont}{\param{int }{id}, \param{const wxFont\& }{font}} - -Set a font setting. - -\membersection{wxAuiDockArt::SetMetric}\label{wxauidockartsetmetric} - -\func{virtual void}{SetMetric}{\param{int }{id}, \param{int }{new\_val}} - -Set a certain setting with the value {\it new\_val}. - -{\it id} can be one of the size values of {\bf wxAuiPaneDockArtSetting}. - diff --git a/docs/latex/wx/auimanager.tex b/docs/latex/wx/auimanager.tex deleted file mode 100644 index b522c9c2d9..0000000000 --- a/docs/latex/wx/auimanager.tex +++ /dev/null @@ -1,324 +0,0 @@ -\section{\class{wxAuiManager}}\label{wxauimanager} - -wxAuiManager is the central class of the wxAUI class framework. - -See also \helpref{wxAUI overview}{wxauioverview}. - -wxAuiManager manages the panes associated with it -for a particular wxFrame, using a pane's wxAuiPaneInfo information to -determine each pane's docking and floating behavior. wxAuiManager -uses wxWidgets' sizer mechanism to plan the layout of each frame. It -uses a replaceable dock art class to do all drawing, so all drawing is -localized in one area, and may be customized depending on an -application's specific needs. - -wxAuiManager works as follows: the programmer adds panes to the class, -or makes changes to existing pane properties (dock position, floating -state, show state, etc.). To apply these changes, wxAuiManager's -Update() function is called. This batch processing can be used to avoid -flicker, by modifying more than one pane at a time, and then "committing" -all of the changes at once by calling Update(). - -Panes can be added quite easily: - -\begin{verbatim} -wxTextCtrl* text1 = new wxTextCtrl(this, -1); -wxTextCtrl* text2 = new wxTextCtrl(this, -1); -m_mgr.AddPane(text1, wxLEFT, wxT("Pane Caption")); -m_mgr.AddPane(text2, wxBOTTOM, wxT("Pane Caption")); -m_mgr.Update(); -\end{verbatim} - -Later on, the positions can be modified easily. The following will float -an existing pane in a tool window: - -\begin{verbatim} -m_mgr.GetPane(text1).Float(); -\end{verbatim} - -\wxheading{Layers, Rows and Directions, Positions} - -Inside wxAUI, the docking layout is figured out by checking several -pane parameters. Four of these are important for determining where a -pane will end up: - -{\bf Direction:} -Each docked pane has a direction, Top, Bottom, Left, Right, or -Center. This is fairly self-explanatory. The pane will be placed in the -location specified by this variable. - -{\bf Position:} -More than one pane can be placed inside of a dock. Imagine two panes -being docked on the left side of a window. One pane can be placed over -another. In proportionally managed docks, the pane position indicates -its sequential position, starting with zero. So, in our scenario with -two panes docked on the left side, the top pane in the dock would have -position 0, and the second one would occupy position 1. - -{\bf Row:} -A row can allow for two docks to be placed next to each other. One of -the most common places for this to happen is in the toolbar. Multiple -toolbar rows are allowed, the first row being row 0, and the second -row 1. Rows can also be used on vertically docked panes. - -{\bf Layer:} -A layer is akin to an onion. Layer 0 is the very center of the -managed pane. Thus, if a pane is in layer 0, it will be closest to the -center window (also sometimes known as the "content window"). -Increasing layers "swallow up" all layers of a lower value. This can -look very similar to multiple rows, but is different because all panes -in a lower level yield to panes in higher levels. The best way to -understand layers is by running the wxAUI sample. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxAuiPaneInfo}{wxauipaneinfo}, -\helpref{wxAuiDockArt}{wxauidockart} - -\wxheading{Data structures} - -\begin{verbatim} -enum wxAuiManagerDock -{ - wxAUI_DOCK_NONE = 0, - wxAUI_DOCK_TOP = 1, - wxAUI_DOCK_RIGHT = 2, - wxAUI_DOCK_BOTTOM = 3, - wxAUI_DOCK_LEFT = 4, - wxAUI_DOCK_CENTER = 5, - wxAUI_DOCK_CENTRE = wxAUI_DOCK_CENTER -} -\end{verbatim} - -\begin{verbatim} -enum wxAuiManagerOption -{ - wxAUI_MGR_ALLOW_FLOATING = 1 << 0, - wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1, - wxAUI_MGR_TRANSPARENT_DRAG = 1 << 2, - wxAUI_MGR_TRANSPARENT_HINT = 1 << 3, - wxAUI_MGR_VENETIAN_BLINDS_HINT = 1 << 4, - wxAUI_MGR_RECTANGLE_HINT = 1 << 5, - wxAUI_MGR_HINT_FADE = 1 << 6, - wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7, - - wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING | - wxAUI_MGR_TRANSPARENT_HINT | - wxAUI_MGR_HINT_FADE | - wxAUI_MGR_NO_VENETIAN_BLINDS_FADE -} -\end{verbatim} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxAuiManager::wxAuiManager}\label{wxauimanagerwxauimanager} - -\func{}{wxAuiManager}{\param{wxWindow* }{managed\_wnd = NULL}, \param{unsigned int }{flags = wxAUI\_MGR\_DEFAULT}} - -Constructor. \arg{managed\_wnd} specifies the wxFrame which should be managed. -\arg{flags} specifies options which allow the frame management behavior -to be modified. - -\membersection{wxAuiManager::\destruct{wxAuiManager}}\label{wxauimanagerdtor} - -\func{}{\destruct{wxAuiManager}}{\void} - -\membersection{wxAuiManager::AddPane}\label{wxauimanageraddpane} - -\func{bool}{AddPane}{\param{wxWindow* }{window}, \param{const wxAuiPaneInfo\& }{pane\_info}} - -\func{bool}{AddPane}{\param{wxWindow* }{window}, \param{int }{direction = wxLEFT}, \param{const wxString\& }{caption = wxEmptyString}} - -\func{bool}{AddPane}{\param{wxWindow* }{window}, \param{const wxAuiPaneInfo\& }{pane\_info}, \param{const wxPoint\& }{drop\_pos}} - - -AddPane() tells the frame manager to start managing a child window. There are several versions of this function. The first version allows the full spectrum of pane parameter possibilities. The second version is used for simpler user interfaces which do not require as much configuration. The last version allows a drop position to be specified, which will determine where the pane will be added. - -\membersection{wxAuiManager::DetachPane}\label{wxauimanagerdetachpane} - -\func{bool}{DetachPane}{\param{wxWindow* }{window}} - -Tells the wxAuiManager to stop managing the pane specified by window. -The window, if in a floated frame, is reparented to the frame managed -by wxAuiManager. - -\membersection{wxAuiManager::GetAllPanes}\label{wxauimanagergetallpanes} - -\func{wxAuiPaneInfoArray\&}{GetAllPanes}{\void} - -Returns an array of all panes managed by the frame manager. - -\membersection{wxAuiManager::GetArtProvider}\label{wxauimanagergetartprovider} - -\constfunc{wxAuiDockArt*}{GetArtProvider}{\void} - -Returns the current art provider being used. - -See also: \helpref{wxAuiDockArt}{wxauidockart}. - -\membersection{wxAuiManager::GetDockSizeConstraint}\label{wxauimanagergetdocksizeconstraint} - -\func{void}{GetDockSizeConstraint}{\param{double* }{widthpct}, \param{double* }{heightpct}} - -Returns the current dock constraint values. See \helpref{SetDockSizeConstraint()}{wxauimanagersetdocksizeconstraint} for more information. - -\membersection{wxAuiManager::GetFlags}\label{wxauimanagergetflags} - -\constfunc{unsigned int}{GetFlags}{\void} - -Returns the current manager's flags. - -\membersection{wxAuiManager::GetManagedWindow}\label{wxauimanagergetmanagedwindow} - -\constfunc{wxWindow*}{GetManagedWindow}{\void} - -Returns the frame currently being managed by wxAuiManager. - -\membersection{wxAuiManager::GetManager}\label{wxauimanagergetmanager} - -\func{static wxAuiManager*}{GetManager}{\param{wxWindow* }{window}} - -Calling this method will return the wxAuiManager for a given window. The \arg{window} parameter should -specify any child window or sub-child window of the frame or window managed by wxAuiManager. -The \arg{window} parameter need not be managed by the manager itself, nor does it even need to be a child -or sub-child of a managed window. It must however be inside the window hierarchy underneath the managed -window. - -\membersection{wxAuiManager::GetPane}\label{wxauimanagergetpane} - -\func{wxAuiPaneInfo\&}{GetPane}{\param{wxWindow* }{window}} - -\func{wxAuiPaneInfo\&}{GetPane}{\param{const wxString\& }{name}} - -{\it GetPane} is used to lookup a wxAuiPaneInfo object -either by window pointer or by pane name, which acts as a unique id for -a window pane. The returned wxAuiPaneInfo object may then be modified to -change a pane's look, state or position. After one or more -modifications to wxAuiPaneInfo, wxAuiManager::Update() should be called -to commit the changes to the user interface. If the lookup failed -(meaning the pane could not be found in the manager), a call to the -returned wxAuiPaneInfo's IsOk() method will return false. - -\membersection{wxAuiManager::HideHint}\label{wxauimanagerhidehint} - -\func{void}{HideHint}{\void} - -HideHint() hides any docking hint that may be visible. - -\membersection{wxAuiManager::InsertPane}\label{wxauimanagerinsertpane} - -\func{bool}{InsertPane}{\param{wxWindow* }{window}, \param{const wxAuiPaneInfo\& }{insert\_location}, \param{int }{insert\_level = wxAUI\_INSERT\_PANE}} - -This method is used to insert either a previously unmanaged pane window -into the frame manager, or to insert a currently managed pane somewhere -else. {\it InsertPane} will push all panes, rows, or docks aside and -insert the window into the position specified by \arg{insert\_location}. -Because \arg{insert\_location} can specify either a pane, dock row, or dock -layer, the \arg{insert\_level} parameter is used to disambiguate this. The -parameter \arg{insert\_level} can take a value of wxAUI\_INSERT\_PANE, wxAUI\_INSERT\_ROW -or wxAUI\_INSERT\_DOCK. - -\membersection{wxAuiManager::LoadPaneInfo}\label{wxauimanagerloadpaneinfo} - -\func{void}{LoadPaneInfo}{\param{wxString }{pane\_part}, \param{wxAuiPaneInfo\& }{pane}} - -LoadPaneInfo() is similar to to LoadPerspective, with the exception that it only loads information about a single pane. It is used in combination with SavePaneInfo(). - -\membersection{wxAuiManager::LoadPerspective}\label{wxauimanagerloadperspective} - -\func{bool}{LoadPerspective}{\param{const wxString\& }{perspective}, \param{bool }{update = true}} - -Loads a saved perspective. If update is true, wxAuiManager::Update() -is automatically invoked, thus realizing the saved perspective on screen. - -\membersection{wxAuiManager::ProcessDockResult}\label{wxauimanagerprocessdockresult} - -\func{bool}{ProcessDockResult}{\param{wxAuiPaneInfo\& }{target}, \param{const wxAuiPaneInfo\& }{new\_pos}} - -ProcessDockResult() is a protected member of the wxAUI layout manager. It can be overridden by derived classes to provide custom docking calculations. - -\membersection{wxAuiManager::SavePaneInfo}\label{wxauimanagersavepaneinfo} - -\func{wxString}{SavePaneInfo}{\param{wxAuiPaneInfo\& }{pane}} - -SavePaneInfo() is similar to SavePerspective, with the exception that it only saves information about a single pane. It is used in combination with LoadPaneInfo(). - -\membersection{wxAuiManager::SavePerspective}\label{wxauimanagersaveperspective} - -\func{wxString}{SavePerspective}{\void} - -Saves the entire user interface layout into an encoded wxString, which -can then be stored by the application (probably using wxConfig). When -a perspective is restored using LoadPerspective(), the entire user -interface will return to the state it was when the perspective was saved. - -\membersection{wxAuiManager::SetArtProvider}\label{wxauimanagersetartprovider} - -\func{void}{SetArtProvider}{\param{wxAuiDockArt* }{art\_provider}} - -Instructs wxAuiManager to use art provider specified by parameter -\arg{art\_provider} for all drawing calls. This allows plugable -look-and-feel features. The previous art provider object, if any, -will be deleted by wxAuiManager. - -See also: \helpref{wxAuiDockArt}{wxauidockart}. - -\membersection{wxAuiManager::SetDockSizeConstraint}\label{wxauimanagersetdocksizeconstraint} - -\func{void}{SetDockSizeConstraint}{\param{double }{widthpct}, \param{double }{heightpct}} - -When a user creates a new dock by dragging a window into a docked position, often times the large size of the -window will create a dock that is unwieldly large. wxAuiManager by default limits the size of any -new dock to 1/3 of the window size. For horizontal docks, this would be 1/3 of the window height. For -vertical docks, 1/3 of the width. Calling this function will adjust this constraint value. The numbers -must be between 0.0 and 1.0. For instance, calling SetDockSizeContraint with 0.5, 0.5 will cause new -docks to be limited to half of the size of the entire managed window. - -\membersection{wxAuiManager::SetFlags}\label{wxauimanagersetflags} - -\func{void}{SetFlags}{\param{unsigned int }{flags}} - -This method is used to specify wxAuiManager's settings flags. \arg{flags} -specifies options which allow the frame management behavior to be modified. - -\membersection{wxAuiManager::SetManagedWindow}\label{wxauimanagersetmanagedwindow} - -\func{void}{SetManagedWindow}{\param{wxWindow* }{managed\_wnd}} - -Called to specify the frame or window which is to be managed by wxAuiManager. Frame management is not restricted to just frames. Child windows or custom controls are also allowed. - -\membersection{wxAuiManager::ShowHint}\label{wxauimanagershowhint} - -\func{void}{ShowHint}{\param{const wxRect\& }{rect}} - -This function is used by controls to explicitly show a hint window at the specified rectangle. It is rarely called, and is mostly used by controls implementing custom pane drag/drop behaviour. The specified rectangle should be in screen coordinates. - -\membersection{wxAuiManager::UnInit}\label{wxauimanageruninit} - -\func{void}{UnInit}{\void} - -Uninitializes the framework and should be called before a managed frame or window is destroyed. UnInit() is usually called in the managed wxFrame's destructor. It is necessary to call this function before the managed frame or window is destroyed, otherwise the manager cannot remove its custom event handlers from a window. - -\membersection{wxAuiManager::Update}\label{wxauimanagerupdate} - -\func{void}{Update}{\void} - -This method is called after any number of changes are -made to any of the managed panes. Update() must be invoked after -AddPane() or InsertPane() are called in order to "realize" or "commit" -the changes. In addition, any number of changes may be made to -wxAuiPaneInfo structures (retrieved with wxAuiManager::GetPane), but to -realize the changes, Update() must be called. This construction allows -pane flicker to be avoided by updating the whole layout at one time. - diff --git a/docs/latex/wx/auinotebook.tex b/docs/latex/wx/auinotebook.tex deleted file mode 100644 index fec32a0cc9..0000000000 --- a/docs/latex/wx/auinotebook.tex +++ /dev/null @@ -1,243 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% auibook.h at 11/Nov/06 22:56:01 -% - -\section{\class{wxAuiNotebook}}\label{wxauinotebook} - -wxAuiNotebook is part of the wxAUI class framework. -See also \helpref{wxAUI overview}{wxauioverview}. - -wxAuiNotebook is a notebook control which implements many features common in applications with dockable panes. -Specifically, wxAuiNotebook implements functionality which allows the user to rearrange tab order via drag-and-drop, -split the tab window into many different splitter configurations, and toggle through different themes to customize -the control's look and feel. - -An effort has been made to try to maintain an API as similar to that of wxNotebook. - -The default theme that is used is wxAuiDefaultTabArt, which provides a modern, glossy look and feel. -The theme can be changed by calling \helpref{wxAuiNotebook::SetArtProvider}{wxauinotebooksetartprovider}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAui}{librarieslist} - - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxAUI\_NB\_DEFAULT\_STYLE}}{Defined as wxAUI\_NB\_TOP | wxAUI\_NB\_TAB\_SPLIT | wxAUI\_NB\_TAB\_MOVE | wxAUI\_NB\_SCROLL\_BUTTONS | wxAUI\_NB\_CLOSE\_ON\_ACTIVE\_TAB.} -\twocolitem{\windowstyle{wxAUI\_NB\_TAB\_SPLIT}}{Allows the tab control to be split by dragging a tab.} -\twocolitem{\windowstyle{wxAUI\_NB\_TAB\_MOVE}}{Allows a tab to be moved horizontally by dragging.} -\twocolitem{\windowstyle{wxAUI\_NB\_TAB\_EXTERNAL\_MOVE}}{Allows a tab to be moved to another tab control.} -\twocolitem{\windowstyle{wxAUI\_NB\_TAB\_FIXED\_WIDTH}}{With this style, all tabs have the same width.} -\twocolitem{\windowstyle{wxAUI\_NB\_SCROLL\_BUTTONS}}{With this style, left and right scroll buttons are displayed.} -\twocolitem{\windowstyle{wxAUI\_NB\_WINDOWLIST\_BUTTON}}{With this style, a drop-down list of windows is available.} -\twocolitem{\windowstyle{wxAUI\_NB\_CLOSE\_BUTTON}}{With this style, a close button is available on the tab bar.} -\twocolitem{\windowstyle{wxAUI\_NB\_CLOSE\_ON\_ACTIVE\_TAB}}{With this style, the close button is visible on the active tab.} -\twocolitem{\windowstyle{wxAUI\_NB\_CLOSE\_ON\_ALL\_TABS}}{With this style, the close button is visible on all tabs.} -\twocolitem{\windowstyle{wxAUI\_NB\_TOP}}{With this style, tabs are drawn along the top of the notebook.} -\twocolitem{\windowstyle{wxAUI\_NB\_BOTTOM}}{With this style, tabs are drawn along the bottom of the notebook.} -\end{twocollist} - - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAuiNotebook::wxAuiNotebook}\label{wxauinotebookwxauinotebook} - -\func{}{wxAuiNotebook}{\void} - -\func{}{wxAuiNotebook}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxAUI\_NB\_DEFAULT\_STYLE}} - -Constructor. Creates a wxAuiNotebok control. - -\membersection{wxAuiNotebook::AddPage}\label{wxauinotebookaddpage} - -\func{bool}{AddPage}{\param{wxWindow* }{page}, \param{const wxString\& }{caption}, \param{bool }{select = false}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -Adds a page. If the {\it select} parameter is true, calling this will generate a page change event. - -\membersection{wxAuiNotebook::AdvanceSelection}\label{wxauinotebookadvanceselection} - -\func{void}{AdvanceSelection}{\param{bool }{forward = true}} - -Sets the selection to the next or previous page. - -\membersection{wxAuiNotebook::Create}\label{wxauinotebookcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} - -Creates the notebook window. - -\membersection{wxAuiNotebook::DeletePage}\label{wxauinotebookdeletepage} - -\func{bool}{DeletePage}{\param{size\_t }{page}} - -Deletes a page at the given index. Calling this method will generate a page change event. - -\membersection{wxAuiNotebook::GetArtProvider}\label{wxauinotebookgetartprovider} - -\constfunc{wxAuiTabArt*}{GetArtProvider}{\void} - -Returns the associated art provider. - -\membersection{wxAuiNotebook::GetHeightForPageHeight}\label{wxauinotebookgetheightforpageheight} - -\func{int}{GetHeightForPageHeight}{\param{int }{pageHeight}} - -Returns the desired height of the notebook for the given page height. Use this to fit the notebook to -a given page size. - -\membersection{wxAuiNotebook::GetPage}\label{wxauinotebookgetpage} - -\constfunc{wxWindow*}{GetPage}{\param{size\_t }{page\_idx}} - -Returns the page specified by the given index. - -\membersection{wxAuiNotebook::GetPageBitmap}\label{wxauinotebookgetpagebitmap} - -\constfunc{wxBitmap}{GetPageBitmap}{\param{size\_t }{page}} - -Returns the tab bitmap for the page. - -\membersection{wxAuiNotebook::GetPageCount}\label{wxauinotebookgetpagecount} - -\constfunc{size\_t}{GetPageCount}{\void} - -Returns the number of pages in the notebook. - -\membersection{wxAuiNotebook::GetPageIndex}\label{wxauinotebookgetpageindex} - -\constfunc{int}{GetPageIndex}{\param{wxWindow* }{page\_wnd}} - -Returns the page index for the specified window. If the window is not found in -the notebook, wxNOT\_FOUND is returned. - -\membersection{wxAuiNotebook::GetPageText}\label{wxauinotebookgetpagetext} - -\constfunc{wxString}{GetPageText}{\param{size\_t }{page}} - -Returns the tab label for the page. - -\membersection{wxAuiNotebook::GetTabCtrlHeight}\label{wxauinotebookgettabctrlheight} - -\constfunc{int}{GetTabCtrlHeight}{\void} - -Returns the height of the tab control. - -\membersection{wxAuiNotebook::GetSelection}\label{wxauinotebookgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page. - -\membersection{wxAuiNotebook::InsertPage}\label{wxauinotebookinsertpage} - -\func{bool}{InsertPage}{\param{size\_t }{page\_idx}, \param{wxWindow* }{page}, \param{const wxString\& }{caption}, \param{bool }{select = false}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -InsertPage() is similar to AddPage, but allows the ability to specify the insert location. -If the {\it select} parameter is true, calling this will generate a page change event. - -\membersection{wxAuiNotebook::RemovePage}\label{wxauinotebookremovepage} - -\func{bool}{RemovePage}{\param{size\_t }{page}} - -Removes a page, without deleting the window pointer. - -\membersection{wxAuiNotebook::SetArtProvider}\label{wxauinotebooksetartprovider} - -\func{void}{SetArtProvider}{\param{wxAuiTabArt* }{art}} - -Sets the art provider to be used by the notebook. - -\membersection{wxAuiNotebook::SetFont}\label{wxauinotebooksetfont} - -\func{bool}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font for drawing the tab labels, using a bold version of the font for selected tab labels. - -\membersection{wxAuiNotebook::SetNormalFont}\label{wxauinotebooksetnormalfont} - -\func{void}{SetNormalFont}{\param{const wxFont\& }{font}} - -Sets the font for drawing unselected tab labels. - -\membersection{wxAuiNotebook::SetSelectedFont}\label{wxauinotebooksetselectedfont} - -\func{void}{SetSelectedFont}{\param{const wxFont\& }{font}} - -Sets the font for drawing selected tab labels. - -\membersection{wxAuiNotebook::SetMeasuringFont}\label{wxauinotebooksetmeasuringfont} - -\func{void}{SetMeasuringFont}{\param{const wxFont\& }{font}} - -Sets the font for measuring tab labels. - -\membersection{wxAuiNotebook::SetPageBitmap}\label{wxauinotebooksetpagebitmap} - -\func{bool}{SetPageBitmap}{\param{size\_t }{page}, \param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the page. To remove a bitmap from the tab caption, pass -wxNullBitmap. - -\membersection{wxAuiNotebook::SetPageText}\label{wxauinotebooksetpagetext} - -\func{bool}{SetPageText}{\param{size\_t }{page}, \param{const wxString\& }{text}} - -Sets the tab label for the page. - -\membersection{wxAuiNotebook::SetSelection}\label{wxauinotebooksetselection} - -\func{size\_t}{SetSelection}{\param{size\_t }{new\_page}} - -Sets the page selection. Calling this method will generate a page change event. - -\membersection{wxAuiNotebook::SetTabCtrlHeight}\label{wxauinotebooksettabctrlheight} - -\func{void}{SetTabCtrlHeight}{\param{int }{height}} - -Sets the tab height. By default, the tab control height is calculated -by measuring the text height and bitmap sizes on the tab captions. Calling this -method will override that calculation and set the tab control to the specified -height parameter. A call to this method will override any call to SetUniformBitmapSize(). -Specifying -1 as the height will return the control to its default auto-sizing behaviour. - -\membersection{wxAuiNotebook::SetUniformBitmapSize}\label{wxauinotebooksetuniformbitmapsize} - -\func{void}{SetUniformBitmapSize}{\param{const wxSize\& }{size}} - -SetUniformBitmapSize() ensures that all tabs will have the same height, even -if some tabs don't have bitmaps. Passing wxDefaultSize to this function will -instruct the control to use dynamic tab height, which is the default behaviour. -Under the default behaviour, when a tab with a large bitmap is added, the tab control's -height will automatically increase to accommodate the larger bitmap. - -\func{void}{Split}{\param{size\_t }{page}, \param{int }{direction}} - -Split performs a split operation programmatically. The argument \arg{page} indicates -the page that will be split off. This page will also become the active page after the -split. The \arg{direction} argument specifies where the pane should go, it should be one -of the following: wxTOP, wxBOTTOM, wxLEFT, or wxRIGHT. - -\membersection{wxAuiNotebook::ShowWindowMenu}\label{wxauinotebookshowwindowmenu} - -\func{bool}{ShowWindowMenu}{\void} - -Shows the window menu for the active tab control associated with this notebook, -and returns \true if a selection was made. - diff --git a/docs/latex/wx/auipaneinfo.tex b/docs/latex/wx/auipaneinfo.tex deleted file mode 100644 index c7e68b7b5e..0000000000 --- a/docs/latex/wx/auipaneinfo.tex +++ /dev/null @@ -1,477 +0,0 @@ -\section{\class{wxAuiPaneInfo}}\label{wxauipaneinfo} - -wxAuiPaneInfo is part of the wxAUI class framework. -See also \helpref{wxAUI overview}{wxauioverview}. - -wxAuiPaneInfo specifies all the parameters for a pane. -These parameters specify where the pane is on the -screen, whether it is docked or floating, or hidden. -In addition, these parameters specify the pane's -docked position, floating position, preferred size, -minimum size, caption text among many other parameters. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxAuiManager}{wxauimanager}, -\helpref{wxAuiDockArt}{wxauidockart} - -\wxheading{Data structures} - -\begin{verbatim} -enum wxAuiPaneInsertLevel -{ - wxAUI_INSERT_PANE = 0, - wxAUI_INSERT_ROW = 1, - wxAUI_INSERT_DOCK = 2 -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxAuiPaneInfo::wxAuiPaneInfo}\label{wxauipaneinfowxauipaneinfo} - -\func{}{wxAuiPaneInfo}{\void} - -Default constructor. - -\func{}{wxAuiPaneInfo}{\param{const wxAuiPaneInfo\& }{c}} - -Copy constructor. - -\membersection{wxAuiPaneInfo::BestSize}\label{wxauipaneinfobestsize} - -\func{wxAuiPaneInfo\&}{BestSize}{\param{const wxSize\& }{size}} - -\func{wxAuiPaneInfo\&}{BestSize}{\param{int }{x}, \param{int }{y}} - -BestSize() sets the ideal size for the pane. The docking manager will attempt to use this size as much as possible when docking or floating the pane. - -\membersection{wxAuiPaneInfo::Bottom}\label{wxauipaneinfobottom} - -\func{wxAuiPaneInfo\&}{Bottom}{\void} - -Bottom() sets the pane dock position to the bottom side of the frame. This is -the same thing as calling Direction(wxAUI\_DOCK\_BOTTOM). - -\membersection{wxAuiPaneInfo::BottomDockable}\label{wxauipaneinfobottomdockable} - -\func{wxAuiPaneInfo\&}{BottomDockable}{\param{bool }{b = true}} - -BottomDockable() indicates whether a pane can be docked at the bottom of the frame. - -\membersection{wxAuiPaneInfo::Caption}\label{wxauipaneinfocaption} - -\func{wxAuiPaneInfo\&}{Caption}{\param{const wxString\& }{c}} - -Caption() sets the caption of the pane. - -\membersection{wxAuiPaneInfo::CaptionVisible}\label{wxauipaneinfocaptionvisible} - -\func{wxAuiPaneInfo\&}{CaptionVisible}{\param{bool }{visible = true}} - -CaptionVisible indicates that a pane caption should be visible. If false, no pane caption is drawn. - -\membersection{wxAuiPaneInfo::Centre}\label{wxauipaneinfocentre} - -\func{wxAuiPaneInfo\&}{Centre}{\void} - -\func{wxAuiPaneInfo\&}{Center}{\void} - -Center() sets the pane dock position to the left side of the frame. -The centre pane is the space in the middle after all border panes (left, top, right, bottom) are subtracted from the layout. - -This is the same thing as calling Direction(wxAUI\_DOCK\_CENTRE). - -\membersection{wxAuiPaneInfo::CentrePane}\label{wxauipaneinfocentrepane} - -\func{wxAuiPaneInfo\&}{CentrePane}{\void} - -\func{wxAuiPaneInfo\&}{CenterPane}{\void} - -CentrePane() specifies that the pane should adopt the default center pane settings. Centre panes usually do not have caption bars. This function provides an easy way of preparing a pane to be displayed in the center dock position. - -\membersection{wxAuiPaneInfo::CloseButton}\label{wxauipaneinfoclosebutton} - -\func{wxAuiPaneInfo\&}{CloseButton}{\param{bool }{visible = true}} - -CloseButton() indicates that a close button should be drawn for the pane. - -\membersection{wxAuiPaneInfo::DefaultPane}\label{wxauipaneinfodefaultpane} - -\func{wxAuiPaneInfo\&}{DefaultPane}{\void} - -DefaultPane() specifies that the pane should adopt the default pane settings. - -\membersection{wxAuiPaneInfo::DestroyOnClose}\label{wxauipaneinfodestroyonclose} - -\func{wxAuiPaneInfo\&}{DestroyOnClose}{\param{bool }{b = true}} - -DestroyOnClose() indicates whether a pane should be detroyed when it is closed. Normally a pane is simply hidden when the close button is clicked. Setting DestroyOnClose to true will cause the window to be destroyed when the user clicks the pane's close button. - -\membersection{wxAuiPaneInfo::Direction}\label{wxauipaneinfodirection} - -\func{wxAuiPaneInfo\&}{Direction}{\param{int }{direction}} - -Direction() determines the direction of the docked pane. It is functionally the same as calling Left(), Right(), Top() or Bottom(), except that docking direction may be specified programmatically via the parameter. - -\membersection{wxAuiPaneInfo::Dock}\label{wxauipaneinfodock} - -\func{wxAuiPaneInfo\&}{Dock}{\void} - -Dock() indicates that a pane should be docked. It is the opposite of Float(). - -\membersection{wxAuiPaneInfo::DockFixed}\label{wxauipaneinfodockfixed} - -\func{wxAuiPaneInfo\&}{DockFixed}{\param{bool }{b = true}} - -DockFixed() causes the containing dock to have no resize sash. This is useful for creating panes that span the entire width or height of a dock, but should not be resizable in the other direction. - -\membersection{wxAuiPaneInfo::Dockable}\label{wxauipaneinfodockable} - -\func{wxAuiPaneInfo\&}{Dockable}{\param{bool }{b = true}} - -Dockable() specifies whether a frame can be docked or not. It is the same as specifying TopDockable(b).BottomDockable(b).LeftDockable(b).RightDockable(b). - -\membersection{wxAuiPaneInfo::Fixed}\label{wxauipaneinfofixed} - -\func{wxAuiPaneInfo\&}{Fixed}{\void} - -Fixed() forces a pane to be fixed size so that it cannot be resized. After calling Fixed(), IsFixed() will return true. - -\membersection{wxAuiPaneInfo::Float}\label{wxauipaneinfofloat} - -\func{wxAuiPaneInfo\&}{Float}{\void} - -Float() indicates that a pane should be floated. It is the opposite of Dock(). - -\membersection{wxAuiPaneInfo::Floatable}\label{wxauipaneinfofloatable} - -\func{wxAuiPaneInfo\&}{Floatable}{\param{bool }{b = true}} - -Floatable() sets whether the user will be able to undock a pane and turn it into a floating window. - -\membersection{wxAuiPaneInfo::FloatingPosition}\label{wxauipaneinfofloatingposition} - -\func{wxAuiPaneInfo\&}{FloatingPosition}{\param{const wxPoint\& }{pos}} - -\func{wxAuiPaneInfo\&}{FloatingPosition}{\param{int }{x}, \param{int }{y}} - -FloatingPosition() sets the position of the floating pane. - -\membersection{wxAuiPaneInfo::FloatingSize}\label{wxauipaneinfofloatingsize} - -\func{wxAuiPaneInfo\&}{FloatingSize}{\param{const wxSize\& }{size}} - -\func{wxAuiPaneInfo\&}{FloatingSize}{\param{int }{x}, \param{int }{y}} - -FloatingSize() sets the size of the floating pane. - -\membersection{wxAuiPaneInfo::Gripper}\label{wxauipaneinfogripper} - -\func{wxAuiPaneInfo\&}{Gripper}{\param{bool }{visible = true}} - -Gripper() indicates that a gripper should be drawn for the pane. - -\membersection{wxAuiPaneInfo::GripperTop}\label{wxauipaneinfogrippertop} - -\func{wxAuiPaneInfo\&}{GripperTop}{\param{bool }{attop = true}} - -GripperTop() indicates that a gripper should be drawn at the top of the pane. - -\membersection{wxAuiPaneInfo::HasBorder}\label{wxauipaneinfohasborder} - -\constfunc{bool}{HasBorder}{\void} - -HasBorder() returns true if the pane displays a border. - -\membersection{wxAuiPaneInfo::HasCaption}\label{wxauipaneinfohascaption} - -\constfunc{bool}{HasCaption}{\void} - -HasCaption() returns true if the pane displays a caption. - -\membersection{wxAuiPaneInfo::HasCloseButton}\label{wxauipaneinfohasclosebutton} - -\constfunc{bool}{HasCloseButton}{\void} - -HasCloseButton() returns true if the pane displays a button to close the pane. - -\membersection{wxAuiPaneInfo::HasFlag}\label{wxauipaneinfohasflag} - -\constfunc{bool}{HasFlag}{\param{unsigned int }{flag}} - -HasFlag() returns true if the the property specified by flag is active for the pane. - -\membersection{wxAuiPaneInfo::HasGripper}\label{wxauipaneinfohasgripper} - -\constfunc{bool}{HasGripper}{\void} - -HasGripper() returns true if the pane displays a gripper. - -\membersection{wxAuiPaneInfo::HasGripperTop}\label{wxauipaneinfohasgrippertop} - -\constfunc{bool}{HasGripperTop}{\void} - -HasGripper() returns true if the pane displays a gripper at the top. - -\membersection{wxAuiPaneInfo::HasMaximizeButton}\label{wxauipaneinfohasmaximizebutton} - -\constfunc{bool}{HasMaximizeButton}{\void} - -HasMaximizeButton() returns true if the pane displays a button to maximize the pane. - -\membersection{wxAuiPaneInfo::HasMinimizeButton}\label{wxauipaneinfohasminimizebutton} - -\constfunc{bool}{HasMinimizeButton}{\void} - -HasMinimizeButton() returns true if the pane displays a button to minimize the pane. - -\membersection{wxAuiPaneInfo::HasPinButton}\label{wxauipaneinfohaspinbutton} - -\constfunc{bool}{HasPinButton}{\void} - -HasPinButton() returns true if the pane displays a button to float the pane. - -\membersection{wxAuiPaneInfo::Hide}\label{wxauipaneinfohide} - -\func{wxAuiPaneInfo\&}{Hide}{\void} - -Hide() indicates that a pane should be hidden. - -\membersection{wxAuiPaneInfo::IsBottomDockable}\label{wxauipaneinfoisbottomdockable} - -\constfunc{bool}{IsBottomDockable}{\void} - -IsBottomDockable() returns true if the pane can be docked at the bottom of the managed frame. - -\membersection{wxAuiPaneInfo::IsDocked}\label{wxauipaneinfoisdocked} - -\constfunc{bool}{IsDocked}{\void} - -IsDocked() returns true if the pane is docked. - -\membersection{wxAuiPaneInfo::IsFixed}\label{wxauipaneinfoisfixed} - -\constfunc{bool}{IsFixed}{\void} - -IsFixed() returns true if the pane cannot be resized. - -\membersection{wxAuiPaneInfo::IsFloatable}\label{wxauipaneinfoisfloatable} - -\constfunc{bool}{IsFloatable}{\void} - -IsFloatable() returns true if the pane can be undocked and displayed as a floating window. - -\membersection{wxAuiPaneInfo::IsFloating}\label{wxauipaneinfoisfloating} - -\constfunc{bool}{IsFloating}{\void} - -IsFloating() returns true if the pane is floating. - -\membersection{wxAuiPaneInfo::IsLeftDockable}\label{wxauipaneinfoisleftdockable} - -\constfunc{bool}{IsLeftDockable}{\void} - -IsLeftDockable() returns true if the pane can be docked on the left of the managed frame. - -\membersection{wxAuiPaneInfo::IsMovable}\label{wxauipaneinfoismovable} - -\constfunc{bool}{IsMovable}{\void} - -IsMoveable() returns true if the docked frame can be undocked or moved to another dock position. - -\membersection{wxAuiPaneInfo::IsOk}\label{wxauipaneinfoisok} - -\constfunc{bool}{IsOk}{\void} - -IsOk() returns true if the wxAuiPaneInfo structure is valid. A pane structure is valid if it has an associated window. - -\membersection{wxAuiPaneInfo::IsResizable}\label{wxauipaneinfoisresizable} - -\constfunc{bool}{IsResizable}{\void} - -IsResizable() returns true if the pane can be resized. - -\membersection{wxAuiPaneInfo::IsRightDockable}\label{wxauipaneinfoisrightdockable} - -\constfunc{bool}{IsRightDockable}{\void} - -IsRightDockable() returns true if the pane can be docked on the right of the managed frame. - -\membersection{wxAuiPaneInfo::IsShown}\label{wxauipaneinfoisshown} - -\constfunc{bool}{IsShown}{\void} - -IsShown() returns true if the pane is currently shown. - -\membersection{wxAuiPaneInfo::IsToolbar}\label{wxauipaneinfoistoolbar} - -\constfunc{bool}{IsToolbar}{\void} - -IsToolbar() returns true if the pane contains a toolbar. - -\membersection{wxAuiPaneInfo::IsTopDockable}\label{wxauipaneinfoistopdockable} - -\constfunc{bool}{IsTopDockable}{\void} - -IsTopDockable() returns true if the pane can be docked at the top of the managed frame. - -\membersection{wxAuiPaneInfo::Layer}\label{wxauipaneinfolayer} - -\func{wxAuiPaneInfo\&}{Layer}{\param{int }{layer}} - -Layer() determines the layer of the docked pane. The dock layer is similar to an onion, the inner-most layer being layer 0. Each shell moving in the outward direction has a higher layer number. This allows for more complex docking layout formation. - -\membersection{wxAuiPaneInfo::Left}\label{wxauipaneinfoleft} - -\func{wxAuiPaneInfo\&}{Left}{\void} - -Left() sets the pane dock position to the left side of the frame. This is the -same thing as calling Direction(wxAUI\_DOCK\_LEFT). - -\membersection{wxAuiPaneInfo::LeftDockable}\label{wxauipaneinfoleftdockable} - -\func{wxAuiPaneInfo\&}{LeftDockable}{\param{bool }{b = true}} - -LeftDockable() indicates whether a pane can be docked on the left of the frame. - -\membersection{wxAuiPaneInfo::MaxSize}\label{wxauipaneinfomaxsize} - -\func{wxAuiPaneInfo\&}{MaxSize}{\param{const wxSize\& }{size}} - -\func{wxAuiPaneInfo\&}{MaxSize}{\param{int }{x}, \param{int }{y}} - -MaxSize() sets the maximum size of the pane. - -\membersection{wxAuiPaneInfo::MaximizeButton}\label{wxauipaneinfomaximizebutton} - -\func{wxAuiPaneInfo\&}{MaximizeButton}{\param{bool }{visible = true}} - -MaximizeButton() indicates that a maximize button should be drawn for the pane. - -\membersection{wxAuiPaneInfo::MinSize}\label{wxauipaneinfominsize} - -\func{wxAuiPaneInfo\&}{MinSize}{\param{const wxSize\& }{size}} - -\func{wxAuiPaneInfo\&}{MinSize}{\param{int }{x}, \param{int }{y}} - -MinSize() sets the minimum size of the pane. Please note that this is only partially supported as of this writing. - -\membersection{wxAuiPaneInfo::MinimizeButton}\label{wxauipaneinfominimizebutton} - -\func{wxAuiPaneInfo\&}{MinimizeButton}{\param{bool }{visible = true}} - -MinimizeButton() indicates that a minimize button should be drawn for the pane. - -\membersection{wxAuiPaneInfo::Movable}\label{wxauipaneinfomovable} - -\func{wxAuiPaneInfo\&}{Movable}{\param{bool }{b = true}} - -Movable indicates whether a frame can be moved. - -\membersection{wxAuiPaneInfo::Name}\label{wxauipaneinfoname} - -\func{wxAuiPaneInfo\&}{Name}{\param{const wxString\& }{n}} - -Name() sets the name of the pane so it can be referenced in lookup functions. If a name is not specified by the user, a random name is assigned to the pane when it is added to the manager. - -\membersection{wxAuiPaneInfo::PaneBorder}\label{wxauipaneinfopaneborder} - -\func{wxAuiPaneInfo\&}{PaneBorder}{\param{bool }{visible = true}} - -PaneBorder indicates that a border should be drawn for the pane. - -\membersection{wxAuiPaneInfo::PinButton}\label{wxauipaneinfopinbutton} - -\func{wxAuiPaneInfo\&}{PinButton}{\param{bool }{visible = true}} - -PinButton() indicates that a pin button should be drawn for the pane. - -\membersection{wxAuiPaneInfo::Position}\label{wxauipaneinfoposition} - -\func{wxAuiPaneInfo\&}{Position}{\param{int }{pos}} - -Position() determines the position of the docked pane. - -\membersection{wxAuiPaneInfo::Resizable}\label{wxauipaneinforesizable} - -\func{wxAuiPaneInfo\&}{Resizable}{\param{bool }{resizable = true}} - -Resizable() allows a pane to be resized if the parameter is true, and forces it to be a fixed size if the parameter is false. This is simply an antonym for Fixed(). - -\membersection{wxAuiPaneInfo::Right}\label{wxauipaneinforight} - -\func{wxAuiPaneInfo\&}{Right}{\void} - -Right() sets the pane dock position to the right side of the frame. - -\membersection{wxAuiPaneInfo::RightDockable}\label{wxauipaneinforightdockable} - -\func{wxAuiPaneInfo\&}{RightDockable}{\param{bool }{b = true}} - -RightDockable() indicates whether a pane can be docked on the right of the frame. - -\membersection{wxAuiPaneInfo::Row}\label{wxauipaneinforow} - -\func{wxAuiPaneInfo\&}{Row}{\param{int }{row}} - -Row() determines the row of the docked pane. - -\membersection{wxAuiPaneInfo::SafeSet}\label{wxauipaneinfosafeset} - -\func{void}{SafeSet}{\param{wxAuiPaneInfo }{source}} - -Write the safe parts of a newly loaded PaneInfo structure "source" into "this" -used on loading perspectives etc. - -\membersection{wxAuiPaneInfo::SetFlag}\label{wxauipaneinfosetflag} - -\func{wxAuiPaneInfo\&}{SetFlag}{\param{unsigned int }{flag}, \param{bool }{option\_state}} - -SetFlag() turns the property given by flag on or off with the option\_state parameter. - -\membersection{wxAuiPaneInfo::Show}\label{wxauipaneinfoshow} - -\func{wxAuiPaneInfo\&}{Show}{\param{bool }{show = true}} - -Show() indicates that a pane should be shown. - -\membersection{wxAuiPaneInfo::ToolbarPane}\label{wxauipaneinfotoolbarpane} - -\func{wxAuiPaneInfo\&}{ToolbarPane}{\void} - -ToolbarPane() specifies that the pane should adopt the default toolbar pane settings. - -\membersection{wxAuiPaneInfo::Top}\label{wxauipaneinfotop} - -\func{wxAuiPaneInfo\&}{Top}{\void} - -Top() sets the pane dock position to the top of the frame. - -\membersection{wxAuiPaneInfo::TopDockable}\label{wxauipaneinfotopdockable} - -\func{wxAuiPaneInfo\&}{TopDockable}{\param{bool }{b = true}} - -TopDockable() indicates whether a pane can be docked at the top of the frame. - -\membersection{wxAuiPaneInfo::Window}\label{wxauipaneinfowindow} - -\func{wxAuiPaneInfo\&}{Window}{\param{wxWindow* }{w}} - -Window() assigns the window pointer that the wxAuiPaneInfo should use. This normally does not need to be specified, as the window pointer is automatically assigned to the wxAuiPaneInfo structure as soon as it is added to the manager. - -\membersection{wxAuiPaneInfo::operator=}\label{wxauipaneinfooperatorassign} - -\func{wxAuiPaneInfo\& operator}{operator=}{\param{const wxAuiPaneInfo\& }{c}} - -Makes a copy of the wxAuiPaneInfo object. - diff --git a/docs/latex/wx/auitabart.tex b/docs/latex/wx/auitabart.tex deleted file mode 100644 index ba56f21209..0000000000 --- a/docs/latex/wx/auitabart.tex +++ /dev/null @@ -1,109 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% auibook.h at 11/Nov/06 22:56:01 -% - -\section{\class{wxAuiTabArt}}\label{wxauitabart} - -Tab art class. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAui}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAuiTabArt::wxAuiTabArt}\label{wxauitabartwxauitabart} - -\func{}{wxAuiTabArt}{\void} - -Constructor. - -\membersection{wxAuiTabArt::Clone}\label{wxauitabartclone} - -\func{wxAuiTabArt*}{Clone}{\void} - -Clones the art object. - -\membersection{wxAuiTabArt::DrawBackground}\label{wxauitabartdrawbackground} - -\func{void}{DrawBackground}{\param{wxDC\& }{dc}, \param{wxWindow* }{wnd}, \param{const wxRect\& }{rect}} - -Draws a background on the given area. - -\membersection{wxAuiTabArt::DrawButton}\label{wxauitabartdrawbutton} - -\func{void}{DrawButton}{\param{wxDC\& }{dc}, \param{wxWindow* }{wnd}, \param{const wxRect\& }{in\_rect}, \param{int }{bitmap\_id}, \param{int }{button\_state}, \param{int }{orientation}, \param{const wxBitmap\& }{bitmap\_override}, \param{wxRect* }{out\_rect}} - -Draws a button. - -\membersection{wxAuiTabArt::DrawTab}\label{wxauitabartdrawtab} - -\func{void}{DrawTab}{\param{wxDC\& }{dc}, \param{wxWindow* }{wnd}, \param{const wxRect\& }{in\_rect}, \param{const wxString\& }{caption}, \param{const wxBitmap\& }{bitmap}, \param{bool }{active}, \param{int }{close\_button\_state}, \param{wxRect* }{out\_tab\_rect}, \param{wxRect* }{out\_button\_rect}, \param{int* }{x\_extent}} - -Draws a tab. - -\membersection{wxAuiTabArt::GetBestTabCtrlSize}\label{wxauitabartgetbesttabctrlsize} - -\func{int}{GetBestTabCtrlSize}{\param{wxWindow* }{wnd}, \param{wxAuiNotebookPageArray\& }{pages}} - -Returns the tab control size. - -\membersection{wxAuiTabArt::GetIndentSize}\label{wxauitabartgetindentsize} - -\func{int}{GetIndentSize}{\void} - -Returns the indent size. - -\membersection{wxAuiTabArt::GetTabSize}\label{wxauitabartgettabsize} - -\func{wxSize}{GetTabSize}{\param{wxDC\& }{dc}, \param{wxWindow* }{wnd}, \param{const wxString\& }{caption}, \param{const wxBitmap\& }{bitmap}, \param{bool }{active}, \param{int }{close\_button\_state}, \param{int* }{x\_extent}} - -Returns the tab size for the given caption, bitmap and state. - -\membersection{wxAuiTabArt::SetFlags}\label{wxauitabartsetflags} - -\func{void}{SetFlags}{\param{unsigned int }{flags}} - -Sets flags. - -\membersection{wxAuiTabArt::SetMeasuringFont}\label{wxauitabartsetmeasuringfont} - -\func{void}{SetMeasuringFont}{\param{const wxFont\& }{font}} - -Sets the font used for calculating measurements. - -\membersection{wxAuiTabArt::SetNormalFont}\label{wxauitabartsetnormalfont} - -\func{void}{SetNormalFont}{\param{const wxFont\& }{font}} - -Sets the normal font for drawing labels. - -\membersection{wxAuiTabArt::SetSelectedFont}\label{wxauitabartsetselectedfont} - -\func{void}{SetSelectedFont}{\param{const wxFont\& }{font}} - -Sets the font for drawing text for selected UI elements. - -\membersection{wxAuiTabArt::SetSizingInfo}\label{wxauitabartsetsizinginfo} - -\func{void}{SetSizingInfo}{\param{const wxSize\& }{tab\_ctrl\_size}, \param{size\_t }{tab\_count}} - -Sets sizing information. - -\membersection{wxAuiTabArt::ShowWindowList}\label{wxauitabartshowwindowlist} - -\func{int}{ShowWindowList}{\param{wxWindow* }{wnd}, \param{const wxArrayString\& }{items}, \param{int }{active\_idx}} - -Pops up a menu to show the list of windows managed by wxAui. - diff --git a/docs/latex/wx/autoobj.tex b/docs/latex/wx/autoobj.tex deleted file mode 100644 index bd20fa6de8..0000000000 --- a/docs/latex/wx/autoobj.tex +++ /dev/null @@ -1,205 +0,0 @@ -\section{\class{wxAutomationObject}}\label{wxautomationobject} - -The {\bf wxAutomationObject} class represents an OLE automation object containing a single data member, -an IDispatch pointer. It contains a number of functions that make it easy to perform -automation operations, and set and get properties. The class makes heavy use of the \helpref{wxVariant}{wxvariant} class. - -The usage of these classes is quite close to OLE automation usage in Visual Basic. The API is -high-level, and the application can specify multiple properties in a single string. The following example -gets the current Excel instance, and if it exists, makes the active cell bold. - -{\small -\begin{verbatim} - wxAutomationObject excelObject; - if (excelObject.GetInstance("Excel.Application")) - excelObject.PutProperty("ActiveCell.Font.Bold", true); -\end{verbatim} -} - -Note that this class obviously works under Windows only. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxVariant}{wxvariant} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAutomationObject::wxAutomationObject}\label{wxautomationobjectctor} - -\func{}{wxAutomationObject}{\param{WXIDISPATCH*}{ dispatchPtr = NULL}} - -Constructor, taking an optional IDispatch pointer which will be released when the -object is deleted. - -\membersection{wxAutomationObject::\destruct{wxAutomationObject}}\label{wxautomationobjectdtor} - -\func{}{\destruct{wxAutomationObject}}{\void} - -Destructor. If the internal IDispatch pointer is non-null, it will be released. - -\membersection{wxAutomationObject::CallMethod}\label{wxautomationobjectcallmethod} - -\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\constfunc{wxVariant}{CallMethod}{\param{const wxString\&}{ method}, \param{...}{}} - -Calls an automation method for this object. The first form takes a method name, number of -arguments, and an array of variants. The second form takes a method name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - wxVariant res = obj.CallMethod("Sum", wxVariant(1.2), wxVariant(3.4)); - wxVariant res = obj.CallMethod("Sum", 1.2, 3.4); -\end{verbatim} -} - -Note that {\it method} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. For example: - -{\small -\begin{verbatim} - object.CallMethod("ActiveCell.Font.ShowDialog", "My caption"); -\end{verbatim} -} - -\membersection{wxAutomationObject::CreateInstance}\label{wxautomationobjectcreateinstance} - -\constfunc{bool}{CreateInstance}{\param{const wxString\&}{ classId}} - -Creates a new object based on the class id, returning true if the object was successfully created, -or false if not. - -\membersection{wxAutomationObject::GetDispatchPtr}\label{wxautomationobjectgetdispatchptr} - -\constfunc{IDispatch*}{GetDispatchPtr}{\void} - -Gets the IDispatch pointer. - -\membersection{wxAutomationObject::GetInstance}\label{wxautomationobjectgetinstance} - -\constfunc{bool}{GetInstance}{\param{const wxString\&}{ classId}} - -Retrieves the current object associated with a class id, and attaches the IDispatch pointer -to this object. Returns true if a pointer was successfully retrieved, false otherwise. - -Note that this cannot cope with two instances of a given OLE object being active simultaneously, -such as two copies of Excel running. Which object is referenced cannot currently be specified. - -\membersection{wxAutomationObject::GetObject}\label{wxautomationobjectgetobject} - -\constfunc{bool}{GetObject}{\param{wxAutomationObject\&}{obj}, \param{const wxString\&}{ property}, - \param{int}{ noArgs = 0}, \param{wxVariant }{args[] = NULL}} - -Retrieves a property from this object, assumed to be a dispatch pointer, and initialises {\it obj} with it. -To avoid having to deal with IDispatch pointers directly, use this function in preference -to \helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} when retrieving objects -from other objects. - -Note that an IDispatch pointer is stored as a void* pointer in wxVariant objects. - -\wxheading{See also} - -\helpref{wxAutomationObject::GetProperty}{wxautomationobjectgetproperty} - -\membersection{wxAutomationObject::GetProperty}\label{wxautomationobjectgetproperty} - -\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\constfunc{wxVariant}{GetProperty}{\param{const wxString\&}{ property}, \param{...}{}} - -Gets a property value from this object. The first form takes a property name, number of -arguments, and an array of variants. The second form takes a property name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - wxVariant res = obj.GetProperty("Range", wxVariant("A1")); - wxVariant res = obj.GetProperty("Range", "A1"); -\end{verbatim} -} - -Note that {\it property} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. - -\membersection{wxAutomationObject::Invoke}\label{wxautomationobjectinvoke} - -\constfunc{bool}{Invoke}{\param{const wxString\&}{ member}, \param{int}{ action}, - \param{wxVariant\& }{retValue}, \param{int}{ noArgs}, \param{wxVariant}{ args[]}, - \param{const wxVariant*}{ ptrArgs[] = 0}} - -This function is a low-level implementation that allows access to the IDispatch Invoke function. -It is not meant to be called directly by the application, but is used by other convenience functions. - -\wxheading{Parameters} - -\docparam{member}{The member function or property name.} - -\docparam{action}{Bitlist: may contain DISPATCH\_PROPERTYPUT, DISPATCH\_PROPERTYPUTREF, -DISPATCH\_METHOD.} - -\docparam{retValue}{Return value (ignored if there is no return value)}. - -\docparam{noArgs}{Number of arguments in {\it args} or {\it ptrArgs}.} - -\docparam{args}{If non-null, contains an array of variants.} - -\docparam{ptrArgs}{If non-null, contains an array of constant pointers to variants.} - -\wxheading{Return value} - -true if the operation was successful, false otherwise. - -\wxheading{Remarks} - -Two types of argument array are provided, so that when possible pointers are used for efficiency. - -\membersection{wxAutomationObject::PutProperty}\label{wxautomationobjectputproperty} - -\constfunc{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{int}{ noArgs}, - \param{wxVariant }{args[]}} - -\func{bool}{PutProperty}{\param{const wxString\&}{ property}, \param{...}{}} - -Puts a property value into this object. The first form takes a property name, number of -arguments, and an array of variants. The second form takes a property name and zero to six -constant references to variants. Since the variant class has constructors for the basic -data types, and C++ provides temporary objects automatically, both of the following lines -are syntactically valid: - -{\small -\begin{verbatim} - obj.PutProperty("Value", wxVariant(23)); - obj.PutProperty("Value", 23); -\end{verbatim} -} - -Note that {\it property} can contain dot-separated property names, to save the application -needing to call GetProperty several times using several temporary objects. - -\membersection{wxAutomationObject::SetDispatchPtr}\label{wxautomationobjectsetdispatchptr} - -\func{void}{SetDispatchPtr}{\param{WXIDISPATCH*}{ dispatchPtr}} - -Sets the IDispatch pointer. This function does not check if there is already an IDispatch pointer. - -You may need to cast from IDispatch* to WXIDISPATCH* when calling this function. - diff --git a/docs/latex/wx/back.gif b/docs/latex/wx/back.gif deleted file mode 100644 index 88a3740f9134d7a569b56a9f76e6aa552672993e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 978 zcmZ?wbhEHbbYM_m_|5fj;(a}CV`%O8V#mmmJDyQBv znOUrUdY)b7H6AG;jlf>Rey!M3TUK6P?i!m{q7|$j(iU2nb+j@t;aY#t_B`I%AGL2Z zO6>3Q?Jm>3v>|kImhI|mtHW1|tWDEBQI>amZ`s68xzaas@2+e3%;$D{>W3T0V&ot1 Q_1d}V>FF7|>?{n{02fm-00000 diff --git a/docs/latex/wx/backwardcompat.tex b/docs/latex/wx/backwardcompat.tex deleted file mode 100644 index f8fc3a8b1e..0000000000 --- a/docs/latex/wx/backwardcompat.tex +++ /dev/null @@ -1,173 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: backwardcompat.tex -%% Purpose: Explains how much and what kind of backward compatibility users -%% can expect -%% Author: M.J.Wetherell -%% RCS-ID: $Id$ -%% Copyright: 2005 M.J.Wetherell -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Backward compatibility}\label{backwardcompatibility} - -Many of the GUIs and platforms supported by wxWidgets are continuously -evolving, and some of the new platforms wxWidgets now supports were quite -unimaginable even a few years ago. In this environment wxWidgets must also -evolve in order to support these new features and platforms. - -However the goal of wxWidgets is not only to provide a consistent -programming interface across many platforms, but also to provide an -interface that is reasonably stable over time, to help protect its users -from some of the uncertainty of the future. - -\subsection{The version numbering scheme}\label{versionnumbering} - -wxWidgets version numbers can have up to four components, with trailing -zeros sometimes omitted: - -\begin{verbatim} - major.minor.release.sub-release -\end{verbatim} - -A {\em stable} release of wxWidgets will have an even number for {\tt -minor}, e.g. {\tt 2.6.0}. - -Stable, in this context, means that the API is not changing. In truth, some -changes are permitted, but only those that are backward compatible. For -example, you can expect later {\tt 2.6.x.x} releases, such as {\tt 2.6.1} -and {\tt 2.6.2} to be backward compatible with their predecessor. - -When it becomes necessary to make changes which are not wholly backward -compatible, the stable branch is forked, creating a new {\em development} -branch of wxWidgets. This development branch will have an odd number -for {\tt minor}, for example {\tt 2.7.x.x}. Releases from this branch are -known as {\em development snapshots}. - -The stable branch and the development branch will then be developed in -parallel for some time. When it is no longer useful to continue developing -the stable branch, the development branch is renamed and becomes a new -stable branch, for example {\tt 2.8.0}. And the process begins again. - -This is how the tension between keeping the interface stable, and allowing -the library to evolve is managed. - -You can expect the versions with the same major and {\em even} minor -version number to be compatible, but between minor versions there will be -incompatibilities. Compatibility is not broken gratuitously however, so -many applications will require no changes or only small changes to work -with the new version. - -\subsection{Source level compatibility}\label{sourcecompatibility} - -Later releases from a stable branch are backward compatible with earlier -releases from the same branch at the {\em source} level. - -This means that, for example, if you develop your application using -wxWidgets {\tt 2.6.0} then it should also compile fine with all later {\tt -2.6.x} versions. The converse is also true providing you avoid any new -features not present in the earlier version. For example if you develop -using {\tt 2.6.1} your program will compile fine with wxWidgets {\tt 2.6.0} -providing you don't use any {\tt 2.6.1} specific features. - -For some platforms binary compatibility is also supported, see 'Library -binary compatibility' below. - -Between minor versions, for example between {\tt 2.2.x}, {\tt 2.4.x} and {\tt -2.6.x}, there will be some incompatibilities. Wherever possible the old way -of doing something is kept alongside the new for a time wrapped inside: - -\begin{verbatim} - #if WXWIN_COMPATIBILITY_2_4 - /* deprecated feature */ - ... - #endif -\end{verbatim} - -By default the {\tt WXWIN\_COMPATIBILITY{\it \_X\_X}} macro is set -to 1 for the previous stable branch, for example -in {\tt 2.6.x} {\tt WXWIN\_COMPATIBILITY\_2\_4 = 1}. For the next earlier -stable branch the default is 0, so {\tt WXWIN\_COMPATIBILITY\_2\_2 = 0} -for {\tt 2.6.x}. Earlier than that, obsolete features are removed. - -These macros can be changed in {\tt setup.h}. Or on UNIX-like systems you can -set them using the {\tt --disable-compat24} and {\tt --enable-compat22} -options to {\tt configure}. - -They can be useful in two ways: - -\begin{enumerate} -\item Changing {\tt WXWIN\_COMPATIBILITY\_2\_4} to 0 can be useful to -find uses of deprecated features in your program. -\item Changing {\tt WXWIN\_COMPATIBILITY\_2\_2} to 1 can be useful to -compile a program developed using {\tt 2.2.x} that no longer compiles -with {\tt 2.6.x}. -\end{enumerate} - -A program requiring one of these macros to be 1 will become -incompatible with some future version of wxWidgets, and you should consider -updating it. - -\subsection{Library binary compatibility}\label{libbincompatibility} - -For some platforms, releases from a stable branch are not only source level -compatible but can also be {\em binary compatible}. - -Binary compatibility makes it possible to get the maximum benefit from -using shared libraries, also known as dynamic link libraries (DLLs) on -Windows or dynamic shared libraries on OS X. - -For example, suppose several applications are installed on a system requiring -wxWidgets {\tt 2.6.0}, {\tt 2.6.1} and {\tt 2.6.2}. Since {\tt 2.6.2} is -backward compatible with the earlier versions, it should be enough to -install just wxWidgets {\tt 2.6.2} shared libraries, and all the applications -should be able to use them. If binary compatibility is not supported, then all -the required versions {\tt 2.6.0}, {\tt 2.6.1} and {\tt 2.6.2} must be -installed side by side. - -Achieving this, without the user being required to have the source code -and recompile everything, places many extra constraints on the changes -that can be made within the stable branch. So it is not supported for all -platforms, and not for all versions of wxWidgets. To date it has mainly -been supported by wxGTK for UNIX-like platforms. - -Another practical consideration is that for binary compatibility to work, -all the applications and libraries must have been compiled with compilers -that are capable of producing compatible code; that is, they must use the -same ABI (Application Binary Interface). Unfortunately most different C++ -compilers do not produce code compatible with each other, and often even -different versions of the same compiler are not compatible. - -\subsection{Application binary compatibility}\label{appbincompatibility} - -The most important aspect of binary compatibility is that applications -compiled with one version of wxWidgets, e.g. {\tt 2.6.1}, continue to work -with shared libraries of a later binary compatible version, for example {\tt -2.6.2}. - -The converse can also be useful however. That is, it can be useful for a -developer using a later version, e.g. {\tt 2.6.2} to be able to create binary -application packages that will work with all binary compatible versions of -the shared library starting with, for example {\tt 2.6.0}. - -To do this the developer must, of course, avoid any features not available -in the earlier versions. However this is not necessarily enough; in some -cases an application compiled with a later version may depend on it even -though the same code would compile fine against an earlier version. -% thinks: a situation we should try to avoid. - -To help with this, a preprocessor symbol {\tt wxABI\_VERSION} can be defined -during the compilation of the application (this would usually be done in the -application's makefile or project settings). It should be set to the lowest -version that is being targeted, as a number with two decimal digits for each -component, for example {\tt wxABI\_VERSION=20600} for {\tt 2.6.0}. - -Setting {\tt wxABI\_VERSION} should prevent the application from implicitly -depending on a later version of wxWidgets, and also disables any new features -in the API, giving a compile time check that the source is compatible with -the versions of wxWidgets being targeted. - -Uses of {\tt wxABI\_VERSION} are stripped out of the wxWidgets sources when -each new development branch is created. Therefore it is only useful to help -achieve compatibility with earlier versions with the same major -and {\em even} minor version numbers. It won't, for example, help you write -code compatible with {\tt 2.4.x} using wxWidgets {\tt 2.6.x}. diff --git a/docs/latex/wx/bbutton.tex b/docs/latex/wx/bbutton.tex deleted file mode 100644 index d67292592f..0000000000 --- a/docs/latex/wx/bbutton.tex +++ /dev/null @@ -1,322 +0,0 @@ -\section{\class{wxBitmapButton}}\label{wxbitmapbutton} - -A bitmap button is a control that contains a bitmap. -It may be placed on a \helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed -almost any other window. - - -\wxheading{Derived from} - -\helpref{wxButton}{wxbutton}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\wxheading{Remarks} - -A bitmap button can be supplied with a single bitmap, and wxWidgets will draw -all button states using this bitmap. If the application needs more control, additional bitmaps for -the selected state, unpressed focused state, and greyed-out state may be supplied. - - -\wxheading{Button states} - -This class supports bitmaps for several different states: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{normal}}{This is the bitmap shown in the default state, -it must be always valid while all the other bitmaps are optional and don't have -to be set.} -\twocolitem{\windowstyle{disabled}}{Bitmap shown when the button is disabled.} -\twocolitem{\windowstyle{selected}}{Bitmap shown when the button is pushed -(e.g. while the user keeps the mouse button pressed on it)} -\twocolitem{\windowstyle{focus}}{Bitmap shown when the button has keyboard -focus but is not pressed.} -\twocolitem{\windowstyle{hover}}{Bitmap shown when the mouse is over the -button (but it is not pressed). Notice that if hover bitmap is not specified -but the current platform UI uses hover images for the buttons (such as Windows -XP or GTK+), then the focus bitmap is used for hover state as well. This makes -it possible to set focus bitmap only to get reasonably good behaviour on all -platforms.} -\end{twocollist} - - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBU\_AUTODRAW}}{If -this is specified, the button will be drawn automatically using the label bitmap only, providing -a 3D-look border. If this style is not specified, the button will be drawn without borders and using all -provided bitmaps. WIN32 only.} -\twocolitem{\windowstyle{wxBU\_LEFT}}{Left-justifies the bitmap label. WIN32 only.} -\twocolitem{\windowstyle{wxBU\_TOP}}{Aligns the bitmap label to the top of the button. WIN32 only.} -\twocolitem{\windowstyle{wxBU\_RIGHT}}{Right-justifies the bitmap label. WIN32 only.} -\twocolitem{\windowstyle{wxBU\_BOTTOM}}{Aligns the bitmap label to the bottom of the button. WIN32 only.} -\end{twocollist} - -Note that \windowstyle{wxBU\_EXACTFIT} supported by -\helpref{wxButton}{wxbutton} is \emph{not} used by this class as bitmap buttons -don't have any minimal standard size by default. - -See also \helpref{window styles overview}{windowstyles}. - - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event, -when the button is clicked.} -\end{twocollist} - - -\wxheading{See also} - -\helpref{wxButton}{wxbutton} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxBitmapButton::wxBitmapButton}\label{wxbitmapbuttonctor} - -\func{}{wxBitmapButton}{\void} - -Default constructor. - -\func{}{wxBitmapButton}{ -\param{wxWindow* }{parent}, -\param{wxWindowID }{id}, -\param{const wxBitmap\& }{bitmap},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long }{style = wxBU\_AUTODRAW}, -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``button"}} - -Constructor, creating and showing a button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Button identifier. A value of -1 indicates a default value.} - -\docparam{bitmap}{Bitmap to be displayed.} - -\docparam{pos}{Button position.} - -\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized -appropriately for the bitmap.} - -\docparam{style}{Window style. See \helpref{wxBitmapButton}{wxbitmapbutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The {\it bitmap} parameter is normally the only bitmap you need to provide, and wxWidgets will -draw the button correctly in its different states. If you want more control, call -any of the functions \helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled}. - -Note that the bitmap passed is smaller than the actual button created. - -\wxheading{See also} - -\helpref{wxBitmapButton::Create}{wxbitmapbuttoncreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxBitmapButton::\destruct{wxBitmapButton}}\label{wxbitmapbuttondtor} - -\func{}{\destruct{wxBitmapButton}}{\void} - -Destructor, destroying the button. - - -\membersection{wxBitmapButton::Create}\label{wxbitmapbuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxBitmap\& }{bitmap},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Button creation function for two-step creation. For more details, see \helpref{wxBitmapButton::wxBitmapButton}{wxbitmapbuttonctor}. - - -\membersection{wxBitmapButton::GetBitmapDisabled}\label{wxbitmapbuttongetbitmapdisabled} - -\constfunc{const wxBitmap\&}{GetBitmapDisabled}{\void} -\func{wxBitmap\&}{GetBitmapDisabled}{\void} - -Returns the bitmap for the disabled state, may be invalid. - -\wxheading{Return value} - -A reference to the disabled state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - - -\membersection{wxBitmapButton::GetBitmapFocus}\label{wxbitmapbuttongetbitmapfocus} - -\constfunc{const wxBitmap\&}{GetBitmapFocus}{\void} -\func{wxBitmap\&}{GetBitmapFocus}{\void} - -Returns the bitmap for the focused state, may be invalid. - -\wxheading{Return value} - -A reference to the focused state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus} - - -\membersection{wxBitmapButton::GetBitmapHover}\label{wxbitmapbuttongetbitmaphover} - -\constfunc{const wxBitmap\&}{GetBitmapHover}{\void} -\func{wxBitmap\&}{GetBitmapHover}{\void} - -Returns the bitmap used when the mouse is over the button, may be invalid. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapHover}{wxbitmapbuttonsetbitmaphover} - - -\membersection{wxBitmapButton::GetBitmapLabel}\label{wxbitmapbuttongetbitmaplabel} - -\constfunc{const wxBitmap\&}{GetBitmapLabel}{\void} -\func{wxBitmap\&}{GetBitmapLabel}{\void} - -Returns the label bitmap (the one passed to the constructor), always valid. - -\wxheading{Return value} - -A reference to the button's label bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel} - - -\membersection{wxBitmapButton::GetBitmapSelected}\label{wxbitmapbuttongetbitmapselected} - -\constfunc{wxBitmap\&}{GetBitmapSelected}{\void} - -Returns the bitmap for the selected state. - -\wxheading{Return value} - -A reference to the selected state bitmap. - -\wxheading{See also} - -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected} - - -\membersection{wxBitmapButton::SetBitmapDisabled}\label{wxbitmapbuttonsetbitmapdisabled} - -\func{void}{SetBitmapDisabled}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the disabled button appearance. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapDisabled}{wxbitmapbuttongetbitmapdisabled},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus} - - -\membersection{wxBitmapButton::SetBitmapFocus}\label{wxbitmapbuttonsetbitmapfocus} - -\func{void}{SetBitmapFocus}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the button appearance when it has the keyboard focus. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapFocus}{wxbitmapbuttongetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapSelected}{wxbitmapbuttonsetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - - -\membersection{wxBitmapButton::SetBitmapHover}\label{wxbitmapbuttonsetbitmaphover} - -\func{void}{SetBitmapHover}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap to be shown when the mouse is over the button. - -\newsince{2.7.0} and the hover bitmap is currently only supported in wxMSW. - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapHover}{wxbitmapbuttongetbitmaphover} - -\membersection{wxBitmapButton::SetBitmapLabel}\label{wxbitmapbuttonsetbitmaplabel} - -\func{void}{SetBitmapLabel}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap label for the button. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap label to set.} - -\wxheading{Remarks} - -This is the bitmap used for the unselected state, and for all other states -if no other bitmaps are provided. - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapLabel}{wxbitmapbuttongetbitmaplabel} - - -\membersection{wxBitmapButton::SetBitmapSelected}\label{wxbitmapbuttonsetbitmapselected} - -\func{void}{SetBitmapSelected}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the selected (depressed) button appearance. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to set.} - -\wxheading{See also} - -\helpref{wxBitmapButton::GetBitmapSelected}{wxbitmapbuttongetbitmapselected},\rtfsp -\helpref{wxBitmapButton::SetBitmapLabel}{wxbitmapbuttonsetbitmaplabel},\rtfsp -\helpref{wxBitmapButton::SetBitmapFocus}{wxbitmapbuttonsetbitmapfocus},\rtfsp -\helpref{wxBitmapButton::SetBitmapDisabled}{wxbitmapbuttonsetbitmapdisabled} - diff --git a/docs/latex/wx/bitmap.tex b/docs/latex/wx/bitmap.tex deleted file mode 100644 index 479ca1ca56..0000000000 --- a/docs/latex/wx/bitmap.tex +++ /dev/null @@ -1,600 +0,0 @@ -\section{\class{wxBitmap}}\label{wxbitmap} - -%\overview{Overview}{wxbitmapoverview} -% -This class encapsulates the concept of a platform-dependent bitmap, -either monochrome or colour or colour with alpha channel support. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullBitmap} - -\wxheading{See also} - -\helpref{wxBitmap overview}{wxbitmapoverview}, -\helpref{supported bitmap file formats}{supportedbitmapformats}, -\helpref{wxDC::Blit}{wxdcblit}, -\helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}, \helpref{wxBitmap}{wxbitmap}, -\helpref{wxMemoryDC}{wxmemorydc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmap::wxBitmap}\label{wxbitmapctor} - -\func{}{wxBitmap}{\void} - -Default constructor. - -\func{}{wxBitmap}{\param{const wxBitmap\& }{bitmap}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. -To make a real copy, you can use: - -\begin{verbatim} - wxBitmap newBitmap = oldBitmap.GetSubBitmap( - wxRect(0, 0, oldBitmap.GetWidth(), oldBitmap.GetHeight())); -\end{verbatim} - -\func{}{wxBitmap}{\param{const void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data which is interpreted in platform-dependent -manner. - -\func{}{wxBitmap}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\ - \param{int}{ depth = 1}} - -Creates a bitmap from an array of bits. - -You should only use this function for monochrome bitmaps ({\it depth} 1) in -portable programs: in this case the {\it bits} parameter should contain an XBM -image. - -For other bit depths, the behaviour is platform dependent: under Windows, the -data is passed without any changes to the underlying {\tt CreateBitmap()} API. -Under other platforms, only monochrome bitmaps may be created using this -constructor and \helpref{wxImage}{wximage} should be used for creating colour -bitmaps from static data. - -\func{}{wxBitmap}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a new bitmap. A depth of -1 indicates the depth of the current screen -or visual. Some platforms only support 1 for monochrome and -1 for the current -colour setting. Beginning with version 2.5.4 of wxWidgets a depth of 32 including -an alpha channel is supported under MSW, Mac and GTK+. - -\func{}{wxBitmap}{\param{const char* const*}{ bits}} - -Creates a bitmap from XPM data. - -\func{}{wxBitmap}{\param{const wxString\& }{name}, \param{long}{ type}} - -Loads a bitmap from a file or resource. - -\func{}{wxBitmap}{\param{const wxImage\&}{ img}, \param{int}{ depth = -1}} - -Creates bitmap object from the image. This has to be done -to actually display an image as you cannot draw an image directly on a window. -The resulting bitmap will use the provided colour depth (or that of the -current system if depth is -1) which entails that a colour reduction has -to take place. - -When in 8-bit mode (PseudoColour mode), the GTK port will use a color cube created -on program start-up to look up colors. This ensures a very fast conversion, but -the image quality won't be perfect (and could be better for photo images using more -sophisticated dithering algorithms). - -On Windows, if there is a palette present (set with SetPalette), it will be used when -creating the wxBitmap (most useful in 8-bit display mode). On other platforms, -the palette is currently ignored. - -\wxheading{Parameters} - -\docparam{bits}{Specifies an array of pixel values.} - -\docparam{width}{Specifies the width of the bitmap.} - -\docparam{height}{Specifies the height of the bitmap.} - -\docparam{depth}{Specifies the depth of the bitmap. If this is omitted, the display depth of the -screen is used.} - -\docparam{name}{This can refer to a resource name under MS Windows, or a filename under MS Windows and X. -Its meaning is determined by the {\it type} parameter.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP\_RESOURCE}}{Load a Windows bitmap resource from the executable. Windows only.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PICT\_RESOURCE}}{Load a PICT image resource from the executable. Mac OS only.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration. -If all possible wxWidgets settings are used, the Windows platform supports BMP file, BMP resource, -XPM data, and XPM. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file. -Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file. - -In addition, wxBitmap can read all formats that \helpref{wxImage}{wximage} can, which currently include -wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_TIF, wxBITMAP\_TYPE\_PNG, wxBITMAP\_TYPE\_GIF, wxBITMAP\_TYPE\_PCX, -and wxBITMAP\_TYPE\_PNM. Of course, you must have wxImage handlers loaded. } - -\docparam{img}{Platform-independent wxImage object.} - -\wxheading{Remarks} - -The first form constructs a bitmap object with no data; an assignment or another member function such as Create -or LoadFile must be called subsequently. - -The second and third forms provide copy constructors. Note that these do not copy the -bitmap data, but instead a pointer to the data, keeping a reference count. They are therefore -very efficient operations. - -The fourth form constructs a bitmap from data whose type and value depends on -the value of the {\it type} argument. - -The fifth form constructs a (usually monochrome) bitmap from an array of pixel values, under both -X and Windows. - -The sixth form constructs a new bitmap. - -The seventh form constructs a bitmap from pixmap (XPM) data, if wxWidgets has been configured -to incorporate this feature. - -To use this constructor, you must first include an XPM file. For -example, assuming that the file {\tt mybitmap.xpm} contains an XPM array -of character pointers called mybitmap: - -\begin{verbatim} -#include "mybitmap.xpm" - -... - -wxBitmap *bitmap = new wxBitmap(mybitmap); -\end{verbatim} - -The eighth form constructs a bitmap from a file or resource. {\it name} can refer -to a resource name under MS Windows, or a filename under MS Windows and X. - -Under Windows, {\it type} defaults to wxBITMAP\_TYPE\_BMP\_RESOURCE. -Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf wxBitmap(name, flag)}}{Loads a bitmap from a file} -\twocolitem{{\bf wxEmptyBitmap(width, height, depth = -1)}}{Creates an -empty bitmap with the given specifications} -\twocolitem{{\bf wxBitmapFromXPMData(listOfStrings)}}{Create a bitmap -from a Python list of strings whose contents are XPM data.} -\twocolitem{{\bf wxBitmapFromBits(bits, width, height, -depth=-1)}}{Create a bitmap from an array of bits contained in a -string.} -\twocolitem{{\bf wxBitmapFromImage(image, depth=-1)}}{Convert a -wxImage to a wxBitmap.} -\end{twocollist}} -} - -\perlnote{Constructors supported by wxPerl are:\par -\begin{itemize} -\item{Wx::Bitmap->new( width, height, depth = -1 )} -\item{Wx::Bitmap->new( name, type )} -\item{Wx::Bitmap->new( icon )} -\item{Wx::Bitmap->newFromBits( bits, width, height, depth = 1 )} -\item{Wx::Bitmap->newFromXPM( data )} -\end{itemize} -} - -\membersection{wxBitmap::\destruct{wxBitmap}}\label{wxbitmapdtor} - -\func{}{\destruct{wxBitmap}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -If the application omits to delete the bitmap explicitly, the bitmap will be -destroyed automatically by wxWidgets when the application exits. - -Do not delete a bitmap that is selected into a memory device context. - -\membersection{wxBitmap::AddHandler}\label{wxbitmapaddhandler} - -\func{static void}{AddHandler}{\param{wxBitmapHandler*}{ handler}} - -Adds a handler to the end of the static list of format handlers. - -\docparam{handler}{A new bitmap format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::CleanUpHandlers}\label{wxbitmapcleanuphandlers} - -\func{static void}{CleanUpHandlers}{\void} - -Deletes all bitmap handlers. - -This function is called by wxWidgets on exit. - -\membersection{wxBitmap::ConvertToImage}\label{wxbitmapconverttoimage} - -\func{wxImage}{ConvertToImage}{\void} - -Creates an image from a platform-dependent bitmap. This preserves -mask information so that bitmaps and images can be converted back -and forth without loss in that respect. - -\membersection{wxBitmap::CopyFromIcon}\label{wxbitmapcopyfromicon} - -\func{bool}{CopyFromIcon}{\param{const wxIcon\&}{ icon}} - -Creates the bitmap from an icon. - -\membersection{wxBitmap::Create}\label{wxbitmapcreate} - -\func{virtual bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a fresh bitmap. If the final argument is omitted, the display depth of -the screen is used. - -\func{virtual bool}{Create}{\param{const void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data, which can be of arbitrary type. - -\wxheading{Parameters} - -\docparam{width}{The width of the bitmap in pixels.} - -\docparam{height}{The height of the bitmap in pixels.} - -\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.} - -\docparam{data}{Data whose type depends on the value of {\it type}.} - -\docparam{type}{A bitmap type identifier - see \helpref{wxBitmap::wxBitmap}{wxbitmapctor} for a list -of possible values.} - -\wxheading{Return value} - -true if the call succeeded, false otherwise. - -\wxheading{Remarks} - -The first form works on all platforms. The portability of the second form depends on the -type of data. - -\wxheading{See also} - -\helpref{wxBitmap::wxBitmap}{wxbitmapctor} - -\membersection{wxBitmap::FindHandler}\label{wxbitmapfindhandler} - -\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name. - -\func{static wxBitmapHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{wxBitmapType}{ bitmapType}} - -Finds the handler associated with the given extension and type. - -\func{static wxBitmapHandler*}{FindHandler}{\param{wxBitmapType }{bitmapType}} - -Finds the handler associated with the given bitmap type. - -\docparam{name}{The handler name.} - -\docparam{extension}{The file extension, such as ``bmp".} - -\docparam{bitmapType}{The bitmap type, such as wxBITMAP\_TYPE\_BMP.} - -\wxheading{Return value} - -A pointer to the handler if found, NULL otherwise. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::GetDepth}\label{wxbitmapgetdepth} - -\constfunc{int}{GetDepth}{\void} - -Gets the colour depth of the bitmap. A value of 1 indicates a -monochrome bitmap. - -\membersection{wxBitmap::GetHandlers}\label{wxbitmapgethandlers} - -\func{static wxList\&}{GetHandlers}{\void} - -Returns the static list of bitmap format handlers. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::GetHeight}\label{wxbitmapgetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the bitmap in pixels. - -\membersection{wxBitmap::GetPalette}\label{wxbitmapgetpalette} - -\constfunc{wxPalette*}{GetPalette}{\void} - -Gets the associated palette (if any) which may have been loaded from a file -or set for the bitmap. - -\wxheading{See also} - -\helpref{wxPalette}{wxpalette} - -\membersection{wxBitmap::GetMask}\label{wxbitmapgetmask} - -\constfunc{wxMask*}{GetMask}{\void} - -Gets the associated mask (if any) which may have been loaded from a file -or set for the bitmap. - -\wxheading{See also} - -\helpref{wxBitmap::SetMask}{wxbitmapsetmask}, \helpref{wxMask}{wxmask} - -\membersection{wxBitmap::GetWidth}\label{wxbitmapgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the bitmap in pixels. - -\wxheading{See also} - -\helpref{wxBitmap::GetHeight}{wxbitmapgetheight} - -\membersection{wxBitmap::GetSubBitmap}\label{wxbitmapgetsubbitmap} - -\constfunc{wxBitmap}{GetSubBitmap}{\param{const wxRect\&}{rect}} - -Returns a sub bitmap of the current one as long as the rect belongs entirely to -the bitmap. This function preserves bit depth and mask information. - -\membersection{wxBitmap::InitStandardHandlers}\label{wxbitmapinitstandardhandlers} - -\func{static void}{InitStandardHandlers}{\void} - -Adds the standard bitmap format handlers, which, depending on wxWidgets -configuration, can be handlers for Windows bitmap, Windows bitmap resource, and XPM. - -This function is called by wxWidgets on startup. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::InsertHandler}\label{wxbitmapinserthandler} - -\func{static void}{InsertHandler}{\param{wxBitmapHandler*}{ handler}} - -Adds a handler at the start of the static list of format handlers. - -\docparam{handler}{A new bitmap format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::LoadFile}\label{wxbitmaploadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{wxBitmapType}{ type}} - -Loads a bitmap from a file or resource. - -\wxheading{Parameters} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP\_RESOURCE}}{Load a Windows bitmap resource from the executable.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PICT\_RESOURCE}}{Load a PICT image resource from the executable. Mac OS only.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration. - -In addition, wxBitmap can read all formats that \helpref{wxImage}{wximage} can -(wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_PNG, wxBITMAP\_TYPE\_GIF, wxBITMAP\_TYPE\_PCX, wxBITMAP\_TYPE\_PNM). -(Of course you must have wxImage handlers loaded.) } - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{Remarks} - -A palette may be associated with the bitmap if one exists (especially for -colour Windows bitmaps), and if the code supports it. You can check -if one has been created by using the \helpref{GetPalette}{wxbitmapgetpalette} member. - -\wxheading{See also} - -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile} - -\membersection{wxBitmap::IsOk}\label{wxbitmapisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if bitmap data is present. - -\membersection{wxBitmap::RemoveHandler}\label{wxbitmapremovehandler} - -\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name, and removes it. The handler -is not deleted. - -\docparam{name}{The handler name.} - -\wxheading{Return value} - -true if the handler was found and removed, false otherwise. - -\wxheading{See also} - -\helpref{wxBitmapHandler}{wxbitmaphandler} - -\membersection{wxBitmap::SaveFile}\label{wxbitmapsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{wxBitmapType}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves a bitmap in the named file. - -\wxheading{Parameters} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a Windows bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration. - -In addition, wxBitmap can save all formats that \helpref{wxImage}{wximage} can -(wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_PNG). -(Of course you must have wxImage handlers loaded.) } - -\docparam{palette}{An optional palette used for saving the bitmap.} -% TODO: this parameter should -%probably be eliminated; instead the app should set the palette before saving. - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{Remarks} - -Depending on how wxWidgets has been configured, not all formats may be available. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile} - -\membersection{wxBitmap::SetDepth}\label{wxbitmapsetdepth} - -\func{void}{SetDepth}{\param{int }{depth}} - -Sets the depth member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{depth}{Bitmap depth.} - -\membersection{wxBitmap::SetHeight}\label{wxbitmapsetheight} - -\func{void}{SetHeight}{\param{int }{height}} - -Sets the height member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{height}{Bitmap height in pixels.} - -\membersection{wxBitmap::SetMask}\label{wxbitmapsetmask} - -\func{void}{SetMask}{\param{wxMask* }{mask}} - -Sets the mask for this bitmap. - -\wxheading{Remarks} - -The bitmap object owns the mask once this has been called. - -\wxheading{See also} - -\helpref{wxBitmap::GetMask}{wxbitmapgetmask}, \helpref{wxMask}{wxmask} - -%% VZ: this function is an implementation detail and shouldn't be documented -%%\membersection{wxBitmap::SetOk}\label{wxbitmapsetok} -%% -%%\func{void}{SetOk}{\param{int }{isOk}} -%% -%%Sets the validity member (does not affect the bitmap data). -%% -%%\wxheading{Parameters} -%% -%%\docparam{isOk}{Validity flag.} - -\membersection{wxBitmap::SetPalette}\label{wxbitmapsetpalette} - -\func{void}{SetPalette}{\param{const wxPalette\& }{palette}} - -Sets the associated palette. (Not implemented under GTK+). - -\wxheading{Parameters} - -\docparam{palette}{The palette to set.} - -\wxheading{See also} - -\helpref{wxPalette}{wxpalette} - -\membersection{wxBitmap::SetWidth}\label{wxbitmapsetwidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Sets the width member (does not affect the bitmap data). - -\wxheading{Parameters} - -\docparam{width}{Bitmap width in pixels.} - -\membersection{wxBitmap::operator $=$}\label{wxbitmapassign} - -\func{wxBitmap\& }{operator $=$}{\param{const wxBitmap\& }{bitmap}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap to assign.} - -\wxheading{Return value} - -Returns 'this' object. - - diff --git a/docs/latex/wx/bitmapcombobox.tex b/docs/latex/wx/bitmapcombobox.tex deleted file mode 100644 index 1ec2403f65..0000000000 --- a/docs/latex/wx/bitmapcombobox.tex +++ /dev/null @@ -1,187 +0,0 @@ -\section{\class{wxBitmapComboBox}}\label{wxbitmapcombobox} - -A combobox that displays bitmap in front of the list items. -It currently only allows using bitmaps of one size, and resizes itself -so that a bitmap can be shown next to the text field. - -\wxheading{Derived from} - -\helpref{wxComboBox}{wxcombobox}\\ -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Remarks} - -While wxBitmapComboBox contains the \helpref{wxComboBox}{wxcombobox} -API, but it might not actually be derived from that class. In fact, -if the platform does not have a native implementation, wxBitmapComboBox -will inherit from \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}. -You can determine if the implementation is generic by checking whether -wxGENERIC\_BITMAPCOMBOBOX is defined. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCB\_READONLY}}{Creates a combobox without a text -editor. On some platforms the control may appear very different when this -style is used.} -\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries in the list alphabetically.} -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the event wxEVT\_COMMAND\_TEXT\_ENTER (otherwise pressing Enter key -is either processed internally by the control or used for navigation between -dialog controls). Windows only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event, -when an item on the list is selected.} -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event, -when the combobox text changes.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_ENTER event, -when is pressed in the combobox.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxComboBox}{wxcombobox}, \helpref{wxChoice}{wxchoice}, \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxBitmapComboBox::wxBitmapComboBox}\label{wxbitmapcomboboxctor} - -\func{}{wxBitmapComboBox}{\void} - -Default constructor. - -\func{}{wxBitmapComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{}{wxBitmapComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Constructor, creating and showing a combobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial selection string. An empty string indicates no selection.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxBitmapComboBox}{wxbitmapcombobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxBitmapComboBox::Create}{wxbitmapcomboboxcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxBitmapComboBox::\destruct{wxBitmapComboBox}}\label{wxbitmapcomboboxdtor} - -\func{}{\destruct{wxBitmapComboBox}}{\void} - -Destructor, destroying the combobox. - - -\membersection{wxBitmapComboBox::Create}\label{wxbitmapcomboboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Creates the combobox for two-step construction. Derived classes -should call or replace this function. See \helpref{wxBitmapComboBox::wxBitmapComboBox}{wxbitmapcomboboxctor}\rtfsp -for further details. - - -\membersection{wxBitmapComboBox::Append}\label{wxbitmapcomboboxappend} - -\func{int}{Append}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -Adds the item to the end of the combo box. - -\func{int}{Append}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap}, \param{void *}{clientData}} - -\func{int}{Append}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap}, \param{wxClientData *}{clientData}} - -Adds the item to the end of the combo box, associating the given, typed or -untyped, client data pointer with the item. - - -\membersection{wxBitmapComboBox::GetBitmapSize}\label{wxbitmapcomboboxgetbitmapsize} - -\constfunc{wxSize}{GetBitmapSize}{\void} - -Returns size of bitmaps used in the list. - - -\membersection{wxBitmapComboBox::GetItemBitmap}\label{wxbitmapcomboboxgetitembitmap} - -\constfunc{wxBitmap}{GetItemBitmap}{\param{unsigned int }{n}} - -Returns the bitmap of the item with the given index. - - -\membersection{wxBitmapComboBox::Insert}\label{wxbitmapcomboboxinsert} - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap}, \param{unsigned int }{pos}} - -Inserts the item into the list before pos. -Not valid for {\tt wxCB\_SORT} style, use Append instead. - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap}, \param{unsigned int }{pos}, \param{void *}{clientData}} - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{const wxBitmap\& }{bitmap}, \param{unsigned int }{pos}, \param{wxClientData *}{clientData}} - -Inserts the item into the list before pos, associating the given, typed or -untyped, client data pointer with the item. -Not valid for {\tt wxCB\_SORT} style, use Append instead. - - -\membersection{wxBitmapComboBox::SetItemBitmap}\label{wxbitmapcomboboxsetitembitmap} - -\func{void}{SetItemBitmap}{\param{unsigned int }{n}, \param{const wxBitmap\& }{bitmap}} - -Sets the bitmap for the given item. - diff --git a/docs/latex/wx/bitmaptglbutn.tex b/docs/latex/wx/bitmaptglbutn.tex deleted file mode 100644 index 89f3a38401..0000000000 --- a/docs/latex/wx/bitmaptglbutn.tex +++ /dev/null @@ -1,86 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: bitmaptglbtn.tex -%% Purpose: wxBitmapToggleButton documentation -%% Author: Robert Roebling -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxBitmapToggleButton}}\label{wxbitmaptogglebutton} - -wxBitmapToggleButton is a \helpref{wxToggleButton}{wxtogglebutton} -that contains a bitmap instead of text. - -This control emits an update UI event. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -There are no special styles for wxBitmapToggleButton. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TOGGLEBUTTON(id, func)}}{Handles a toggle button click event.} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapToggleButton::wxBitmapToggleButton}\label{wxbitmaptogglebuttonconstr} - -\func{}{wxBitmapToggleButton}{\void} - -Default constructor. - -\func{}{wxBitmapToggleButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Constructor, creating and showing a toggle button with the bitmap {\it label}. -Internally calls Create(). - -\membersection{wxBitmapToggleButton::Create}\label{wxbitmaptogglebuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Create method for two-step construction. - -\membersection{wxBitmapToggleButton::GetValue}\label{wxbitmaptogglebuttongetvalue} - -\constfunc{bool}{GetValue}{\void} - -Gets the state of the toggle button. - -\wxheading{Return value} - -Returns {\tt true} if it is pressed, {\tt false} otherwise. - -\membersection{wxBitmapToggleButton::SetValue}\label{wxbitmaptogglebuttonsetvalue} - -\func{void}{SetValue}{\param{bool}{ state}} - -Sets the toggle button to the given state. This does not cause a -{\tt EVT\_TOGGLEBUTTON} event to be emitted. - -\wxheading{Parameters} - -\docparam{state}{If {\tt true}, the button is pressed.} - diff --git a/docs/latex/wx/bmpdatob.tex b/docs/latex/wx/bmpdatob.tex deleted file mode 100644 index e08b38d94b..0000000000 --- a/docs/latex/wx/bmpdatob.tex +++ /dev/null @@ -1,70 +0,0 @@ -\section{\class{wxBitmapDataObject}}\label{wxbitmapdataobject} - -wxBitmapDataObject is a specialization of wxDataObject for bitmap data. It can -be used without change to paste data into the -\helpref{wxClipboard}{wxclipboard} or a \helpref{wxDropSource}{wxdropsource}. A -user may wish to derive a new class from this class for providing a bitmap -on-demand in order to minimize memory consumption when offering data in several -formats, such as a bitmap and GIF. - -\pythonnote{If you wish to create a derived wxBitmapDataObject class in -wxPython you should derive the class from wxPyBitmapDataObject -in order to get Python-aware capabilities for the various virtual -methods.} - -\wxheading{Virtual functions to override} - -This class may be used as is, but -\helpref{GetBitmap}{wxbitmapdataobjectgetbitmap} may be overridden to increase -efficiency. - -\wxheading{Derived from} - -\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{wxDataObject}{wxdataobject}, -\helpref{wxDataObjectSimple}{wxdataobjectsimple}, -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxDataObject}{wxdataobject} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapDataObject::wxBitmapDataObject}\label{wxbitmapdataobjectctor} - -\func{}{wxBitmapDataObject}{\param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -Constructor, optionally passing a bitmap (otherwise use -\helpref{SetBitmap}{wxbitmapdataobjectsetbitmap} later). - -\membersection{wxBitmapDataObject::GetBitmap}\label{wxbitmapdataobjectgetbitmap} - -\constfunc{virtual wxBitmap}{GetBitmap}{\void} - -Returns the bitmap associated with the data object. You may wish to override -this method when offering data on-demand, but this is not required by -wxWidgets' internals. Use this method to get data in bitmap form from -the \helpref{wxClipboard}{wxclipboard}. - -\membersection{wxBitmapDataObject::SetBitmap}\label{wxbitmapdataobjectsetbitmap} - -\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap associated with the data object. This method is called when the -data object receives data. Usually there will be no reason to override this -function. - diff --git a/docs/latex/wx/bmphand.tex b/docs/latex/wx/bmphand.tex deleted file mode 100644 index 86aa92b95f..0000000000 --- a/docs/latex/wx/bmphand.tex +++ /dev/null @@ -1,169 +0,0 @@ -\section{\class{wxBitmapHandler}}\label{wxbitmaphandler} - -\overview{Overview}{wxbitmapoverview} - -This is the base class for implementing bitmap file loading/saving, and bitmap creation from data. -It is used within wxBitmap and is not normally seen by the application. - -If you wish to extend the capabilities of wxBitmap, derive a class from wxBitmapHandler -and add the handler using \helpref{wxBitmap::AddHandler}{wxbitmapaddhandler} in your -application initialisation. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapHandler::wxBitmapHandler}\label{wxbitmaphandlerctor} - -\func{}{wxBitmapHandler}{\void} - -Default constructor. In your own default constructor, initialise the members -m\_name, m\_extension and m\_type. - -\membersection{wxBitmapHandler::\destruct{wxBitmapHandler}}\label{wxbitmaphandlerdtor} - -\func{}{\destruct{wxBitmapHandler}}{\void} - -Destroys the wxBitmapHandler object. - -\membersection{wxBitmapHandler::Create}\label{wxbitmaphandlercreate} - -\func{virtual bool}{Create}{\param{wxBitmap* }{bitmap}, \param{const void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a bitmap from the given data, which can be of arbitrary type. The wxBitmap object {\it bitmap} is -manipulated by this function. - -\wxheading{Parameters} - -\docparam{bitmap}{The wxBitmap object.} - -\docparam{width}{The width of the bitmap in pixels.} - -\docparam{height}{The height of the bitmap in pixels.} - -\docparam{depth}{The depth of the bitmap in pixels. If this is -1, the screen depth is used.} - -\docparam{data}{Data whose type depends on the value of {\it type}.} - -\docparam{type}{A bitmap type identifier - see \helpref{wxBitmapHandler::wxBitmapHandler}{wxbitmapctor} for a list -of possible values.} - -\wxheading{Return value} - -true if the call succeeded, false otherwise (the default). - -\membersection{wxBitmapHandler::GetName}\label{wxbitmaphandlergetname} - -\constfunc{const wxString\&}{ GetName}{\void} - -Gets the name of this handler. - -\membersection{wxBitmapHandler::GetExtension}\label{wxbitmaphandlergetextension} - -\constfunc{const wxString\&}{ GetExtension}{\void} - -Gets the file extension associated with this handler. - -\membersection{wxBitmapHandler::GetType}\label{wxbitmaphandlergettype} - -\constfunc{long}{GetType}{\void} - -Gets the bitmap type associated with this handler. - -\membersection{wxBitmapHandler::LoadFile}\label{wxbitmaphandlerloadfile} - -\func{bool}{LoadFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\&}{ name}, \param{long}{ type}} - -Loads a bitmap from a file or resource, putting the resulting data into {\it bitmap}. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap object which is to be affected by this operation.} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapctor} for values this can take.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\ -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\ -\helpref{wxBitmapHandler::SaveFile}{wxbitmaphandlersavefile} - -\membersection{wxBitmapHandler::SaveFile}\label{wxbitmaphandlersavefile} - -\func{bool}{SaveFile}{\param{wxBitmap* }{bitmap}, \param{const wxString\& }{name}, \param{int}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves a bitmap in the named file. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap object which is to be affected by this operation.} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{See \helpref{wxBitmap::wxBitmap}{wxbitmapctor} for values this can take.} - -\docparam{palette}{An optional palette used for saving the bitmap.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{See also} - -\helpref{wxBitmap::LoadFile}{wxbitmaploadfile}\\ -\helpref{wxBitmap::SaveFile}{wxbitmapsavefile}\\ -\helpref{wxBitmapHandler::LoadFile}{wxbitmaphandlerloadfile} - -\membersection{wxBitmapHandler::SetName}\label{wxbitmaphandlersetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the handler name. - -\wxheading{Parameters} - -\docparam{name}{Handler name.} - -\membersection{wxBitmapHandler::SetExtension}\label{wxbitmaphandlersetextension} - -\func{void}{SetExtension}{\param{const wxString\& }{extension}} - -Sets the handler extension. - -\wxheading{Parameters} - -\docparam{extension}{Handler extension.} - -\membersection{wxBitmapHandler::SetType}\label{wxbitmaphandlersettype} - -\func{void}{SetType}{\param{long }{type}} - -Sets the handler type. - -\wxheading{Parameters} - -\docparam{name}{Handler type.} - - - diff --git a/docs/latex/wx/body.tex b/docs/latex/wx/body.tex deleted file mode 100644 index b95bbdc74e..0000000000 --- a/docs/latex/wx/body.tex +++ /dev/null @@ -1,631 +0,0 @@ -\chapter{Introduction}\label{introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{What is wxWidgets?}\label{whatis} - -wxWidgets is a C++ framework providing GUI (Graphical User -Interface) and other facilities on more than one platform. Version 2 and higher -currently support all desktop versions of MS Windows, Unix with GTK+ 1.x or 2.x, -Unix with Motif, Unix with just X11, Unix with DirectFB, Mac OS X, OS/2. - -wxWidgets was originally developed at the Artificial Intelligence -Applications Institute, University of Edinburgh, for internal use, -and was first made publicly available in 1992. -Version 2 is a vastly improved version written and maintained by -Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik and many others. - -This manual contains a class reference and topic overviews. -For a selection of wxWidgets tutorials, please see the documentation page on the \urlref{wxWidgets web site}{http://www.wxwidgets.org}. - -Please note that in the following, ``MS Windows" often refers to all -platforms related to Microsoft Windows, including 32-bit and 64-bit -variants, unless otherwise stated. All trademarks are acknowledged. - -\section{Why another cross-platform development tool?}\label{why} - -wxWidgets was developed to provide a cheap and flexible way to maximize -investment in GUI application development. While a number of commercial -class libraries already existed for cross-platform development, -none met all of the following criteria: - -\begin{enumerate}\itemsep=0pt -\item low price; -\item source availability; -\item simplicity of programming; -\item support for a wide range of compilers. -\end{enumerate} - -Since wxWidgets was started, several other free or almost-free -GUI frameworks have emerged. However, none has the range of -features, flexibility, documentation and the well-established -development team that wxWidgets has. - -As open source software, wxWidgets has benefited from comments, -ideas, bug fixes, enhancements and the sheer enthusiasm of -users. This gives wxWidgets a certain advantage over its -commercial competitors (and over free libraries without an -independent development team), plus a robustness against the -transience of one individual or company. This openness and -availability of source code is especially important when the -future of thousands of lines of application code may depend upon -the longevity of the underlying class library. - -Version 2 goes much further than previous versions in terms of -generality and features, allowing applications to be produced -that are often indistinguishable from those produced using -single-platform toolkits such as Motif, GTK+ and MFC. - -The importance of using a platform-independent class library -cannot be overstated, since GUI application development is very -time-consuming, and sustained popularity of particular GUIs -cannot be guaranteed. Code can very quickly become obsolete if -it addresses the wrong platform or audience. wxWidgets helps to -insulate the programmer from these winds of change. Although -wxWidgets may not be suitable for every application (such as an -OLE-intensive program), it provides access to most of the -functionality a GUI program normally requires, plus many extras -such as network programming, PostScript output, and HTML -rendering; and it can of course be extended as needs dictate. -As a bonus, it provides a far cleaner and easier programming -interface than the native APIs. Programmers may find it -worthwhile to use wxWidgets even if they are developing on only -one platform. - -It is impossible to sum up the functionality of wxWidgets in a few paragraphs, but -here are some of the benefits: - -\begin{itemize}\itemsep=0pt -\item Low cost (free, in fact!) -\item You get the source. -\item Available on a variety of popular platforms. -\item Works with almost all popular C++ compilers and Python. -\item Over 70 example programs. -\item Over 1000 pages of printable and on-line documentation. -\item Simple-to-use, object-oriented API. -\item Flexible event system. -\item Graphics calls include lines, rounded rectangles, splines, polylines, etc. -\item Constraint-based and sizer-based layouts. -\item Print/preview and document/view architectures. -\item Toolbar, notebook, tree control, advanced list control classes. -\item PostScript generation under Unix, normal MS Windows printing on the PC. -\item MDI (Multiple Document Interface) support. -\item Can be used to create DLLs under Windows, dynamic libraries on Unix. -\item Common dialogs for file browsing, printing, colour selection, etc. -\item Under MS Windows, support for creating metafiles and copying -them to the clipboard. -\item An API for invoking help from applications. -\item Ready-to-use HTML window (supporting a subset of HTML). -\item Network support via a family of socket and protocol classes. -\item Support for platform independent image processing. -\item Built-in support for many file formats (BMP, PNG, JPEG, GIF, XPM, PNM, PCX). -\item Includes Tex2RTF, to allow you to produce your own documentation -in Windows Help, HTML and Word RTF formats. -\end{itemize} - -\section{wxWidgets requirements}\label{requirements} - -To make use of wxWidgets, you currently need one of the following setups. - -(a) MS-Windows: - -\begin{enumerate}\itemsep=0pt -\item A 32-bit or 64-bit PC running MS Windows. -\item A Windows compiler: MS Visual C++ (embedded Visual C++ for wxWinCE -port), Borland C++, Watcom C++, Cygwin, MinGW, Metrowerks CodeWarrior, -Digital Mars C++. See {\tt install.txt} for details about compiler -version supported. -\end{enumerate} - -(b) Unix: - -\begin{enumerate}\itemsep=0pt -\item Almost any C++ compiler, including GNU C++ and many Unix vendors -compilers such as Sun CC, HP-UX aCC or SGI mipsPro. -\item Almost any Unix workstation, and one of: GTK+ 2.4 or higher (GTK+ 1.2.10 -may still be supported but wxGTK1 port is not maintained any longer and lacks -many features of wxGTK2), Motif 1.2 or higher or Lesstif. If using the wxX11 -port, no such widget set is required. -\end{enumerate} - -(c) Mac OS/Mac OS X: - -\begin{enumerate}\itemsep=0pt -\item A PowerPC or Intel Mac running Mac OS X 10.3 or higher -\item The Apple Developer Tools (eg. GNU C++) or MetroWerks CodeWarrior (not -actively supported) -\end{enumerate} - -Under all platforms it's recommended to have large amounts of free hard disk -space. The exact amount needed depends on the port, compiler and build -configurations but to give an example, a debug build of the library may take up -to 500MB. - -\section{Availability and location of wxWidgets}\label{where} - -\winhelponly{wxWidgets is available by anonymous FTP and World Wide Web -from ftp://biolpc22.york.ac.uk/pub and/or http://www.wxwidgets.org.} -\winhelpignore{wxWidgets is available by anonymous FTP and World Wide Web -from \urlref{ftp://biolpc22.york.ac.uk/pub}{ftp://biolpc22.york.ac.uk/pub} -and/or \urlref{http://www.wxwidgets.org}{http://www.wxwidgets.org}.} - -You can also buy a CD-ROM using the form on the Web site. - -\section{Acknowledgements}\label{acknowledgements} - -The following is the list of the core, active developers of wxWidgets which keep -it running and have provided an invaluable, extensive and high-quality amount of -changes over the many of years of wxWidgets' life: - -\begin{description}\itemsep=0pt -\item Julian Smart -\item Vadim Zeitlin -\item Robert Roebling -\item Robin Dunn -\item Stefan Csomor -\item Vaclav Slavik -\item Paul Cornett -\item Wlodzimierz `ABX' Skiba -\item Chris Elliott -\item David Elliott -\item Kevin Hock -\item Stefan Neis -\item Michael Wetherell -\end{description} - -We would particularly like to thank the following peoples for their contributions -to wxWidgets, and the many others who have been involved in the project over the years. -Apologies for any unintentional omissions from this alphabetic list: - -Yiorgos Adamopoulos, Jamshid Afshar, Alejandro Aguilar-Sierra, AIAI, -Patrick Albert, Karsten Ballueder, Mattia Barbon, Michael Bedward, -Kai Bendorf, Yura Bidus, Keith Gary Boyce, Chris Breeze, Pete Britton, -Ian Brown, C. Buckley, Marco Cavallini, Dmitri Chubraev, Robin Corbet, Cecil Coupe, -Andrew Davison, Gilles Depeyrot, Neil Dudman, Hermann Dunkel, Jos van Eijndhoven, -Tom Felici, Thomas Fettig, Matthew Flatt, Pasquale Foggia, Josep Fortiana, Todd Fries, -Dominic Gallagher, Guillermo Rodriguez Garcia, Wolfram Gloger, Norbert Grotz, -Stefan Gunter, Bill Hale, Patrick Halke, Stefan Hammes, Guillaume Helle, -Harco de Hilster, Cord Hockemeyer, Markus Holzem, Olaf Klein, Leif Jensen, -Bart Jourquin, Guilhem Lavaux, Ron Lee, Jan Lessner, Nicholas Liebmann, -Torsten Liermann, Per Lindqvist, Francesco Montorsi, Thomas Runge, Tatu M\"{a}nnist\"{o}, -Scott Maxwell, Thomas Myers, Oliver Niedung, Ryan Norton, Hernan Otero, -Ian Perrigo, Timothy Peters, Giordano Pezzoli, Harri Pasanen, Thomaso Paoletti, -Garrett Potts, Marcel Rasche, Dino Scaringella, Jobst Schmalenbach, Arthur Seaton, -Paul Shirley, Stein Somers, Petr Smilauer, Neil Smith, Kari Syst\"{a}, George Tasker, -Arthur Tetzlaff-Deas, Jonathan Tonberg, Jyrki Tuomi, Janos Vegh, Andrea Venturoli, -David Webster, Otto Wyss, Xiaokun Zhu, Edward Zimmermann. - -Many thanks also to AIAI for being willing to release the original version of -wxWidgets into the public domain, and to our patient partners. - -`Graphplace', the basis for the wxGraphLayout library, is copyright Dr. Jos -T.J. van Eijndhoven of Eindhoven University of Technology. The code has -been used in wxGraphLayout (not in wxWidgets anymore) with his permission. - -We also acknowledge the author of XFIG, the excellent Unix drawing tool, -from the source of which we have borrowed some spline drawing code. -His copyright is included below. - -{\it XFig2.1 is copyright (c) 1985 by Supoj Sutanthavibul. Permission to -use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided -that the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name of M.I.T. not be used in advertising or -publicity pertaining to distribution of the software without specific, -written prior permission. M.I.T. makes no representations about the -suitability of this software for any purpose. It is provided ``as is'' -without express or implied warranty.} - -\chapter{Multi-platform development with wxWidgets}\label{multiplat} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter describes the practical details of using wxWidgets. Please -see the file install.txt for up-to-date installation instructions, and -changes.txt for differences between versions. - -\section{Include files}\label{includefiles} - -The main include file is {\tt "wx/wx.h"}; this includes the most commonly -used modules of wxWidgets. - -To save on compilation time, include only those header files relevant to the -source file. If you are using precompiled headers, you should include -the following section before any other includes: - -\begin{verbatim} -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -// Include your minimal set of headers here, or wx.h -#include -#endif - -... now your other include files ... -\end{verbatim} - -The file {\tt "wx/wxprec.h"} includes {\tt "wx/wx.h"}. Although this incantation -may seem quirky, it is in fact the end result of a lot of experimentation, -and several Windows compilers to use precompilation which is largely automatic for -compilers with necessary support. Currently it is used for Visual C++ (including -embedded Visual C++), Borland C++, Open Watcom C++, Digital Mars C++ -and newer versions of GCC. -Some compilers might need extra work from the application developer to set the -build environment up as necessary for the support. - -\section{Libraries}\label{libraries} - -Most ports of wxWidgets can create either a static library or a shared -library. wxWidgets can also be built in multilib and monolithic variants. -See the \helpref{libraries list}{librarieslist} for more -information on these. - -\section{Configuration}\label{configuration} - -When using project files and makefiles directly to build wxWidgets, -options are configurable in the file -\rtfsp{\tt "wx/XXX/setup.h"} where XXX is the required platform (such as msw, motif, gtk, mac). Some -settings are a matter of taste, some help with platform-specific problems, and -others can be set to minimize the size of the library. Please see the setup.h file -and {\tt install.txt} files for details on configuration. - -When using the 'configure' script to configure wxWidgets (on Unix and other platforms where -configure is available), the corresponding setup.h files are generated automatically -along with suitable makefiles. When using the RPM packages -for installing wxWidgets on Linux, a correct setup.h is shipped in the package and -this must not be changed. - -\section{Makefiles}\label{makefiles} - -On Microsoft Windows, wxWidgets has a different set of makefiles for each -compiler, because each compiler's 'make' tool is slightly different. -Popular Windows compilers that we cater for, and the corresponding makefile -extensions, include: Microsoft Visual C++ (.vc), Borland C++ (.bcc), -OpenWatcom C++ (.wat) and MinGW/Cygwin (.gcc). Makefiles are provided -for the wxWidgets library itself, samples, demos, and utilities. - -On Linux, Mac and OS/2, you use the 'configure' command to -generate the necessary makefiles. You should also use this method when -building with MinGW/Cygwin on Windows. - -We also provide project files for some compilers, such as -Microsoft VC++. However, we recommend using makefiles -to build the wxWidgets library itself, because makefiles -can be more powerful and less manual intervention is required. - -On Windows using a compiler other than MinGW/Cygwin, you would -build the wxWidgets library from the build/msw directory -which contains the relevant makefiles. - -On Windows using MinGW/Cygwin, and on Unix, MacOS X and OS/2, you invoke -'configure' (found in the top-level of the wxWidgets source hierarchy), -from within a suitable empty directory for containing makefiles, object files and -libraries. - -For details on using makefiles, configure, and project files, -please see docs/xxx/install.txt in your distribution, where -xxx is the platform of interest, such as msw, gtk, x11, mac. - -\section{Windows-specific files}\label{windowsfiles} - -wxWidgets application compilation under MS Windows requires at least one -extra file: a resource file. - -\subsection{Resource file}\label{resources} - -The least that must be defined in the Windows resource file (extension RC) -is the following statement: - -\begin{verbatim} -#include "wx/msw/wx.rc" -\end{verbatim} - -which includes essential internal wxWidgets definitions. The resource script -may also contain references to icons, cursors, etc., for example: - -\begin{verbatim} -wxicon icon wx.ico -\end{verbatim} - -The icon can then be referenced by name when creating a frame icon. See -the MS Windows SDK documentation. - -\normalbox{Note: include wx.rc {\it after} any ICON statements -so programs that search your executable for icons (such -as the Program Manager) find your application icon first.} - -\section{Allocating and deleting wxWidgets objects}\label{allocatingobjects} - -In general, classes derived from wxWindow must dynamically allocated -with {\it new} and deleted with {\it delete}. If you delete a window, -all of its children and descendants will be automatically deleted, -so you don't need to delete these descendants explicitly. - -When deleting a frame or dialog, use {\bf Destroy} rather than {\bf delete} so -that the wxWidgets delayed deletion can take effect. This waits until idle time -(when all messages have been processed) to actually delete the window, to avoid -problems associated with the GUI sending events to deleted windows. - -Don't create a window on the stack, because this will interfere -with delayed deletion. - -If you decide to allocate a C++ array of objects (such as wxBitmap) that may -be cleaned up by wxWidgets, make sure you delete the array explicitly -before wxWidgets has a chance to do so on exit, since calling {\it delete} on -array members will cause memory problems. - -wxColour can be created statically: it is not automatically cleaned -up and is unlikely to be shared between other objects; it is lightweight -enough for copies to be made. - -Beware of deleting objects such as a wxPen or wxBitmap if they are still in use. -Windows is particularly sensitive to this: so make sure you -make calls like wxDC::SetPen(wxNullPen) or wxDC::SelectObject(wxNullBitmap) before deleting -a drawing object that may be in use. Code that doesn't do this will probably work -fine on some platforms, and then fail under Windows. - -\section{Architecture dependency}\label{architecturedependency} - -A problem which sometimes arises from writing multi-platform programs is that -the basic C types are not defined the same on all platforms. This holds true -for both the length in bits of the standard types (such as int and long) as -well as their byte order, which might be little endian (typically -on Intel computers) or big endian (typically on some Unix workstations). wxWidgets -defines types and macros that make it easy to write architecture independent -code. The types are: - -wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte - -where wxInt32 stands for a 32-bit signed integer type etc. You can also check -which architecture the program is compiled on using the wxBYTE\_ORDER define -which is either wxBIG\_ENDIAN or wxLITTLE\_ENDIAN (in the future maybe wxPDP\_ENDIAN -as well). - -The macros handling bit-swapping with respect to the applications endianness -are described in the \helpref{Byte order macros}{byteordermacros} section. - -\section{Conditional compilation}\label{conditionalcompilation} - -One of the purposes of wxWidgets is to reduce the need for conditional -compilation in source code, which can be messy and confusing to follow. -However, sometimes it is necessary to incorporate platform-specific -features (such as metafile use under MS Windows). The \helpref{wxUSE\_*}{wxusedef} -symbols listed in the file {\tt setup.h} may be used for this purpose, -along with any user-supplied ones. - -\section{C++ issues}\label{cpp} - -The following documents some miscellaneous C++ issues. - -\subsection{Templates}\label{templates} - -wxWidgets does not use templates (except for some advanced features that -are switched off by default) since it is a notoriously unportable feature. - -\subsection{RTTI}\label{rtti} - -wxWidgets does not use C++ run-time type information since wxWidgets provides -its own run-time type information system, implemented using macros. - -\subsection{Type of NULL}\label{null} - -Some compilers (e.g. the native IRIX cc) define NULL to be 0L so that -no conversion to pointers is allowed. Because of that, all these -occurrences of NULL in the GTK+ port use an explicit conversion such -as - -{\small -\begin{verbatim} - wxWindow *my_window = (wxWindow*) NULL; -\end{verbatim} -}% - -It is recommended to adhere to this in all code using wxWidgets as -this make the code (a bit) more portable. - -\subsection{Precompiled headers}\label{precompiledheaders} - -Some compilers, such as Borland C++ and Microsoft C++, support -precompiled headers. This can save a great deal of compiling time. The -recommended approach is to precompile {\tt "wx.h"}, using this -precompiled header for compiling both wxWidgets itself and any -wxWidgets applications. For Windows compilers, two dummy source files -are provided (one for normal applications and one for creating DLLs) -to allow initial creation of the precompiled header. - -However, there are several downsides to using precompiled headers. One -is that to take advantage of the facility, you often need to include -more header files than would normally be the case. This means that -changing a header file will cause more recompilations (in the case of -wxWidgets, everything needs to be recompiled since everything includes {\tt "wx.h"}!) - -A related problem is that for compilers that don't have precompiled -headers, including a lot of header files slows down compilation -considerably. For this reason, you will find (in the common -X and Windows parts of the library) conditional -compilation that under Unix, includes a minimal set of headers; -and when using Visual C++, includes {\tt wx.h}. This should help provide -the optimal compilation for each compiler, although it is -biased towards the precompiled headers facility available -in Microsoft C++. - -\section{File handling}\label{filehandling} - -When building an application which may be used under different -environments, one difficulty is coping with documents which may be -moved to different directories on other machines. Saving a file which -has pointers to full pathnames is going to be inherently unportable. - -One approach is to store filenames on their own, with no directory -information. The application then searches into a list of standard -paths (platform-specific) through the use of \helpref{wxStandardPaths}{wxstandardpaths}. - -Eventually you may want to use also the \helpref{wxPathList}{wxpathlist} class. - -Nowadays the limitations of DOS 8+3 filenames doesn't apply anymore. -Most modern operating systems allow at least 255 characters in the filename; -the exact maximum length, as well as the characters allowed in the filenames, -are OS-specific so you should try to avoid extremely long (> 255 chars) filenames -and/or filenames with non-ANSI characters. - -Another thing you need to keep in mind is that all Windows operating systems -are case-insensitive, while Unix operating systems (Linux, Mac, etc) are -case-sensitive. - -Also, for text files, different OSes use different End Of Lines (EOL). -Windows uses CR+LF convention, Linux uses LF only, Mac CR only. - -The \helpref{wxTextFile}{wxtextfile},\helpref{wxTextInputStream}{wxtextinputstream}, -\helpref{wxTextOutputStream}{wxtextoutputstream} classes help to abstract -from these differences. -Of course, there are also 3rd party utilities such as \tt{dos2unix} and \tt{unix2dos} -which do the EOL conversions. - -See also the \helpref{File Functions}{filefunctions} section of the reference -manual for the description of miscellaneous file handling functions. - -\chapter{Utilities and libraries supplied with wxWidgets}\label{utilities} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -In addition to the \helpref{wxWidgets libraries}{librarieslist}, some -additional utilities are supplied in the \tt{utils} hierarchy. - -For other user-contributed packages, please see the Contributions page -on the \urlref{wxWidgets Web site}{http://www.wxwidgets.org}. - -\begin{description}\itemsep=0pt -\item[{\bf Helpview}] -Helpview is a program for displaying wxWidgets HTML -Help files. In many cases, you may wish to use the wxWidgets HTML -Help classes from within your application, but this provides a -handy stand-alone viewer. See \helpref{wxHTML Notes}{wxhtml} for more details. -You can find it in {\tt samples/html/helpview}. -\item[{\bf Tex2RTF}] -Supplied with wxWidgets is a utility called Tex2RTF for converting\rtfsp -\LaTeX\ manuals HTML, MS HTML Help, wxHTML Help, RTF, and Windows -Help RTF formats. Tex2RTF is used for the wxWidgets manuals and can be used independently -by authors wishing to create on-line and printed manuals from the same\rtfsp -\LaTeX\ source. Please see the separate documentation for Tex2RTF. -You can find it under {\tt utils/tex2rtf}. -\item[{\bf Helpgen}] -Helpgen takes C++ header files and generates a Tex2RTF-compatible -documentation file for each class it finds, using comments as appropriate. -This is a good way to start a reference for a set of classes. -Helpgen can be found in {\tt utils/HelpGen}. -\item[{\bf Emulator}] -Xnest-based display emulator for X11-based PDA applications. On some -systems, the Xnest window does not synchronise with the -'skin' window. This program can be found in {\tt utils/emulator}. -\end{description} - -\chapter{Programming strategies}\label{strategies} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter is intended to list strategies that may be useful when -writing and debugging wxWidgets programs. If you have any good tips, -please submit them for inclusion here. - -\section{Strategies for reducing programming errors}\label{reducingerrors} - -\subsection{Use ASSERT}\label{useassert} - -It is good practice to use ASSERT statements liberally, that check for conditions -that should or should not hold, and print out appropriate error messages. - -These can be compiled out of a non-debugging version of wxWidgets -and your application. Using ASSERT is an example of `defensive programming': -it can alert you to problems later on. - -See \helpref{wxASSERT}{wxassert} for more info. - -\subsection{Use wxString in preference to character arrays}\label{usewxstring} - -Using \helpref{wxString}{wxstring} can be much safer and more convenient than using wxChar *. - -You can reduce the possibility of memory leaks substantially, and it is much more -convenient to use the overloaded operators than functions such as \tt{strcmp}. -wxString won't add a significant overhead to your program; the overhead is compensated -for by easier manipulation (which means less code). - -The same goes for other data types: use classes wherever possible. - -\section{Strategies for portability}\label{portability} - -\subsection{Use sizers}\label{usesizers} - -Don't use absolute panel item positioning if you can avoid it. Different GUIs have -very differently sized panel items. Consider using the \helpref{sizers}{sizeroverview} instead. - -\subsection{Use wxWidgets resource files}\label{useresources} - -Use .xrc (wxWidgets resource files) where possible, because they can be easily changed -independently of source code. See the \helpref{XRC overview}{xrcoverview} for more info. - -\section{Strategies for debugging}\label{debugstrategies} - -\subsection{Positive thinking}\label{positivethinking} - -It is common to blow up the problem in one's imagination, so that it seems to threaten -weeks, months or even years of work. The problem you face may seem insurmountable: -but almost never is. Once you have been programming for some time, you will be able -to remember similar incidents that threw you into the depths of despair. But -remember, you always solved the problem, somehow! - -Perseverance is often the key, even though a seemingly trivial problem -can take an apparently inordinate amount of time to solve. In the end, -you will probably wonder why you worried so much. That's not to say it -isn't painful at the time. Try not to worry -- there are many more important -things in life. - -\subsection{Simplify the problem}\label{simplifyproblem} - -Reduce the code exhibiting the problem to the smallest program possible -that exhibits the problem. If it is not possible to reduce a large and -complex program to a very small program, then try to ensure your code -doesn't hide the problem (you may have attempted to minimize the problem -in some way: but now you want to expose it). - -With luck, you can add a small amount of code that causes the program -to go from functioning to non-functioning state. This should give a clue -to the problem. In some cases though, such as memory leaks or wrong -deallocation, this can still give totally spurious results! - -\subsection{Use a debugger}\label{usedebugger} - -This sounds like facetious advice, but it is surprising how often people -don't use a debugger. Often it is an overhead to install or learn how to -use a debugger, but it really is essential for anything but the most -trivial programs. - -\subsection{Use logging functions}\label{uselogging} - -There is a variety of logging functions that you can use in your program: -see \helpref{Logging functions}{logfunctions}. - -Using tracing statements may be more convenient than using the debugger -in some circumstances (such as when your debugger doesn't support a lot -of debugging code, or you wish to print a bunch of variables). - -\subsection{Use the wxWidgets debugging facilities}\label{usedebuggingfacilities} - -You can use \helpref{wxDebugContext}{wxdebugcontext} to check for -memory leaks and corrupt memory: in fact in debugging mode, wxWidgets will -automatically check for memory leaks at the end of the program if wxWidgets is suitably -configured. Depending on the operating system and compiler, more or less -specific information about the problem will be logged. - -You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy, -scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking -will save a surprising amount of time in the long run. - -See the \helpref{debugging overview}{debuggingoverview} for further information. - diff --git a/docs/latex/wx/border.bmp b/docs/latex/wx/border.bmp deleted file mode 100644 index 92b490a87d1acdd8679aac862ef9abef7c20df69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46318 zcmeHQO^6)F86AraW^WN#!F$QUr|4)CffhqRi3X(n2#mL3g<+2id-EkxAdn!W1&e^$ z@&4e_V(A+BrX&LCl4HOSa!D}pK?j2ttV4Xu!C>UP_r9v?>YkdPp52}4I9s9X=)mtqn0 z1mj9btFX{2es^FJf;c?V<(=|}Y9kivDyuW9U+HI&6ivcn)u<>{2Gy|dRWMFS1{`9# zQKSgG{m$7Oq<8U=0ydR=?tMs zShD^?QZiWJ4ze2@h(HWW#a}!YTv!;ec)YkIq3$mzq7yR&UU)+}ES>{zLO={lSzT&W z0ojR$1&=7fcDMQ|O{MrzGk8=>n^zf71RC8-8Q z6b=XEc;7qhY}G!^Y!OYGr^G^S*&r-5AJ|cYNqtq`+p1=oeG*qBjTPo_Z-Tx%NHy3ABqniz-< zTDLSgJsOMeD;U?%8PtJoYJd)dQ4Kv1Rd?cZKI%CYEJg-Yv*RPdN0}$cM>+fk4B;9? zCbKXs5p~3(;JX0}t^z>-J}?T9$li&0p=>B46imJz4+}=|dYhaM7FiJ+BYCM{;b2O# zW)5R`(LD!$;oK{l(W93hq*B?AdZJKsNKr?u8vKRx7xf(Uqh&t&(Q~Xp;IW8+1kMM% zf~eu|nX*GQ8?GVHt)Tu~#EgaaXMpQ^Q88yhOn{L^>>a zl24GAWAq@yc5+ybw#5sD+2 zyd@@Jfi%r>Zs0XCX_>|g5*Da$7|Sx&HfAXlo1CxI3`?W{5#q3e=P_6Wp5`Qk=QjZ$ zWzEM%^Er*MsA0`4>svcZQ@|3`(wr|aB4wR`QDRt#O8ZPuuSy1$^1j8Ge$ z)dErhOE4q>f1g$cQJGTvvYxpPw8R_we$DTXEIyV?X{v&oPdBM}h`snoAT zxFuwckBH9!9YgaDE5kYR0(svk#tYjgv=QWJ&t^4Nm7MX$J&;JDl}>XW&5K7qQc2wy zo5NfR!%xY@$of{0Y8j7Z93C)GwNp!03rD3UVnLUy?0IAr4PnVjHOU;oOA{3*Cfi}j zQ`zy-@sejCpWFFM$4j1pd~WA29WQwX^0}SAw2zlhYLK#R#5v|7LJgZ=lMLm~BO}Yp zJPc=Sv=_@OK--Re%(Kt7TY=@$*&l5e#ab({6bQGAo2|gIeXW1f?Y`d%EY2N0aqdbx zunaD*ICrrnSgy1P%X`4`MLT$L{Z%(;i|;;Od-%mWE#YMsBMh3U9nXM!*H!_g9as*Z zy*?9`bo-AAW)9_?VX$4SuR>4b=kzIHd3Eh!|E-o_=|6Xa+W`yqYPpBaO>;zTx7(t4 zjpaAL^?4J-ZTH*f$FjI5&MkUMLG^@Cwh?i}`HRP*cLIJ3AE0bEA6iiyUT9&@z4l{e zA(wA?6rTVD#SzQkZKUG!$Ya5U0Hh}SLW||ZmK?}RQn-QgrHJ&5K9yK*LFfoad^Z7= z6)e)KhALlZi34JhO`(7apAy1Zu(6o z0#+IuA}@R%?XjJzypS7G&R=oD`}6^svae#xH&K)e2UFn)mBw64Ea%oQ7k3~Tu+VSq z$J|s{ycZG$+r>O%tnUhoWXGVeq7uuXUu-ZhVBt$3^=Sa2l<~r-lI1z}-bz`>6;oEj zERH^xSlr;O#3Gi_m8K~HhNdCGf~sHQXag1uyWjV7Def`o^Se#&ERjDBFN0fGief$R zk|>>Dv}_}+8sF@<1WW&_bM#*M%lyblES0=)++}D17CjqVf@PQUsFq+kywn~nn7kA} zYY8uI59_1n0Mi2Bbw@Yd3D3+D!WP`7}WL+;hZxi=kW?jeqKhvcLs`%>bCV{Z%E z$kAWoe0T2cLxZu6+|eC(u@(Ef`%m1f7++d3f7!p?2b62i+TbsH>&4}VEt$XUK3t*q zFtni`xmOB3s@s5t&&Ji3@bbmy8;`?#5`1znto!hJO03+0k$)bD)v^7V?Uut=5pI#f zefQdH=bd}%+(%Ebmc(Myx%=PX^zj4d?&3Oqh~vv(WAOH&AM3PgPFKm$r(G0avF(@? z%X#;~d186`6om};zjEKWkKNq|vtrr3Ik+|O&j4ef+#}$+D`3%j-fg)p{JQH7zhI?? z1#lc#!Ed7wdD*>$C%|RY1@Y-#j>nZ?VHJ-BE+#A=fR~Rx3%sEGK0zFhm#`OPJ3Ddj zB<02X%K;pwMu}~;$S@TvWz%*F)aIJ@w{`y!XNHqF$5^h9Hzvw z{rWri?m&;)DDhsyMJ)8@;JaJEvjy2I76V#BX+})Mf@dRVyEg9P_ClYgzt|=Zb7G%1 zEbjXCz{^LUffvJapK2c9K$qra+E8K{9C0Vpu;9XW2_d#o$Z(s89RQEVf__xRV*O}l zEYLo{*x0AC0La*nB*qhb7ZyAVx?7m$BthAXGZS+LHlMIi+<0Okl$upV5-fbmGXR}| z6_z-0Ylek5cz7%VL=e+qfomi$=t30Q{KTyZ7CN!V0!ENvD{4vwEJ!O45+isaC)O19 zQcQwIlug{4U@;seFCGgJkr$5=*N7$fF8xK`td#`?@Kf_$IrZ%R;tqg;Zj!^oWfEt` zdND^2v6pk|$ih;-mSap4x4iGdfbQB(FsQcR)#4~-oK2y+OWe)nH>(+ zq+)-R+Q_2vn`6<`jEbQ)!U|aU)RWDClqRjMDLyk6%`2oDmSNiNBTb~Y-7?rV{`Y00$7`Ob;{BCzP^QsHvMV37*YBEKTZ#3X&>CkB7x@B&w5Wz!Lhnhep#CsT5Es2v?M4c`576 zHP&It(|sIXKFO<`IrlhNW;QyaVuvM9Ovg*dOP+yzZs#u@FL?&?xt+gsyyO|k=XUwC4>IcR^;ZIlk@^TfhU zVH|wuf`btAX_l3Z<721RMqw&MEPi4{RQ3?YQ)jMNgrPPW0Re^$_~yxr+4Z*RwLBJx zCB6&_uaXvs#oEaxjGP!Hyy!a?loL;<@4GfT(xhHk6yppfVhE8_!@^#yo^0=#*r)X} zBYbLku2{m|;%cpvWH35UUJ}!7!jix$qYL7t1dzl!ED0G&wBscqBZ+prBxEGfj+cat zB--(kkdZ_?UJ^2rXva%JMiT9KNytc|9WMzPA&O6)ohC2oenv1k@@gM;s}-Nz`Y1cu zuUSiyqt^DgC4E3q>np5g^x3_n9-^Z@w2S=$+rZ#o6-f&#+glFlQ8d|s;RokvVG{Tj&4qgcf-=NAMi$hEJLg*rV7J?j zyf8^!BAL-fts^DDueCcM~kpcPY#Seo8DtX;^~S2caQ1u)iq;{^aAj&;)L4 zA^)LW2=W)bNevl3rW>%ZOceQ7Q}*}a_F3MszFRXsl(YtnAgv{n{xm9~=?%JOpZW~S2EVae0f zHeUAeXa5TipsH=WR9o-l=9pEzlT+UUUJi@r7Yly-Y9C+guy=*uA^EttRlMbPw~No+ zGk))9^DrwfkJgH7_uwJX_UH~!y-m9IHk4=#W%g%4zqq`; z;m&QG#TWe_7Pro#PxtZvaE{)2xP8a%7nfG%h~)_Xif7gFA0Vu_3v1hJ?gG+l?hqLu zYy)FY<1lj@oqK+E1=a>U5A=;Xh@ms-Tf$e|A-Z|fFgq6XYalk-gd z?weZpPc1#aWN)Yi7T87|mLUe1(X~;QmX4P^Eyl~cD17(E%Qt#2kC2*AwtUxPc^7~d z8LC(oiNyEmz)NqqhtCt8@d6O=mv*&Ld;Fy}{pbez^nye17dT5huq>F5V1BW^IH0g= Who#C#NOimfCaTwtmnt72)%!2E!|js* diff --git a/docs/latex/wx/border.gif b/docs/latex/wx/border.gif deleted file mode 100644 index 4bb9a23bb0f996edafa87a8d977d3c3dd84b9add..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6174 zcmeHqg;&#$8}2qf8zJHlm69<+8c78arMqhkNomOeN=tVMsI-89q|}tI0n&nibPkY| z7$MEL-`~0a#Xa}^1Kx908K_Gx|2p~)pb;$z?JAj2{fCvE` zvVn<-vF=d-Vhd;{0|{6F5^#y|1c<~-;sMY&1RQJuvN1qN1#r(Dn3w^~GJxzx0NV}l z_yWF#z}6Z-S}+dm&KT4GanYOiB6BKLNlTfRtK*)fYJ41r!s27%afx3Ct`2mf1jdE6~^v z@B{$9rNHhMK;;5RL;$E1;Bg4xo(Gh60L#n3@olI6Q2=HO=q3Zn|Lyr71fX>YINkyj zV}OVXfWaM@nE@;_fZBdwcMYiM1~M7};x3?>0IaP69iu>YMpj-c@Gt-fC z9Oinf^LySQ-*bLo|u^kKgYqzYQ~XQ_NE9LyB=*qZD6R`e@JI+UV@EVo!E z7?en5+COGD8m5)0`bk2Br@ct$o$h>pO~H6D`eV$FYVB9We1-OyL5JG%*=X}gR)ve& z3e#{m>acOYy2`~6pA+nr+LSZC`o#@ivt~HyN>4bGT(&cPhEGV@=pEf*(*m4O_sw$`hQWfuJ6ueP@9 zYY>bJ@3(%_9`9{}sqVNz%9DtvAQk0W3cC|vXb}z(1_cM)L{tL+r3Ke=)TOC%ULZWp z9(f!7+HE;ju(8N8?%!Jw_%;pJ9*CDbCR>Pm-oXh09&!zblj(gpk)<`YM4!o%1qgYqO87?%U5iFL5 zz>6>DBjuy&`KhI5D1e^a>`P_Oh_NRX7b1V?65l7qk&B&e1ta&B4d8wD( zu>{vWtavF%vs+4O)^bP5k1dv4?}kjbB0QZrkweROzw4{nCDV@5_5S zu8`#iKUo^rLV8@gm)b9x+Med6mXGk(IUPls)Z_O+aQ1e`n0C}sc>^D;3DbzDU)svd zE1a((LKH1NZI)R`#eJ`~wx^Jdd03w)KeLsWS#~2iA@;{I@AlRF5=A3!FM{$l|0ad9 zQ|k`(B^Le?{})SHTgZ~!`m%)7uzJ5h0qHN)_DG=FrzBR6&_0m4SX@Cxn;I|C6v|wA zc|cM+ba^<;oaTQt#>n6GZ_2Ln>UgRy9eIL}6d<1ddB1m+vtCq5Jm37)N4!{9Ygafs znsmLsI(7Vopt(HR`_F-Ya=h!|I0yqFh)f*`VJpPJBnZLqIQ+HXpXx0mLdZcn0w&fg zbJLv=I(~>GQ|gtZVNwEvkXjVe-(;z4sw5SBe%&Y&lRFxNhfDHIP`Y}{-AyizBrbyU zZia5iosv;2@=CJa@*tDjzfY|p>%Z)sjFzXTP>YTq{Y;}nC&vmK;WCgP2*ORt3b_kK zTO8%l>e+V-c#g!GN?I`#d3O_V)RH#(FBuN&6`wQ;z4ItozWpW^OK~vs}d0$!S zzVK~nSABNcNv=Lx-H{~Y%RCMt9~C;3Zj%3xKWx!-{c0)u?=$6B*$ugo{HzB_pPcfz zpw=pnB;2F(L~ZEIqdT=x`zcX;Hf%n9J(|nzNi{#e1e-ijwIB+`h5lf3D-<78*F8uG zjQjF1(n!NtasOlA9LJ*-E=?<{&%*aTHrM|%w# z4~}V4&hWPQ~y%4E7EdnhdqD&`S7Kk z5;=u-%mQa}iRc%e#SKkO6t>{ob}{=CZna0}qiF*Cuf**bkfEjDK0CA9ieAYnzMA+Q zU&dFeR&u6}%KIMCceKJ4OgEOP`mKcRE*DFxN(VAn-^V=s-C?6@epMso7n0j7Mw2|h zKA+otb&7W+UsW|+ZLg{DHb{SQ*guJwuc-{WJ7GqmhNix%sfyYev7i~4T08q*op^V| zl1zk`nB%y{GDXQgk6{PxDYvoplr z+FK%y>GrX+!ke|~)jQ?>r3}3isx|RWABx>F&u5PbsQN3JvezCN`q{!YjTufZejztZ zPwsoZol*?P%&LDu)zxk~3GN{g5GR{x&Hy4TxHn|zjr=q`PGV#2`v6?s;=bTyQX z|MX==8}YPMI)z8~x4K=+aRXMIC}OO~w?TDJ0vq=H2+CZx(aO;{GG--Ouz$XxA|f!H zvS9H=qr=G%I>36C-+tD=jO(eKz&@xQe{z#^xU0)ScIT5b>-AKJo~BE6H4oFx#-AfYqm*sPYuJsGUV%O})Y-j%F|4{zzQ-h^FM7g0qH!6>^coo+BzNGd# z_PBRe-uYZ|t^RbP#cw^0W^n@IfV*7jT-vj#* zV;9#V5vDA?_2Plmoxj#{cNV~HyEXG)SDq{;ub6AuhmN=qvTx9}>a|qPgg@WUtTZm0 zyCc@z$={Vray2c&d^)g!7a7onhE|@UYWp9{<3zpZmlT4kJWaPL5NbdWq(hyqubOnoq2aTqH)q}$fZ+Rz92@_Lg%8@Z(z zdCOB-&^t_tE=+ABEWkU0dMaePD02JQ@d;@pQR=R;5zN~-CDiwaO=6Mv?X)nq(@0A1 zkoUzQs=X14Q4wLi!Cog3%d2mYsak7e5!SRmpKP=_r(!J0qBN$$LN~%H(gJNaf&`(Km*jf(QhD+(mB5BcX6+ua+86^{VWAvxZ0M`E!;%9>4R_jpb{gW^!; zbw6FY=s){lDLh0AZ}RR-z+7s;%i_Saw1{iNh~bU!f%$H-57d ze($D2-xql7eg-26B)kKnzF#7@U8-=R$P8fu%42T+cJ{PN=zZ^gUq&1oP4G)d%@A(30DSE*(Uf5JFfm#gdyO`YsOz z0U$++Ew&ra+||*26`hWjS!4k%C4F41{%AsuFl#`RQuCnN zBEUGD*c6fsv+?b@GiresYdGnT*3z1fmj!I9>Zb;2-NL9L%wwjbtM34BXVyFm* zm`Q_eF%U*+n0^(6l;~l+P#m7N{>I1F$8jz59vuRqCzIKi-lLMWy%~&WNwXd!-GSu_lWcLiZA ziJxt7V5U+qFNjwrJ%+u}gM;BUb!xCJ8B~3y0I`zyhCE+^JAcR^!*Vk#XdKLsgV4(X zM#G;4ETFu|yvKG0AwBW7hH|P5!Mwid0;Rb*K3Vz{DFrH@@oxG4HUQLupBV?%$K~h- ziOJ1;A{wEKM{K<%CL<}Q3i(Pw4`WjQPN#dQBB&{HqSMm~$qD0SZ_(X)r77(fsHU^gjw`~?dy5^975a}r4CFd)5QDJBBA ztutx9|DkRoh@L>wCGnM!6|8JQ@~{f%ovGMPhVmyuKxGg!!AfzY)N9$oOA2o5M988L z@K_qcRmIN)2i$JweNV5V(gSzD0OQ*My+mjT1EMdo`l=l;3?g|>U>9hpWOpR;J;Gp( zkqD+lFlSH|{{WXd2FxA=6^@1Q;jm)7d`zI^`?DzmI4HfvHyK9`bvyvKfKnzyXfY67 zc+ykfKo@nlN~>+qCWUmEgT6=BF& zM|=seYd`u6uJdMO*1##p)bEs{~H}r6s^0A7d(lsqYX7D(QO*XpZ3E#Vdy-4+i+%4C|?!0Xtr8k z`x}!#&bP?VzEDZ1a<(@OrGPK40kEg_Mf*wk`Cd+9J*a z&TjZN8+MPp2a8vM={Kvt#x{^DxLT+9Mky&1#ZIHp^?n1;-t)DdO3u*vruafT85=k! zfPu0mf+yulsX9=-elOGo!S`^`pKAY|fJ|RX+4Q&l z5F`LKj`jJD%u0BEI1<|J0PD#^J^y`GTRcO@)e|41<3OJ z{N>N8SOt+31T#c~QG)%`>MYCzD0x+d0L>6ga)=H)NDdb?${+eMFhtW)_EH)`iYv1Q zK@Q>ukN8+niBKs#i4+bjn)taH3r1OxEMNY5X7E*M_SO&&`DRI9noklZe8z0>K9i#BOY4zvh!8cEK3@t;Mo?rcz zW*U=yHYU%{#F)~6^>lo?!xqpqwiP^}$)u~p#HRghyu@Z)KzAJ7Vrs0x`eJ_E^~OX* z_;1U%%o?T>=B5+x$|k_c6HYt7TwBcD%753ZT1TJAiPkx$etd^VvlNgyy@d{ZFKh}i z^*@k*Gf{6AgPz*y{=VC!@XgMp<8|+YZB*myOoEt~u$WbxhOAYV9)sBQXQeLMBHf4= z&a5ZiIv=Jkdu8kTdefh2I&-!%A5Xz0y-`tWqpDtQkZ&HpY^g6TUm+A^%V=vyZZ&rv()k8fV+@n48)T - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBoxSizer::wxBoxSizer}\label{wxboxsizerwxboxsizer} - -\func{}{wxBoxSizer}{\param{int }{orient}} - -Constructor for a wxBoxSizer. {\it orient} may be either of wxVERTICAL -or wxHORIZONTAL for creating either a column sizer or a row sizer. - -\membersection{wxBoxSizer::RecalcSizes}\label{wxboxsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - -Implements the calculation of a box sizer's dimensions and then sets -the size of its children (calling \helpref{wxWindow::SetSize}{wxwindowsetsize} -if the child is a window). It is used internally only and must not be called -by the user (call Layout() if you want to resize). Documented for information. - -\membersection{wxBoxSizer::CalcMin}\label{wxboxsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - -Implements the calculation of a box sizer's minimal. It is used internally -only and must not be called by the user. Documented for information. - -\membersection{wxBoxSizer::GetOrientation}\label{wxboxsizergetorientation} - -\func{int}{GetOrientation}{\void} - -Returns the orientation of the box sizer, either wxVERTICAL -or wxHORIZONTAL. - diff --git a/docs/latex/wx/brush.tex b/docs/latex/wx/brush.tex deleted file mode 100644 index 76826adf6a..0000000000 --- a/docs/latex/wx/brush.tex +++ /dev/null @@ -1,391 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: brush.tex -%% Purpose: wxPen docs -%% Author: -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxBrush}}\label{wxbrush} - -A brush is a drawing tool for filling in areas. It is used for painting -the background of rectangles, ellipses, etc. It has a colour and a -style. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullBrush} - -Pointers: - -{\bf wxBLUE\_BRUSH\\ -wxGREEN\_BRUSH\\ -wxWHITE\_BRUSH\\ -wxBLACK\_BRUSH\\ -wxGREY\_BRUSH\\ -wxMEDIUM\_GREY\_BRUSH\\ -wxLIGHT\_GREY\_BRUSH\\ -wxTRANSPARENT\_BRUSH\\ -wxCYAN\_BRUSH\\ -wxRED\_BRUSH} - -\wxheading{Remarks} - -On a monochrome display, wxWidgets shows -all brushes as white unless the colour is really black. - -Do not initialize objects on the stack before the program commences, -since other required structures may not have been set up yet. Instead, -define global pointers to objects and create them in \helpref{wxApp::OnInit}{wxapponinit} or -when required. - -An application may wish to create brushes with different -characteristics dynamically, and there is the consequent danger that a -large number of duplicate brushes will be created. Therefore an -application may wish to get a pointer to a brush by using the global -list of brushes {\bf wxTheBrushList}, and calling the member function -\rtfsp{\bf FindOrCreateBrush}. - -This class uses \helpref{reference counting and copy-on-write}{trefcount} -internally so that assignments between two instances of this class are very -cheap. You can therefore use actual objects instead of pointers without -efficiency problems. If an instance of this class is changed it will create -its own data internally so that other instances, which previously shared the -data using the reference counting, are not affected. - -%TODO: an overview for wxBrush. -\wxheading{See also} - -\helpref{wxBrushList}{wxbrushlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetBrush}{wxdcsetbrush} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxBrush::wxBrush}\label{wxbrushctor} - -\func{}{wxBrush}{\void} - -Default constructor. The brush will be uninitialised, and \helpref{wxBrush:IsOk}{wxbrushisok} will -return false. - -\func{}{wxBrush}{\param{const wxColour\&}{ colour}, \param{int}{ style = {\tt wxSOLID}}} - -Constructs a brush from a colour object and style. - -\func{}{wxBrush}{\param{const wxString\& }{colourName}, \param{int}{ style}} - -Constructs a brush from a colour name and style. - -\func{}{wxBrush}{\param{const wxBitmap\& }{stippleBitmap}} - -Constructs a stippled brush using a bitmap. - -\func{}{wxBrush}{\param{const wxBrush\&}{ brush}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{colourName}{Colour name. The name will be looked up in the colour database.} - -\docparam{style}{One of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxSTIPPLE}}{Uses a bitmap as a stipple.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\end{twocollist}} - -\docparam{brush}{Pointer or reference to a brush to copy.} - -\docparam{stippleBitmap}{A bitmap to use for stippling.} - -\wxheading{Remarks} - -If a stipple brush is created, the brush style will be set to wxSTIPPLE. - -\wxheading{See also} - -\helpref{wxBrushList}{wxbrushlist}, \helpref{wxColour}{wxcolour}, \helpref{wxColourDatabase}{wxcolourdatabase} - - -\membersection{wxBrush::\destruct{wxBrush}}\label{wxbrushdtor} - -\func{}{\destruct{wxBrush}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\wxheading{Remarks} - -Although all remaining brushes are deleted when the application exits, -the application should try to clean up all brushes itself. This is because -wxWidgets cannot know if a pointer to the brush object is stored in an -application data structure, and there is a risk of double deletion. - - -\membersection{wxBrush::GetColour}\label{wxbrushgetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Returns a reference to the brush colour. - -\wxheading{See also} - -\helpref{wxBrush::SetColour}{wxbrushsetcolour} - - -\membersection{wxBrush::GetStipple}\label{wxbrushgetstipple} - -\constfunc{wxBitmap *}{GetStipple}{\void} - -Gets a pointer to the stipple bitmap. If the brush does not have a wxSTIPPLE style, -this bitmap may be non-NULL but uninitialised (\helpref{wxBitmap:IsOk}{wxbitmapisok} returns false). - -\wxheading{See also} - -\helpref{wxBrush::SetStipple}{wxbrushsetstipple} - - -\membersection{wxBrush::GetStyle}\label{wxbrushgetstyle} - -\constfunc{int}{GetStyle}{\void} - -Returns the brush style, one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.} -\twocolitem{{\bf wxSTIPPLE\_MASK\_OPAQUE}}{Stippled using a bitmap's mask.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxBrush::SetStyle}{wxbrushsetstyle}, \helpref{wxBrush::SetColour}{wxbrushsetcolour},\rtfsp -\helpref{wxBrush::SetStipple}{wxbrushsetstipple} - - -\membersection{wxBrush::IsHatch}\label{wxbrushishatch} - -\constfunc{bool}{IsHatch}{\void} - -Returns true if the style of the brush is any of hatched fills. - -\wxheading{See also} - -\helpref{wxBrush::GetStyle}{wxbrushgetstyle} - - -\membersection{wxBrush::IsOk}\label{wxbrushisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the brush is initialised. It will return false if the default -constructor has been used (for example, the brush is a member of a class, or -NULL has been assigned to it). - - -\membersection{wxBrush::SetColour}\label{wxbrushsetcolour} - -\func{void}{SetColour}{\param{wxColour\& }{colour}} - -Sets the brush colour using a reference to a colour object. - -\func{void}{SetColour}{\param{const wxString\& }{colourName}} - -Sets the brush colour using a colour name from the colour database. - -\func{void}{SetColour}{\param{unsigned char}{ red}, \param{unsigned char}{ green}, \param{unsigned char}{ blue}} - -Sets the brush colour using red, green and blue values. - -\wxheading{See also} - -\helpref{wxBrush::GetColour}{wxbrushgetcolour} - - -\membersection{wxBrush::SetStipple}\label{wxbrushsetstipple} - -\func{void}{SetStipple}{\param{const wxBitmap\&}{ bitmap}} - -Sets the stipple bitmap. - -\wxheading{Parameters} - -\docparam{bitmap}{The bitmap to use for stippling.} - -\wxheading{Remarks} - -The style will be set to wxSTIPPLE, unless the bitmap has a mask associated -to it, in which case the style will be set to wxSTIPPLE\_MASK\_OPAQUE. - -If the wxSTIPPLE variant is used, the bitmap will be used to fill out the -area to be drawn. If the wxSTIPPLE\_MASK\_OPAQUE is used, the current -text foreground and text background determine what colours are used for -displaying and the bits in the mask (which is a mono-bitmap actually) -determine where to draw what. - -Note that under Windows 95, only 8x8 pixel large stipple bitmaps are -supported, Windows 98 and NT as well as GTK support arbitrary bitmaps. - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap} - - -\membersection{wxBrush::SetStyle}\label{wxbrushsetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Sets the brush style. - -\docparam{style}{One of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTRANSPARENT}}{Transparent (no fill).} -\twocolitem{{\bf wxSOLID}}{Solid.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\twocolitem{{\bf wxSTIPPLE}}{Stippled using a bitmap.} -\twocolitem{{\bf wxSTIPPLE\_MASK\_OPAQUE}}{Stippled using a bitmap's mask.} -\end{twocollist}} - -\wxheading{See also} - -\helpref{wxBrush::GetStyle}{wxbrushgetstyle} - - -\membersection{wxBrush::operator $=$}\label{wxbrushassignment} - -\func{wxBrush\&}{operator $=$}{\param{const wxBrush\& }{brush}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - - -\membersection{wxBrush::operator $==$}\label{wxbrushequals} - -\func{bool}{operator $==$}{\param{const wxBrush\& }{brush}} - -Equality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - - -\membersection{wxBrush::operator $!=$}\label{wxbrushnotequals} - -\func{bool}{operator $!=$}{\param{const wxBrush\& }{brush}} - -Inequality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - - -\section{\class{wxBrushList}}\label{wxbrushlist} - -A brush list is a list containing all brushes which have been created. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -There is only one instance of this class: {\bf wxTheBrushList}. Use -this object to search for a previously created brush of the desired -type and create it if not already found. In some windowing systems, -the brush may be a scarce resource, so it can pay to reuse old -resources if possible. When an application finishes, all brushes will -be deleted and their resources freed, eliminating the possibility of -`memory leaks'. However, it is best not to rely on this automatic -cleanup because it can lead to double deletion in some circumstances. - -There are two mechanisms in recent versions of wxWidgets which make the -brush list less useful than it once was. Under Windows, scarce resources -are cleaned up internally if they are not being used. Also, a reference -counting mechanism applied to all GDI objects means that some sharing -of underlying resources is possible. You don't have to keep track of pointers, -working out when it is safe delete a brush, because the reference counting does -it for you. For example, you can set a brush in a device context, and then -immediately delete the brush you passed, because the brush is `copied'. - -So you may find it easier to ignore the brush list, and instead create -and copy brushes as you see fit. If your Windows resource meter suggests -your application is using too many resources, you can resort to using -GDI lists to share objects explicitly. - -The only compelling use for the brush list is for wxWidgets to keep -track of brushes in order to clean them up on exit. It is also kept for -backward compatibility with earlier versions of wxWidgets. - -\wxheading{See also} - -\helpref{wxBrush}{wxbrush} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxBrushList::wxBrushList}\label{wxbrushlistconstr} - -\func{void}{wxBrushList}{\void} - -Constructor. The application should not construct its own brush list: -use the object pointer {\bf wxTheBrushList}. - - -\membersection{wxBrushList::FindOrCreateBrush}\label{wxbrushlistfindorcreatebrush} - -\func{wxBrush *}{FindOrCreateBrush}{\param{const wxColour\& }{colour}, \param{int}{ style = wxSOLID}} - -Finds a brush with the specified attributes and returns it, else creates a new brush, adds it -to the brush list, and returns it. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{style}{Brush style. See \helpref{wxBrush::SetStyle}{wxbrushsetstyle} for a list of styles.} - - diff --git a/docs/latex/wx/bufferdc.tex b/docs/latex/wx/bufferdc.tex deleted file mode 100644 index 4722c6a531..0000000000 --- a/docs/latex/wx/bufferdc.tex +++ /dev/null @@ -1,213 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: bufferdc.tex -%% Purpose: wxBufferedDC documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 07.02.04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxBufferedDC}}\label{wxbuffereddc} - -This class provides a simple way to avoid flicker: when drawing on it, -everything is in fact first drawn on an in-memory buffer (a -\helpref{wxBitmap}{wxbitmap}) and then copied to the screen, using the -associated wxDC, only once, when this object is destroyed. wxBufferedDC itself -is typically associated with \helpref{wxClientDC}{wxclientdc}, if you want to -use it in your \texttt{EVT\_PAINT} handler, you should look at -\helpref{wxBufferedPaintDC}{wxbufferedpaintdc} instead. - -When used like this, a valid \arg{dc} must be specified in the constructor -while the \arg{buffer} bitmap doesn't have to be explicitly provided, by -default this class will allocate the bitmap of required size itself. However -using a dedicated bitmap can speed up the redrawing process by eliminating the -repeated creation and destruction of a possibly big bitmap. Otherwise, -wxBufferedDC can be used in the same way as any other device context. - -There is another possible use for wxBufferedDC is to use it to maintain a -backing store for the window contents. In this case, the associated \arg{dc} -may be \NULL but a valid backing store bitmap should be specified. - -Finally, please note that GTK+ 2.0 as well as OS X provide double buffering -themselves natively. You can either use \helpref{wxWindow::IsDoubleBuffered}{wxwindowisdoublebuffered} -to determine whether you need to use buffering or not, or use -\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc} to avoid needless double -buffering on the systems which already do it automatically. - -\wxheading{Derived from} - -\helpref{wxMemoryDC}{wxmemorydc}\\ -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc},\rtfsp -\helpref{wxMemoryDC}{wxmemorydc},\rtfsp -\helpref{wxBufferedPaintDC}{wxbufferedpaintdc},\rtfsp -\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBufferedDC::wxBufferedDC}\label{wxbuffereddcctor} - -\func{}{wxBufferedDC}{\void} - -\func{}{wxBufferedDC}{\param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -\func{}{wxBufferedDC}{\param{wxDC *}{dc}, \param{wxBitmap\& }{buffer}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -If you use the first, default, constructor, you must call one of the -\helpref{Init}{wxbuffereddcinit} methods later in order to use the object. - -The other constructors initialize the object immediately and \texttt{Init()} -must not be called after using them. - -\wxheading{Parameters} - -\docparam{dc}{The underlying DC: everything drawn to this object will be -flushed to this DC when this object is destroyed. You may pass NULL -in order to just initialize the buffer, and not flush it.} - -\docparam{area}{The size of the bitmap to be used for buffering (this bitmap is -created internally when it is not given explicitly).} - -\docparam{buffer}{Explicitly provided bitmap to be used for buffering: this is -the most efficient solution as the bitmap doesn't have to be recreated each -time but it also requires more memory as the bitmap is never freed. The bitmap -should have appropriate size, anything drawn outside of its bounds is clipped.} - -\docparam{style}{wxBUFFER\_CLIENT\_AREA to indicate that just the client area of -the window is buffered, or wxBUFFER\_VIRTUAL\_AREA to indicate that the buffer bitmap -covers the virtual area (in which case PrepareDC is automatically called for the actual window -device context).} - -\membersection{wxBufferedDC::Init}\label{wxbuffereddcinit} - -\func{void}{Init}{\param{wxDC *}{dc}, \param{const wxSize\& }{area}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -\func{void}{Init}{\param{wxDC *}{dc}, \param{wxBitmap\& }{buffer}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -These functions initialize the object created using the default constructor. -Please see \helpref{constructors documentation}{wxbuffereddcctor} for details. - - -% VZ: UnMask() intentionally not documented, we might want to make it private - - -\membersection{wxBufferedDC::\destruct{wxBufferedDC}}\label{wxbuffereddcdtor} - -Copies everything drawn on the DC so far to the underlying DC associated with -this object, if any. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxBufferedPaintDC}}\label{wxbufferedpaintdc} - -This is a subclass of \helpref{wxBufferedDC}{wxbuffereddc} which can be used -inside of an \texttt{OnPaint()} event handler. Just create an object of this class instead -of \helpref{wxPaintDC}{wxpaintdc} and make sure \helpref{wxWindow::SetBackgroundStyle}{wxwindowgetbackgroundstyle} -is called with wxBG\_STYLE\_CUSTOM somewhere in the class initialization code, and that's all -you have to do to (mostly) avoid flicker. The only thing to watch out for is that if you are -using this class together with \helpref{wxScrolledWindow}{wxscrolledwindow}, you probably -do \textbf{not} want to call \helpref{PrepareDC}{wxscrolledwindowpreparedc} on it as it -already does this internally for the real underlying wxPaintDC. - -\wxheading{Derived from} - -\helpref{wxBufferedDC}{wxbuffereddc}\\ -\helpref{wxMemoryDC}{wxmemorydc}\\ -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc},\rtfsp -\helpref{wxBufferedDC}{wxbuffereddc},\rtfsp -\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBufferedPaintDC::wxBufferedPaintDC}\label{wxbufferedpaintdcctor} - -\func{}{wxBufferedPaintDC}{\param{wxWindow *}{window}, \param{wxBitmap\& }{buffer}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -\func{}{wxBufferedPaintDC}{\param{wxWindow *}{window}, \param{int }{style = wxBUFFER\_CLIENT\_AREA}} - -As with \helpref{wxBufferedDC}{wxbuffereddcctor}, you may either provide the -bitmap to be used for buffering or let this object create one internally (in -the latter case, the size of the client part of the window is used). - -Pass wxBUFFER\_CLIENT\_AREA for the {\it style} parameter to indicate that just the client area of -the window is buffered, or wxBUFFER\_VIRTUAL\_AREA to indicate that the buffer bitmap -covers the virtual area (in which case PrepareDC is automatically called for the actual window -device context). - -\membersection{wxBufferedPaintDC::\destruct{wxBufferedPaintDC}}\label{wxbufferedpaintdcdtor} - -Copies everything drawn on the DC so far to the window associated with this -object, using a \helpref{wxPaintDC}{wxpaintdc}. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxAutoBufferedPaintDC}}\label{wxautobufferedpaintdc} - -This wxDC derivative can be used inside of an \texttt{OnPaint()} event handler to achieve -double-buffered drawing. Just create an object of this class instead of \helpref{wxPaintDC}{wxpaintdc} -and make sure \helpref{wxWindow::SetBackgroundStyle}{wxwindowgetbackgroundstyle} is called -with wxBG\_STYLE\_CUSTOM somewhere in the class initialization code, and that's all you have -to do to (mostly) avoid flicker. - -The difference between \helpref{wxBufferedPaintDC}{wxbufferedpaintdc} and this class, -is the lightweigthness - on platforms which have native double-buffering, wxAutoBufferedPaintDC is simply -a typedef of wxPaintDC. Otherwise, it is a typedef of wxBufferedPaintDC. - - -\wxheading{Derived from} - -\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}\\ -\helpref{wxBufferedDC}{wxbuffereddc}\\ -\helpref{wxMemoryDC}{wxmemorydc}\\ -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxDC}{wxdc},\rtfsp -\helpref{wxBufferedPaintDC}{wxbufferedpaintdc} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxAutoBufferedPaintDC::wxAutoBufferedPaintDC}\label{wxautobufferedpaintdcctor} - -\func{}{wxAutoBufferedPaintDC}{\param{wxWindow *}{window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - diff --git a/docs/latex/wx/bullet.bmp b/docs/latex/wx/bullet.bmp deleted file mode 100644 index 6481f5143b934b2b2fad561a9b39fb441944418a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmZ?rJ;ne5Wk5;;h`FGck%0v)5dbE!5e*CsK*Z3{0HJ^+kjZf1zyTl)lK2ls4FCUw iSU?PfAR!PR1i)haVEO|{7|2Jb|1&`3;p$=f&}abvMLt>p diff --git a/docs/latex/wx/busycurs.tex b/docs/latex/wx/busycurs.tex deleted file mode 100644 index ca0c9a4491..0000000000 --- a/docs/latex/wx/busycurs.tex +++ /dev/null @@ -1,50 +0,0 @@ -\section{\class{wxBusyCursor}}\label{wxbusycursor} - -This class makes it easy to tell your user that the program is temporarily busy. -Just create a wxBusyCursor object on the stack, and within the current scope, -the hourglass will be shown. - -For example: - -\begin{verbatim} - wxBusyCursor wait; - - for (int i = 0; i < 100000; i++) - DoACalculation(); -\end{verbatim} - -It works by calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor} in the constructor, -and \helpref{wxEndBusyCursor}{wxendbusycursor} in the destructor. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBeginBusyCursor}{wxbeginbusycursor},\rtfsp -\helpref{wxEndBusyCursor}{wxendbusycursor},\rtfsp -\helpref{wxWindowDisabler}{wxwindowdisabler} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBusyCursor::wxBusyCursor}\label{wxbusycursorctor} - -\func{}{wxBusyCursor}{\param{wxCursor*}{ cursor = wxHOURGLASS\_CURSOR}} - -Constructs a busy cursor object, calling \helpref{wxBeginBusyCursor}{wxbeginbusycursor}. - -\membersection{wxBusyCursor::\destruct{wxBusyCursor}}\label{wxbusycursordtor} - -\func{}{\destruct{wxBusyCursor}}{\void} - -Destroys the busy cursor object, calling \helpref{wxEndBusyCursor}{wxendbusycursor}. - diff --git a/docs/latex/wx/busyinfo.tex b/docs/latex/wx/busyinfo.tex deleted file mode 100644 index ead87914c7..0000000000 --- a/docs/latex/wx/busyinfo.tex +++ /dev/null @@ -1,73 +0,0 @@ -\section{\class{wxBusyInfo}}\label{wxbusyinfo} - -This class makes it easy to tell your user that the program is temporarily busy. -Just create a wxBusyInfo object on the stack, and within the current scope, -a message window will be shown. - -For example: - -\begin{verbatim} - wxBusyInfo wait("Please wait, working..."); - - for (int i = 0; i < 100000; i++) - { - DoACalculation(); - } -\end{verbatim} - -It works by creating a window in the constructor, -and deleting it in the destructor. - -You may also want to call wxTheApp->Yield() to refresh the window -periodically (in case it had been obscured by other windows, for -example) like this: - -\begin{verbatim} - wxWindowDisabler disableAll; - - wxBusyInfo wait("Please wait, working..."); - - for (int i = 0; i < 100000; i++) - { - DoACalculation(); - - if ( !(i % 1000) ) - wxTheApp->Yield(); - } -\end{verbatim} - -but take care to not cause undesirable reentrancies when doing it (see -\helpref{wxApp::Yield()}{wxappyield} for more details). The simplest way to do -it is to use \helpref{wxWindowDisabler}{wxwindowdisabler} class as illustrated -in the above example. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBusyInfo::wxBusyInfo}\label{wxbusyinfoctor} - -\func{}{wxBusyInfo}{\param{const wxString\&}{ msg}, \param{wxWindow* }{parent = NULL}} - -Constructs a busy info window as child of {\it parent} and displays {\it msg} -in it. - -{\bf NB:} If {\it parent} is not {\tt NULL} you must ensure that it is not -closed while the busy info is shown. - -\membersection{wxBusyInfo::\destruct{wxBusyInfo}}\label{wxbusyinfodtor} - -\func{}{\destruct{wxBusyInfo}}{\void} - -Hides and closes the window containing the information text. - diff --git a/docs/latex/wx/button.tex b/docs/latex/wx/button.tex deleted file mode 100644 index affe8c5eb7..0000000000 --- a/docs/latex/wx/button.tex +++ /dev/null @@ -1,164 +0,0 @@ -\section{\class{wxButton}}\label{wxbutton} - -A button is a control that contains a text string, -and is one of the most common elements of a GUI. It may be placed on a -\rtfsp\helpref{dialog box}{wxdialog} or \helpref{panel}{wxpanel}, or indeed -almost any other window. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBU\_LEFT}}{Left-justifies the label. Windows and GTK+ only.} -\twocolitem{\windowstyle{wxBU\_TOP}}{Aligns the label to the top of the button. Windows and GTK+ only.} -\twocolitem{\windowstyle{wxBU\_RIGHT}}{Right-justifies the bitmap label. Windows and GTK+ only.} -\twocolitem{\windowstyle{wxBU\_BOTTOM}}{Aligns the label to the bottom of the button. Windows and GTK+ only.} -\twocolitem{\windowstyle{wxBU\_EXACTFIT}}{Creates the button as small as possible instead of making it of the standard size (which is the default behaviour ).} -\twocolitem{\windowstyle{wxBORDER\_NONE}}{Creates a flat button. Windows and GTK+ only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED event, -when the button is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxBitmapButton}{wxbitmapbutton} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxButton::wxButton}\label{wxbuttonctor} - -\func{}{wxButton}{\void} - -Default constructor. - -\func{}{wxButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label = wxEmptyString},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``button"}} - -Constructor, creating and showing a button. - -The preferred way to create standard buttons is to use default value of -\arg{label}. If no label is supplied and \arg{id} is one of standard IDs from -\helpref{this list}{stockitems}, standard label will be used. In addition to -that, the button will be decorated with stock icons under GTK+ 2. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Button identifier. A value of \texttt{wxID\_ANY} indicates a default value.} - -\docparam{label}{Text to be displayed on the button.} - -\docparam{pos}{Button position.} - -\docparam{size}{Button size. If the default size is specified then the button is sized -appropriately for the text.} - -\docparam{style}{Window style. See \helpref{wxButton}{wxbutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxButton::Create}{wxbuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxButton::\destruct{wxButton}}\label{wxbuttondtor} - -\func{}{\destruct{wxButton}}{\void} - -Destructor, destroying the button. - -\membersection{wxButton::Create}\label{wxbuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label = wxEmptyString},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator}, \param{const wxString\& }{name = ``button"}} - -Button creation function for two-step creation. For more details, see -\helpref{wxButton::wxButton}{wxbuttonctor}. - -\membersection{wxButton::GetLabel}\label{wxbuttongetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the string label for the button. - -\wxheading{Return value} - -The button's label. - -\wxheading{See also} - -\helpref{wxButton::SetLabel}{wxbuttonsetlabel} - -\membersection{wxButton::GetDefaultSize}\label{wxbuttongetdefaultsize} - -\func{wxSize}{GetDefaultSize}{\void} - -Returns the default size for the buttons. It is advised to make all the dialog -buttons of the same size and this function allows to retrieve the (platform and -current font dependent size) which should be the best suited for this. - -\membersection{wxButton::SetDefault}\label{wxbuttonsetdefault} - -\func{void}{SetDefault}{\void} - -This sets the button to be the default item for the panel or dialog -box. - -\wxheading{Remarks} - -Under Windows, only dialog box buttons respond to this function. As -normal under Windows and Motif, pressing return causes the default button to -be depressed when the return key is pressed. See also \helpref{wxWindow::SetFocus}{wxwindowsetfocus}\rtfsp -which sets the keyboard focus for windows and text panel items,\rtfsp -and \helpref{wxTopLevelWindow::SetDefaultItem}{wxtoplevelwindowsetdefaultitem}. - -Note that under Motif, calling this function immediately after -creation of a button and before the creation of other buttons -will cause misalignment of the row of buttons, since default -buttons are larger. To get around this, call {\it SetDefault}\rtfsp -after you have created a row of buttons: wxWidgets will -then set the size of all buttons currently on the panel to -the same size. - -\membersection{wxButton::SetLabel}\label{wxbuttonsetlabel} - -\func{void}{SetLabel}{\param{const wxString\& }{label}} - -Sets the string label for the button. - -\wxheading{Parameters} - -\docparam{label}{The label to set.} - -\wxheading{See also} - -\helpref{wxButton::GetLabel}{wxbuttongetlabel} - diff --git a/docs/latex/wx/calclevt.tex b/docs/latex/wx/calclevt.tex deleted file mode 100644 index e87e7e4dce..0000000000 --- a/docs/latex/wx/calclevt.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxCalculateLayoutEvent}}\label{wxcalculatelayoutevent} - -This event is sent by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} to -calculate the amount of the remaining client area that the window should -occupy. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event table macros} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event, -which asks the window to take a 'bite' out of a rectangle provided by the algorithm.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCalculateLayoutEvent::wxCalculateLayoutEvent}\label{wxcalculatelayouteventctor} - -\func{}{wxCalculateLayoutEvent}{\param{wxWindowID }{id = 0}} - -Constructor. - -\membersection{wxCalculateLayoutEvent::GetFlags}\label{wxcalculatelayouteventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags associated with this event. Not currently used. - -\membersection{wxCalculateLayoutEvent::GetRect}\label{wxcalculatelayouteventgetrect} - -\constfunc{wxRect}{GetRect}{\void} - -Before the event handler is entered, returns the remaining parent client area that the window -could occupy. When the event handler returns, this should contain the remaining parent client rectangle, -after the event handler has subtracted the area that its window occupies. - -\membersection{wxCalculateLayoutEvent::SetFlags}\label{wxcalculatelayouteventsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets the flags associated with this event. Not currently used. - -\membersection{wxCalculateLayoutEvent::SetRect}\label{wxcalculatelayouteventsetrect} - -\func{void}{SetRect}{\param{const wxRect\& }{rect}} - -Call this to specify the new remaining parent client area, after the space occupied by the -window has been subtracted. - diff --git a/docs/latex/wx/calctrl.tex b/docs/latex/wx/calctrl.tex deleted file mode 100644 index 9725513e3c..0000000000 --- a/docs/latex/wx/calctrl.tex +++ /dev/null @@ -1,523 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: calctrl.tex -%% Purpose: wxCalendarCtrl documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 03.01.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCalendarCtrl}}\label{wxcalendarctrl} - -The calendar control allows the user to pick a date. For this, -it displays a window containing several parts: a control at the top to pick the month -and the year (either or both of them may be disabled), and a month -area below them which shows all the days in the month. The user can move the -current selection using the keyboard and select the date (generating -{\tt EVT\_CALENDAR} event) by pressing {\tt } or double clicking it. - -It has advanced possibilities for the customization of its display. All global -settings (such as colours and fonts used) can, of course, be changed. But -also, the display style for each day in the month can be set independently -using \helpref{wxCalendarDateAttr}{wxcalendardateattr} class. - -An item without custom attributes is drawn with the default colours and -font and without border, but setting custom attributes with -\helpref{SetAttr}{wxcalendarctrlsetattr} allows to modify its appearance. Just -create a custom attribute object and set it for the day you want to be -displayed specially (note that the control will take ownership of the pointer, -i.e. it will delete it itself). A day may be marked as being a holiday, even -if it is not recognized as one by \helpref{wxDateTime}{tdateholidays} using -\helpref{SetHoliday}{wxcalendardateattrsetholiday} method. - -As the attributes are specified for each day, they may change when the month -is changed, so you will often want to update them in -{\tt EVT\_CALENDAR\_MONTH} event handler. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=4pt -\twocolitem{\windowstyle{wxCAL\_SUNDAY\_FIRST}}{Show Sunday as the first day in the week} -\twocolitem{\windowstyle{wxCAL\_MONDAY\_FIRST}}{Show Monday as the first day in the week} -\twocolitem{\windowstyle{wxCAL\_SHOW\_HOLIDAYS}}{Highlight holidays in the calendar} -\twocolitem{\windowstyle{wxCAL\_NO\_YEAR\_CHANGE}}{Disable the year changing} -\twocolitem{\windowstyle{wxCAL\_NO\_MONTH\_CHANGE}}{Disable the month (and, implicitly, the year) changing} -\twocolitem{\windowstyle{wxCAL\_SHOW\_SURROUNDING\_WEEKS}}{Show the neighbouring weeks in the previous and next months} -\twocolitem{\windowstyle{wxCAL\_SEQUENTIAL\_MONTH\_SELECTION}}{Use alternative, more compact, style for the month and year selection controls.} -\end{twocollist} - -The default calendar style is {\tt wxCAL\_SHOW\_HOLIDAYS}. - -\wxheading{Event table macros} - -To process input from a calendar control, use these event handler macros to -direct input to member functions that take a -\helpref{wxCalendarEvent}{wxcalendarevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=7pt -\twocolitem{{\bf EVT\_CALENDAR(id, func)}}{A day was double clicked in the calendar.} -\twocolitem{{\bf EVT\_CALENDAR\_SEL\_CHANGED(id, func)}}{The selected date changed.} -\twocolitem{{\bf EVT\_CALENDAR\_DAY(id, func)}}{The selected day changed.} -\twocolitem{{\bf EVT\_CALENDAR\_MONTH(id, func)}}{The selected month changed.} -\twocolitem{{\bf EVT\_CALENDAR\_YEAR(id, func)}}{The selected year changed.} -\twocolitem{{\bf EVT\_CALENDAR\_WEEKDAY\_CLICKED(id, func)}}{User clicked on the week day header} -\end{twocollist}% - -Note that changing the selected date will result in either of -{\tt EVT\_CALENDAR\_DAY}, {\tt MONTH} or {\tt YEAR} events and -{\tt EVT\_CALENDAR\_SEL\_CHANGED} one. - -\wxheading{Constants} - -The following are the possible return values for -\helpref{HitTest}{wxcalendarctrlhittest} method: - -{\small -\begin{verbatim} -enum wxCalendarHitTestResult -{ - wxCAL_HITTEST_NOWHERE, // outside of anything - wxCAL_HITTEST_HEADER, // on the header (weekdays) - wxCAL_HITTEST_DAY // on a day in the calendar -} -\end{verbatim} -} - -\wxheading{See also} - -\helpref{Calendar sample}{samplecalendar}\\ -\helpref{wxCalendarDateAttr}{wxcalendardateattr}\\ -\helpref{wxCalendarEvent}{wxcalendarevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxCalendarCtrl::wxCalendarCtrl}\label{wxcalendarctrlwxcalendarctrldef} - -\func{}{wxCalendarCtrl}{\void} - -Default constructor, use \helpref{Create}{wxcalendarctrlcreate} after it. - -\func{}{wxCalendarCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxDateTime\& }{date = wxDefaultDateTime}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxCAL\_SHOW\_HOLIDAYS}, \param{const wxString\& }{name = wxCalendarNameStr}} - -Does the same as \helpref{Create}{wxcalendarctrlcreate} method. - - -\membersection{wxCalendarCtrl::Create}\label{wxcalendarctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxDateTime\& }{date = wxDefaultDateTime}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxCAL\_SHOW\_HOLIDAYS}, \param{const wxString\& }{name = wxCalendarNameStr}} - -Creates the control. See \helpref{wxWindow}{wxwindowctor} for the meaning of -the parameters and the control overview for the possible styles. - - -\membersection{wxCalendarCtrl::\destruct{wxCalendarCtrl}}\label{wxcalendarctrldtor} - -\func{}{\destruct{wxCalendarCtrl}}{\void} - -Destroys the control. - - -\membersection{wxCalendarCtrl::SetDate}\label{wxcalendarctrlsetdate} - -\func{void}{SetDate}{\param{const wxDateTime\& }{date}} - -Sets the current date. - - -\membersection{wxCalendarCtrl::GetDate}\label{wxcalendarctrlgetdate} - -\constfunc{const wxDateTime\&}{GetDate}{\void} - -Gets the currently selected date. - - -\membersection{wxCalendarCtrl::EnableYearChange}\label{wxcalendarctrlenableyearchange} - -\func{void}{EnableYearChange}{\param{bool }{enable = true}} - -This function should be used instead of changing {\tt wxCAL\_NO\_YEAR\_CHANGE} -style bit directly. It allows or disallows the user to change the year -interactively. - - -\membersection{wxCalendarCtrl::EnableMonthChange}\label{wxcalendarctrlenablemonthchange} - -\func{void}{EnableMonthChange}{\param{bool }{enable = true}} - -This function should be used instead of changing -{\tt wxCAL\_NO\_MONTH\_CHANGE} style bit. It allows or disallows the user to -change the month interactively. Note that if the month can not be changed, the -year can not be changed neither. - - -\membersection{wxCalendarCtrl::EnableHolidayDisplay}\label{wxcalendarctrlenableholidaydisplay} - -\func{void}{EnableHolidayDisplay}{\param{bool }{display = true}} - -This function should be used instead of changing {\tt wxCAL\_SHOW\_HOLIDAYS} -style bit directly. It enables or disables the special highlighting of the -holidays. - - -\membersection{wxCalendarCtrl::SetHeaderColours}\label{wxcalendarctrlsetheadercolours} - -\func{void}{SetHeaderColours}{\param{const wxColour\& }{colFg}, \param{const wxColour\& }{colBg}} - -Set the colours used for painting the weekdays at the top of the control. - - -\membersection{wxCalendarCtrl::GetHeaderColourFg}\label{wxcalendarctrlgetheadercolourfg} - -\constfunc{const wxColour\&}{GetHeaderColourFg}{\void} - -Gets the foreground colour of the header part of the calendar window. - -\wxheading{See also} - -\helpref{SetHeaderColours}{wxcalendarctrlsetheadercolours} - - -\membersection{wxCalendarCtrl::GetHeaderColourBg}\label{wxcalendarctrlgetheadercolourbg} - -\constfunc{const wxColour\&}{GetHeaderColourBg}{\void} - -Gets the background colour of the header part of the calendar window. - -\wxheading{See also} - -\helpref{SetHeaderColours}{wxcalendarctrlsetheadercolours} - - -\membersection{wxCalendarCtrl::SetHighlightColours}\label{wxcalendarctrlsethighlightcolours} - -\func{void}{SetHighlightColours}{\param{const wxColour\& }{colFg}, \param{const wxColour\& }{colBg}} - -Set the colours to be used for highlighting the currently selected date. - - -\membersection{wxCalendarCtrl::GetHighlightColourFg}\label{wxcalendarctrlgethighlightcolourfg} - -\constfunc{const wxColour\&}{GetHighlightColourFg}{\void} - -Gets the foreground highlight colour. - -\wxheading{See also} - -\helpref{SetHighlightColours}{wxcalendarctrlsethighlightcolours} - - -\membersection{wxCalendarCtrl::GetHighlightColourBg}\label{wxcalendarctrlgethighlightcolourbg} - -\constfunc{const wxColour\&}{GetHighlightColourBg}{\void} - -Gets the background highlight colour. - -\wxheading{See also} - -\helpref{SetHighlightColours}{wxcalendarctrlsethighlightcolours} - - -\membersection{wxCalendarCtrl::SetHolidayColours}\label{wxcalendarctrlsetholidaycolours} - -\func{void}{SetHolidayColours}{\param{const wxColour\& }{colFg}, \param{const wxColour\& }{colBg}} - -Sets the colours to be used for the holidays highlighting (only used if the -window style includes {\tt wxCAL\_SHOW\_HOLIDAYS} flag). - - -\membersection{wxCalendarCtrl::GetHolidayColourFg}\label{wxcalendarctrlgetholidaycolourfg} - -\constfunc{const wxColour\&}{GetHolidayColourFg}{\void} - -Return the foreground colour currently used for holiday highlighting. - -\wxheading{See also} - -\helpref{SetHolidayColours}{wxcalendarctrlsetholidaycolours} - - -\membersection{wxCalendarCtrl::GetHolidayColourBg}\label{wxcalendarctrlgetholidaycolourbg} - -\constfunc{const wxColour\&}{GetHolidayColourBg}{\void} - -Return the background colour currently used for holiday highlighting. - -\wxheading{See also} - -\helpref{SetHolidayColours}{wxcalendarctrlsetholidaycolours} - - -\membersection{wxCalendarCtrl::GetAttr}\label{wxcalendarctrlgetattr} - -\constfunc{wxCalendarDateAttr *}{GetAttr}{\param{size\_t }{day}} - -Returns the attribute for the given date (should be in the range $1\ldots31$). - -The returned pointer may be {\tt NULL}. - - -\membersection{wxCalendarCtrl::SetAttr}\label{wxcalendarctrlsetattr} - -\func{void}{SetAttr}{\param{size\_t }{day}, \param{wxCalendarDateAttr* }{attr}} - -Associates the attribute with the specified date (in the range $1\ldots31$). - -If the pointer is {\tt NULL}, the items attribute is cleared. - - -\membersection{wxCalendarCtrl::SetHoliday}\label{wxcalendarctrlsetholiday} - -\func{void}{SetHoliday}{\param{size\_t }{day}} - -Marks the specified day as being a holiday in the current month. - - -\membersection{wxCalendarCtrl::ResetAttr}\label{wxcalendarctrlresetattr} - -\func{void}{ResetAttr}{\param{size\_t }{day}} - -Clears any attributes associated with the given day (in the range -$1\ldots31$). - - -\membersection{wxCalendarCtrl::HitTest}\label{wxcalendarctrlhittest} - -\func{wxCalendarHitTestResult}{HitTest}{\param{const wxPoint\& }{pos}, \param{wxDateTime* }{date = NULL}, \param{wxDateTime::WeekDay* }{wd = NULL}} - -Returns one of {\tt wxCAL\_HITTEST\_XXX} -\helpref{constants}{wxcalendarctrl} and fills either {\it date} or -{\it wd} pointer with the corresponding value depending on the hit test code. - -\section{\class{wxCalendarDateAttr}}\label{wxcalendardateattr} - -wxCalendarDateAttr is a custom attributes for a calendar date. The objects of -this class are used with \helpref{wxCalendarCtrl}{wxcalendarctrl}. - -\wxheading{Derived from} - -No base class - -\wxheading{Constants} - -Here are the possible kinds of borders which may be used to decorate a date: - -\begin{verbatim} -enum wxCalendarDateBorder -{ - wxCAL_BORDER_NONE, // no border (default) - wxCAL_BORDER_SQUARE, // a rectangular border - wxCAL_BORDER_ROUND // a round border -} -\end{verbatim} - -\wxheading{See also} - -\helpref{wxCalendarCtrl}{wxcalendarctrl} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxCalendarDateAttr::wxCalendarDateAttr}\label{wxcalendardateattrwxcalendardateattr} - -\func{}{wxCalendarDateAttr}{\void} - -\func{}{wxCalendarDateAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, \param{const wxColour\& }{colBorder = wxNullColour}, \param{const wxFont\& }{font = wxNullFont}, \param{wxCalendarDateBorder }{border = wxCAL\_BORDER\_NONE}} - -\func{}{wxCalendarDateAttr}{\param{wxCalendarDateBorder }{border}, \param{const wxColour\& }{colBorder = wxNullColour}} - -The constructors. - - -\membersection{wxCalendarDateAttr::SetTextColour}\label{wxcalendardateattrsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colText}} - -Sets the text (foreground) colour to use. - - -\membersection{wxCalendarDateAttr::SetBackgroundColour}\label{wxcalendardateattrsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}} - -Sets the text background colour to use. - - -\membersection{wxCalendarDateAttr::SetBorderColour}\label{wxcalendardateattrsetbordercolour} - -\func{void}{SetBorderColour}{\param{const wxColour\& }{col}} - -Sets the border colour to use. - - -\membersection{wxCalendarDateAttr::SetFont}\label{wxcalendardateattrsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font to use. - - -\membersection{wxCalendarDateAttr::SetBorder}\label{wxcalendardateattrsetborder} - -\func{void}{SetBorder}{\param{wxCalendarDateBorder }{border}} - -Sets the \helpref{border kind}{wxcalendardateattr} - - -\membersection{wxCalendarDateAttr::SetHoliday}\label{wxcalendardateattrsetholiday} - -\func{void}{SetHoliday}{\param{bool }{holiday}} - -Display the date with this attribute as a holiday. - - -\membersection{wxCalendarDateAttr::HasTextColour}\label{wxcalendardateattrhastextcolour} - -\constfunc{bool}{HasTextColour}{\void} - -Returns {\tt true} if this item has a non-default text foreground colour. - - -\membersection{wxCalendarDateAttr::HasBackgroundColour}\label{wxcalendardateattrhasbackgroundcolour} - -\constfunc{bool}{HasBackgroundColour}{\void} - -Returns {\tt true} if this attribute specifies a non-default text background colour. - - -\membersection{wxCalendarDateAttr::HasBorderColour}\label{wxcalendardateattrhasbordercolour} - -\constfunc{bool}{HasBorderColour}{\void} - -Returns {\tt true} if this attribute specifies a non-default border colour. - - -\membersection{wxCalendarDateAttr::HasFont}\label{wxcalendardateattrhasfont} - -\constfunc{bool}{HasFont}{\void} - -Returns {\tt true} if this attribute specifies a non-default font. - - -\membersection{wxCalendarDateAttr::HasBorder}\label{wxcalendardateattrhasborder} - -\constfunc{bool}{HasBorder}{\void} - -Returns {\tt true} if this attribute specifies a non-default (i.e. any) border. - - -\membersection{wxCalendarDateAttr::IsHoliday}\label{wxcalendardateattrisholiday} - -\constfunc{bool}{IsHoliday}{\void} - -Returns {\tt true} if this attribute specifies that this item should be -displayed as a holiday. - - -\membersection{wxCalendarDateAttr::GetTextColour}\label{wxcalendardateattrgettextcolour} - -\constfunc{const wxColour\&}{GetTextColour}{\void} - -Returns the text colour to use for the item with this attribute. - - -\membersection{wxCalendarDateAttr::GetBackgroundColour}\label{wxcalendardateattrgetbackgroundcolour} - -\constfunc{const wxColour\&}{GetBackgroundColour}{\void} - -Returns the background colour to use for the item with this attribute. - - -\membersection{wxCalendarDateAttr::GetBorderColour}\label{wxcalendardateattrgetbordercolour} - -\constfunc{const wxColour\&}{GetBorderColour}{\void} - -Returns the border colour to use for the item with this attribute. - - -\membersection{wxCalendarDateAttr::GetFont}\label{wxcalendardateattrgetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Returns the font to use for the item with this attribute. - - -\membersection{wxCalendarDateAttr::GetBorder}\label{wxcalendardateattrgetborder} - -\constfunc{wxCalendarDateBorder}{GetBorder}{\void} - -Returns the \helpref{border}{wxcalendardateattr} to use for the item with this attribute. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCalendarEvent}}\label{wxcalendarevent} - -The wxCalendarEvent class is used together with -\helpref{wxCalendarCtrl}{wxcalendarctrl}. - -\wxheading{Derived from} - -\helpref{wxDateEvent}{wxdateevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{See also} - -\helpref{wxCalendarCtrl}{wxcalendarctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxCalendarEvent::GetWeekDay}\label{wxcalendareventgetweekday} - -\constfunc{wxDateTime::WeekDay}{GetWeekDay}{\void} - -Returns the week day on which the user clicked in -{\tt EVT\_CALENDAR\_WEEKDAY\_CLICKED} handler. It doesn't make sense to call -this function in other handlers. - - -\membersection{wxCalendarEvent::SetWeekDay}\label{wxcalendareventsetweekday} - -\func{void}{SetWeekDay}{\param{wxDateTime::WeekDay}{ day}} - -Sets the week day carried by the event, normally only used by the library -internally. - diff --git a/docs/latex/wx/caret.tex b/docs/latex/wx/caret.tex deleted file mode 100644 index d1aff076ae..0000000000 --- a/docs/latex/wx/caret.tex +++ /dev/null @@ -1,169 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: caret.tex -%% Purpose: wxCaret documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 20.06.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCaret}}\label{wxcaret} - -A caret is a blinking cursor showing the position where the typed text will -appear. The text controls usually have a caret but wxCaret class also allows -to use a caret in other windows. - -Currently, the caret appears as a rectangle of the given size. In the future, -it will be possible to specify a bitmap to be used for the caret shape. - -A caret is always associated with a window and the current caret can be -retrieved using \helpref{wxWindow::GetCaret}{wxwindowgetcaret}. The same caret -can't be reused in two different windows. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCaret::wxCaret}\label{wxcaretwxcaret} - -\func{}{wxCaret}{\void} - -Default constructor: you must use one of Create() functions later. - -\func{}{wxCaret}{\param{wxWindow* }{window}, \param{int }{width}, \param{int }{height}} - -\func{}{wxCaret}{\param{wxWindowBase* }{window}, \param{const wxSize\& }{size}} - -Create the caret of given (in pixels) width and height and associates it -with the given window. - -\membersection{wxCaret::Create}\label{wxcaretcreate} - -\func{bool}{Create}{\param{wxWindowBase* }{window}, \param{int }{width}, \param{int }{height}} - -\func{bool}{Create}{\param{wxWindowBase* }{window}, \param{const wxSize\& }{size}} - -Create the caret of given (in pixels) width and height and associates it -with the given window (same as constructor). - -\membersection{wxCaret::GetBlinkTime}\label{wxcaretgetblinktime} - -\func{static int}{GetBlinkTime}{\void} - -Returns the blink time which is measured in milliseconds and is the time elapsed -between 2 inversions of the caret (blink time of the caret is the same -for all carets, so this functions is static). - -\membersection{wxCaret::GetPosition}\label{wxcaretgetposition} - -\constfunc{void}{GetPosition}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{wxPoint}{GetPosition}{\void} - -Get the caret position (in pixels). - -\perlnote{In wxPerl there are two methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetPosition()}}{Returns a Wx::Point} -\twocolitem{{\bf GetPositionXY()}}{Returns a 2-element list - {\tt ( x, y )}} -\end{twocollist} -}} - -\membersection{wxCaret::GetSize}\label{wxcaretgetsize} - -\constfunc{void}{GetSize}{\param{int* }{width}, \param{int* }{height}} - -\constfunc{wxSize}{GetSize}{\void} - -Get the caret size. - -\perlnote{In wxPerl there are two methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetSize()}}{Returns a Wx::Size} -\twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list - {\tt ( width, height )}} -\end{twocollist} -}} - -\membersection{wxCaret::GetWindow}\label{wxcaretgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - -Get the window the caret is associated with. - -\membersection{wxCaret::Hide}\label{wxcarethide} - -\func{void}{Hide}{\void} - -Same as \helpref{wxCaret::Show(false)}{wxcaretshow}. - -\membersection{wxCaret::IsOk}\label{wxcaretisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the caret was created successfully. - -\membersection{wxCaret::IsVisible}\label{wxcaretisvisible} - -\constfunc{bool}{IsVisible}{\void} - -Returns true if the caret is visible and false if it is permanently -hidden (if it is is blinking and not shown currently but will be after the -next blink, this method still returns true). - -\membersection{wxCaret::Move}\label{wxcaretmove} - -\func{void}{Move}{\param{int }{x}, \param{int }{y}} - -\func{void}{Move}{\param{const wxPoint\& }{pt}} - -Move the caret to given position (in logical coordinates). - -\membersection{wxCaret::SetBlinkTime}\label{wxcaretsetblinktime} - -\func{static void}{SetBlinkTime}{\param{int }{milliseconds}} - -Sets the blink time for all the carets. - -\wxheading{Remarks} - -Under Windows, this function will change the blink time for {\bf all} carets -permanently (until the next time it is called), even for the carets in other -applications. - -\wxheading{See also} - -\helpref{GetBlinkTime}{wxcaretgetblinktime} - -\membersection{wxCaret::SetSize}\label{wxcaretsetsize} - -\func{void}{SetSize}{\param{int }{width}, \param{int }{height}} - -\func{void}{SetSize}{\param{const wxSize\& }{size}} - -Changes the size of the caret. - -\membersection{wxCaret::Show}\label{wxcaretshow} - -\func{void}{Show}{\param{bool }{show = true}} - -Shows or hides the caret. Notice that if the caret was hidden $N$ times, it -must be shown $N$ times as well to reappear on the screen. - diff --git a/docs/latex/wx/category.tex b/docs/latex/wx/category.tex deleted file mode 100644 index a6d91d76af..0000000000 --- a/docs/latex/wx/category.tex +++ /dev/null @@ -1,767 +0,0 @@ -\chapter{Classes by category}\label{classesbycat} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -A classification of wxWidgets classes by category. - -{\large {\bf Managed windows}} - -There are several types of window that are directly controlled by the -window manager (such as MS Windows, or the Motif Window Manager). -Frames and dialogs are similar in wxWidgets, but only dialogs may be modal. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxTopLevelWindow}{wxtoplevelwindow}}{Any top level window, dialog or frame} -\twocolitem{\helpref{wxDialog}{wxdialog}}{Dialog box} -\twocolitem{\helpref{wxFrame}{wxframe}}{Normal frame} -\twocolitem{\helpref{wxMDIChildFrame}{wxmdichildframe}}{MDI child frame} -\twocolitem{\helpref{wxMDIParentFrame}{wxmdiparentframe}}{MDI parent frame} -\twocolitem{\helpref{wxMiniFrame}{wxminiframe}}{A frame with a small title bar} -\twocolitem{\helpref{wxPropertySheetDialog}{wxpropertysheetdialog}}{Property sheet dialog} -\twocolitem{\helpref{wxSplashScreen}{wxsplashscreen}}{Splash screen class} -%\twocolitem{\helpref{wxTabbedDialog}{wxtabbeddialog}}{Tabbed dialog -%(deprecated, use wxNotebook instead)} -\twocolitem{\helpref{wxTipWindow}{wxtipwindow}}{Shows text in a small window} -\twocolitem{\helpref{wxWizard}{wxwizard}}{A wizard dialog} -\end{twocollist} - -See also the \helpref{Common dialogs overview}{commondialogsoverview}. - -{\large {\bf Miscellaneous windows}} - -The following are a variety of classes that are derived from wxWindow. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxPanel}{wxpanel}}{A window whose colour changes according to current user settings} -\twocolitem{\helpref{wxScrolledWindow}{wxscrolledwindow}}{Window with automatically managed scrollbars} -\twocolitem{\helpref{wxGrid}{wxgrid}}{A grid (table) window} -\twocolitem{\helpref{wxSplitterWindow}{wxsplitterwindow}}{Window which can be split vertically or horizontally} -\twocolitem{\helpref{wxStatusBar}{wxstatusbar}}{Implements the status bar on a frame} -\twocolitem{\helpref{wxToolBar}{wxtoolbar}}{Toolbar class} -%\twocolitem{\helpref{wxTabbedPanel}{wxtabbedpanel}}{Tabbed panel (to be replaced with wxNotebook)} -\twocolitem{\helpref{wxNotebook}{wxnotebook}}{Notebook class} -\twocolitem{\helpref{wxListbook}{wxlistbook}}{Similar to notebook but using list control} -\twocolitem{\helpref{wxChoicebook}{wxchoicebook}}{Similar to notebook but using choice control} -\twocolitem{\helpref{wxTreebook}{wxtreebook}}{Similar to notebook but using tree control} -\twocolitem{\helpref{wxSashWindow}{wxsashwindow}}{Window with four optional sashes that can be dragged} -\twocolitem{\helpref{wxSashLayoutWindow}{wxsashlayoutwindow}}{Window that can be involved in an IDE-like layout arrangement} -\twocolitem{\helpref{wxVScrolledWindow}{wxvscrolledwindow}}{As wxScrolledWindow but supports lines of variable height} -\twocolitem{\helpref{wxWizardPage}{wxwizardpage}}{A base class for the page in wizard dialog.} -\twocolitem{\helpref{wxWizardPageSimple}{wxwizardpagesimple}}{A page in wizard dialog.} -\end{twocollist} - -{\large {\bf Common dialogs}} - -\overview{Overview}{commondialogsoverview} - -Common dialogs are ready-made dialog classes which are frequently used -in an application. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDialog}{wxdialog}}{Base class for common dialogs} -\twocolitem{\helpref{wxColourDialog}{wxcolourdialog}}{Colour chooser dialog} -\twocolitem{\helpref{wxDirDialog}{wxdirdialog}}{Directory selector dialog} -\twocolitem{\helpref{wxFileDialog}{wxfiledialog}}{File selector dialog} -\twocolitem{\helpref{wxFindReplaceDialog}{wxfindreplacedialog}}{Text search/replace dialog} -\twocolitem{\helpref{wxMultiChoiceDialog}{wxmultichoicedialog}}{Dialog to get one or more selections from a list} -\twocolitem{\helpref{wxSingleChoiceDialog}{wxsinglechoicedialog}}{Dialog to get a single selection from a list and return the string} -\twocolitem{\helpref{wxTextEntryDialog}{wxtextentrydialog}}{Dialog to get a single line of text from the user} -\twocolitem{\helpref{wxPasswordEntryDialog}{wxpasswordentrydialog}}{Dialog to get a password from the user} -\twocolitem{\helpref{wxFontDialog}{wxfontdialog}}{Font chooser dialog} -\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog} -\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog} -\twocolitem{\helpref{wxProgressDialog}{wxprogressdialog}}{Progress indication dialog} -\twocolitem{\helpref{wxMessageDialog}{wxmessagedialog}}{Simple message box dialog} -\twocolitem{\helpref{wxSymbolPickerDialog}{wxsymbolpickerdialog}}{Symbol selector dialog} -\twocolitem{\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}}{A dialog for formatting the content of a wxRichTextCtrl} -\twocolitem{\helpref{wxWizard}{wxwizard}}{A wizard dialog.} -\end{twocollist} - -{\large {\bf Controls}} - -Typically, these are small windows which provide interaction with the user. Controls -that are not static can have \helpref{validators}{wxvalidator} associated with them. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxAnimationCtrl}{wxanimationctrl}}{A control to display an animation} -\twocolitem{\helpref{wxControl}{wxcontrol}}{The base class for controls} -\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text} -\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap} -\twocolitem{\helpref{wxBitmapComboBox}{wxbitmapcombobox}}{A combobox with bitmaps next to text items} -\twocolitem{\helpref{wxToggleButton}{wxtogglebutton}}{A button which stays pressed when clicked by user.} -\twocolitem{\helpref{wxBitmapToggleButton}{wxbitmaptogglebutton}}{A toggle button with bitmaps.} -\twocolitem{\helpref{wxCalendarCtrl}{wxcalendarctrl}}{Control showing an entire calendar month} -\twocolitem{\helpref{wxCheckBox}{wxcheckbox}}{Checkbox control} -\twocolitem{\helpref{wxCheckListBox}{wxchecklistbox}}{A listbox with a checkbox to the left of each item} -\twocolitem{\helpref{wxChoice}{wxchoice}}{Choice control (a combobox without the editable area)} -\twocolitem{\helpref{wxCollapsiblePane}{wxcollapsiblepane}}{A panel which can be shown/hidden by the user} -\twocolitem{\helpref{wxComboBox}{wxcombobox}}{A choice with an editable area} -\twocolitem{\helpref{wxComboCtrl}{wxcomboctrl}}{A combobox with application defined popup} -\twocolitem{\helpref{wxDataViewCtrl}{wxdataviewctrl}}{A control to tabular or tree like data} -\twocolitem{\helpref{wxDataViewTreeCtrl}{wxdataviewtreectrl}}{A specialized wxDataViewCtrl with wxTreeCtrl-like API} -\twocolitem{\helpref{wxGauge}{wxgauge}}{A control to represent a varying quantity, such as time remaining} -\twocolitem{\helpref{wxGenericDirCtrl}{wxgenericdirctrl}}{A control for displaying a directory tree} -\twocolitem{\helpref{wxHtmlListBox}{wxhtmllistbox}}{An abstract class for creating listboxes showing HTML content} -\twocolitem{\helpref{wxSimpleHtmlListBox}{wxsimplehtmllistbox}}{A listbox showing HTML content} -\twocolitem{\helpref{wxStaticBox}{wxstaticbox}}{A static, or group box for visually grouping related controls} -\twocolitem{\helpref{wxListBox}{wxlistbox}}{A list of strings for single or multiple selection} -\twocolitem{\helpref{wxListCtrl}{wxlistctrl}}{A control for displaying lists of strings and/or icons, plus a multicolumn report view} -\twocolitem{\helpref{wxListView}{wxlistview}}{A simpler interface ({\it fa\c{c}ade}) for wxListCtrl in report mode} -\twocolitem{\helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}}{A combobox with owner-drawn list items} -\twocolitem{\helpref{wxRichTextCtrl}{wxrichtextctrl}}{Generic rich text editing control} -\twocolitem{\helpref{wxTextCtrl}{wxtextctrl}}{Single or multiline text editing control} -\twocolitem{\helpref{wxTreeCtrl}{wxtreectrl}}{Tree (hierarchy) control} -\twocolitem{\helpref{wxScrollBar}{wxscrollbar}}{Scrollbar control} -\twocolitem{\helpref{wxSpinButton}{wxspinbutton}}{A spin or `up-down' control} -\twocolitem{\helpref{wxSpinCtrl}{wxspinctrl}}{A spin control - i.e. spin button and text control} -\twocolitem{\helpref{wxStaticText}{wxstatictext}}{One or more lines of non-editable text} -\twocolitem{\helpref{wxHyperlinkCtrl}{wxhyperlinkctrl}}{A static text which opens an URL when clicked} -\twocolitem{\helpref{wxStaticBitmap}{wxstaticbitmap}}{A control to display a bitmap} -\twocolitem{\helpref{wxRadioBox}{wxradiobox}}{A group of radio buttons} -\twocolitem{\helpref{wxRadioButton}{wxradiobutton}}{A round button to be used with others in a mutually exclusive way} -\twocolitem{\helpref{wxSlider}{wxslider}}{A slider that can be dragged by the user} -\twocolitem{\helpref{wxVListBox}{wxvlistbox}}{A listbox supporting variable height rows} -\end{twocollist} - - -{\large {\bf Miscellaneous pickers}} - -A picker control is a control whose appearance and behaviour is highly platform-dependent. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxColourPickerCtrl}{wxcolourpickerctrl}}{A control which allows the user to choose a colour} -\twocolitem{\helpref{wxDirPickerCtrl}{wxdirpickerctrl}}{A control which allows the user to choose a directory} -\twocolitem{\helpref{wxFilePickerCtrl}{wxfilepickerctrl}}{A control which allows the user to choose a file} -\twocolitem{\helpref{wxFontPickerCtrl}{wxfontpickerctrl}}{A control which allows the user to choose a font} -\twocolitem{\helpref{wxDatePickerCtrl}{wxdatepickerctrl}}{Small date picker control} -\end{twocollist} - - -{\large {\bf Menus}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxMenu}{wxmenu}}{Displays a series of menu items for selection} -\twocolitem{\helpref{wxMenuBar}{wxmenubar}}{Contains a series of menus for use with a frame} -\twocolitem{\helpref{wxMenuItem}{wxmenuitem}}{Represents a single menu item} -\end{twocollist} - -{\large {\bf wxAUI - advanced user interface}} - -This is a new set of classes for writing a customizable application -interface with built-in docking, floatable panes and a flexible -MDI-like interface. Further classes for custom notebooks with -draggable tabs etc. are in progress. See also \helpref{wxAUI overview}{wxauioverview}. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxAuiManager}{wxauimanager}}{The central class for managing the interface} -\twocolitem{\helpref{wxAuiNotebook}{wxauinotebook}}{A replacement notebook class with extra features} -\twocolitem{\helpref{wxAuiPaneInfo}{wxauipaneinfo}}{Describes a single pane} -\twocolitem{\helpref{wxAuiDockArt}{wxauidockart}}{Art and metrics provider for customizing the docking user interface} -\twocolitem{\helpref{wxAuiTabArt}{wxauitabart}}{Art and metrics provider for customizing the notebook user interface} -\end{twocollist} - - -{\large {\bf Window layout}} - -There are two different systems for laying out windows (and dialogs in particular). -One is based upon so-called sizers and it requires less typing, thinking and calculating -and will in almost all cases produce dialogs looking equally well on all platforms, the -other is based on so-called constraints and is deprecated, though still available. - -\overview{Sizer overview}{sizeroverview} describes sizer-based layout. - -These are the classes relevant to sizer-based layout. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxSizer}{wxsizer}}{Abstract base class} -\twocolitem{\helpref{wxGridSizer}{wxgridsizer}}{A sizer for laying out windows in a grid with all fields having the same size} -\twocolitem{\helpref{wxFlexGridSizer}{wxflexgridsizer}}{A sizer for laying out windows in a flexible grid} -\twocolitem{\helpref{wxGridBagSizer}{wxgridbagsizer}}{Another grid sizer that lets you specify the cell an item is in, and items can span rows and/or columns.} -\twocolitem{\helpref{wxBoxSizer}{wxboxsizer}}{A sizer for laying out windows in a row or column} -\twocolitem{\helpref{wxStaticBoxSizer}{wxstaticboxsizer}}{Same as wxBoxSizer, but with a surrounding static box} -\twocolitem{\helpref{wxWrapSizer}{wxwrapsizer}}{A sizer which wraps its child controls as size permits} -\end{twocollist} - -\overview{Constraints overview}{constraintsoverview} describes constraints-based layout. - -These are the classes relevant to constraints-based window layout. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}}{Represents a single constraint dimension} -\twocolitem{\helpref{wxLayoutConstraints}{wxlayoutconstraints}}{Represents the constraints for a window class} -\end{twocollist} - -Other layouting classes: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}}{An alternative window layout facility} -\end{twocollist} - -{\large {\bf Device contexts}} - -\overview{Overview}{dcoverview} - -Device contexts are surfaces that may be drawn on, and provide an -abstraction that allows parameterisation of your drawing code -by passing different device contexts. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxAutoBufferedPaintDC}{wxautobufferedpaintdc}}{A helper device context for double buffered drawing inside \textbf{OnPaint}.} -\twocolitem{\helpref{wxBufferedDC}{wxbuffereddc}}{A helper device context for double buffered drawing.} -\twocolitem{\helpref{wxBufferedPaintDC}{wxbufferedpaintdc}}{A helper device context for double buffered drawing inside \textbf{OnPaint}.} -\twocolitem{\helpref{wxClientDC}{wxclientdc}}{A device context to access the client area outside {\bf OnPaint} events} -\twocolitem{\helpref{wxPaintDC}{wxpaintdc}}{A device context to access the client area inside {\bf OnPaint} events} -\twocolitem{\helpref{wxWindowDC}{wxwindowdc}}{A device context to access the non-client area} -\twocolitem{\helpref{wxScreenDC}{wxscreendc}}{A device context to access the entire screen} -\twocolitem{\helpref{wxDC}{wxdc}}{The device context base class} -\twocolitem{\helpref{wxMemoryDC}{wxmemorydc}}{A device context for drawing into bitmaps} -\twocolitem{\helpref{wxMetafileDC}{wxmetafiledc}}{A device context for drawing into metafiles} -\twocolitem{\helpref{wxMirrorDC}{wxmirrordc}}{A proxy device context allowing for simple mirroring.} -\twocolitem{\helpref{wxPostScriptDC}{wxpostscriptdc}}{A device context for drawing into PostScript files} -\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{A device context for drawing to printers} -\end{twocollist} - -{\large {\bf Graphics device interface}} - -\overview{Bitmaps overview}{wxbitmapoverview} - -These classes are related to drawing on device contexts and windows. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxColour}{wxcolour}}{Represents the red, blue and green elements of a colour} -\twocolitem{\helpref{wxDCClipper}{wxdcclipper}}{Wraps the operations of setting and destroying the clipping region} -\twocolitem{\helpref{wxBitmap}{wxbitmap}}{Represents a bitmap} -\twocolitem{\helpref{wxBrush}{wxbrush}}{Used for filling areas on a device context} -\twocolitem{\helpref{wxBrushList}{wxbrushlist}}{The list of previously-created brushes} -\twocolitem{\helpref{wxCursor}{wxcursor}}{A small, transparent bitmap representing the cursor} -\twocolitem{\helpref{wxFont}{wxfont}}{Represents fonts} -\twocolitem{\helpref{wxFontList}{wxfontlist}}{The list of previously-created fonts} -\twocolitem{\helpref{wxIcon}{wxicon}}{A small, transparent bitmap for assigning to frames and drawing on device contexts} -\twocolitem{\helpref{wxImage}{wximage}}{A platform-independent image class} -\twocolitem{\helpref{wxImageList}{wximagelist}}{A list of images, used with some controls} -\twocolitem{\helpref{wxMask}{wxmask}}{Represents a mask to be used with a bitmap for transparent drawing} -\twocolitem{\helpref{wxPen}{wxpen}}{Used for drawing lines on a device context} -\twocolitem{\helpref{wxPenList}{wxpenlist}}{The list of previously-created pens} -\twocolitem{\helpref{wxPalette}{wxpalette}}{Represents a table of indices into RGB values} -\twocolitem{\helpref{wxRegion}{wxregion}}{Represents a simple or complex region on a window or device context} -\twocolitem{\helpref{wxRendererNative}{wxrenderernative}}{Abstracts high-level drawing primitives} -\end{twocollist} - -{\large {\bf Events}} - -\overview{Overview}{eventhandlingoverview} - -An event object contains information about a specific event. Event handlers -(usually member functions) have a single, event argument. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event} -\twocolitem{\helpref{wxCalendarEvent}{wxcalendarevent}}{Used with \helpref{wxCalendarCtrl}{wxcalendarctrl}} -\twocolitem{\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}}{Used to calculate window layout} -\twocolitem{\helpref{wxChildFocusEvent}{wxchildfocusevent}}{A child window focus event} -\twocolitem{\helpref{wxClipboardTextEvent}{wxclipboardtextevent}}{A clipboard copy/cut/paste treebook event event} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event} -\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{An event from a variety of standard controls} -\twocolitem{\helpref{wxContextMenuEvent}{wxcontextmenuevent}}{An event generated when the user issues a context menu command} -\twocolitem{\helpref{wxDateEvent}{wxdateevent}}{Used with \helpref{wxDatePickerCtrl}{wxdatepickerctrl}} -\twocolitem{\helpref{wxDialUpEvent}{wxdialupevent}}{Event send by \helpref{wxDialUpManager}{wxdialupmanager}} -\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{A drop files event} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{An erase background event} -\twocolitem{\helpref{wxEvent}{wxevent}}{The event base class} -\twocolitem{\helpref{wxFindDialogEvent}{wxfinddialogevent}}{Event sent by -\helpref{wxFindReplaceDialog}{wxfindreplacedialog}} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{A window focus event} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{A keypress event} -\twocolitem{\helpref{wxIconizeEvent}{wxiconizeevent}}{An iconize/restore event} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{An idle event} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{A dialog initialisation event} -\twocolitem{\helpref{wxJoystickEvent}{wxjoystickevent}}{A joystick event} -\twocolitem{\helpref{wxListEvent}{wxlistevent}}{A list control event} -\twocolitem{\helpref{wxMaximizeEvent}{wxmaximizeevent}}{A maximize event} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event} -\twocolitem{\helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}}{A mouse capture changed event} -\twocolitem{\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}}{A mouse capture lost event} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event} -\twocolitem{\helpref{wxNavigationKeyEvent}{wxnavigationkeyevent}}{An event set by navigation keys such as tab} -\twocolitem{\helpref{wxNotebookEvent}{wxnotebookevent}}{A notebook control event} -\twocolitem{\helpref{wxNotifyEvent}{wxnotifyevent}}{A notification event, which can be vetoed} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event} -\twocolitem{\helpref{wxProcessEvent}{wxprocessevent}}{A process ending event} -\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information} -\twocolitem{\helpref{wxRichTextEvent}{wxrichtextevent}}{A rich text editing event} -\twocolitem{\helpref{wxScrollEvent}{wxscrollevent}}{A scroll event from sliders, stand-alone scrollbars and spin buttons} -\twocolitem{\helpref{wxScrollWinEvent}{wxscrollwinevent}}{A scroll event from scrolled windows} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event} -\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event} -\twocolitem{\helpref{wxSpinEvent}{wxspinevent}}{An event from \helpref{wxSpinButton}{wxspinbutton}} -\twocolitem{\helpref{wxSplitterEvent}{wxsplitterevent}}{An event from \helpref{wxSplitterWindow}{wxsplitterwindow}} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event} -\twocolitem{\helpref{wxTimerEvent}{wxtimerevent}}{A timer expiration event} -\twocolitem{\helpref{wxTreebookEvent}{wxtreebookevent}}{A treebook control event} -\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{A tree control event} -\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{A user interface update event} -\twocolitem{\helpref{wxWindowCreateEvent}{wxwindowcreateevent}}{A window creation event} -\twocolitem{\helpref{wxWindowDestroyEvent}{wxwindowdestroyevent}}{A window destruction event} -\twocolitem{\helpref{wxWizardEvent}{wxwizardevent}}{A wizard event} -\end{twocollist} - -{\large {\bf Validators}} - -\overview{Overview}{validatoroverview} - -These are the window validators, used for filtering and validating -user input. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxValidator}{wxvalidator}}{Base validator class} -\twocolitem{\helpref{wxTextValidator}{wxtextvalidator}}{Text control validator class} -\twocolitem{\helpref{wxGenericValidator}{wxgenericvalidator}}{Generic control validator class} -\end{twocollist} - -{\large {\bf Data structures}} - -These are the data structure classes supported by wxWidgets. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxCmdLineParser}{wxcmdlineparser}}{Command line parser class} -\twocolitem{\helpref{wxDateSpan}{wxdatespan}}{A logical time interval.} -\twocolitem{\helpref{wxDateTime}{wxdatetime}}{A class for date/time manipulations} -\twocolitem{\helpref{wxLongLong}{wxlonglong}}{A portable 64 bit integer type} -\twocolitem{\helpref{wxObject}{wxobject}}{The root class for most wxWidgets classes} -\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths} -\twocolitem{\helpref{wxPoint}{wxpoint}}{Representation of a point} -\twocolitem{\helpref{wxRect}{wxrect}}{A class representing a rectangle} -\twocolitem{\helpref{wxRegEx}{wxregex}}{Regular expression support} -\twocolitem{\helpref{wxRegion}{wxregion}}{A class representing a region} -\twocolitem{\helpref{wxString}{wxstring}}{A string class} -\twocolitem{\helpref{wxStringTokenizer}{wxstringtokenizer}}{A class for interpreting a string as a list of tokens or words} -\twocolitem{\helpref{wxRealPoint}{wxrealpoint}}{Representation of a point using floating point numbers} -\twocolitem{\helpref{wxSize}{wxsize}}{Representation of a size} -\twocolitem{\helpref{wxTimeSpan}{wxtimespan}}{A time interval.} -\twocolitem{\helpref{wxURI}{wxuri}}{Represents a Uniform Resource Identifier} -\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types that may change at run-time} -\end{twocollist} - -{\large {\bf Container classes}} - -\overview{Overview}{wxcontaineroverview} - -These are classes, templates and class macros are used by wxWidgets. Most -of these classes provide a subset or almost complete STL API. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxArray}{wxarray}}{A type-safe dynamic array implementation (macro based)} -\twocolitem{\helpref{wxArrayString}{wxarraystring}}{An efficient container for storing \helpref{wxString}{wxstring} objects} -\twocolitem{\helpref{wxHashMap}{wxhashmap}}{A type-safe hash map implementation (macro based)} -\twocolitem{\helpref{wxHashSet}{wxhashset}}{A type-safe hash set implementation(macro based)} -\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation (deprecated, use wxHashMap)} -\twocolitem{\helpref{wxList}{wxlist}}{A type-safe linked list implementation (macro based)} -\twocolitem{\helpref{wxVector}{wxvector}}{Template base vector implementation identical to std::vector} -\end{twocollist} - -{\large {\bf Smart pointers}} - -wxWidgets provides a few smart pointer class templates. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxObjectDataPtr}{wxobjectdataptr}}{A shared pointer (using intrusive reference counting)} -\twocolitem{\helpref{wxScopedPtr}{wxscopedptrtemplate}}{A scoped pointer} -\twocolitem{\helpref{wxSharedPtr}{wxsharedptr}}{A shared pointer (using non-intrusive reference counting)} -\twocolitem{\helpref{wxWeakRef}{wxweakref}}{A weak reference} -\end{twocollist} - -{\large {\bf Run-time class information system}} - -\overview{Overview}{runtimeclassoverview} - -wxWidgets supports run-time manipulation of class information, and dynamic -creation of objects given class names. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxClassInfo}{wxclassinfo}}{Holds run-time class information} -\twocolitem{\helpref{wxObject}{wxobject}}{Root class for classes with run-time information} -\twocolitem{\helpref{RTTI macros}{rttimacros}}{Macros for manipulating run-time information} -\end{twocollist} - -{\large {\bf Logging features}} - -\overview{Overview}{wxlogoverview} - -wxWidgets provides several classes and functions for message logging. -Please see the \helpref{wxLog overview}{wxlogoverview} for more details. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxLog}{wxlog}}{The base log class} -\twocolitem{\helpref{wxLogStderr}{wxlogstderr}}{Log messages to a C STDIO stream} -\twocolitem{\helpref{wxLogStream}{wxlogstream}}{Log messages to a C++ iostream} -\twocolitem{\helpref{wxLogTextCtrl}{wxlogtextctrl}}{Log messages to a \helpref{wxTextCtrl}{wxtextctrl}} -\twocolitem{\helpref{wxLogWindow}{wxlogwindow}}{Log messages to a log frame} -\twocolitem{\helpref{wxLogGui}{wxloggui}}{Default log target for GUI programs} -\twocolitem{\helpref{wxLogNull}{wxlognull}}{Temporarily suppress message logging} -\twocolitem{\helpref{wxLogChain}{wxlogchain}}{Allows to chain two log targets} -\twocolitem{\helpref{wxLogInterposer}{wxloginterposer}}{Allows to filter the log messages} -\twocolitem{\helpref{wxLogInterposerTemp}{wxloginterposertemp}}{Allows to filter the log messages} -\twocolitem{\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector}}{Allows -to redirect output sent to {\tt cout} to a \helpref{wxTextCtrl}{wxtextctrl}} -\twocolitem{\helpref{Log functions}{logfunctions}}{Error and warning logging functions} -\end{twocollist} - -{\large {\bf Debugging features}} - -\overview{Overview}{debuggingoverview} - -wxWidgets supports some aspects of debugging an application through -classes, functions and macros. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDebugContext}{wxdebugcontext}}{Provides memory-checking facilities} -\twocolitem{\helpref{Debugging macros}{debugmacros}}{Debug macros for assertion and checking} -\twocolitem{\helpref{WXDEBUG\_NEW}{debugnew}}{Use this macro to give further debugging information} -\twocolitem{\helpref{wxDebugReport}{wxdebugreport}}{Base class for creating debug reports in case of a program crash.} -\twocolitem{\helpref{wxDebugReportCompress}{wxdebugreportcompress}}{Class for creating compressed debug reports.} -\twocolitem{\helpref{wxDebugReportUpload}{wxdebugreportupload}}{Class for uploading compressed debug reports via HTTP.} -\twocolitem{\helpref{wxDebugReportPreview}{wxdebugreportpreview}}{Abstract base class for previewing the contents of a debug report.} -\twocolitem{\helpref{wxDebugReportPreviewStd}{wxdebugreportpreviewstd}}{Standard implementation of wxDebugReportPreview.} -\end{twocollist} - -{\large {\bf Networking classes}} - -wxWidgets provides its own classes for socket based networking. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDialUpManager}{wxdialupmanager}}{Provides functions to check the status of network connection and to establish one} -\twocolitem{\helpref{wxIPV4address}{wxipv4address}}{Represents an Internet address} -\twocolitem{\helpref{wxIPaddress}{wxipaddress}}{Represents an Internet address} -\twocolitem{\helpref{wxSocketBase}{wxsocketbase}}{Represents a socket base object} -\twocolitem{\helpref{wxSocketClient}{wxsocketclient}}{Represents a socket client} -\twocolitem{\helpref{wxSocketServer}{wxsocketserver}}{Represents a socket server} -\twocolitem{\helpref{wxSocketEvent}{wxsocketevent}}{A socket event} -\twocolitem{\helpref{wxFTP}{wxftp}}{FTP protocol class} -\twocolitem{\helpref{wxHTTP}{wxhttp}}{HTTP protocol class} -\twocolitem{\helpref{wxURL}{wxurl}}{Represents a Universal Resource Locator} -\end{twocollist} - - -{\large {\bf Interprocess communication}} - -\overview{Overview}{ipcoverview} - -wxWidgets provides simple interprocess communications facilities -based on Windows DDE, but available on most platforms using TCP. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxClient}{wxclient}, \helpref{wxDDEClient}{wxddeclient}}{Represents a client} -\twocolitem{\helpref{wxConnection}{wxconnection}, \helpref{wxDDEConnection}{wxddeconnection}}{Represents the connection between a client and a server} -\twocolitem{\helpref{wxServer}{wxserver}, \helpref{wxDDEServer}{wxddeserver}}{Represents a server} -%\twocolitem{\helpref{wxSocketHandler}{wxsockethandler}}{Represents a socket handler} -\end{twocollist} - -{\large {\bf Document/view framework}} - -\overview{Overview}{docviewoverview} - -wxWidgets supports a document/view framework which provides -housekeeping for a document-centric application. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDocument}{wxdocument}}{Represents a document} -\twocolitem{\helpref{wxView}{wxview}}{Represents a view} -\twocolitem{\helpref{wxDocTemplate}{wxdoctemplate}}{Manages the relationship between a document class and a view class} -\twocolitem{\helpref{wxDocManager}{wxdocmanager}}{Manages the documents and views in an application} -\twocolitem{\helpref{wxDocChildFrame}{wxdocchildframe}}{A child frame for showing a document view} -\twocolitem{\helpref{wxDocParentFrame}{wxdocparentframe}}{A parent frame to contain views} -%\twocolitem{\helpref{wxMDIDocChildFrame}{wxmdidocchildframe}}{An MDI child frame for showing a document view} -%\twocolitem{\helpref{wxMDIDocParentFrame}{wxmdidocparentframe}}{An MDI parent frame to contain views} -\end{twocollist} - -{\large {\bf Printing framework}} - -\overview{Overview}{printingoverview} - -A printing and previewing framework is implemented to -make it relatively straightforward to provide document printing -facilities. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxPreviewFrame}{wxpreviewframe}}{Frame for displaying a print preview} -\twocolitem{\helpref{wxPreviewCanvas}{wxpreviewcanvas}}{Canvas for displaying a print preview} -\twocolitem{\helpref{wxPreviewControlBar}{wxpreviewcontrolbar}}{Standard control bar for a print preview} -\twocolitem{\helpref{wxPrintDialog}{wxprintdialog}}{Standard print dialog} -\twocolitem{\helpref{wxPageSetupDialog}{wxpagesetupdialog}}{Standard page setup dialog} -\twocolitem{\helpref{wxPrinter}{wxprinter}}{Class representing the printer} -\twocolitem{\helpref{wxPrinterDC}{wxprinterdc}}{Printer device context} -\twocolitem{\helpref{wxPrintout}{wxprintout}}{Class representing a particular printout} -\twocolitem{\helpref{wxPrintPreview}{wxprintpreview}}{Class representing a print preview} -\twocolitem{\helpref{wxPrintData}{wxprintdata}}{Represents information about the document being printed} -\twocolitem{\helpref{wxPrintDialogData}{wxprintdialogdata}}{Represents information about the print dialog} -\twocolitem{\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}}{Represents information about the page setup dialog} -\end{twocollist} - -{\large {\bf Drag and drop and clipboard classes}} - -\overview{Drag and drop and clipboard overview}{wxdndoverview} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxDataObject}{wxdataobject}}{Data object class} -\twocolitem{\helpref{wxDataFormat}{wxdataformat}}{Represents a data format} -\twocolitem{\helpref{wxTextDataObject}{wxtextdataobject}}{Text data object class} -\twocolitem{\helpref{wxFileDataObject}{wxfiledataobject}}{File data object class} -\twocolitem{\helpref{wxBitmapDataObject}{wxbitmapdataobject}}{Bitmap data object class} -\twocolitem{\helpref{wxURLDataObject}{wxurldataobject}}{URL data object class} -\twocolitem{\helpref{wxCustomDataObject}{wxcustomdataobject}}{Custom data object class} -\twocolitem{\helpref{wxClipboard}{wxclipboard}}{Clipboard class} -\twocolitem{\helpref{wxDropTarget}{wxdroptarget}}{Drop target class} -\twocolitem{\helpref{wxFileDropTarget}{wxfiledroptarget}}{File drop target class} -\twocolitem{\helpref{wxTextDropTarget}{wxtextdroptarget}}{Text drop target class} -\twocolitem{\helpref{wxDropSource}{wxdropsource}}{Drop source class} -\end{twocollist} - -{\large {\bf File related classes}} - -wxWidgets has several small classes to work with disk files, see \helpref{file classes -overview}{wxfileoverview} for more details. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxFileName}{wxfilename}}{Operations with the file name and attributes} -\twocolitem{\helpref{wxDir}{wxdir}}{Class for enumerating files/subdirectories.} -\twocolitem{\helpref{wxDirTraverser}{wxdirtraverser}}{Class used together with wxDir for recursively enumerating the files/subdirectories} -\twocolitem{\helpref{wxFile}{wxfile}}{Low-level file input/output class.} -\twocolitem{\helpref{wxFFile}{wxffile}}{Another low-level file input/output class.} -\twocolitem{\helpref{wxTempFile}{wxtempfile}}{Class to safely replace an existing file} -\twocolitem{\helpref{wxTextFile}{wxtextfile}}{Class for working with text files as with arrays of lines} -\twocolitem{\helpref{wxStandardPaths}{wxstandardpaths}}{Paths for standard directories} -\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths} -\end{twocollist} - -{\large {\bf Stream classes}} - -wxWidgets has its own set of stream classes, as an alternative to often buggy standard stream -libraries, and to provide enhanced functionality. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxStreamBase}{wxstreambase}}{Stream base class} -\twocolitem{\helpref{wxStreamBuffer}{wxstreambuffer}}{Stream buffer class} -\twocolitem{\helpref{wxInputStream}{wxinputstream}}{Input stream class} -\twocolitem{\helpref{wxOutputStream}{wxoutputstream}}{Output stream class} -\twocolitem{\helpref{wxCountingOutputStream}{wxcountingoutputstream}}{Stream class for querying what size a stream would have.} -\twocolitem{\helpref{wxFilterInputStream}{wxfilterinputstream}}{Filtered input stream class} -\twocolitem{\helpref{wxFilterOutputStream}{wxfilteroutputstream}}{Filtered output stream class} -\twocolitem{\helpref{wxBufferedInputStream}{wxbufferedinputstream}}{Buffered input stream class} -\twocolitem{\helpref{wxBufferedOutputStream}{wxbufferedoutputstream}}{Buffered output stream class} -\twocolitem{\helpref{wxMemoryInputStream}{wxmeminputstream}}{Memory input stream class} -\twocolitem{\helpref{wxMemoryOutputStream}{wxmemoutputstream}}{Memory output stream class} -\twocolitem{\helpref{wxDataInputStream}{wxdatainputstream}}{Platform-independent binary data input stream class} -\twocolitem{\helpref{wxDataOutputStream}{wxdataoutputstream}}{Platform-independent binary data output stream class} -\twocolitem{\helpref{wxTextInputStream}{wxtextinputstream}}{Platform-independent text data input stream class} -\twocolitem{\helpref{wxTextOutputStream}{wxtextoutputstream}}{Platform-independent text data output stream class} -\twocolitem{\helpref{wxFileInputStream}{wxfileinputstream}}{File input stream class} -\twocolitem{\helpref{wxFileOutputStream}{wxfileoutputstream}}{File output stream class} -\twocolitem{\helpref{wxFFileInputStream}{wxffileinputstream}}{Another file input stream class} -\twocolitem{\helpref{wxFFileOutputStream}{wxffileoutputstream}}{Another file output stream class} -\twocolitem{\helpref{wxTempFileOutputStream}{wxtempfileoutputstream}}{Stream to safely replace an existing file} -\twocolitem{\helpref{wxStringInputStream}{wxstringinputstream}}{String input stream class} -\twocolitem{\helpref{wxStringOutputStream}{wxstringoutputstream}}{String output stream class} -\twocolitem{\helpref{wxZlibInputStream}{wxzlibinputstream}}{Zlib and gzip (compression) input stream class} -\twocolitem{\helpref{wxZlibOutputStream}{wxzliboutputstream}}{Zlib and gzip (compression) output stream class} -\twocolitem{\helpref{wxZipInputStream}{wxzipinputstream}}{Input stream for reading from ZIP archives} -\twocolitem{\helpref{wxZipOutputStream}{wxzipoutputstream}}{Output stream for writing from ZIP archives} -\twocolitem{\helpref{wxTarInputStream}{wxtarinputstream}}{Input stream for reading from tar archives} -\twocolitem{\helpref{wxTarOutputStream}{wxtaroutputstream}}{Output stream for writing from tar archives} -\twocolitem{\helpref{wxSocketInputStream}{wxsocketinputstream}}{Socket input stream class} -\twocolitem{\helpref{wxSocketOutputStream}{wxsocketoutputstream}}{Socket output stream class} -\end{twocollist} - -{\large {\bf Threading classes}} - -\overview{Multithreading overview}{wxthreadoverview} - -wxWidgets provides a set of classes to make use of the native thread -capabilities of the various platforms. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxThread}{wxthread}}{Thread class} -\twocolitem{\helpref{wxThreadHelper}{wxthreadhelper}}{Manages background threads easily} -\twocolitem{\helpref{wxMutex}{wxmutex}}{Mutex class} -\twocolitem{\helpref{wxMutexLocker}{wxmutexlocker}}{Mutex locker utility class} -\twocolitem{\helpref{wxCriticalSection}{wxcriticalsection}}{Critical section class} -\twocolitem{\helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker}}{Critical section locker utility class} -\twocolitem{\helpref{wxCondition}{wxcondition}}{Condition class} -\twocolitem{\helpref{wxSemaphore}{wxsemaphore}}{Semaphore class} -\end{twocollist} - -{\large {\bf HTML classes}} - -wxWidgets provides a set of classes to display text in HTML format. These -class include a help system based on the HTML widget. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}}{HTML help controller class} -\twocolitem{\helpref{wxHtmlWindow}{wxhtmlwindow}}{HTML window class} -\twocolitem{\helpref{wxHtmlEasyPrinting}{wxhtmleasyprinting}}{Simple class for printing HTML} -\twocolitem{\helpref{wxHtmlPrintout}{wxhtmlprintout}}{Generic HTML wxPrintout class} -\twocolitem{\helpref{wxHtmlParser}{wxhtmlparser}}{Generic HTML parser class} -\twocolitem{\helpref{wxHtmlTagHandler}{wxhtmltaghandler}}{HTML tag handler, pluginable into wxHtmlParser} -\twocolitem{\helpref{wxHtmlWinParser}{wxhtmlwinparser}}{HTML parser class for wxHtmlWindow} -\twocolitem{\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}}{HTML tag handler, pluginable into wxHtmlWinParser} -\end{twocollist} - -{\large {\bf Rich text classes}} - -wxWidgets provides a set of generic classes to edit and print simple rich text with character -and paragraph formatting. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxTextAttr}{wxtextattr}}{Attributes specifying text styling.} -\twocolitem{\helpref{wxRichTextCtrl}{wxrichtextctrl}}{A rich text control.} -\twocolitem{\helpref{wxRichTextBuffer}{wxrichtextbuffer}}{The content of a rich text control.} -\twocolitem{\helpref{wxRichTextCharacterStyleDefinition}{wxrichtextcharacterstyledefinition}}{Definition of character styling.} -\twocolitem{\helpref{wxRichTextParagraphStyleDefinition}{wxrichtextparagraphstyledefinition}}{Definition of paragraph styling.} -\twocolitem{\helpref{wxRichTextListStyleDefinition}{wxrichtextliststyledefinition}}{Definition of list styling.} -\twocolitem{\helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}}{A set of style definitions.} -\twocolitem{\helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}}{A drop-down control for applying styles.} -\twocolitem{\helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox}}{A listbox for applying styles.} -\twocolitem{\helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog}}{A dialog that can be used for managing or browsing styles.} -\twocolitem{\helpref{wxRichTextEvent}{wxrichtextevent}}{A rich text event.} -\twocolitem{\helpref{wxRichTextRange}{wxrichtextrange}}{Specification for ranges in a rich text control or buffer.} -\twocolitem{\helpref{wxRichTextFileHandler}{wxrichtextfilehandler}}{File handler base class.} -\twocolitem{\helpref{wxRichTextHTMLHandler}{wxrichtexthtmlhandler}}{A handler for converting rich text to HTML.} -\twocolitem{\helpref{wxRichTextXMLHandler}{wxrichtextxmlhandler}}{A handler for loading and saving rich text XML.} -\twocolitem{\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}}{A dialog for rich text formatting.} -\twocolitem{\helpref{wxRichTextPrinting}{wxrichtextprinting}}{A class for easy printing of rich text buffers.} -\twocolitem{\helpref{wxRichTextPrintout}{wxrichtextprintout}}{A class used by wxRichTextPrinting.} -\twocolitem{\helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata}}{Header and footer data specification.} -\end{twocollist} - -{\large {\bf Scintilla text editor classes}} - -wxWidgets also provides a wrapper around the Scintilla text editor control, which is -a control for plain-text editing with support for highlighting, smart indentation, etc. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxStyledTextCtrl}{wxstyledtextctrl}}{A wxWidgets implementation of the Scintilla source code editing component.} -\end{twocollist} - -{\large {\bf Virtual file system classes}} - -wxWidgets provides a set of classes that implement an extensible virtual file system, -used internally by the HTML classes. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxFSFile}{wxfsfile}}{Represents a file in the virtual file system} -\twocolitem{\helpref{wxFileSystem}{wxfilesystem}}{Main interface for the virtual file system} -\twocolitem{\helpref{wxFileSystemHandler}{wxfilesystemhandler}}{Class used to announce file system type} -\end{twocollist} - -{\large {\bf XML classes}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxXmlDocument}{wxxmldocument}}{A class to parse XML files} -\twocolitem{\helpref{wxXmlNode}{wxxmlnode}}{A class which represents XML nodes} -\twocolitem{\helpref{wxXmlAttribute}{wxxmlattribute}}{A class which represent an XML attribute} -\end{twocollist} - -{\large {\bf XML-based resource system classes}} - -\overview{XML-based resource system (XRC) overview}{xrcoverview} - -Resources allow your application to create controls and other user interface elements -from specifications stored in an XML format. - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxXmlResource}{wxxmlresource}}{The main class for working with resources} -\twocolitem{\helpref{wxXmlResourceHandler}{wxxmlresourcehandler}}{The base class for XML resource handlers} -\end{twocollist} - -{\large {\bf Online help}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxHelpController}{wxhelpcontroller}}{Family of classes for controlling help windows} -\twocolitem{\helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}}{HTML help controller class} -\twocolitem{\helpref{wxContextHelp}{wxcontexthelp}}{Class to put application into context-sensitive help mode} -\twocolitem{\helpref{wxContextHelpButton}{wxcontexthelpbutton}}{Button class for putting application into context-sensitive help mode} -\twocolitem{\helpref{wxHelpProvider}{wxhelpprovider}}{Abstract class for context-sensitive help provision} -\twocolitem{\helpref{wxSimpleHelpProvider}{wxsimplehelpprovider}}{Class for simple context-sensitive help provision} -\twocolitem{\helpref{wxHelpControllerHelpProvider}{wxhelpcontrollerhelpprovider}}{Class for context-sensitive help provision via a help controller} -\twocolitem{\helpref{wxToolTip}{wxtooltip}}{Class implementing tooltips} -\end{twocollist} - -{\large {\bf Multimedia classes}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxMediaCtrl}{wxmediactrl}}{Display multimedia contents.} -\end{twocollist} - -{\large {\bf OpenGL classes}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxGLCanvas}{wxglcanvas}}{Canvas that you can render OpenGL calls to.} -\twocolitem{\helpref{wxGLContext}{wxglcontext}}{Class to ease sharing of OpenGL data resources.} -\end{twocollist} - -{\large {\bf Application and process-management classes}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxApp}{wxapp}}{Application class} -\twocolitem{\helpref{wxCmdLineParser}{wxcmdlineparser}}{Command line parser class} -\twocolitem{\helpref{wxDllLoader}{wxdllloader}}{Class to work with shared libraries.} -\twocolitem{\helpref{wxProcess}{wxprocess}}{Process class} -\end{twocollist} - -{\large {\bf Miscellaneous}} - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxCaret}{wxcaret}}{A caret (cursor) object} -\twocolitem{\helpref{wxConfig}{wxconfigbase}}{Classes for configuration reading/writing (using either INI files or registry)} -\twocolitem{\helpref{wxTimer}{wxtimer}}{Timer class} -\twocolitem{\helpref{wxStopWatch}{wxstopwatch}}{Stop watch class} -\twocolitem{\helpref{wxMimeTypesManager}{wxmimetypesmanager}}{MIME-types manager class} -\twocolitem{\helpref{wxSystemSettings}{wxsystemsettings}}{System settings class for obtaining various global parameters} -\twocolitem{\helpref{wxSystemOptions}{wxsystemoptions}}{System options class for run-time configuration} -\twocolitem{\helpref{wxAcceleratorTable}{wxacceleratortable}}{Accelerator table} -\twocolitem{\helpref{wxAutomationObject}{wxautomationobject}}{OLE automation class} -\twocolitem{\helpref{wxFontMapper}{wxfontmapper}}{Font mapping, finding suitable font for given encoding} -\twocolitem{\helpref{wxEncodingConverter}{wxencodingconverter}}{Encoding conversions} -\twocolitem{\helpref{wxCalendarDateAttr}{wxcalendardateattr}}{Used with \helpref{wxCalendarCtrl}{wxcalendarctrl}} -\twocolitem{\helpref{wxQuantize}{wxquantize}}{Class to perform quantization, or colour reduction} -\twocolitem{\helpref{wxSingleInstanceChecker}{wxsingleinstancechecker}}{Check that only single program instance is running} -\end{twocollist} diff --git a/docs/latex/wx/checkbox.tex b/docs/latex/wx/checkbox.tex deleted file mode 100644 index 9859e61809..0000000000 --- a/docs/latex/wx/checkbox.tex +++ /dev/null @@ -1,175 +0,0 @@ -\section{\class{wxCheckBox}}\label{wxcheckbox} - -A checkbox is a labelled box which by default is either on (checkmark is -visible) or off (no checkmark). Optionally (when the wxCHK\_3STATE style flag -is set) it can have a third state, called the mixed or undetermined state. -Often this is used as a "Does Not Apply" state. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCHK\_2STATE}}{Create a 2-state checkbox. This is the default.} -\twocolitem{\windowstyle{wxCHK\_3STATE}}{Create a 3-state checkbox. -Not implemented in wxMGL, wxOS2 and wxGTK built against GTK+ 1.2.} -\twocolitem{\windowstyle{wxCHK\_ALLOW\_3RD\_STATE\_FOR\_USER}}{By default a user can't set a 3-state checkbox -to the third state. It can only be done from code. Using this flags allows the user to set the checkbox to the third state by clicking. } -\twocolitem{\windowstyle{wxALIGN\_RIGHT}}{Makes the text appear on the left of the checkbox.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED event, -when the checkbox is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxRadioButton}{wxradiobutton}, \helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCheckBox::wxCheckBox}\label{wxcheckboxctor} - -\func{}{wxCheckBox}{\void} - -Default constructor. - -\func{}{wxCheckBox}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Constructor, creating and showing a checkbox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Checkbox identifier. A value of -1 indicates a default value.} - -\docparam{label}{Text to be displayed next to the checkbox.} - -\docparam{pos}{Checkbox position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Checkbox size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxCheckBox}{wxcheckbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxCheckBox::Create}{wxcheckboxcreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxCheckBox::\destruct{wxCheckBox}}\label{wxcheckboxdtor} - -\func{}{\destruct{wxCheckBox}}{\void} - -Destructor, destroying the checkbox. - -\membersection{wxCheckBox::Create}\label{wxcheckboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Creates the checkbox for two-step construction. See \helpref{wxCheckBox::wxCheckBox}{wxcheckboxctor}\rtfsp -for details. - -\membersection{wxCheckBox::GetValue}\label{wxcheckboxgetvalue} - -\constfunc{bool}{GetValue}{\void} - -Gets the state of a 2-state checkbox. - -\wxheading{Return value} - -Returns \true if it is checked, \false otherwise. - -\membersection{wxCheckBox::Get3StateValue}\label{wxcheckboxgetthreestatevalue} - -\constfunc{wxCheckBoxState}{Get3StateValue}{\void} - -Gets the state of a 3-state checkbox. - -\wxheading{Return value} - -Returns wxCHK\_UNCHECKED when the checkbox is unchecked, wxCHK\_CHECKED - when it is checked and wxCHK\_UNDETERMINED when it's in the undetermined -state. Asserts when the function is used with a 2-state checkbox. - -\membersection{wxCheckBox::Is3rdStateAllowedForUser}\label{wxcheckboxis3rdstateallowedforuser} - -\constfunc{bool}{Is3rdStateAllowedForUser}{\void} - -Returns whether or not the user can set the checkbox to the third state. - -\wxheading{Return value} - -Returns \true if the user can set the third state of this checkbox, \false if it can only be set -programmatically or if it's a 2-state checkbox. - -\membersection{wxCheckBox::Is3State}\label{wxcheckboxis3state} - -\constfunc{bool}{Is3State}{\void} - -Returns whether or not the checkbox is a 3-state checkbox. - -\wxheading{Return value} - -Returns \true if this checkbox is a 3-state checkbox, \false if it's a 2-state checkbox. - -\membersection{wxCheckBox::IsChecked}\label{wxcheckboxischecked} - -\constfunc{bool}{IsChecked}{\void} - -This is just a maybe more readable synonym for -\helpref{GetValue}{wxcheckboxgetvalue}: just as the latter, it returns -\true if the checkbox is checked and \false otherwise. - -\membersection{wxCheckBox::SetValue}\label{wxcheckboxsetvalue} - -\func{void}{SetValue}{\param{bool}{ state}} - -Sets the checkbox to the given state. This does not cause a -wxEVT\_COMMAND\_CHECKBOX\_CLICKED event to get emitted. - -\wxheading{Parameters} - -\docparam{state}{If \true, the check is on, otherwise it is off.} - -\membersection{wxCheckBox::Set3StateValue}\label{wxcheckboxset3statevalue} - -\func{void}{Set3StateValue}{\param{const wxCheckBoxState}{ state}} - -Sets the checkbox to the given state. This does not cause a -wxEVT\_COMMAND\_CHECKBOX\_CLICKED event to get emitted. - -\wxheading{Parameters} - -\docparam{state}{Can be one of: wxCHK\_UNCHECKED (Check is off), wxCHK\_CHECKED - (Check is on) or wxCHK\_UNDETERMINED (Check is mixed). Asserts when the checkbox - is a 2-state checkbox and setting the state to wxCHK\_UNDETERMINED.} diff --git a/docs/latex/wx/checklst.tex b/docs/latex/wx/checklst.tex deleted file mode 100644 index dae20cfdd2..0000000000 --- a/docs/latex/wx/checklst.tex +++ /dev/null @@ -1,132 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: checklst.tex -%% Purpose: wxCheckListBox documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCheckListBox}}\label{wxchecklistbox} - -A checklistbox is like a listbox, but allows items to be checked or unchecked. - -When using this class under Windows wxWidgets must be compiled with USE\_OWNER\_DRAWN set to 1. - -Only the new functions for this class are documented; see also \helpref{wxListBox}{wxlistbox}. - -Please note that wxCheckListBox uses client data in its implementation, -and therefore this is not available to the application. - -\wxheading{Derived from} - -\helpref{wxListBox}{wxlistbox}\\ -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -See \helpref{wxListBox}{wxlistbox}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHECKLISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKLISTBOX\_TOGGLED event, -when an item in the check list box is checked or unchecked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCheckListBox::wxCheckListBox}\label{wxchecklistboxctor} - -\func{}{wxCheckListBox}{\void} - -Default constructor. - -\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -\func{}{wxCheckListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Constructor, creating and showing a list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxCheckListBox}{wxchecklistbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\pythonnote{The wxCheckListBox constructor in wxPython reduces the {\tt n} -and {\tt choices} arguments are to a single argument, which is -a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - -\membersection{wxCheckListBox::\destruct{wxCheckListBox}}\label{wxchecklistboxdtor} - -\func{void}{\destruct{wxCheckListBox}}{\void} - -Destructor, destroying the list box. - -\membersection{wxCheckListBox::Check}\label{wxchecklistboxcheck} - -\func{void}{Check}{\param{int }{item}, \param{bool}{ check = true}} - -Checks the given item. Note that calling this method doesn't result in -wxEVT\_COMMAND\_CHECKLISTBOX\_TOGGLE being emitted. - -\wxheading{Parameters} - -\docparam{item}{Index of item to check.} - -\docparam{check}{true if the item is to be checked, false otherwise.} - -\membersection{wxCheckListBox::IsChecked}\label{wxchecklistboxischecked} - -\constfunc{bool}{IsChecked}{\param{unsigned int}{ item}} - -Returns true if the given item is checked, false otherwise. - -\wxheading{Parameters} - -\docparam{item}{Index of item whose check status is to be returned.} diff --git a/docs/latex/wx/chfocevt.tex b/docs/latex/wx/chfocevt.tex deleted file mode 100644 index df21e45fd2..0000000000 --- a/docs/latex/wx/chfocevt.tex +++ /dev/null @@ -1,57 +0,0 @@ -\section{\class{wxChildFocusEvent}}\label{wxchildfocusevent} - -A child focus event is sent to a (parent-)window when one of its child windows gains focus, -so that the window could restore the focus back to its corresponding child -if it loses it now and regains later. - -Notice that child window is the direct child of the window receiving event. -Use \helpref{FindFocus}{wxwindowfindfocus} to retreive the window which is actually getting focus. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a child focus event, use this event handler macro to direct input to a member -function that takes a wxChildFocusEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHILD\_FOCUS(func)}}{Process a wxEVT\_CHILD\_FOCUS event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxChildFocusEvent::wxChildFocusEvent}\label{wxchildfocuseventctor} - -\func{}{wxChildFocusEvent}{\param{wxWindow *}{win = NULL}} - -Constructor. - -\wxheading{Parameters} - -\docparam{win}{The direct child which is (or which contains the window which is) receiving the focus.} - - -\membersection{wxChildFocusEvent::GetWindow}\label{wxchildfocuseventgetwindow} - -Returns the direct child which receives the focus, or a (grand-)parent of the control receiving the focus. - -To get the actually focused control use \helpref{wxWindow::FindFocus}{wxwindowfindfocus}. - diff --git a/docs/latex/wx/choice.tex b/docs/latex/wx/choice.tex deleted file mode 100644 index ba7a6f9820..0000000000 --- a/docs/latex/wx/choice.tex +++ /dev/null @@ -1,175 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: treectrl.tex -%% Purpose: wxChoice documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxChoice}}\label{wxchoice} - -A choice item is used to select one of a list of strings. Unlike a -listbox, only the selection is visible until the user pulls down the -menu of choices. - -\wxheading{Derived from} - -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries alphabetically.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED event, -when an item on the list is selected.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxComboBox}{wxcombobox}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxChoice::wxChoice}\label{wxchoicector} - -\func{}{wxChoice}{\void} - -Default constructor. - -\func{}{wxChoice}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}} - -\func{}{wxChoice}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}} - -Constructor, creating and showing a choice. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the choice is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the choice control.} - -\docparam{choices}{An array of strings with which to initialise the choice control.} - -\docparam{style}{Window style. See \helpref{wxChoice}{wxchoice}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxChoice::Create}{wxchoicecreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxChoice constructor in wxPython reduces the {\tt n} -and {\tt choices} arguments are to a single argument, which is -a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - - -\membersection{wxChoice::\destruct{wxChoice}}\label{wxchoicedtor} - -\func{}{\destruct{wxChoice}}{\void} - -Destructor, destroying the choice item. - - -\membersection{wxChoice::Create}\label{wxchoicecreate} - -\func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``choice"}} - -\func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``choice"}} - -Creates the choice for two-step construction. See \helpref{wxChoice::wxChoice}{wxchoicector}. - - -\membersection{wxChoice::GetColumns}\label{wxchoicegetcolumns} - -\constfunc{int}{GetColumns}{\void} - -Gets the number of columns in this choice item. - -\wxheading{Remarks} - -This is implemented for Motif only and always returns $1$ for the other -platforms. - - -\membersection{wxChoice::GetCurrentSelection}\label{wxchoicegetcurrentselection} - -\constfunc{int}{GetCurrentSelection}{\void} - -Unlike \helpref{GetSelection}{wxcontrolwithitemsgetselection} which only -returns the accepted selection value, i.e. the selection in the control once -the user closes the dropdown list, this function returns the current selection. -That is, while the dropdown list is shown, it returns the currently selected -item in it. When it is not shown, its result is the same as for the other -function. - -\newsince{2.6.2} (before this version -\helpref{GetSelection}{wxcontrolwithitemsgetselection} itself behaved like -this). - - -\membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns} - -\func{void}{SetColumns}{\param{int}{ n = 1}} - -Sets the number of columns in this choice item. - -\wxheading{Parameters} - -\docparam{n}{Number of columns.} - -\wxheading{Remarks} - -This is implemented for Motif only and doesn't do anything under other -platforms. - diff --git a/docs/latex/wx/choicebevt.inc b/docs/latex/wx/choicebevt.inc deleted file mode 100644 index ad9c344143..0000000000 --- a/docs/latex/wx/choicebevt.inc +++ /dev/null @@ -1,13 +0,0 @@ -\wxheading{Event handling} - -To process input from a listbook control, use the following event handler macros to direct input to member -functions that take a wxChoicebookEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CHOICEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a -wxEVT\_COMMAND\_LISTBOOK\_PAGE\_CHANGED event.} -\twocolitem{{\bf EVT\_CHOICEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. -Processes a wxEVT\_COMMAND\_CHOICEBOOK\_PAGE\_CHANGING event. This event can be \helpref{vetoed}{wxnotifyeventveto}.} -\end{twocollist} - diff --git a/docs/latex/wx/choicebk.tex b/docs/latex/wx/choicebk.tex deleted file mode 100644 index dc5b7f6df7..0000000000 --- a/docs/latex/wx/choicebk.tex +++ /dev/null @@ -1,81 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: choicebk.tex -%% Purpose: wxChoicebook documentation -%% Author: Vadim Zeitlin -%% Modified by: Wlodzimierz ABX Skiba from listbook.tex -%% Created: 15.09.04 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin, Wlodzimierz Skiba -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxChoicebook}}\label{wxchoicebook} - -wxChoicebook is a class similar to \helpref{wxNotebook}{wxnotebook} but which -uses a \helpref{wxChoice}{wxchoice} to show the labels instead of the -tabs. - -There is no documentation for this class yet but its usage is -identical to wxNotebook (except for the features clearly related to tabs -only), so please refer to that class documentation for now. You can also -use the \helpref{notebook sample}{samplenotebook} to see wxChoicebook in action. - -wxChoicebook allows the use of wxBookCtrl::GetControlSizer, allowing a program -to add other controls next to the choice control. This is particularly useful -when screen space is restricted, as it often is when wxChoicebook is being employed. - -\wxheading{Derived from} - -wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt - -\twocolitem{\windowstyle{wxCHB\_DEFAULT}}{Choose the default location for the -labels depending on the current platform (left everywhere except Mac where -it is top).} -\twocolitem{\windowstyle{wxCHB\_TOP}}{Place labels above the page area.} -\twocolitem{\windowstyle{wxCHB\_LEFT}}{Place labels on the left side.} -\twocolitem{\windowstyle{wxCHB\_RIGHT}}{Place labels on the right side.} -\twocolitem{\windowstyle{wxCHB\_BOTTOM}}{Place labels below the page area.} - -\end{twocollist} - -\input choicebevt.inc - -\wxheading{See also} - -\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebook}{wxnotebook}, \helpref{notebook sample}{samplenotebook} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxChoicebook::wxChoicebook}\label{wxchoicebookctor} - -\func{}{wxChoicebook}{\void} - -Default constructor. - -\func{}{wxChoicebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxEmptyStr}} - -Constructs a choicebook control. - -\membersection{wxChoicebook::GetChoiceCtrl}\label{wxchoicebookgetchoicectrl} - -\constfunc{wxChoice *}{GetChoiceCtrl}{\void} - -Returns the \helpref{wxChoice}{wxchoice} associated with the control. diff --git a/docs/latex/wx/clasinfo.tex b/docs/latex/wx/clasinfo.tex deleted file mode 100644 index bf9a4aef4d..0000000000 --- a/docs/latex/wx/clasinfo.tex +++ /dev/null @@ -1,89 +0,0 @@ -\section{\class{wxClassInfo}}\label{wxclassinfo} - -This class stores meta-information about classes. Instances of this class are -not generally defined directly by an application, but indirectly through use -of macros such as {\bf DECLARE\_DYNAMIC\_CLASS} and {\bf IMPLEMENT\_DYNAMIC\_CLASS}. - -\wxheading{Derived from} - -No parent class. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Overview}{wxclassinfooverview}, \helpref{wxObject}{wxobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClassInfo::wxClassInfo}\label{wxclassinfoctor} - -\func{}{wxClassInfo}{\param{const wxChar * }{className}, \param{const wxClassInfo * }{baseClass1}, \param{const wxClassInfo * }{baseClass2}, - \param{int}{ size}, \param{wxObjectConstructorFn }{fn}} - -Constructs a wxClassInfo object. The supplied macros implicitly construct objects of this -class, so there is no need to create such objects explicitly in an application. - -\membersection{wxClassInfo::CreateObject}\label{wxclassinfocreateobject} - -\constfunc{wxObject*}{CreateObject}{\void} - -Creates an object of the appropriate kind. Returns NULL if the class has not been declared -dynamically creatable (typically, it is an abstract class). - -\membersection{wxClassInfo::FindClass}\label{wxclassinfofindclass} - -\func{static wxClassInfo *}{FindClass}{\param{wxChar * }{name}} - -Finds the wxClassInfo object for a class of the given string name. - -\membersection{wxClassInfo::GetBaseClassName1}\label{wxclassinfogetbaseclassname1} - -\constfunc{wxChar *}{GetBaseClassName1}{\void} - -Returns the name of the first base class (NULL if none). - -\membersection{wxClassInfo::GetBaseClassName2}\label{wxclassinfogetbaseclassname2} - -\constfunc{wxChar *}{GetBaseClassName2}{\void} - -Returns the name of the second base class (NULL if none). - -\membersection{wxClassInfo::GetClassName}\label{wxclassinfogetclassname} - -\constfunc{wxChar *}{GetClassName}{\void} - -Returns the string form of the class name. - -\membersection{wxClassInfo::GetSize}\label{wxclassinfogetsize} - -\constfunc{int}{GetSize}{\void} - -Returns the size of the class. - -\membersection{wxClassInfo::InitializeClasses}\label{wxclassinfoinitializeclasses} - -\func{static void}{InitializeClasses}{\void} - -Initializes pointers in the wxClassInfo objects for fast execution -of IsKindOf. Called in base wxWidgets library initialization. - -\membersection{wxClassInfo::IsDynamic}\label{wxclassinfoisdynamic} - -\constfunc{bool}{IsDynamic}{\void} - -Returns true if this class info can create objects of the associated class. - -\membersection{wxClassInfo::IsKindOf}\label{wxclassinfoiskindof} - -\func{bool}{IsKindOf}{\param{wxClassInfo* }{info}} - -Returns true if this class is a kind of (inherits from) the given class. - - diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex deleted file mode 100644 index 16c1528616..0000000000 --- a/docs/latex/wx/classes.tex +++ /dev/null @@ -1,483 +0,0 @@ -\chapter{Alphabetical class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -% NB: the files should be in alphabetic order of the classes documented in -% them and *not* in alphabetic order of the file names! - -\input aboutdlginfo.tex -\input accel.tex -\input accessible.tex -\input activevt.tex -\input activexcontainer.tex -\input activexevt.tex -\input animation.tex -\input animatctrl.tex -\input app.tex -\input apptraits.tex -\input archive.tex -\input array.tex -\input arrstrng.tex -\input artprov.tex -\input auidockart.tex -\input auitabart.tex -\input auimanager.tex -\input auinotebook.tex -\input auipaneinfo.tex -\input autoobj.tex -\input bitmap.tex -\input bitmapcombobox.tex -\input bitmaptglbutn.tex -\input bbutton.tex -\input bmpdatob.tex -\input bmphand.tex -\input boxsizer.tex -\input brush.tex -\input bufferdc.tex -\input strmbfrd.tex -\input busycurs.tex -\input busyinfo.tex -\input button.tex -\input calclevt.tex -\input calctrl.tex -\input caret.tex -\input checkbox.tex -\input checklst.tex -\input choice.tex -\input choicebk.tex -\input clasinfo.tex -\input ipcclint.tex -\input clientdc.tex -\input clientdat.tex -\input clipbrd.tex -\input clipevent.tex -\input closeevt.tex -\input cmdlpars.tex -\input collpane.tex -\input colour.tex -\input colordlg.tex -\input clrpicker.tex -\input combobox.tex -\input comboctrl.tex -\input combopopup.tex -\input command.tex -\input cmdevent.tex -\input cmdproc.tex -\input conditn.tex -\input config.tex -\input ipcconn.tex -\input chfocevt.tex -\input cntxtevt.tex -\input cshelp.tex -\input control.tex -\input ctrlsub.tex -\input convauto.tex -\input countstr.tex -\input critsect.tex -\input crtslock.tex -\input csconv.tex -\input cursor.tex -\input custdobj.tex -\input dataform.tex -\input dgramsocket.tex -\input datistrm.tex -\input dataobj.tex -\input dataviewcolumn.tex -\input dataviewctrl.tex -\input dataviewevent.tex -\input dataviewmodelnotifier.tex -\input dataviewmodel.tex -\input dataviewindexlistmodel.tex -\input dataviewitem.tex -\input dataviewitemattr.tex -\input dataviewrenderer.tex -\input dataviewtreectrl.tex -\input dataviewtreestore.tex -\input dobjcomp.tex -\input dobjsmpl.tex -\input datostrm.tex -\input dateevt.tex -\input datectrl.tex -\input datespan.tex -\input datetime.tex -\input dc.tex -\input dcclipper.tex -\input ddeclint.tex -\input ddeconn.tex -\input ddeservr.tex -\input debugcxt.tex -\input debugrpt.tex -\input debugrptz.tex -\input debugrptpvw.tex -\input debugrptpvwstd.tex -\input debugrptup.tex -\input delgrend.tex -\input dialog.tex -\input dialoglayoutadapter.tex -\input dialevt.tex -\input dialup.tex -\input dir.tex -\input dirdlg.tex -\input dirpicker.tex -\input dirtrav.tex -\input display.tex -\input dllload.tex -\input docchfrm.tex -\input docmanag.tex -\input docmdich.tex -\input docmdipr.tex -\input docprfrm.tex -\input doctempl.tex -\input document.tex -\input dragimag.tex -\input dropevt.tex -\input dropsrc.tex -\input droptrgt.tex -\input dynlib.tex -\input editlistbox.tex -\input encconv.tex -\input eraseevt.tex -\input event.tex -\input evtblocker.tex -\input evthand.tex -\input ffile.tex -\input ffilestr.tex -\input file.tex -\input fileconf.tex -\input filectrl.tex -\input fileevt.tex -\input fildatob.tex -\input filedlg.tex -\input fildrptg.tex -\input filehist.tex -\input fileistr.tex -\input filename.tex -\input fileostr.tex -\input filepicker.tex -\input filestrm.tex -\input filesys.tex -\input filesysh.tex -\input filetype.tex -\input fltfactory.tex -\input fltinstr.tex -\input fltoutst.tex -\input fdrepdlg.tex -\input flexsizr.tex -\input focusevt.tex -\input font.tex -\input fontdlg.tex -\input fontenum.tex -\input fontlist.tex -\input fontmap.tex -\input fontpicker.tex -\input frame.tex -\input fsfile.tex -\input ftp.tex -\input gauge.tex -\input gbposition.tex -\input gbsizeritem.tex -\input gbspan.tex -\input gdiobj.tex -\input dirctrl.tex -\input valgen.tex -\input glcanvas.tex -\input glcontext.tex -\input graphicsbrush.tex -\input graphicscontext.tex -\input graphicsfont.tex -\input graphicsmatrix.tex -\input graphicsobject.tex -\input graphicspath.tex -\input graphicspen.tex -\input graphicsrenderer.tex -\input grid.tex -\input gridattr.tex -\input gridbagsizer.tex -\input gridedit.tex -\input gridevt.tex -\input gridrend.tex -\input gridtbl.tex -\input gridsizr.tex -\input gupdlock.tex -\input hashmap.tex -\input hashset.tex -\input hash.tex -\input helpinst.tex -\input hprovcnt.tex -\input helpevt.tex -\input helpprov.tex -\input hscrolledwindow.tex -\input htcell.tex -\input htcolor.tex -\input htcontnr.tex -\input htdcrend.tex -\input hteasypr.tex -\input htfilter.tex -\input hthelpct.tex -\input hthlpdat.tex -\input hthlpfrm.tex -\input htlnkinf.tex -\input htmllbox.tex -\input htparser.tex -\input htprint.tex -\input httag.tex -\input httaghnd.tex -\input httagmod.tex -\input htwidget.tex -\input htwindow.tex -\input htwinprs.tex -\input htwinhnd.tex -\input http.tex -\input hvscrolledwindow.tex -\input hyperlink.tex -\input icon.tex -\input iconbndl.tex -\input iconloc.tex -\input iconevt.tex -\input idleevt.tex -\input idmanager.tex -\input image.tex -\input imaglist.tex -\input ilayout.tex -\input indlgevt.tex -\input inputstr.tex -\input ipaddr.tex -\input ipvaddr.tex -\input joystick.tex -\input joyevent.tex -\input keyevent.tex -\input layalgor.tex -\input layout.tex -\input list.tex -\input listbook.tex -\input listbox.tex -\input listctrl.tex -\input listevt.tex -\input listitem.tex -\input listattr.tex -\input listview.tex -\input locale.tex -\input log.tex -\input longlong.tex -\input mask.tex -\input maxzevt.tex -\input mbconv.tex -\input mbcnvfil.tex -\input mbcnvut7.tex -\input mbcnvut8.tex -\input mbcnvutf.tex -\input mdi.tex -\input mediactrl.tex -\input mediaevt.tex -\input membuf.tex -\input memorydc.tex -\input fs_mem.tex -\input strmmem.tex -\input menu.tex -\input menuevt.tex -\input menuitem.tex -\input msgdlg.tex -\input metafile.tex -\input mimetype.tex -\input minifram.tex -\input mirrordc.tex -\input module.tex -\input mcaptevt.tex -\input mouseevt.tex -\input moveevt.tex -\input msgqueue.tex -\input mltchdlg.tex -\input mutex.tex -\input mutexlck.tex -\input navevent.tex -\input node.tex -\input notebook.tex -\input noteevt.tex -\input nbsizer.tex -\input notifmsg.tex -\input notifevt.tex -\input object.tex -\input objectdataptr.tex -\input odcbox.tex -\input outptstr.tex -\input pagedlg.tex -\input paintdc.tex -\input paintevt.tex -\input palette.tex -\input panel.tex -\input passdlg.tex -\input pathlist.tex -\input pen.tex -\input pickerbase.tex -\input platinfo.tex -\input point.tex -\input position.tex -\input postscpt.tex -\input powerevt.tex -\input prevwin.tex -\input print.tex -\input process.tex -\input procevt.tex -\input progdlg.tex -\input propdlg.tex -\input protocol.tex -\input quantize.tex -\input qylayevt.tex -\input radiobox.tex -\input radiobut.tex -\input realpoin.tex -\input rect.tex -\input recguard.tex -\input regex.tex -\input region.tex -\input regkey.tex -\input renderer.tex -\input rendver.tex - -\input richtextbuffer.tex -\input richtextcharacterstyledefinition.tex -\input richtextctrl.tex -\input richtextevent.tex -\input richtextfilehandler.tex -\input richtextformattingdialog.tex -\input richtextheaderfooterdata.tex -\input richtexthtmlhandler.tex -\input richtextliststyledefinition.tex -\input richtextparagraphstyledefinition.tex -\input richtextprinting.tex -\input richtextprintout.tex -\input richtextrange.tex -\input richtextstyledefinition.tex -\input richtextstylelistbox.tex -\input richtextstyleorganiserdialog.tex -\input richtextstylesheet.tex -\input richtextxmlhandler.tex - -\input sashevt.tex -\input sashlayw.tex -\input sashwin.tex -\input scpdarry.tex -\input scpdptr.tex -\input scopedptr.tex -\input screendc.tex -\input scrolbar.tex -\input scrolwin.tex -\input scrolevt.tex -\input scrlwevt.tex -\input semaphor.tex -\input setcursorevt.tex -\input ipcservr.tex -\input hprovsmp.tex -\input srchctrl.tex -\input sngchdlg.tex -\input snglinst.tex -\input sharedptr.tex -\input size.tex -\input sizeevt.tex -\input sizer.tex -\input sizeritem.tex -\input slider.tex -\input sckaddr.tex -\input socket.tex -\input strmsock.tex -\input socksrv.tex -\input sound.tex -\input spinbutt.tex -\input spinctrl.tex -\input spinevt.tex -\input splash.tex -\input splitevt.tex -\input splitter.tex -\input splitpar.tex -\input stackframe.tex -\input stackwalker.tex -\input stdpaths.tex -\input statbmp.tex -\input statbox.tex -\input sbsizer.tex -\input statline.tex -\input stattext.tex -\input statusbr.tex -\input stdbtnsz.tex -\input stopwtch.tex -\input strmbase.tex -\input stream.tex -\input strtotxt.tex -\input wxstring.tex -\input styledtextctrl.tex -\input styledtextevent.tex -\input strcldat.tex -\input sistream.tex -\input sostream.tex -\input tokenizr.tex -\input dcsvg.tex -\input symbolpickerdialog.tex -\input sysclevt.tex -\input sysopt.tex -\input settings.tex -\input tarstrm.tex -\input taskbar.tex -\input tcpclint.tex -\input tcpconn.tex -\input tcpservr.tex -\input tempfile.tex -\input tempfilestrm.tex -\input textattr.tex -\input text.tex -\input txtdatob.tex -\input txtdrptg.tex -\input textdlg.tex -\input textfile.tex -\input txtstrm.tex -\input valtext.tex -\input thread.tex -\input threadh.tex -\input timer.tex -\input timespan.tex -\input tipprov.tex -\input tipwin.tex -\input tglbtn.tex -\input toolbar.tex -\input toolbook.tex -\input tooltip.tex -\input tlw.tex -\input trackable.tex -\input treebook.tex -\input treebookevent.tex -\input treectrl.tex -\input treeevt.tex -\input treedata.tex -\input upduievt.tex -\input uri.tex -\input url.tex -\input urldataob.tex -\input validatr.tex -\input varhscrollhelper.tex -\input varhvscrollhelper.tex -\input variant.tex -\input varscrollhelperbase.tex -\input varvscrollhelper.tex -\input vector.tex -\input view.tex -\input vlbox.tex -\input vscrolledwindow.tex -\input window.tex -\input wupdlock.tex -\input wrapsizer.tex -\input createevt.tex -\input windowdc.tex -\input destroyevt.tex -\input weakref.tex -\input weakrefdynamic.tex -\input wnddisbl.tex -\input wizard.tex -\input wizevt.tex -\input wizpage.tex -\input xlocale.tex -\input xmldocument.tex -\input xmlnode.tex -\input xmlattr.tex -\input xmlres.tex -\input xmlresh.tex -\input zipstrm.tex -\input strmzlib.tex diff --git a/docs/latex/wx/clientdat.tex b/docs/latex/wx/clientdat.tex deleted file mode 100644 index 062fc63325..0000000000 --- a/docs/latex/wx/clientdat.tex +++ /dev/null @@ -1,121 +0,0 @@ -\section{\class{wxClientData}}\label{wxclientdata} - -All classes deriving from \helpref{wxEvtHandler}{wxevthandler} -(such as all controls and \helpref{wxApp}{wxapp}) -can hold arbitrary data which is here referred to as "client data". -This is useful e.g. for scripting languages which need to handle -shadow objects for most of wxWidgets' classes and which store -a handle to such a shadow class as client data in that class. -This data can either be of type void - in which case the data -{\it container} does not take care of freeing the data again -or it is of type wxClientData or its derivatives. In that case the -container (e.g. a control) will free the memory itself later. -Note that you {\it must not} assign both void data and data -derived from the wxClientData class to a container. - -Some controls can hold various items and these controls can -additionally hold client data for each item. This is the case for -\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox} -and \helpref{wxListBox}{wxlistbox}. \helpref{wxTreeCtrl}{wxtreectrl} -has a specialized class \helpref{wxTreeItemData}{wxtreeitemdata} -for each item in the tree. - -If you want to add client data to your own classes, you may -use the mix-in class \helpref{wxClientDataContainer}{wxclientdatacontainer}. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxEvtHandler}{wxevthandler}, \helpref{wxTreeItemData}{wxtreeitemdata}, -\helpref{wxStringClientData}{wxstringclientdata}, \helpref{wxClientDataContainer}{wxclientdatacontainer} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxClientData::wxClientData}\label{wxclientdatawxclientdata} - -\func{}{wxClientData}{\void} - -Constructor. - -\membersection{wxClientData::\destruct{wxClientData}}\label{wxclientdatadtor} - -\func{}{\destruct{wxClientData}}{\void} - -Virtual destructor. - -\section{\class{wxClientDataContainer}}\label{wxclientdatacontainer} - -This class is a mixin that provides storage and management of "client -data." This data can either be of type void - in which case the data -{\it container} does not take care of freeing the data again -or it is of type wxClientData or its derivatives. In that case the -container will free the memory itself later. -Note that you {\it must not} assign both void data and data -derived from the wxClientData class to a container. - -NOTE: This functionality is currently duplicated in wxEvtHandler in -order to avoid having more than one vtable in that class hierarchy. - -\wxheading{See also} - -\helpref{wxEvtHandler}{wxevthandler}, \helpref{wxClientData}{wxclientdata} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxClientDataContainer::wxClientDataContainer}\label{wxclientdatacontainerwxclientdatacontainer} - -\func{}{wxClientDataContainer}{\void} - - -\membersection{wxClientDataContainer::\destruct{wxClientDataContainer}}\label{wxclientdatacontainerdtor} - -\func{}{\destruct{wxClientDataContainer}}{\void} - - -\membersection{wxClientDataContainer::GetClientData}\label{wxclientdatacontainergetclientdata} - -\constfunc{void*}{GetClientData}{\void} - -Get the untyped client data. - -\membersection{wxClientDataContainer::GetClientObject}\label{wxclientdatacontainergetclientobject} - -\constfunc{wxClientData*}{GetClientObject}{\void} - -Get a pointer to the client data object. - -\membersection{wxClientDataContainer::SetClientData}\label{wxclientdatacontainersetclientdata} - -\func{void}{SetClientData}{\param{void* }{data}} - -Set the untyped client data. - -\membersection{wxClientDataContainer::SetClientObject}\label{wxclientdatacontainersetclientobject} - -\func{void}{SetClientObject}{\param{wxClientData* }{data}} - -Set the client data object. Any previous object will be deleted. - diff --git a/docs/latex/wx/clientdc.tex b/docs/latex/wx/clientdc.tex deleted file mode 100644 index 429b19ac29..0000000000 --- a/docs/latex/wx/clientdc.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxClientDC}}\label{wxclientdc} - -A wxClientDC must be constructed if an application wishes to paint on the -client area of a window from outside an {\bf OnPaint} event. -This should normally be constructed as a temporary stack object; don't store -a wxClientDC object. - -To draw on a window from within {\bf OnPaint}, construct a \helpref{wxPaintDC}{wxpaintdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxWindowDC}{wxwindowdc}\\ -\helpref{wxDC}{wxdc} -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClientDC::wxClientDC}\label{wxclientdcctor} - -\func{}{wxClientDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/clipbrd.tex b/docs/latex/wx/clipbrd.tex deleted file mode 100644 index 4197118b28..0000000000 --- a/docs/latex/wx/clipbrd.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{\class{wxClipboard}}\label{wxclipboard} - -A class for manipulating the clipboard. Note that this is not compatible with the -clipboard class from wxWidgets 1.xx, which has the same name but a different implementation. - -To use the clipboard, you call member functions of the global {\bf wxTheClipboard} object. - -See also the \helpref{wxDataObject overview}{wxdataobjectoverview} for further information. - -Call \helpref{wxClipboard::Open}{wxclipboardopen} to get ownership of the clipboard. If this operation returns true, you -now own the clipboard. Call \helpref{wxClipboard::SetData}{wxclipboardsetdata} to put data -on the clipboard, or \helpref{wxClipboard::GetData}{wxclipboardgetdata} to -retrieve data from the clipboard. Call \helpref{wxClipboard::Close}{wxclipboardclose} to close -the clipboard and relinquish ownership. You should keep the clipboard open only momentarily. - -For example: - -\begin{verbatim} - // Write some text to the clipboard - if (wxTheClipboard->Open()) - { - // This data objects are held by the clipboard, - // so do not delete them in the app. - wxTheClipboard->SetData( new wxTextDataObject("Some text") ); - wxTheClipboard->Close(); - } - - // Read some text - if (wxTheClipboard->Open()) - { - if (wxTheClipboard->IsSupported( wxDF_TEXT )) - { - wxTextDataObject data; - wxTheClipboard->GetData( data ); - wxMessageBox( data.GetText() ); - } - wxTheClipboard->Close(); - } -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxClipboard::wxClipboard}\label{wxclipboardctor} - -\func{}{wxClipboard}{\void} - -Constructor. - - -\membersection{wxClipboard::\destruct{wxClipboard}}\label{wxclipboarddtor} - -\func{}{\destruct{wxClipboard}}{\void} - -Destructor. - - -\membersection{wxClipboard::AddData}\label{wxclipboardadddata} - -\func{bool}{AddData}{\param{wxDataObject*}{ data}} - -Call this function to add the data object to the clipboard. You may call -this function repeatedly after having cleared the clipboard using \helpref{wxClipboard::Clear}{wxclipboardclear}. - -After this function has been called, the clipboard owns the data, so do not delete -the data explicitly. - -\wxheading{See also} - -\helpref{wxClipboard::SetData}{wxclipboardsetdata} - - -\membersection{wxClipboard::Clear}\label{wxclipboardclear} - -\func{void}{Clear}{\void} - -Clears the global clipboard object and the system's clipboard if possible. - - -\membersection{wxClipboard::Close}\label{wxclipboardclose} - -\func{void}{Close}{\void} - -Call this function to close the clipboard, having opened it with \helpref{wxClipboard::Open}{wxclipboardopen}. - - -\membersection{wxClipboard::Flush}\label{wxclipboardflush} - -\func{bool}{Flush}{\void} - -Flushes the clipboard: this means that the data which is currently on -clipboard will stay available even after the application exits (possibly -eating memory), otherwise the clipboard will be emptied on exit. -Returns false if the operation is unsuccessful for any reason. - - -\membersection{wxClipboard::GetData}\label{wxclipboardgetdata} - -\func{bool}{GetData}{\param{wxDataObject\&}{ data}} - -Call this function to fill {\it data} with data on the clipboard, if available in the required -format. Returns true on success. - - -\membersection{wxClipboard::IsOpened}\label{wxclipboardisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns true if the clipboard has been opened. - - -\membersection{wxClipboard::IsSupported}\label{wxclipboardissupported} - -\func{bool}{IsSupported}{\param{const wxDataFormat\&}{ format}} - -Returns true if there is data which matches the data format of the given data object currently {\bf available} (IsSupported sounds like a misnomer, FIXME: better deprecate this name?) on the clipboard. - - -\membersection{wxClipboard::IsUsingPrimarySelection}\label{wxclipboardisusingprimaryselection} - -\constfunc{bool}{IsUsingPrimarySelection}{\void} - -Returns \true if we are using the primary selection, \false if clipboard one. -See \helpref{UsePrimarySelection}{wxclipboarduseprimary} for more information. - - -\membersection{wxClipboard::Open}\label{wxclipboardopen} - -\func{bool}{Open}{\void} - -Call this function to open the clipboard before calling \helpref{wxClipboard::SetData}{wxclipboardsetdata} -and \helpref{wxClipboard::GetData}{wxclipboardgetdata}. - -Call \helpref{wxClipboard::Close}{wxclipboardclose} when you have finished with the clipboard. You -should keep the clipboard open for only a very short time. - -Returns true on success. This should be tested (as in the sample shown above). - - -\membersection{wxClipboard::SetData}\label{wxclipboardsetdata} - -\func{bool}{SetData}{\param{wxDataObject*}{ data}} - -Call this function to set the data object to the clipboard. This function will -clear all previous contents in the clipboard, so calling it several times -does not make any sense. - -After this function has been called, the clipboard owns the data, so do not delete -the data explicitly. - -\wxheading{See also} - -\helpref{wxClipboard::AddData}{wxclipboardadddata} - - -\membersection{wxClipboard::UsePrimarySelection}\label{wxclipboarduseprimary} - -\func{void}{UsePrimarySelection}{\param{bool}{ primary = true}} - -On platforms supporting it (all X11-based ports), wxClipboard uses the -CLIPBOARD X11 selection by default. When this function is called with \true -argument, all subsequent clipboard operations will use PRIMARY selection until -this function is called again with \false. - -On the other platforms, there is no PRIMARY selection and so all clipboard -operations will fail. This allows to implement the standard X11 handling of the -clipboard which consists in copying data to the CLIPBOARD selection only when -the user explicitly requests it (i.e. by selection \texttt{"Copy"} menu -command) but putting the currently selected text into the PRIMARY selection -automatically, without overwriting the normal clipboard contents with the -currently selected text on the other platforms. - diff --git a/docs/latex/wx/clipevent.tex b/docs/latex/wx/clipevent.tex deleted file mode 100644 index cde15b9787..0000000000 --- a/docs/latex/wx/clipevent.tex +++ /dev/null @@ -1,88 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: clipevent.tex -%% Purpose: wxClipboardTextEvent documentation -%% Author: Evgeniy Tarassov, Vadim Zeitlin -%% Modified by: -%% Created: 2005-10-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxClipboardTextEvent}}\label{wxclipboardtextevent} - -This class represents the events generated by a control (typically a -\helpref{wxTextCtrl}{wxtextctrl} but other windows can generate these events as -well) when its content gets copied or cut to, or pasted from the clipboard. -There are three types of corresponding events wxEVT\_COMMAND\_TEXT\_COPY, -wxEVT\_COMMAND\_TEXT\_CUT and wxEVT\_COMMAND\_TEXT\_PASTE. - -If any of these events is processed (without being skipped) by an event -handler, the corresponding operation doesn't take place which allows to prevent -the text from being copied from or pasted to a control. It is also possible to -examine the clipboard contents in the PASTE event handler and transform it in -some way before inserting in a control -- for example, changing its case or -removing invalid characters. - -Finally notice that a CUT event is always preceded by the COPY event which -makes it possible to only process the latter if it doesn't matter if the text -was copied or cut. - -\wxheading{Remarks} - -These events are currently only generated by \helpref{wxComboBox}{wxcombobox} and -under Windows and \helpref{wxTextCtrl}{wxtextctrl} under Windows and GTK and -are not generated for the text controls with \texttt{wxTE\_RICH} style under -Windows. - - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - - - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - - -\wxheading{Event handling} - -To process this type of events use the following event handling macros. The -\arg{func} parameter must be a member functions that takes an argument of type -\texttt{wxClipboardTextEvent \&}. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TEXT\_COPY(id, func)}}{Some or all of the controls -content was copied to the clipboard.} -\twocolitem{{\bf EVT\_TEXT\_CUT(id, func)}}{Some or all of the controls content -was cut (i.e. copied and deleted).} -\twocolitem{{\bf EVT\_TEXT\_PASTE(id, func)}}{Clipboard content was pasted into -the control.} -\end{twocollist} - - - -\wxheading{See also} - -\helpref{wxClipboard}{wxclipboard} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxClipboardTextEvent::wxClipboardTextEvent}\label{wxclipboardtexteventwxclipboardtextevent} - -\func{}{wxClipboardTextEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{id = 0}} - - diff --git a/docs/latex/wx/closeevt.tex b/docs/latex/wx/closeevt.tex deleted file mode 100644 index 1684c16c86..0000000000 --- a/docs/latex/wx/closeevt.tex +++ /dev/null @@ -1,113 +0,0 @@ -\section{\class{wxCloseEvent}}\label{wxcloseevent} - -This event class contains information about window and session close events. - -The handler function for EVT\_CLOSE is called when the user has tried to close a a frame -or dialog box using the window manager (X) or system menu (Windows). It can -also be invoked by the application itself programmatically, for example by -calling the \helpref{wxWindow::Close}{wxwindowclose} function. - -You should check whether the application is forcing the deletion of the window -using \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto}. If this is {\tt false}, -you {\it must} destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. -If the return value is true, it is up to you whether you respond by destroying the window. - -If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to -let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function -to return {\tt true} or {\tt false} depending on whether the close instruction was honoured or not. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a close event, use these event handler macros to direct input to member -functions that take a wxCloseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CLOSE(func)}}{Process a close event, supplying the member function. This -event applies to wxFrame and wxDialog classes.} -\twocolitem{{\bf EVT\_QUERY\_END\_SESSION(func)}}{Process a query end session event, supplying the member function. -This event applies to wxApp only.} -\twocolitem{{\bf EVT\_END\_SESSION(func)}}{Process an end session event, supplying the member function. -This event applies to wxApp only.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxWindow::Close}{wxwindowclose},\rtfsp -%% GD: OnXXX functions are not documented -%%\helpref{wxApp::OnEndSession}{wxapponendsession},\rtfsp -\helpref{Window deletion overview}{windowdeletionoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxCloseEvent::wxCloseEvent}\label{wxcloseeventctor} - -\func{}{wxCloseEvent}{\param{WXTYPE}{ commandEventType = 0}, \param{int}{ id = 0}} - -Constructor. - - -\membersection{wxCloseEvent::CanVeto}\label{wxcloseeventcanveto} - -\func{bool}{CanVeto}{\void} - -Returns true if you can veto a system shutdown or a window close event. -Vetoing a window close event is not possible if the calling code wishes to -force the application to exit, and so this function must be called to check this. - - -\membersection{wxCloseEvent::GetLoggingOff}\label{wxcloseeventgetloggingoff} - -\constfunc{bool}{GetLoggingOff}{\void} - -Returns true if the user is just logging off or false if the system is -shutting down. This method can only be called for end session and query end -session events, it doesn't make sense for close window event. - - -\membersection{wxCloseEvent::SetCanVeto}\label{wxcloseeventsetcanveto} - -\func{void}{SetCanVeto}{\param{bool}{ canVeto}} - -Sets the 'can veto' flag. - - -\membersection{wxCloseEvent::SetForce}\label{wxcloseeventsetforce} - -\constfunc{void}{SetForce}{\param{bool}{ force}} - -Sets the 'force' flag. - - -\membersection{wxCloseEvent::SetLoggingOff}\label{wxcloseeventsetloggingoff} - -\constfunc{void}{SetLoggingOff}{\param{bool}{ loggingOff}} - -Sets the 'logging off' flag. - - -\membersection{wxCloseEvent::Veto}\label{wxcloseeventveto} - -\func{void}{Veto}{\param{bool}{ veto = true}} - -Call this from your event handler to veto a system shutdown or to signal -to the calling application that a window close did not happen. - -You can only veto a shutdown if \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns -true. - - diff --git a/docs/latex/wx/clrpicker.tex b/docs/latex/wx/clrpicker.tex deleted file mode 100644 index f3874e62f2..0000000000 --- a/docs/latex/wx/clrpicker.tex +++ /dev/null @@ -1,194 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: clrpicker.tex -%% Purpose: wxColourPickerCtrl and wxColourPickerEvent documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-17 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxColourPickerCtrl}}\label{wxcolourpickerctrl} - -This control allows the user to select a colour. The generic implementation is -a button which brings up a \helpref{wxColourDialog}{wxcolourdialog} when clicked. Native implementation -may differ but this is usually a (small) widget which give access to the colour-chooser -dialog. -It is only available if \texttt{wxUSE\_COLOURPICKERCTRL} is set to $1$ (the default). - -\wxheading{Derived from} - -\helpref{wxPickerBase}{wxpickerbase}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCLRP\_DEFAULT\_STYLE}}{The default style: 0.} -\twocolitem{\windowstyle{wxCLRP\_USE\_TEXTCTRL}}{Creates a text control to the left of the -picker button which is completely managed by the \helpref{wxColourPickerCtrl}{wxcolourpickerctrl} -and which can be used by the user to specify a colour (see \helpref{SetColour}{wxcolourpickerctrlsetcolour}). -The text control is automatically synchronized with button's value. Use functions defined in \helpref{wxPickerBase}{wxpickerbase} to modify the text control.} -\twocolitem{\windowstyle{wxCLRP\_SHOW\_LABEL}}{Shows the colour in HTML form (#AABBCC) as colour button label -(instead of no label at all).} -\end{twocollist} - -\wxheading{Event handling} - -To process a colour picker event, use these event handler macros to direct input to member -functions that take a \helpref{wxColourPickerEvent}{wxcolourpickerevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COLOURPICKER\_CHANGED(id, func)}}{The user changed the -colour selected in the control either using the button or using text control -(see wxCLRP\_USE\_TEXTCTRL; note that in this case the event is fired only if -the user's input is valid, i.e. recognizable). } -\end{twocollist} - -\wxheading{See also} - -\helpref{wxColourDialog}{wxcolourdialog},\\ -\helpref{wxColourPickerEvent}{wxcolourpickerevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourPickerCtrl::wxColourPickerCtrl}\label{wxcolourpickerctrlctor} - -\func{}{wxColourPickerCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxColour\& }{colour = *wxBLACK},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxCLRP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``colourpickerctrl"}} - -Initializes the object and calls \helpref{Create}{wxcolourpickerctrlcreate} with -all the parameters. - - -\membersection{wxColourPickerCtrl::Create}\label{wxcolourpickerctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxColour\& }{colour = *wxBLACK},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxCLRP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``colourpickerctrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{colour}{The initial colour shown in the control.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxCRLP\_*} flags.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxColourPickerCtrl::GetColour}\label{wxcolourpickerctrlgetcolour} - -\constfunc{wxColour}{GetColour}{\void} - -Returns the currently selected colour. - - -\membersection{wxColourPickerCtrl::SetColour}\label{wxcolourpickerctrlsetcolour} - -\func{void}{SetColour}{\param{const wxColour \&}{col}} - -\func{void}{SetColour}{\param{const wxString \&}{colname}} - -Sets the currently selected colour. See \helpref{wxColour::Set}{wxcolourset}. - - - - -%% wxColourPickerEvent documentation - -\section{\class{wxColourPickerEvent}}\label{wxcolourpickerevent} - -This event class is used for the events generated by -\helpref{wxColourPickerCtrl}{wxcolourpickerctrl}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxColourPickerCtrl, use one of these event handler macros to -direct input to member function that take a -\helpref{wxColourPickerEvent}{wxcolourpickerevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_COLOURPICKER\_CHANGED(id, func)}}{Generated whenever the selected colour changes.} -\end{twocollist}% - - -\wxheading{See also} - -\helpref{wxColourPickerCtrl}{wxcolourpickerctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourPickerEvent::wxColourPickerEvent}\label{wxcolourpickereventctor} - -\func{}{wxColourPickerEvent}{\param{wxObject *}{ generator}, \param{int}{ id}, \param{const wxColour\&}{ colour}} - -The constructor is not normally used by the user code. - - -\membersection{wxColourPickerEvent::GetColour}\label{wxcolourpickereventgetcolour} - -\constfunc{wxColour}{GetColour}{\void} - -Retrieve the colour the user has just selected. - - -\membersection{wxColourPickerEvent::SetColour}\label{wxcolourpickereventsetcolour} - -\func{void}{SetColour}{\param{const wxColour \&}{pos}} - -Set the colour associated with the event. - diff --git a/docs/latex/wx/cmdevent.tex b/docs/latex/wx/cmdevent.tex deleted file mode 100644 index 140adfc55a..0000000000 --- a/docs/latex/wx/cmdevent.tex +++ /dev/null @@ -1,208 +0,0 @@ -\section{\class{wxCommandEvent}}\label{wxcommandevent} - -This event class contains information about command events, which originate from a variety of -simple controls. More complex controls, such as \helpref{wxTreeCtrl}{wxtreectrl}, have separate command event classes. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a menu command event, use these event handler macros to direct input to member -functions that take a wxCommandEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMMAND(id, event, func)}}{Process a command, supplying the window identifier, -command event identifier, and member function.} -\twocolitem{{\bf EVT\_COMMAND\_RANGE(id1, id2, event, func)}}{Process a command for a range -of window identifiers, supplying the minimum and maximum window identifiers, -command event identifier, and member function.} -\twocolitem{{\bf EVT\_BUTTON(id, func)}}{Process a wxEVT\_COMMAND\_BUTTON\_CLICKED command, -which is generated by a wxButton control.} -\twocolitem{{\bf EVT\_CHECKBOX(id, func)}}{Process a wxEVT\_COMMAND\_CHECKBOX\_CLICKED command, -which is generated by a wxCheckBox control.} -\twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED command, -which is generated by a wxChoice control.} -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED command, -which is generated by a wxComboBox control.} -\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED command, -which is generated by a wxListBox control.} -\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED command, -which is generated by a wxListBox control.} -\twocolitem{{\bf EVT\_MENU(id, func)}}{Process a wxEVT\_COMMAND\_MENU\_SELECTED command, -which is generated by a menu item.} -\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_MENU\_RANGE command, -which is generated by a range of menu items.} -\twocolitem{{\bf EVT\_CONTEXT\_MENU(func)}}{Process the event generated -when the user has requested a popup menu to appear by pressing a special -keyboard key (under Windows) or by right clicking the mouse.} -\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED command, -which is generated by a wxRadioBox control.} -\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED command, -which is generated by a wxRadioButton control.} -\twocolitem{{\bf EVT\_SCROLLBAR(id, func)}}{Process a wxEVT\_COMMAND\_SCROLLBAR\_UPDATED command, -which is generated by a wxScrollBar control. This is provided for compatibility only; -more specific scrollbar event macros should be used instead (see \helpref{wxScrollEvent}{wxscrollevent}).} -\twocolitem{{\bf EVT\_SLIDER(id, func)}}{Process a wxEVT\_COMMAND\_SLIDER\_UPDATED command, -which is generated by a wxSlider control.} -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED command, -which is generated by a wxTextCtrl control.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_ENTER command, -which is generated by a wxTextCtrl control. Note that you must use -wxTE\_PROCESS\_ENTER flag when creating the control if you want it to generate -such events.} -\twocolitem{{\bf EVT\_TEXT\_MAXLEN(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_MAXLEN command, -which is generated by a wxTextCtrl control when the user tries to enter more -characters into it than the limit previously set with -\helpref{SetMaxLength}{wxtextctrlsetmaxlength}.} -\twocolitem{{\bf EVT\_TOGGLEBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_TOGGLEBUTTON\_CLICKED event.} -\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -for a range of identifiers. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event. -Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event -for a range of ids. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event. -Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.} -\twocolitem{{\bf EVT\_COMMAND\_LEFT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_CLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_LEFT\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LEFT\_DCLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_RIGHT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_RIGHT\_CLICK command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_SET\_FOCUS(id, func)}}{Process a wxEVT\_COMMAND\_SET\_FOCUS command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_KILL\_FOCUS(id, func)}}{Process a wxEVT\_COMMAND\_KILL\_FOCUS command, -which is generated by a control (Windows 95 and NT only).} -\twocolitem{{\bf EVT\_COMMAND\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_ENTER command, -which is generated by a control.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCommandEvent::wxCommandEvent}\label{wxcommandeventctor} - -\func{}{wxCommandEvent}{\param{WXTYPE}{ commandEventType = 0}, \param{int}{ id = 0}} - -Constructor. - -\membersection{wxCommandEvent::Checked}\label{wxcommandeventchecked} - -\constfunc{bool}{Checked}{\void} - -Deprecated, use \helpref{IsChecked}{wxcommandeventischecked} instead. - -\membersection{wxCommandEvent::GetClientData}\label{wxcommandeventgetclientdata} - -\func{void*}{GetClientData}{\void} - -Returns client data pointer for a listbox or choice selection event -(not valid for a deselection). - -\membersection{wxCommandEvent::GetClientObject}\label{wxcommandeventgetclientobject} - -\func{wxClientData *}{GetClientObject}{\void} - -Returns client object pointer for a listbox or choice selection event -(not valid for a deselection). - -\membersection{wxCommandEvent::GetExtraLong}\label{wxcommandeventgetextralong} - -\func{long}{GetExtraLong}{\void} - -Returns extra information dependant on the event objects type. -If the event comes from a listbox selection, it is a boolean -determining whether the event was a selection (true) or a -deselection (false). A listbox deselection only occurs for -multiple-selection boxes, and in this case the index and string values -are indeterminate and the listbox must be examined by the application. - -\membersection{wxCommandEvent::GetInt}\label{wxcommandeventgetint} - -\func{int}{GetInt}{\void} - -Returns the integer identifier corresponding to a listbox, choice or -radiobox selection (only if the event was a selection, not a -deselection), or a boolean value representing the value of a checkbox. - -\membersection{wxCommandEvent::GetSelection}\label{wxcommandeventgetselection} - -\func{int}{GetSelection}{\void} - -Returns item index for a listbox or choice selection event (not valid for -a deselection). - -\membersection{wxCommandEvent::GetString}\label{wxcommandeventgetstring} - -\func{wxString}{GetString}{\void} - -Returns item string for a listbox or choice selection event (not valid for -a deselection). - -\membersection{wxCommandEvent::IsChecked}\label{wxcommandeventischecked} - -\constfunc{bool}{IsChecked}{\void} - -This method can be used with checkbox and menu events: for the checkboxes, the -method returns {\tt true} for a selection event and {\tt false} for a -deselection one. For the menu events, this method indicates if the menu item -just has become checked or unchecked (and thus only makes sense for checkable -menu items). - -Notice that this method can \emph{not} be used with -\helpref{wxCheckListBox}{wxchecklistbox} currently. - - -\membersection{wxCommandEvent::IsSelection}\label{wxcommandeventisselection} - -\func{bool}{IsSelection}{\void} - -For a listbox or similar event, returns true if it is a selection, false if it -is a deselection. - -\membersection{wxCommandEvent::SetClientData}\label{wxcommandeventsetclientdata} - -\func{void}{SetClientData}{\param{void*}{ clientData}} - -Sets the client data for this event. - -\membersection{wxCommandEvent::SetClientObject}\label{wxcommandeventsetclientobject} - -\func{void}{SetClientObject}{\param{wxClientData*}{ clientObject}} - -Sets the client object for this event. The client object is \emph{not} owned by the event -object and the event object will not delete the client object in its destructor. -The client object must be owned and deleted by another object (e.g. a control) -that has longer life time than the event object. - -\membersection{wxCommandEvent::SetExtraLong}\label{wxcommandeventsetextralong} - -\func{void}{SetExtraLong}{\param{long}{ extraLong}} - -Sets the {\bf m\_extraLong} member. - -\membersection{wxCommandEvent::SetInt}\label{wxcommandeventsetint} - -\func{void}{SetInt}{\param{int}{ intCommand}} - -Sets the {\bf m\_commandInt} member. - -\membersection{wxCommandEvent::SetString}\label{wxcommandeventsetstring} - -\func{void}{SetString}{\param{const wxString\&}{ string}} - -Sets the {\bf m\_commandString} member. - diff --git a/docs/latex/wx/cmdlpars.tex b/docs/latex/wx/cmdlpars.tex deleted file mode 100644 index 8dd937c1a9..0000000000 --- a/docs/latex/wx/cmdlpars.tex +++ /dev/null @@ -1,495 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: cmdlpars.tex -%% Purpose: wxCmdLineParser documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 27.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCmdLineParser}}\label{wxcmdlineparser} - -wxCmdLineParser is a class for parsing the command line. - -It has the following features: - -\begin{enumerate}\itemsep=0pt -\item distinguishes options, switches and parameters; allows option grouping -\item allows both short and long options -\item automatically generates the usage message from the command line description -\item does type checks on the options values (number, date, $\ldots$). -\end{enumerate} - -To use it you should follow these steps: - -\begin{enumerate}\itemsep=0pt -\item \helpref{construct}{wxcmdlineparserconstruction} an object of this class -giving it the command line to parse and optionally its description or use -{\tt AddXXX()} functions later -\item call {\tt Parse()} -\item use {\tt Found()} to retrieve the results -\end{enumerate} - -In the documentation below the following terminology is used: - -\begin{twocollist}\itemsep=0pt -\twocolitem{switch}{This is a boolean option which can be given or not, but -which doesn't have any value. We use the word switch to distinguish such boolean -options from more generic options like those described below. For example, -{\tt -v} might be a switch meaning "enable verbose mode".} -\twocolitem{option}{Option for us here is something which comes with a value 0 -unlike a switch. For example, {\tt -o:filename} might be an option which allows -to specify the name of the output file.} -\twocolitem{parameter}{This is a required program argument.} -\end{twocollist} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Constants} - -The structure wxCmdLineEntryDesc is used to describe the one command -line switch, option or parameter. An array of such structures should be passed -to \helpref{SetDesc()}{wxcmdlineparsersetdesc}. Also, the meanings of parameters -of the {\tt AddXXX()} functions are the same as of the corresponding fields in -this structure: - -\begin{verbatim} -struct wxCmdLineEntryDesc -{ - wxCmdLineEntryType kind; - wxString shortName; - wxString longName; - wxString description; - wxCmdLineParamType type; - int flags; -}; -\end{verbatim} - -The type of a command line entity is in the {\tt kind} field and may be one of -the following constants: - -{\small% -\begin{verbatim} -enum wxCmdLineEntryType -{ - wxCMD_LINE_SWITCH, - wxCMD_LINE_OPTION, - wxCMD_LINE_PARAM, - wxCMD_LINE_NONE // use this to terminate the list -} -\end{verbatim} -} - -The field {\tt shortName} is the usual, short, name of the switch or the option. -{\tt longName} is the corresponding long name or empty if the option has no long -name. Both of these fields are unused for the parameters. Both the short and -long option names can contain only letters, digits and the underscores. - -{\tt description} is used by the \helpref{Usage()}{wxcmdlineparserusage} method -to construct a help message explaining the syntax of the program. - -The possible values of {\tt type} which specifies the type of the value accepted -by an option or parameter are: - -{\small% -\begin{verbatim} -enum wxCmdLineParamType -{ - wxCMD_LINE_VAL_STRING, // default - wxCMD_LINE_VAL_NUMBER, - wxCMD_LINE_VAL_DATE, - wxCMD_LINE_VAL_NONE -} -\end{verbatim} -} - -Finally, the {\tt flags} field is a combination of the following bit masks: - -{\small% -\begin{verbatim} -enum -{ - wxCMD_LINE_OPTION_MANDATORY = 0x01, // this option must be given - wxCMD_LINE_PARAM_OPTIONAL = 0x02, // the parameter may be omitted - wxCMD_LINE_PARAM_MULTIPLE = 0x04, // the parameter may be repeated - wxCMD_LINE_OPTION_HELP = 0x08, // this option is a help request - wxCMD_LINE_NEEDS_SEPARATOR = 0x10, // must have sep before the value -} -\end{verbatim} -} - -Notice that by default (i.e. if flags are just $0$), options are optional (sic) -and each call to \helpref{AddParam()}{wxcmdlineparseraddparam} allows one more -parameter - this may be changed by giving non-default flags to it, i.e. use -{\tt wxCMD\_LINE\_OPTION\_MANDATORY} to require that the option is given and -{\tt wxCMD\_LINE\_PARAM\_OPTIONAL} to make a parameter optional. Also, -{\tt wxCMD\_LINE\_PARAM\_MULTIPLE} may be specified if the programs accepts a -variable number of parameters - but it only can be given for the last parameter -in the command line description. If you use this flag, you will probably need to -use \helpref{GetParamCount}{wxcmdlineparsergetparamcount} to retrieve the number -of parameters effectively specified after calling -\helpref{Parse}{wxcmdlineparserparse}. - -The last flag {\tt wxCMD\_LINE\_NEEDS\_SEPARATOR} can be specified to require a -separator (either a colon, an equal sign or white space) between the option -name and its value. By default, no separator is required. - -\wxheading{See also} - -\helpref{wxApp::argc}{wxappargc} and \helpref{wxApp::argv}{wxappargv}\\ -console sample - -%%%%%%%%%%%%% Methods by group %%%%%%%%%%%%% -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Construction}\label{wxcmdlineparserconstruction} - -Before \helpref{Parse}{wxcmdlineparserparse} can be called, the command line -parser object must have the command line to parse and also the rules saying -which switches, options and parameters are valid - this is called command line -description in what follows. - -You have complete freedom of choice as to when specify the required information, -the only restriction is that it must be done before calling -\helpref{Parse}{wxcmdlineparserparse}. - -To specify the command line to parse you may use either one of constructors -accepting it (\tt{wxCmdLineParser(argc, argv)} or \tt{wxCmdLineParser(const wxString&)} usually) -or, if you use the default constructor, you can do it later by calling -\helpref{SetCmdLine}{wxcmdlineparsersetcmdline}. - -The same holds for command line description: it can be specified either in -the \helpref{constructor}{wxcmdlineparserwxcmdlineparserctor} (with or without -the command line itself) or constructed later using either -\helpref{SetDesc}{wxcmdlineparsersetdesc} or combination of -\helpref{AddSwitch}{wxcmdlineparseraddswitch}, -\helpref{AddOption}{wxcmdlineparseraddoption} and -\helpref{AddParam}{wxcmdlineparseraddparam} methods. - -Using constructors or \helpref{SetDesc}{wxcmdlineparsersetdesc} uses a (usually -{\tt const static}) table containing the command line description. If you want -to decide which options to accept during the run-time, using one of the -{\tt AddXXX()} functions above might be preferable. - - -\membersection{Customization}\label{wxcmdlineparsercustomization} - -wxCmdLineParser has several global options which may be changed by the -application. All of the functions described in this section should be called -before \helpref{Parse}{wxcmdlineparserparse}. - -First global option is the support for long (also known as GNU-style) options. -The long options are the ones which start with two dashes ({\tt "--"}) and look -like this: {\tt --verbose}, i.e. they generally are complete words and not some -abbreviations of them. As long options are used by more and more applications, -they are enabled by default, but may be disabled with -\helpref{DisableLongOptions}{wxcmdlineparserdisablelongoptions}. - -Another global option is the set of characters which may be used to start an -option (otherwise, the word on the command line is assumed to be a parameter). -Under Unix, {\tt '-'} is always used, but Windows has at least two common -choices for this: {\tt '-'} and {\tt '/'}. Some programs also use {\tt '+'}. -The default is to use what suits most the current platform, but may be changed -with \helpref{SetSwitchChars}{wxcmdlineparsersetswitchchars} method. - -Finally, \helpref{SetLogo}{wxcmdlineparsersetlogo} can be used to show some -application-specific text before the explanation given by -\helpref{Usage}{wxcmdlineparserusage} function. - - -\membersection{Parsing command line}\label{wxcmdlineparserparsing} - -After the command line description was constructed and the desired options were -set, you can finally call \helpref{Parse}{wxcmdlineparserparse} method. -It returns $0$ if the command line was correct and was parsed, $-1$ if the help -option was specified (this is a separate case as, normally, the program will -terminate after this) or a positive number if there was an error during the -command line parsing. - -In the latter case, the appropriate error message and usage information are -logged by wxCmdLineParser itself using the standard wxWidgets logging functions. - - -\membersection{Getting results}\label{wxcmdlineparsergettingresults} - -After calling \helpref{Parse}{wxcmdlineparserparse} (and if it returned $0$), -you may access the results of parsing using one of overloaded {\tt Found()} -methods. - -For a simple switch, you will simply call -\helpref{Found}{wxcmdlineparserfound} to determine if the switch was given -or not, for an option or a parameter, you will call a version of {\tt Found()} -which also returns the associated value in the provided variable. All -{\tt Found()} functions return true if the switch or option were found in the -command line or false if they were not specified. - -%%%%%%%%%%%%% Methods in alphabetic order %%%%%%%%%%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - - -\membersection{wxCmdLineParser::wxCmdLineParser}\label{wxcmdlineparserwxcmdlineparserctor} - -\func{}{wxCmdLineParser}{\void} - -Default constructor. You must use -\helpref{SetCmdLine}{wxcmdlineparsersetcmdline} later. - -\func{}{wxCmdLineParser}{\param{int }{argc}, \param{char** }{argv}} - -\func{}{wxCmdLineParser}{\param{int }{argc}, \param{wchar\_t** }{argv}} - -Constructors which specify the command line to parse. This is the traditional -(Unix) command line format. The parameters {\it argc} and {\it argv} have the -same meaning as for {\tt main()} function. - -The second overloaded constructor is only available in Unicode build. The -first one is available in both ANSI and Unicode modes because under some -platforms the command line arguments are passed as ASCII strings even to -Unicode programs. - -\func{}{wxCmdLineParser}{\param{const wxString\& }{cmdline}} - -Constructor which specify the command line to parse in Windows format. The parameter -{\it cmdline} has the same meaning as the corresponding parameter of -{\tt WinMain()}. - -\func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}} - -Specifies the \helpref{command line description}{wxcmdlineparsersetdesc} but not the -command line. You must use \helpref{SetCmdLine}{wxcmdlineparsersetcmdline} later. - -\func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}, \param{int }{argc}, \param{char** }{argv}} - -Specifies both the command line (in Unix format) and the -\helpref{command line description}{wxcmdlineparsersetdesc}. - -\func{}{wxCmdLineParser}{\param{const wxCmdLineEntryDesc* }{desc}, \param{const wxString\& }{cmdline}} - -Specifies both the command line (in Windows format) and the -\helpref{command line description}{wxcmdlineparsersetdesc}. - -\membersection{wxCmdLineParser::ConvertStringToArgs}\label{wxcmdlineparserconvertstringtoargs} - -\func{static wxArrayString}{ConvertStringToArgs}{\param{const wxChar }{*cmdline}} - -Breaks down the string containing the full command line in words. The words are -separated by whitespace. The quotes can be used in the input string to quote -the white space and the back slashes can be used to quote the quotes. - - -\membersection{wxCmdLineParser::SetCmdLine}\label{wxcmdlineparsersetcmdline} - -\func{void}{SetCmdLine}{\param{int }{argc}, \param{char** }{argv}} - -\func{void}{SetCmdLine}{\param{int }{argc}, \param{wchar\_t** }{argv}} - -Set command line to parse after using one of the constructors which don't do it. -The second overload of this function is only available in Unicode build. - -\func{void}{SetCmdLine}{\param{const wxString\& }{cmdline}} - -Set command line to parse after using one of the constructors which don't do it. - - - -\membersection{wxCmdLineParser::\destruct{wxCmdLineParser}}\label{wxcmdlineparserdtor} - -\func{}{\destruct{wxCmdLineParser}}{\void} - -Frees resources allocated by the object. - -{\bf NB:} destructor is not virtual, don't use this class polymorphically. - - -\membersection{wxCmdLineParser::SetSwitchChars}\label{wxcmdlineparsersetswitchchars} - -\func{void}{SetSwitchChars}{\param{const wxString\& }{switchChars}} - -{\it switchChars} contains all characters with which an option or switch may -start. Default is {\tt "-"} for Unix, {\tt "-/"} for Windows. - - -\membersection{wxCmdLineParser::EnableLongOptions}\label{wxcmdlineparserenablelongoptions} - -\func{void}{EnableLongOptions}{\param{bool }{enable = true}} - -Enable or disable support for the long options. - -As long options are not (yet) POSIX-compliant, this option allows to disable -them. - -\wxheading{See also} - -\helpref{Customization}{wxcmdlineparsercustomization} and \helpref{AreLongOptionsEnabled}{wxcmdlineparserarelongoptionsenabled} - - -\membersection{wxCmdLineParser::DisableLongOptions}\label{wxcmdlineparserdisablelongoptions} - -\func{void}{DisableLongOptions}{\void} - -Identical to \helpref{EnableLongOptions(false)}{wxcmdlineparserenablelongoptions}. - - -\membersection{wxCmdLineParser::AreLongOptionsEnabled}\label{wxcmdlineparserarelongoptionsenabled} - -\func{bool}{AreLongOptionsEnabled}{\void} - -Returns true if long options are enabled, otherwise false. - -\wxheading{See also} - -\helpref{EnableLongOptions}{wxcmdlineparserenablelongoptions} - - -\membersection{wxCmdLineParser::SetLogo}\label{wxcmdlineparsersetlogo} - -\func{void}{SetLogo}{\param{const wxString\& }{logo}} - -{\it logo} is some extra text which will be shown by -\helpref{Usage}{wxcmdlineparserusage} method. - - -\membersection{wxCmdLineParser::SetDesc}\label{wxcmdlineparsersetdesc} - -\func{void}{SetDesc}{\param{const wxCmdLineEntryDesc* }{desc}} - -Construct the command line description - -Take the command line description from the wxCMD\_LINE\_NONE terminated table. - -Example of usage: - -\begin{verbatim} -static const wxCmdLineEntryDesc cmdLineDesc[] = -{ - { wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" }, - { wxCMD_LINE_SWITCH, "q", "quiet", "be quiet" }, - - { wxCMD_LINE_OPTION, "o", "output", "output file" }, - { wxCMD_LINE_OPTION, "i", "input", "input dir" }, - { wxCMD_LINE_OPTION, "s", "size", "output block size", wxCMD_LINE_VAL_NUMBER }, - { wxCMD_LINE_OPTION, "d", "date", "output file date", wxCMD_LINE_VAL_DATE }, - - { wxCMD_LINE_PARAM, NULL, NULL, "input file", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE }, - - { wxCMD_LINE_NONE } -}; - -wxCmdLineParser parser; - -parser.SetDesc(cmdLineDesc); -\end{verbatim} - - -\membersection{wxCmdLineParser::AddSwitch}\label{wxcmdlineparseraddswitch} - -\func{void}{AddSwitch}{\param{const wxString\& }{name}, \param{const wxString\& }{lng = wxEmptyString}, \param{const wxString\& }{desc = wxEmptyString}, \param{int }{flags = 0}} - -Add a switch {\it name} with an optional long name {\it lng} (no long name if it -is empty, which is default), description {\it desc} and flags {\it flags} to the -command line description. - - -\membersection{wxCmdLineParser::AddOption}\label{wxcmdlineparseraddoption} - -\func{void}{AddOption}{\param{const wxString\& }{name}, \param{const wxString\& }{lng = wxEmptyString}, \param{const wxString\& }{desc = wxEmptyString}, \param{wxCmdLineParamType }{type = wxCMD\_LINE\_VAL\_STRING}, \param{int }{flags = 0}} - -Add an option {\it name} with an optional long name {\it lng} (no long name if -it is empty, which is default) taking a value of the given type (string by -default) to the command line description. - - -\membersection{wxCmdLineParser::AddParam}\label{wxcmdlineparseraddparam} - -\func{void}{AddParam}{\param{const wxString\& }{desc = wxEmptyString}, \param{wxCmdLineParamType }{type = wxCMD\_LINE\_VAL\_STRING}, \param{int }{flags = 0}} - -Add a parameter of the given {\it type} to the command line description. - - -\membersection{wxCmdLineParser::Parse}\label{wxcmdlineparserparse} - -\func{int}{Parse}{\param{bool }{giveUsage = {\tt true}}} - -Parse the command line, return $0$ if ok, $-1$ if {\tt "-h"} or {\tt "--help"} -option was encountered and the help message was given or a positive value if a -syntax error occurred. - -\wxheading{Parameters} - -\docparam{giveUsage}{If {\tt true} (default), the usage message is given if a -syntax error was encountered while parsing the command line or if help was -requested. If {\tt false}, only error messages about possible syntax errors -are given, use \helpref{Usage}{wxcmdlineparserusage} to show the usage message -from the caller if needed.} - - -\membersection{wxCmdLineParser::Usage}\label{wxcmdlineparserusage} - -\func{void}{Usage}{\void} - -Give the standard usage message describing all program options. It will use the -options and parameters descriptions specified earlier, so the resulting message -will not be helpful to the user unless the descriptions were indeed specified. - -\wxheading{See also} - -\helpref{SetLogo}{wxcmdlineparsersetlogo} - - -\membersection{wxCmdLineParser::Found}\label{wxcmdlineparserfound} - -\constfunc{bool}{Found}{\param{const wxString\& }{name}} - -Returns \true if the given switch was found, false otherwise. - -\constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{wxString* }{value}} - -Returns \true if an option taking a string value was found and stores the -value in the provided pointer (which should not be NULL). - -\constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{long* }{value}} - -Returns \true if an option taking an integer value was found and stores -the value in the provided pointer (which should not be NULL). - -\constfunc{bool}{Found}{\param{const wxString\& }{name}, \param{wxDateTime* }{value}} - -Returns \true if an option taking a date value was found and stores the -value in the provided pointer (which should not be NULL). - - -\membersection{wxCmdLineParser::GetParamCount}\label{wxcmdlineparsergetparamcount} - -\constfunc{size\_t}{GetParamCount}{\void} - -Returns the number of parameters found. This function makes sense mostly if you -had used {\tt wxCMD\_LINE\_PARAM\_MULTIPLE} flag. - - -\membersection{wxCmdLineParser::GetParam}\label{wxcmdlineparsergetparam} - -\constfunc{wxString}{GetParam}{\param{size\_t }{n = 0u}} - -Returns the value of Nth parameter (as string only). - -\wxheading{See also} - -\helpref{GetParamCount}{wxcmdlineparsergetparamcount} - diff --git a/docs/latex/wx/cmdproc.tex b/docs/latex/wx/cmdproc.tex deleted file mode 100644 index f5ae20501d..0000000000 --- a/docs/latex/wx/cmdproc.tex +++ /dev/null @@ -1,194 +0,0 @@ -\section{\class{wxCommandProcessor}}\label{wxcommandprocessor} - -wxCommandProcessor is a class that maintains a history of wxCommands, -with undo/redo functionality built-in. Derive a new class from this -if you want different behaviour. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxCommandProcessor overview}{wxcommandprocessoroverview}, \helpref{wxCommand}{wxcommand} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxCommandProcessor::wxCommandProcessor}\label{wxcommandprocessorctor} - -\func{}{wxCommandProcessor}{\param{int}{ maxCommands = $-1$}} - -Constructor. - -{\it maxCommands} may be set to a positive integer to limit the number of -commands stored to it, otherwise (and by default) the list of commands can grow -arbitrarily. - - -\membersection{wxCommandProcessor::\destruct{wxCommandProcessor}}\label{wxcommandprocessordtor} - -\func{}{\destruct{wxCommandProcessor}}{\void} - -Destructor. - - -\membersection{wxCommandProcessor::CanUndo}\label{wxcommandprocessorcanundo} - -\func{virtual bool}{CanUndo}{\void} - -Returns true if the currently-active command can be undone, false otherwise. - - -\membersection{wxCommandProcessor::ClearCommands}\label{wxcommandprocessorclearcommands} - -\func{virtual void}{ClearCommands}{\void} - -Deletes all commands in the list and sets the current command pointer to \NULL. - - -\membersection{wxCommandProcessor::Redo}\label{wxcommandprocessorredo} - -\func{virtual bool}{Redo}{\void} - -Executes (redoes) the current command (the command that has just been undone if any). - - -\membersection{wxCommandProcessor::GetCommands}\label{wxcommandprocessorgetcommands} - -\constfunc{wxList\&}{GetCommands}{\void} - -Returns the list of commands. - - -\membersection{wxCommandProcessor::GetMaxCommands}\label{wxcommandprocessorgetmaxcommands} - -\constfunc{int}{GetMaxCommands}{\void} - -Returns the maximum number of commands that the command processor stores. - - -\membersection{wxCommandProcessor::GetEditMenu}\label{wxcommandprocessorgeteditmenu} - -\constfunc{wxMenu*}{GetEditMenu}{\void} - -Returns the edit menu associated with the command processor. - - -\membersection{wxCommandProcessor::GetRedoAccelerator}\label{wxcommandprocessorgetredoaccelerator} - -\constfunc{const wxString\&}{GetRedoAccelerator}{\void} - -Returns the string that will be appended to the Redo menu item. - - -\membersection{wxCommandProcessor::GetRedoMenuLabel}\label{wxcommandprocessorgetredomenulabel} - -\constfunc{wxString}{GetRedoMenuLabel}{\void} - -Returns the string that will be shown for the redo menu item. - - -\membersection{wxCommandProcessor::GetUndoAccelerator}\label{wxcommandprocessorgetundoaccelerator} - -\constfunc{const wxString\&}{GetUndoAccelerator}{\void} - -Returns the string that will be appended to the Undo menu item. - - -\membersection{wxCommandProcessor::GetUndoMenuLabel}\label{wxcommandprocessorgetundomenulabel} - -\constfunc{wxString}{GetUndoMenuLabel}{\void} - -Returns the string that will be shown for the undo menu item. - - -\membersection{wxCommandProcessor::Initialize}\label{wxcommandprocessorinitialize} - -\func{virtual void}{Initialize}{\void} - -Initializes the command processor, setting the current command to the -last in the list (if any), and updating the edit menu (if one has been -specified). - - -\membersection{wxCommandProcessor::IsDirty}\label{wxcommandprocessorisdirty} - -\func{virtual bool}{IsDirty}{\void} - -Returns a boolean value that indicates if changes have been made since -the last save operation. This only works if -\helpref{wxCommandProcessor::MarkAsSaved}{wxcommandprocessormarkassaved} -is called whenever the project is saved. - - -\membersection{wxCommandProcessor::MarkAsSaved}\label{wxcommandprocessormarkassaved} - -\func{virtual void}{MarkAsSaved}{\void} - -You must call this method whenever the project is saved if you plan to use -\helpref{wxCommandProcessor::IsDirty}{wxcommandprocessorisdirty}. - - -\membersection{wxCommandProcessor::SetEditMenu}\label{wxcommandprocessorseteditmenu} - -\func{void}{SetEditMenu}{\param{wxMenu* }{menu}} - -Tells the command processor to update the Undo and Redo items on this -menu as appropriate. Set this to NULL if the menu is about to be -destroyed and command operations may still be performed, or the command -processor may try to access an invalid pointer. - - -\membersection{wxCommandProcessor::SetMenuStrings}\label{wxcommandprocessorsetmenustrings} - -\func{void}{SetMenuStrings}{\void} - -Sets the menu labels according to the currently set menu and the current -command state. - - -\membersection{wxCommandProcessor::SetRedoAccelerator}\label{wxcommandprocessorsetredoaccelerator} - -\func{void}{SetRedoAccelerator}{\param{const wxString\&}{accel}} - -Sets the string that will be appended to the Redo menu item. - - -\membersection{wxCommandProcessor::SetUndoAccelerator}\label{wxcommandprocessorsetundoaccelerator} - -\func{void}{SetUndoAccelerator}{\param{const wxString\&}{accel}} - -Sets the string that will be appended to the Undo menu item. - - -\membersection{wxCommandProcessor::Submit}\label{wxcommandprocessorsubmit} - -\func{virtual bool}{Submit}{\param{wxCommand *}{command}, \param{bool}{ storeIt = true}} - -Submits a new command to the command processor. The command processor -calls wxCommand::Do to execute the command; if it succeeds, the command -is stored in the history list, and the associated edit menu (if any) updated -appropriately. If it fails, the command is deleted -immediately. Once Submit has been called, the passed command should not -be deleted directly by the application. - -{\it storeIt} indicates whether the successful command should be stored -in the history list. - - -\membersection{wxCommandProcessor::Undo}\label{wxcommandprocessorundo} - -\func{virtual bool}{Undo}{\void} - -Undoes the command just executed. - - diff --git a/docs/latex/wx/cntxtevt.tex b/docs/latex/wx/cntxtevt.tex deleted file mode 100644 index 3b0ef5b107..0000000000 --- a/docs/latex/wx/cntxtevt.tex +++ /dev/null @@ -1,66 +0,0 @@ -\section{\class{wxContextMenuEvent}}\label{wxcontextmenuevent} - -This class is used for context menu events, sent to give -the application a chance to show a context (popup) menu. - -Note that if \helpref{GetPosition}{wxcontextmenueventgetposition} returns wxDefaultPosition, this means that the event originated -from a keyboard context button event, and you should compute a suitable position yourself, -for example by calling \helpref{wxGetMousePosition}{wxgetmouseposition}. - -When a keyboard context menu button is pressed on Windows, a right-click event with default position is sent first, -and if this event is not processed, the context menu event is sent. So if you process mouse events and you find your context menu event handler -is not being called, you could call wxEvent::Skip for mouse right-down events. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a menu event, use these event handler macros to direct input to member -functions that take a wxContextMenuEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_CONTEXT\_MENU(func)}}{A right click (or other context menu command depending on platform) has been detected.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Command events}{wxcommandevent},\\ -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxContextMenuEvent::wxContextMenuEvent}\label{wxcontextmenueventctor} - -\func{}{wxContextMenuEvent}{\param{WXTYPE }{id = 0}, \param{int }{id = 0}, \param{const wxPoint\&}{ pos=wxDefaultPosition}} - -Constructor. - -\membersection{wxContextMenuEvent::GetPosition}\label{wxcontextmenueventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the position in screen coordinates at which the menu should be shown. Use \helpref{wxWindow::ScreenToClient}{wxwindowscreentoclient} to -convert to client coordinates. You can also omit a position from \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu} in order to use -the current mouse pointer position. - -If the event originated from a keyboard event, the value returned from this function will be wxDefaultPosition. - -\membersection{wxContextMenuEvent::SetPosition}\label{wxcontextmenueventsetposition} - -\func{void}{SetPosition}{\param{const wxPoint\&}{ point}} - -Sets the position at which the menu should be shown. - diff --git a/docs/latex/wx/collpane.tex b/docs/latex/wx/collpane.tex deleted file mode 100644 index 4bce0e9cbe..0000000000 --- a/docs/latex/wx/collpane.tex +++ /dev/null @@ -1,237 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: collpane.tex -%% Purpose: wxCollapsiblePane documentation -%% Author: Francesco Montorsi -%% Created: 2006-10-14 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxCollapsiblePane}}\label{wxcollapsiblepane} - -A collapsible pane is a container with an embedded button-like control which can be -used by the user to collapse or expand the pane's contents. - -Once constructed you should use the \helpref{GetPane}{wxcollapsiblepanegetpane} -function to access the pane and add your controls inside it (i.e. use the -\helpref{GetPane}{wxcollapsiblepanegetpane}'s returned pointer as parent for the -controls which must go in the pane, NOT the wxCollapsiblePane itself!). - -Note that because of its nature of control which can dynamically (and drastically) -change its size at run-time under user-input, when putting wxCollapsiblePane inside -a \helpref{wxSizer}{wxsizer} you should be careful to add it with a proportion value -of zero; this is because otherwise all other windows with non-null proportion values -would automatically get resized each time the user expands or collapse the pane window -resulting usually in a weird, flickering effect. - -Usage sample: - -\begin{verbatim} - wxCollapsiblePane *collpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Details:")); - - // add the pane with a zero proportion value to the 'sz' sizer which contains it - sz->Add(collpane, 0, wxGROW|wxALL, 5); - - // now add a test label in the collapsible pane using a sizer to layout it: - wxWindow *win = collpane->GetPane(); - wxSizer *paneSz = new wxBoxSizer(wxVERTICAL); - paneSz->Add(new wxStaticText(win, wxID_ANY, wxT("test!")), 1, wxGROW|wxALL, 2); - win->SetSizer(paneSz); - paneSz->SetSizeHints(win); - -\end{verbatim} - - -It is only available if \texttt{wxUSE\_COLLPANE} is set to $1$ (the default). - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCP\_DEFAULT\_STYLE}}{The default style: 0.} -\end{twocollist} - -\wxheading{Event handling} - -To process a collapsible pane event, use these event handler macros to direct input to member -functions that take a \helpref{wxCollapsiblePaneEvent}{wxcollapsiblepaneevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COLLAPSIBLEPANE\_CHANGED(id, func)}}{The user showed or hidden the collapsible pane. } -\end{twocollist} - - -\wxheading{See also} - -\helpref{wxPanel}{wxpanel},\\ -\helpref{wxCollapsiblePaneEvent}{wxcollapsiblepaneevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - - -\membersection{wxCollapsiblePane::wxCollapsiblePane}\label{wxcollapsiblepanector} - -\func{}{wxCollapsiblePane}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxCP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``collapsiblePane"}} - -Initializes the object and calls \helpref{Create}{wxcollapsiblepanecreate} with -all the parameters. - - -\membersection{wxCollapsiblePane::Create}\label{wxcollapsiblepanecreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxCP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``collapsiblePane"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{label}{The initial label shown in the button which allows the user to expand or collapse the pane window.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxCP\_*} flags.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxCollapsiblePane::IsCollapsed}\label{wxcollapsiblepaneiscollapsed} - -\constfunc{bool}{IsCollapsed}{\void} - -Returns \true if the pane window is currently hidden. - - -\membersection{wxCollapsiblePane::IsExpanded}\label{wxcollapsiblepaneisexpanded} - -\constfunc{bool}{IsExpanded}{\void} - -Returns \true if the pane window is currently shown. - - -\membersection{wxCollapsiblePane::Collapse}\label{wxcollapsiblepanecollapse} - -\func{void}{Collapse}{\param{bool }{collapse = true}} - -Collapses or expands the pane window. - - -\membersection{wxCollapsiblePane::Expand}\label{wxcollapsiblepaneexpand} - -\func{void}{Expand}{\void} - -Same as \texttt{\helpref{Collapse}{wxcollapsiblepanecollapse}(false)}. - - -\membersection{wxCollapsiblePane::GetPane}\label{wxcollapsiblepanegetpane} - -\constfunc{wxWindow *}{GetPane}{\void} - -Returns a pointer to the pane window. Add controls to the returned \helpref{wxWindow}{wxwindow} -to make them collapsible. - - - - - -%% wxCollapsiblePaneEvent documentation - -\section{\class{wxCollapsiblePaneEvent}}\label{wxcollapsiblepaneevent} - -This event class is used for the events generated by -\helpref{wxCollapsiblePane}{wxcollapsiblepane}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxCollapsiblePane, use one of these event handler macros to -direct input to member function that take a -\helpref{wxCollapsiblePaneEvent}{wxcollapsiblepaneevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_COLLAPSIBLEPANE\_CHANGED(id, func)}}{The user showed or hidden the collapsible pane.} -\end{twocollist}% - - -\wxheading{See also} - -\helpref{wxCollapsiblePane}{wxcollapsiblepane} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCollapsiblePaneEvent::wxCollapsiblePaneEvent}\label{wxcollapsiblepaneeventctor} - -\func{}{wxCollapsiblePaneEvent}{\param{wxObject *}{ generator}, \param{int}{ id}, \param{bool}{ collapsed}} - -The constructor is not normally used by the user code. - - -\membersection{wxCollapsiblePaneEvent::GetCollapsed}\label{wxcollapsiblepaneeventgetcollapsed} - -\constfunc{bool}{GetCollapsed}{\void} - -Returns \true if the pane has been collapsed. - - -\membersection{wxCollapsiblePaneEvent::SetCollapsed}\label{wxcollapsiblepaneeventsetcollapsed} - -\func{void}{SetCollapsed}{\param{bool}{ collapsed}} - -Sets this as a collapsed pane event (if \arg{collapsed} is \true) or as an expanded -pane event (if \arg{collapsed} is \false). - diff --git a/docs/latex/wx/colordlg.tex b/docs/latex/wx/colordlg.tex deleted file mode 100644 index 3b754802e9..0000000000 --- a/docs/latex/wx/colordlg.tex +++ /dev/null @@ -1,70 +0,0 @@ -\section{\class{wxColourDialog}}\label{wxcolourdialog} - -This class represents the colour chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxColourDialog Overview}{wxcolourdialogoverview},\\ -\helpref{wxColour}{wxcolour},\\ -\helpref{wxColourData}{wxcolourdata},\\ -\helpref{wxGetColourFromUser}{wxgetcolourfromuser} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxColourDialog::wxColourDialog}\label{wxcolourdialogctor} - -\func{}{wxColourDialog}{\param{wxWindow* }{parent}, \param{wxColourData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of colour -data, which will be copied to the colour dialog's colour data. Custom -colours from colour data object will be be used in dialog's colour palette. -Invalid entries in custom colours list will be ignored on some platforms (GTK) -or replaced with white colour on platforms where custom colours palette has -fixed size (MSW). - -\wxheading{See also} - -\helpref{wxColourData}{wxcolourdata} - -\membersection{wxColourDialog::\destruct{wxColourDialog}}\label{wxcolourdialogdtor} - -\func{}{\destruct{wxColourDialog}}{\void} - -Destructor. - -\membersection{wxColourDialog::Create}\label{wxcolourdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxColourData* }{data = NULL}} - -Same as \helpref{constructor}{wxcolourdialogctor}. - -\membersection{wxColourDialog::GetColourData}\label{wxcolourdialoggetcolourdata} - -\func{wxColourData\&}{GetColourData}{\void} - -Returns the \helpref{colour data}{wxcolourdata} associated with the colour dialog. - -\membersection{wxColourDialog::ShowModal}\label{wxcolourdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/colour.tex b/docs/latex/wx/colour.tex deleted file mode 100644 index 0109378a5b..0000000000 --- a/docs/latex/wx/colour.tex +++ /dev/null @@ -1,411 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: colour.tex -%% Purpose: wxColour docs -%% Author: -%% Modified by: Francesco Montorsi -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxColour}}\label{wxcolour} - -A colour is an object representing a combination of Red, Green, and Blue (RGB) intensity values, -and is used to determine drawing colours. See the -entry for \helpref{wxColourDatabase}{wxcolourdatabase} for how a pointer to a predefined, -named colour may be returned instead of creating a new colour. - -Valid RGB values are in the range 0 to 255. - -You can retrieve the current system colour settings with \helpref{wxSystemSettings}{wxsystemsettings}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullColour} - -Pointers: - -{\bf wxBLACK\\ -wxWHITE\\ -wxRED\\ -wxBLUE\\ -wxGREEN\\ -wxCYAN\\ -wxLIGHT\_GREY} - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase}, \helpref{wxPen}{wxpen}, \helpref{wxBrush}{wxbrush},\rtfsp -\helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxSystemSettings}{wxsystemsettings} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxColour::wxColour}\label{wxcolourconstr} - -\func{}{wxColour}{\void} - -Default constructor. - -\func{}{wxColour}{\param{unsigned char}{ red}, \param{unsigned char}{ green}, \param{unsigned char}{ blue}, \param{unsigned char}{ alpha=wxALPHA\_OPAQUE}} - -Constructs a colour from red, green, blue and alpha values. - -\func{}{wxColour}{\param{const wxString\& }{colourNname}} - -Constructs a colour using the given string. See \helpref{Set}{wxcolourset} for more info. - -\func{}{wxColour}{\param{const wxColour\&}{ colour}} - -Copy constructor. - -\wxheading{Parameters} - -\docparam{red}{The red value.} - -\docparam{green}{The green value.} - -\docparam{blue}{The blue value.} - -\docparam{alpha}{The alpha value. Alpha values range from 0 (wxALPHA\_TRANSPARENT) to 255 (wxALPHA\_OPAQUE).} - -\docparam{colourName}{The colour name.} - -\docparam{colour}{The colour to copy.} - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf wxColour(red=0, green=0, blue=0)}}{} -\twocolitem{{\bf wxNamedColour(name)}}{} -\end{twocollist}} -} - - - -\membersection{wxColour::Alpha}\label{wxcolouralpha} - -\constfunc{unsigned char}{Alpha}{\void} - -Returns the alpha value, on platforms where alpha is not yet supported, this always returns wxALPHA\_OPAQUE. - - -\membersection{wxColour::Blue}\label{wxcolourblue} - -\constfunc{unsigned char}{Blue}{\void} - -Returns the blue intensity. - - -\membersection{wxColour::GetAsString}\label{wxcolourgetasstring} - -\constfunc{wxString}{GetAsString}{\param{long}{ flags}} - -Converts this colour to a \helpref{wxString}{wxstring} -using the given {\it flags}. - -The supported flags are \textbf{wxC2S\_NAME}, to obtain the colour name (e.g. -wxColour(255,0,0) -> \texttt{``red"}), \textbf{wxC2S\_CSS\_SYNTAX}, to obtain -the colour in the \texttt{``rgb(r,g,b)"} or \texttt{``rgba(r,g,b,a)"} syntax -(e.g. wxColour(255,0,0,85) -> \texttt{``rgba(255,0,0,0.333)"}), and -\textbf{wxC2S\_HTML\_SYNTAX}, to obtain the colour as \texttt{``\#"} followed -by 6 hexadecimal digits (e.g. wxColour(255,0,0) -> \texttt{``\#FF0000"}). - -This function never fails and always returns a non-empty string but asserts if -the colour has alpha channel (i.e. is non opaque) but -\textbf{wxC2S\_CSS\_SYNTAX} (which is the only one supporting alpha) is not -specified in flags. - -\newsince{2.7.0} - - -\membersection{wxColour::GetPixel}\label{wxcolourgetpixel} - -\constfunc{long}{GetPixel}{\void} - -Returns a pixel value which is platform-dependent. On Windows, a COLORREF is returned. -On X, an allocated pixel value is returned. - --1 is returned if the pixel is invalid (on X, unallocated). - - -\membersection{wxColour::Green}\label{wxcolourgreen} - -\constfunc{unsigned char}{Green}{\void} - -Returns the green intensity. - - -\membersection{wxColour::IsOk}\label{wxcolourisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if the colour object is valid (the colour has been initialised with RGB values). - - -\membersection{wxColour::Red}\label{wxcolourred} - -\constfunc{unsigned char}{Red}{\void} - -Returns the red intensity. - - -\membersection{wxColour::Set}\label{wxcolourset} - -\func{void}{Set}{\param{unsigned char}{ red}, \param{unsigned char}{ green}, \param{unsigned char}{ blue}, \param{unsigned char}{ alpha=wxALPHA\_OPAQUE}} - -\func{void}{Set}{\param{unsigned long}{ RGB}} - -\func{bool}{Set}{\param{const wxString \&}{ str}} - -Sets the RGB intensity values using the given values (first overload), extracting them from the packed long (second overload), using the given string (third overloard). - -When using third form, Set() accepts: colour names (those listed in -\helpref{wxTheColourDatabase}{wxcolourdatabase}), the CSS-like -\texttt{``rgb(r,g,b)"} or \texttt{``rgba(r,g,b,a)"} syntax (case insensitive) -and the HTML-like syntax (i.e. \texttt{``\#"} followed by 6 hexadecimal digits -for red, green, blue components). - -Returns \true if the conversion was successful, \false otherwise. - -\newsince{2.7.0} - - -\membersection{wxColour::operator $=$}\label{wxcolourassign} - -\func{wxColour\&}{operator $=$}{\param{const wxColour\&}{ colour}} - -Assignment operator, taking another colour object. - -\func{wxColour\&}{operator $=$}{\param{const wxString\&}{ colourName}} - -Assignment operator, using a colour name to be found in the colour database. - -\wxheading{See also} - -\helpref{wxColourDatabase}{wxcolourdatabase} - - -\membersection{wxColour::operator $==$}\label{wxcolourequality} - -\func{bool}{operator $==$}{\param{const wxColour\&}{ colour}} - -Tests the equality of two colours by comparing individual red, green, blue colours and alpha values. - - -\membersection{wxColour::operator $!=$}\label{wxcolourinequality} - -\func{bool}{operator $!=$}{\param{const wxColour\&}{ colour}} - -Tests the inequality of two colours by comparing individual red, green, blue colours and alpha values. - -\section{\class{wxColourData}}\label{wxcolourdata} - -This class holds a variety of information related to colour dialogs. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxColour}{wxcolour}, \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxColourDialog overview}{wxcolourdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxColourData::wxColourData}\label{wxcolourdatactor} - -\func{}{wxColourData}{\void} - -Constructor. Initializes the custom colours to {\tt wxNullColour}, -the {\it data colour} setting -to black, and the {\it choose full} setting to true. - - -\membersection{wxColourData::\destruct{wxColourData}}\label{wxcolourdatadtor} - -\func{}{\destruct{wxColourData}}{\void} - -Destructor. - - -\membersection{wxColourData::GetChooseFull}\label{wxcolourdatagetchoosefull} - -\constfunc{bool}{GetChooseFull}{\void} - -Under Windows, determines whether the Windows colour dialog will display the full dialog -with custom colour selection controls. Under PalmOS, determines whether colour dialog -will display full rgb colour picker or only available palette indexer. -Has no meaning under other platforms. - -The default value is true. - - -\membersection{wxColourData::GetColour}\label{wxcolourdatagetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Gets the current colour associated with the colour dialog. - -The default colour is black. - - -\membersection{wxColourData::GetCustomColour}\label{wxcolourdatagetcustomcolour} - -\constfunc{wxColour\&}{GetCustomColour}{\param{int}{ i}} - -Gets the {\it i}th custom colour associated with the colour dialog. {\it i} should -be an integer between 0 and 15. - -The default custom colours are invalid colours. - - -\membersection{wxColourData::SetChooseFull}\label{wxcolourdatasetchoosefull} - -\func{void}{SetChooseFull}{\param{const bool }{flag}} - -Under Windows, tells the Windows colour dialog to display the full dialog -with custom colour selection controls. Under other platforms, has no effect. - -The default value is true. - - -\membersection{wxColourData::SetColour}\label{wxcolourdatasetcolour} - -\func{void}{SetColour}{\param{const wxColour\&}{ colour}} - -Sets the default colour for the colour dialog. - -The default colour is black. - - -\membersection{wxColourData::SetCustomColour}\label{wxcolourdatasetcustomcolour} - -\func{void}{SetCustomColour}{\param{int}{ i}, \param{const wxColour\&}{ colour}} - -Sets the {\it i}th custom colour for the colour dialog. {\it i} should -be an integer between 0 and 15. - -The default custom colours are invalid colours. - - -\membersection{wxColourData::operator $=$}\label{wxcolourdataassign} - -\func{void}{operator $=$}{\param{const wxColourData\&}{ data}} - -Assignment operator for the colour data. - - - - -\section{\class{wxColourDatabase}}\label{wxcolourdatabase} - -wxWidgets maintains a database of standard RGB colours for a predefined -set of named colours (such as ``BLACK'', ``LIGHT GREY''). The -application may add to this set if desired by using -\helpref{AddColour}{wxcolourdatabaseaddcolour} and may use it to look up -colours by names using \helpref{Find}{wxcolourdatabasefind} or find the names -for the standard colour suing \helpref{FindName}{wxcolourdatabasefindname}. - -There is one predefined instance of this class called -{\bf wxTheColourDatabase}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -The standard database contains at least the following colours: - -AQUAMARINE, BLACK, BLUE, BLUE VIOLET, BROWN, CADET BLUE, CORAL, -CORNFLOWER BLUE, CYAN, DARK GREY, DARK GREEN, DARK OLIVE GREEN, DARK -ORCHID, DARK SLATE BLUE, DARK SLATE GREY DARK TURQUOISE, DIM GREY, -FIREBRICK, FOREST GREEN, GOLD, GOLDENROD, GREY, GREEN, GREEN YELLOW, -INDIAN RED, KHAKI, LIGHT BLUE, LIGHT GREY, LIGHT STEEL BLUE, LIME GREEN, -MAGENTA, MAROON, MEDIUM AQUAMARINE, MEDIUM BLUE, MEDIUM FOREST GREEN, -MEDIUM GOLDENROD, MEDIUM ORCHID, MEDIUM SEA GREEN, MEDIUM SLATE BLUE, -MEDIUM SPRING GREEN, MEDIUM TURQUOISE, MEDIUM VIOLET RED, MIDNIGHT BLUE, -NAVY, ORANGE, ORANGE RED, ORCHID, PALE GREEN, PINK, PLUM, PURPLE, RED, -SALMON, SEA GREEN, SIENNA, SKY BLUE, SLATE BLUE, SPRING GREEN, STEEL -BLUE, TAN, THISTLE, TURQUOISE, VIOLET, VIOLET RED, WHEAT, WHITE, YELLOW, -YELLOW GREEN. - -\wxheading{See also} - -\helpref{wxColour}{wxcolour} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxColourDatabase::wxColourDatabase}\label{wxcolourdatabaseconstr} - -\func{}{wxColourDatabase}{\void} - -Constructs the colour database. It will be initialized at the first use. - - -\membersection{wxColourDatabase::AddColour}\label{wxcolourdatabaseaddcolour} - -\func{void}{AddColour}{\param{const wxString\& }{colourName}, \param{const wxColour\&}{colour}} - -\func{void}{AddColour}{\param{const wxString\& }{colourName}, \param{wxColour* }{colour}} - -Adds a colour to the database. If a colour with the same name already exists, -it is replaced. - -Please note that the overload taking a pointer is deprecated and will be -removed in the next wxWidgets version, please don't use it. - - -\membersection{wxColourDatabase::Find}\label{wxcolourdatabasefind} - -\func{wxColour}{Find}{\param{const wxString\& }{colourName}} - -Finds a colour given the name. Returns an invalid colour object (that is, such -that its \helpref{Ok()}{wxcolourisok} method returns \false) if the colour wasn't -found in the database. - - -\membersection{wxColourDatabase::FindName}\label{wxcolourdatabasefindname} - -\constfunc{wxString}{FindName}{\param{const wxColour\&}{ colour}} - -Finds a colour name given the colour. Returns an empty string if the colour is -not found in the database. - diff --git a/docs/latex/wx/combobox.tex b/docs/latex/wx/combobox.tex deleted file mode 100644 index 6c4bee1ae9..0000000000 --- a/docs/latex/wx/combobox.tex +++ /dev/null @@ -1,340 +0,0 @@ -\section{\class{wxComboBox}}\label{wxcombobox} - -A combobox is like a combination of an edit control and a listbox. It can be -displayed as static list with editable or read-only text field; or a drop-down list with -text field; or a drop-down list without a text field. - -A combobox permits a single selection only. Combobox items are numbered from zero. - -If you need a customized combobox, have a look at \helpref{wxComboCtrl}{wxcomboctrl}, -\helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}, \helpref{wxComboPopup}{wxcombopopup} -and the ready-to-use \helpref{wxBitmapComboBox}{wxbitmapcombobox}. - -\wxheading{Derived from} - -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCB\_SIMPLE}}{Creates a combobox with a permanently displayed list. Windows only. } -\twocolitem{\windowstyle{wxCB\_DROPDOWN}}{Creates a combobox with a drop-down list.} -\twocolitem{\windowstyle{wxCB\_READONLY}}{Same as wxCB\_DROPDOWN but only the -strings specified as the combobox choices can be selected, it is impossible to -select (even from a program) a string which is not in the choices list.} -\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries in the list alphabetically.} -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the event wxEVT\_COMMAND\_TEXT\_ENTER (otherwise pressing Enter key -is either processed internally by the control or used for navigation between -dialog controls). Windows only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event, -when an item on the list is selected. Note that calling -\helpref{GetValue}{wxcomboboxgetvalue} returns the new value of selection.} -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event, -when the combobox text changes.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_ENTER event, -when is pressed in the combobox (notice that the combobox must have -been created with \texttt{wxTE\_PROCESS\_ENTER} style to receive this event).} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox}, \helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxChoice}{wxchoice}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxComboBox::wxComboBox}\label{wxcomboboxctor} - -\func{}{wxComboBox}{\void} - -Default constructor. - -\func{}{wxComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{}{wxComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Constructor, creating and showing a combobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial selection string. An empty string indicates no selection.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxComboBox}{wxcombobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxComboBox::Create}{wxcomboboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxComboBox constructor in wxPython reduces the {\tt n} -and {\tt choices} arguments are to a single argument, which is -a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - - -\membersection{wxComboBox::\destruct{wxComboBox}}\label{wxcomboboxdtor} - -\func{}{\destruct{wxComboBox}}{\void} - -Destructor, destroying the combobox. - - -\membersection{wxComboBox::Create}\label{wxcomboboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Creates the combobox for two-step construction. Derived classes -should call or replace this function. See \helpref{wxComboBox::wxComboBox}{wxcomboboxctor}\rtfsp -for further details. - - -\membersection{wxComboBox::CanCopy}\label{wxcomboboxcancopy} - -\constfunc{bool}{CanCopy}{\void} - -Returns true if the combobox is editable and there is a text selection to copy to the clipboard. -Only available on Windows. - - -\membersection{wxComboBox::CanCut}\label{wxcomboboxcancut} - -\constfunc{bool}{CanCut}{\void} - -Returns true if the combobox is editable and there is a text selection to copy to the clipboard. -Only available on Windows. - - -\membersection{wxComboBox::CanPaste}\label{wxcomboboxcanpaste} - -\constfunc{bool}{CanPaste}{\void} - -Returns true if the combobox is editable and there is text on the clipboard that can be pasted into the -text field. Only available on Windows. - - -\membersection{wxComboBox::CanRedo}\label{wxcomboboxcanredo} - -\constfunc{bool}{CanRedo}{\void} - -Returns true if the combobox is editable and the last undo can be redone. -Only available on Windows. - - -\membersection{wxComboBox::CanUndo}\label{wxcomboboxcanundo} - -\constfunc{bool}{CanUndo}{\void} - -Returns true if the combobox is editable and the last edit can be undone. -Only available on Windows. - - -\membersection{wxComboBox::Copy}\label{wxcomboboxcopy} - -\func{void}{Copy}{\void} - -Copies the selected text to the clipboard. - - -\membersection{wxComboBox::Cut}\label{wxcomboboxcut} - -\func{void}{Cut}{\void} - -Copies the selected text to the clipboard and removes the selection. - - -\membersection{wxComboBox::GetCurrentSelection}\label{wxcomboboxgetcurrentselection} - -\constfunc{int}{GetCurrentSelection}{\void} - -This function does the same things as -\helpref{wxChoice::GetCurrentSelection}{wxchoicegetcurrentselection} and -returns the item currently selected in the dropdown list if it's open or the -same thing as \helpref{GetSelection}{wxcontrolwithitemsgetselection} otherwise. - - -\membersection{wxComboBox::GetInsertionPoint}\label{wxcomboboxgetinsertionpoint} - -\constfunc{long}{GetInsertionPoint}{\void} - -Returns the insertion point for the combobox's text field. - -\textbf{Note:} Under wxMSW, this function always returns $0$ if the combobox -doesn't have the focus. - - -\membersection{wxComboBox::GetLastPosition}\label{wxcomboboxgetlastposition} - -\constfunc{virtual wxTextPos}{GetLastPosition}{\void} - -Returns the last position in the combobox text field. - - -\membersection{wxComboBox::GetSelection}\label{wxcomboboxgetselection} - -\constfunc{void}{GetSelection}{\param{long *}{from}, \param{long *}{to}} - -This is the same as \helpref{wxTextCtrl::GetSelection}{wxtextctrlgetselection} -for the text control which is part of the combobox. Notice that this is a -different method from \helpref{wxControlWithItems::GetSelection}{wxcontrolwithitemsgetselection}. - -Currently this method is only implemented in wxMSW and wxGTK. - - -\membersection{wxComboBox::GetValue}\label{wxcomboboxgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the current value in the combobox text field. - - -\membersection{wxComboBox::Paste}\label{wxcomboboxpaste} - -\func{void}{Paste}{\void} - -Pastes text from the clipboard to the text field. - - -\membersection{wxComboBox::Redo}\label{wxcomboboxredo} - -\func{void}{Redo}{\void} - -Redoes the last undo in the text field. Windows only. - - -\membersection{wxComboBox::Replace}\label{wxcomboboxreplace} - -\func{void}{Replace}{\param{long}{ from}, \param{long}{ to}, \param{const wxString\& }{text}} - -Replaces the text between two positions with the given text, in the combobox text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - -\docparam{text}{The text to insert.} - - -\membersection{wxComboBox::Remove}\label{wxcomboboxremove} - -\func{void}{Remove}{\param{long}{ from}, \param{long}{ to}} - -Removes the text between the two positions in the combobox text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - - -\membersection{wxComboBox::SetInsertionPoint}\label{wxcomboboxsetinsertionpoint} - -\func{void}{SetInsertionPoint}{\param{long}{ pos}} - -Sets the insertion point in the combobox text field. - -\wxheading{Parameters} - -\docparam{pos}{The new insertion point.} - - -\membersection{wxComboBox::SetInsertionPointEnd}\label{wxcomboboxsetinsertionpointend} - -\func{void}{SetInsertionPointEnd}{\void} - -Sets the insertion point at the end of the combobox text field. - - -\membersection{wxComboBox::SetSelection}\label{wxcomboboxsetselection} - -\func{void}{SetSelection}{\param{long}{ from}, \param{long}{ to}} - -Selects the text between the two positions, in the combobox text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - -\pythonnote{This method is called {\tt SetMark} in wxPython, {\tt SetSelection} -name is kept for -\helpref{wxControlWithItems::SetSelection}{wxcontrolwithitemssetselection}.} - - -\membersection{wxComboBox::SetValue}\label{wxcomboboxsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{text}} - -Sets the text for the combobox text field. - -{\bf NB:} For a combobox with {\tt wxCB\_READONLY} style the string must be in -the combobox choices list, otherwise the call to SetValue() is ignored. - -\wxheading{Parameters} - -\docparam{text}{The text to set.} - - -\membersection{wxComboBox::Undo}\label{wxcomboboxundo} - -\func{void}{Undo}{\void} - -Undoes the last edit in the text field. Windows only. - diff --git a/docs/latex/wx/comboctrl.tex b/docs/latex/wx/comboctrl.tex deleted file mode 100644 index 1798986e0e..0000000000 --- a/docs/latex/wx/comboctrl.tex +++ /dev/null @@ -1,749 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: comboctrl.tex -%% Purpose: wxComboCtrl docs -%% Author: Jaakko Salli -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) Jaakko Salli -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxComboCtrl}}\label{wxcomboctrl} - -A combo control is a generic combobox that allows totally -custom popup. In addition it has other customization features. -For instance, position and size of the dropdown button -can be changed. - -\wxheading{Setting Custom Popup for wxComboCtrl} - -wxComboCtrl needs to be told somehow which control to use -and this is done by SetPopupControl(). However, we need -something more than just a wxControl in this method as, -for example, we need to call SetStringValue("initial text value") -and wxControl doesn't have such method. So we also need a -\helpref{wxComboPopup}{wxcombopopup} which is an interface which -must be implemented by a control to be usable as a popup. - -We couldn't derive wxComboPopup from wxControl as this would make it -impossible to have a class deriving from a wxWidgets control and from -it, so instead it is just a mix-in. - -Here's a minimal sample of \helpref{wxListView}{wxlistview} popup: - -\begin{verbatim} - -#include -#include -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -class wxListViewComboPopup : public wxListView, - public wxComboPopup -{ -public: - - // Initialize member variables - virtual void Init() - { - m_value = -1; - } - - // Create popup control - virtual bool Create(wxWindow* parent) - { - return wxListView::Create(parent,1,wxPoint(0,0),wxDefaultSize); - } - - // Return pointer to the created control - virtual wxWindow *GetControl() { return this; } - - // Translate string into a list selection - virtual void SetStringValue(const wxString& s) - { - int n = wxListView::FindItem(-1,s); - if ( n >= 0 && n < wxListView::GetItemCount() ) - wxListView::Select(n); - } - - // Get list selection as a string - virtual wxString GetStringValue() const - { - if ( m_value >= 0 ) - return wxListView::GetItemText(m_value); - return wxEmptyString; - } - - // Do mouse hot-tracking (which is typical in list popups) - void OnMouseMove(wxMouseEvent& event) - { - // TODO: Move selection to cursor - } - - // On mouse left up, set the value and close the popup - void OnMouseClick(wxMouseEvent& WXUNUSED(event)) - { - m_value = wxListView::GetFirstSelected(); - - // TODO: Send event as well - - Dismiss(); - } - -protected: - - int m_value; // current item index - -private: - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE(wxListViewComboPopup, wxListView) - EVT_MOTION(wxListViewComboPopup::OnMouseMove) - EVT_LEFT_UP(wxListViewComboPopup::OnMouseClick) -END_EVENT_TABLE() - -\end{verbatim} - -Here's how you would create and populate it in a dialog constructor: - -\begin{verbatim} - - wxComboCtrl* comboCtrl = new wxComboCtrl(this,wxID_ANY,wxEmptyString); - - wxListViewComboPopup* popupCtrl = new wxListViewComboPopup(); - - comboCtrl->SetPopupControl(popupCtrl); - - // Populate using wxListView methods - popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("First Item")); - popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("Second Item")); - popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("Third Item")); - -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCB\_READONLY}}{Text will not be editable.} -\twocolitem{\windowstyle{wxCB\_SORT}}{Sorts the entries in the list alphabetically.} -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the event wxEVT\_COMMAND\_TEXT\_ENTER (otherwise pressing Enter key -is either processed internally by the control or used for navigation between -dialog controls). Windows only.} -\twocolitem{\windowstyle{wxCC\_SPECIAL\_DCLICK}}{Double-clicking triggers a call -to popup's OnComboDoubleClick. Actual behaviour is defined by a derived -class. For instance, wxOwnerDrawnComboBox will cycle an item. This style only -applies if wxCB\_READONLY is used as well.} -\twocolitem{\windowstyle{wxCC\_STD\_BUTTON}}{Drop button will behave -more like a standard push button.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_UPDATED event, -when the text changes.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TEXT\_ENTER event, -when is pressed in the combo control.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxComboBox}{wxcombobox}, \helpref{wxChoice}{wxchoice}, -\helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}, -\rtfsp\helpref{wxComboPopup}{wxcombopopup}, \helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxComboCtrl::wxComboCtrl}\label{wxcomboctrlctor} - -\func{}{wxComboCtrl}{\void} - -Default constructor. - -\func{}{wxComboCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboCtrl"}} - -Constructor, creating and showing a combo control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial selection string. An empty string indicates no selection.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxComboCtrl}{wxcomboctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxComboCtrl::Create}{wxcomboctrlcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxComboCtrl::\destruct{wxComboCtrl}}\label{wxcomboctrldtor} - -\func{}{\destruct{wxComboCtrl}}{\void} - -Destructor, destroying the combo control. - - -\membersection{wxComboCtrl::AnimateShow}\label{wxcomboctrlanimateshow} - -\func{virtual bool}{AnimateShow}{\param{const wxRect\& }{rect}, \param{int }{flags}} - -This member function is not normally called in application code. -Instead, it can be implemented in a derived class to create a -custom popup animation. - -\wxheading{Parameters} - -Same as in \helpref{DoShowPopup}{wxcomboctrldoshowpopup}. - -\wxheading{Return value} - -\true if animation finishes before the function returns. -\false otherwise. In the latter case you need to manually call DoShowPopup -after the animation ends. - - -\membersection{wxComboCtrl::Create}\label{wxcomboctrlcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboCtrl"}} - -Creates the combo control for two-step construction. Derived classes -should call or replace this function. See \helpref{wxComboCtrl::wxComboCtrl}{wxcomboctrlctor}\rtfsp -for further details. - - -\membersection{wxComboCtrl::Copy}\label{wxcomboctrlcopy} - -\func{void}{Copy}{\void} - -Copies the selected text to the clipboard. - - -\membersection{wxComboCtrl::Cut}\label{wxcomboctrlcut} - -\func{void}{Cut}{\void} - -Copies the selected text to the clipboard and removes the selection. - - -\membersection{wxComboCtrl::DoSetPopupControl}\label{wxcomboctrldosetpopupcontrol} - -\func{void}{DoSetPopupControl}{\param{wxComboPopup* }{popup}} - -This member function is not normally called in application code. -Instead, it can be implemented in a derived class to return -default wxComboPopup, incase {\tt popup} is NULL. - -\textbf{Note:} If you have implemented OnButtonClick to do -something else than show the popup, then DoSetPopupControl -must always return NULL. - - -\membersection{wxComboCtrl::DoShowPopup}\label{wxcomboctrldoshowpopup} - -\func{virtual void}{DoShowPopup}{\param{const wxRect\& }{rect}, \param{int }{flags}} - -This member function is not normally called in application code. -Instead, it must be called in a derived class to make sure popup -is properly shown after a popup animation has finished (but only -if \helpref{AnimateShow}{wxcomboctrlanimateshow} did not finish -the animation within it's function scope). - -\wxheading{Parameters} - -\docparam{rect}{Position to show the popup window at, in screen coordinates.} - -\docparam{flags}{Combination of any of the following:} -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxComboCtrl::ShowAbove}}{Popup is shown above the control instead -of below.} -\twocolitem{{\tt wxComboCtrl::CanDeferShow}}{Showing the popup can be deferred -to happen sometime after \helpref{ShowPopup}{wxcomboctrlshowpopup} has finished. -In this case, \helpref{AnimateShow}{wxcomboctrlanimateshow} must return \false.} -\end{twocollist} - - -\membersection{wxComboCtrl::EnablePopupAnimation}\label{wxcomboctrlenablepopupanimation} - -\func{void}{EnablePopupAnimation}{\param{bool }{enable = true}} - -Enables or disables popup animation, if any, depending on the value of -the argument. - - -\membersection{wxComboCtrl::GetBitmapDisabled}\label{wxcomboctrlgetbitmapdisabled} - -\constfunc{const wxBitmap\&}{GetBitmapDisabled}{\void} - -Returns disabled button bitmap that has been set with -\helpref{SetButtonBitmaps}{wxcomboctrlsetbuttonbitmaps}. - -\wxheading{Return value} - -A reference to the disabled state bitmap. - - -\membersection{wxComboCtrl::GetBitmapHover}\label{wxcomboctrlgetbitmaphover} - -\constfunc{const wxBitmap\&}{GetBitmapHover}{\void} - -Returns button mouse hover bitmap that has been set with -\helpref{SetButtonBitmaps}{wxcomboctrlsetbuttonbitmaps}. - -\wxheading{Return value} - -A reference to the mouse hover state bitmap. - - -\membersection{wxComboCtrl::GetBitmapNormal}\label{wxcomboctrlgetbitmapnormal} - -\constfunc{const wxBitmap\&}{GetBitmapNormal}{\void} - -Returns default button bitmap that has been set with -\helpref{SetButtonBitmaps}{wxcomboctrlsetbuttonbitmaps}. - -\wxheading{Return value} - -A reference to the normal state bitmap. - - -\membersection{wxComboCtrl::GetBitmapPressed}\label{wxcomboctrlgetbitmappressed} - -\constfunc{const wxBitmap\&}{GetBitmapPressed}{\void} - -Returns depressed button bitmap that has been set with -\helpref{SetButtonBitmaps}{wxcomboctrlsetbuttonbitmaps}. - -\wxheading{Return value} - -A reference to the depressed state bitmap. - - -\membersection{wxComboCtrl::GetButtonSize}\label{wxcomboctrlgetbuttonsize} - -\func{wxSize}{GetButtonSize}{\void} - -Returns current size of the dropdown button. - - -\membersection{wxComboCtrl::GetCustomPaintWidth}\label{wxcomboctrlgetcustompaintwidth} - -\constfunc{int}{GetCustomPaintWidth}{\void} - -Returns custom painted area in control. - -\wxheading{See also} - -\helpref{wxComboCtrl::SetCustomPaintWidth}{wxcomboctrlsetcustompaintwidth}. - - -\membersection{wxComboCtrl::GetFeatures}\label{wxcomboctrlgetfeatures} - -\func{static int}{GetFeatures}{\void} - -Returns features supported by wxComboCtrl. If needed feature is missing, -you need to instead use wxGenericComboCtrl, which however may lack -native look and feel (but otherwise sports identical API). - -\wxheading{Return value} - -Value returned is a combination of following flags: - -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxComboCtrlFeatures::MovableButton}}{Button can -be on either side of the control.} -\twocolitem{{\tt wxComboCtrlFeatures::BitmapButton}}{Button may -be replaced with bitmap.} -\twocolitem{{\tt wxComboCtrlFeatures::ButtonSpacing}}{Button can -have spacing.} -\twocolitem{{\tt wxComboCtrlFeatures::TextIndent}}{SetTextIndent -works.} -\twocolitem{{\tt wxComboCtrlFeatures::PaintControl}}{Combo control -itself can be custom painted.} -\twocolitem{{\tt wxComboCtrlFeatures::PaintWritable}}{A variable- -width area in front of writable combo control's textctrl can -be custom painted.} -\twocolitem{{\tt wxComboCtrlFeatures::Borderless}}{wxBORDER\_NONE window style works.} -\twocolitem{{\tt wxComboCtrlFeatures::All}}{All of the -above.} -\end{twocollist} - - -\membersection{wxComboCtrl::GetInsertionPoint}\label{wxcomboctrlgetinsertionpoint} - -\constfunc{long}{GetInsertionPoint}{\void} - -Returns the insertion point for the combo control's text field. - -\textbf{Note:} Under wxMSW, this function always returns $0$ if the combo control -doesn't have the focus. - - -\membersection{wxComboCtrl::IsPopupWindowState}\label{wxcomboctrlispopupwindowstate} - -\constfunc{bool}{IsPopupWindowState}{\param{int }{state}} - -Returns \true if the popup window is in the given state. -Possible values are: -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxComboCtrl::Hidden}}{Popup window is hidden.} -\twocolitem{{\tt wxComboCtrl::Animating}}{Popup window is being shown, but the -popup animation has not yet finished.} -\twocolitem{{\tt wxComboCtrl::Visible}}{Popup window is fully visible.} -\end{twocollist} - - - -\membersection{wxComboCtrl::GetLastPosition}\label{wxcomboctrlgetlastposition} - -\constfunc{long}{GetLastPosition}{\void} - -Returns the last position in the combo control text field. - - -\membersection{wxComboCtrl::GetPopupControl}\label{wxcomboctrlgetpopupcontrol} - -\func{wxComboPopup*}{GetPopupControl}{\void} - -Returns current popup interface that has been set with SetPopupControl. - - -\membersection{wxComboCtrl::GetPopupWindow}\label{wxcomboctrlgetpopupwindow} - -\constfunc{wxWindow*}{GetPopupWindow}{\void} - -Returns popup window containing the popup control. - - -\membersection{wxComboCtrl::GetTextCtrl}\label{wxcomboctrlgettextctrl} - -\constfunc{wxTextCtrl*}{GetTextCtrl}{\void} - -Get the text control which is part of the combo control. - - -\membersection{wxComboCtrl::GetTextIndent}\label{wxcomboctrlgettextindent} - -\constfunc{wxCoord}{GetTextIndent}{\void} - -Returns actual indentation in pixels. - - -\membersection{wxComboCtrl::GetTextRect}\label{wxcomboctrlgettextrect} - -\constfunc{const wxRect\&}{GetTextRect}{\void} - -Returns area covered by the text field (includes everything except -borders and the dropdown button). - - -\membersection{wxComboCtrl::GetValue}\label{wxcomboctrlgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns text representation of the current value. For writable -combo control it always returns the value in the text field. - - -\membersection{wxComboCtrl::HidePopup}\label{wxcomboctrlhidepopup} - -\func{void}{HidePopup}{\void} - -Dismisses the popup window. - - -\membersection{wxComboCtrl::IsPopupShown}\label{wxcomboctrlispopupshown} - -\constfunc{bool}{IsPopupShown}{\void} - -Returns \true if the popup is currently shown - - -\membersection{wxComboCtrl::OnButtonClick}\label{wxcomboctrlonbuttonclick} - -\func{void}{OnButtonClick}{\void} - -Implement in a derived class to define what happens on -dropdown button click. - -Default action is to show the popup. - -\textbf{Note:} If you implement this to do something else than -show the popup, you must then also implement -\helpref{DoSetPopupControl}{wxcomboctrldosetpopupcontrol} to always -return NULL. - - -\membersection{wxComboCtrl::Paste}\label{wxcomboctrlpaste} - -\func{void}{Paste}{\void} - -Pastes text from the clipboard to the text field. - - -\membersection{wxComboCtrl::Remove}\label{wxcomboctrlremove} - -\func{void}{Remove}{\param{long }{from}, \param{long }{to}} - -Removes the text between the two positions in the combo control text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - - -\membersection{wxComboCtrl::Replace}\label{wxcomboctrlreplace} - -\func{void}{Replace}{\param{long }{from}, \param{long }{to}, \param{const wxString\& }{value}} - -Replaces the text between two positions with the given text, in the combo control text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - -\docparam{text}{The text to insert.} - - -\membersection{wxComboCtrl::SetButtonBitmaps}\label{wxcomboctrlsetbuttonbitmaps} - -\func{void}{SetButtonBitmaps}{\param{const wxBitmap\& }{bmpNormal}, \param{bool }{pushButtonBg = false}, \param{const wxBitmap\& }{bmpPressed = wxNullBitmap}, \param{const wxBitmap\& }{bmpHover = wxNullBitmap}, \param{const wxBitmap\& }{bmpDisabled = wxNullBitmap}} - -Sets custom dropdown button graphics. - -\wxheading{Parameters} - -\docparam{bmpNormal}{Default button image.} -\docparam{pushButtonBg}{If \true, blank push button background is painted -below the image.} -\docparam{bmpPressed}{Depressed button image.} -\docparam{bmpHover}{Button image when mouse hovers above it. This -should be ignored on platforms and themes that do not generally draw -different kind of button on mouse hover.} -\docparam{bmpDisabled}{Disabled button image.} - - -\membersection{wxComboCtrl::SetButtonPosition}\label{wxcomboctrlsetbuttonposition} - -\func{void}{SetButtonPosition}{\param{int }{width = -1}, \param{int }{height = -1}, \param{int }{side = wxRIGHT}, \param{int }{spacingX = 0}} - -Sets size and position of dropdown button. - -\wxheading{Parameters} - -\docparam{width}{Button width. Value <= $0$ specifies default.} -\docparam{height}{Button height. Value <= $0$ specifies default.} -\docparam{side}{Indicates which side the button will be placed. -Value can be {\tt wxLEFT} or {\tt wxRIGHT}.} -\docparam{spacingX}{Horizontal spacing around the button. Default is $0$.} - - -\membersection{wxComboCtrl::SetCustomPaintWidth}\label{wxcomboctrlsetcustompaintwidth} - -\func{void}{SetCustomPaintWidth}{\param{int }{width}} - -Set width, in pixels, of custom painted area in control without {\tt wxCB\_READONLY} -style. In read-only \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}, this is used -to indicate area that is not covered by the focus rectangle. - - -\membersection{wxComboCtrl::SetInsertionPoint}\label{wxcomboctrlsetinsertionpoint} - -\func{void}{SetInsertionPoint}{\param{long }{pos}} - -Sets the insertion point in the text field. - -\wxheading{Parameters} - -\docparam{pos}{The new insertion point.} - - -\membersection{wxComboCtrl::SetInsertionPointEnd}\label{wxcomboctrlsetinsertionpointend} - -\func{void}{SetInsertionPointEnd}{\void} - -Sets the insertion point at the end of the combo control text field. - - -\membersection{wxComboCtrl::SetPopupAnchor}\label{wxcomboctrlsetpopupanchor} - -\func{void}{SetPopupAnchor}{\param{int }{anchorSide}} - -Set side of the control to which the popup will align itself. Valid values are -{\tt wxLEFT}, {\tt wxRIGHT} and $0$. The default value $0$ means that the most appropriate -side is used (which, currently, is always {\tt wxLEFT}). - - -\membersection{wxComboCtrl::SetPopupControl}\label{wxcomboctrlsetpopupcontrol} - -\func{void}{SetPopupControl}{\param{wxComboPopup* }{popup}} - -Set popup interface class derived from wxComboPopup. -This method should be called as soon as possible after the control -has been created, unless \helpref{OnButtonClick}{wxcomboctrlonbuttonclick} -has been overridden. - - -\membersection{wxComboCtrl::SetPopupExtents}\label{wxcomboctrlsetpopupextents} - -\func{void}{SetPopupExtents}{\param{int }{extLeft}, \param{int }{extRight}} - -Extends popup size horizontally, relative to the edges of the combo control. - -\wxheading{Parameters} - -\docparam{extLeft}{How many pixel to extend beyond the left edge of the -control. Default is $0$.} -\docparam{extRight}{How many pixel to extend beyond the right edge of the -control. Default is $0$.} - -\wxheading{Remarks} - -Popup minimum width may override arguments. - -It is up to the popup to fully take this into account. - - -\membersection{wxComboCtrl::SetPopupMaxHeight}\label{wxcomboctrlsetpopupmaxheight} - -\func{void}{SetPopupMaxHeight}{\param{int }{height}} - -Sets preferred maximum height of the popup. - -\wxheading{Remarks} - -Value -1 indicates the default. - -Also, popup implementation may choose to ignore this. - - -\membersection{wxComboCtrl::SetPopupMinWidth}\label{wxcomboctrlsetpopupminwidth} - -\func{void}{SetPopupMinWidth}{\param{int }{width}} - -Sets minimum width of the popup. If wider than combo control, it will extend to the left. - -\wxheading{Remarks} - -Value -1 indicates the default. - -Also, popup implementation may choose to ignore this. - - -\membersection{wxComboCtrl::SetSelection}\label{wxcomboctrlsetselection} - -\func{void}{SetSelection}{\param{long }{from}, \param{long }{to}} - -Selects the text between the two positions, in the combo control text field. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The second position.} - - -\membersection{wxComboCtrl::SetText}\label{wxcomboctrlsettext} - -\func{void}{SetText}{\param{const wxString\& }{value}} - -Sets the text for the text field without affecting the -popup. Thus, unlike \helpref{SetValue}{wxcomboctrlsetvalue}, it works -equally well with combo control using {\tt wxCB\_READONLY} style. - - -\membersection{wxComboCtrl::SetTextIndent}\label{wxcomboctrlsettextindent} - -\func{void}{SetTextIndent}{\param{int }{indent}} - -This will set the space in pixels between left edge of the control and the -text, regardless whether control is read-only or not. Value -1 can be -given to indicate platform default. - - -\membersection{wxComboCtrl::SetValue}\label{wxcomboctrlsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{value}} - -Sets the text for the combo control text field. - -{\bf NB:} For a combo control with {\tt wxCB\_READONLY} style the -string must be accepted by the popup (for instance, exist in the dropdown -list), otherwise the call to SetValue() is ignored - - -\membersection{wxComboCtrl::SetValueWithEvent}\label{wxcomboctrlsetvaluewithevent} - -\func{void}{SetValueWithEvent}{\param{const wxString\& }{value}, \param{bool }{withEvent = true}} - -Same as SetValue, but also sends wxCommandEvent of type wxEVT\_COMMAND\_TEXT\_UPDATED -if {\tt withEvent} is \true. - - -\membersection{wxComboCtrl::ShowPopup}\label{wxcomboctrlshowpopup} - -\func{void}{ShowPopup}{\void} - -Show the popup. - - -\membersection{wxComboCtrl::Undo}\label{wxcomboctrlundo} - -\func{void}{Undo}{\void} - -Undoes the last edit in the text field. Windows only. - - -\membersection{wxComboCtrl::UseAltPopupWindow}\label{wxcomboctrlusealtpopupwindow} - -\func{void}{UseAltPopupWindow}{\param{bool }{enable = true}} - -Enable or disable usage of an alternative popup window, which guarantees -ability to focus the popup control, and allows common native controls to -function normally. This alternative popup window is usually a wxDialog, -and as such, when it is shown, its parent top-level window will appear -as if the focus has been lost from it. - - diff --git a/docs/latex/wx/combopopup.tex b/docs/latex/wx/combopopup.tex deleted file mode 100644 index 696391328b..0000000000 --- a/docs/latex/wx/combopopup.tex +++ /dev/null @@ -1,188 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: combopopup.tex -%% Purpose: wxComboPopup docs -%% Author: Jaakko Salli -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) Jaakko Salli -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxComboPopup}}\label{wxcombopopup} - -In order to use a custom popup with \helpref{wxComboCtrl}{wxcomboctrl}, -an interface class must be derived from wxComboPopup. For more information -how to use it, see \helpref{Setting Custom Popup for wxComboCtrl}{wxcomboctrl}. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxComboCtrl}{wxcomboctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxComboPopup::wxComboPopup}\label{wxcombopopupwxcombopopup} - -\func{}{wxComboPopup}{\void} - -Default constructor. It is recommended that internal variables -are prepared in \helpref{Init}{wxcombopopupinit} instead -(because \helpref{m\_combo}{wxcombopopupmcombo} is not valid in constructor). - - -\membersection{wxComboPopup::m\_combo}\label{wxcombopopupmcombo} - -\member{wxComboCtrl}{m\_combo} - -Parent \helpref{wxComboCtrl}{wxcomboctrl}. This is parameter has -been prepared before \helpref{Init}{wxcombopopupinit} is called. - - -\membersection{wxComboPopup::Create}\label{wxcombopopupcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}} - -The derived class must implement this to create the popup control. - -\wxheading{Return value} - -\true if the call succeeded, \false otherwise. - - -\membersection{wxComboPopup::Dismiss}\label{wxcombopopupdismiss} - -\func{void}{Dismiss}{\void} - -Utility function that hides the popup. - - -\membersection{wxComboPopup::GetAdjustedSize}\label{wxcombopopupgetadjustedsize} - -\func{wxSize}{GetAdjustedSize}{\param{int }{minWidth}, \param{int }{prefHeight}, \param{int }{maxHeight}} - -The derived class may implement this to return adjusted size -for the popup control, according to the variables given. - -\wxheading{Parameters} - -\docparam{minWidth}{Preferred minimum width.} -\docparam{prefHeight}{Preferred height. May be -1 to indicate -no preference.} -\docparam{maxWidth}{Max height for window, as limited by -screen size.} - -\wxheading{Remarks} - -Called each time popup is about to be shown. - - -\membersection{wxComboPopup::GetControl}\label{wxcombopopupgetcontrol} - -\func{wxWindow*}{GetControl}{\void} - -The derived class must implement this to return pointer -to the associated control created in \helpref{Create}{wxcombopopupcreate}. - - -\membersection{wxComboPopup::GetStringValue}\label{wxcombopopupgetstringvalue} - -\constfunc{wxString}{GetStringValue}{\void} - -The derived class must implement this to return -string representation of the value. - - -\membersection{wxComboPopup::Init}\label{wxcombopopupinit} - -\func{void}{Init}{\void} - -The derived class must implement this to initialize -its internal variables. This method is called immediately -after construction finishes. \helpref{m\_combo}{wxcombopopupmcombo} -member variable has been initialized before the call. - - -\membersection{wxComboPopup::IsCreated}\label{wxcombopopupiscreated} - -\constfunc{bool}{IsCreated}{\void} - -Utility method that returns \true if Create has been called. - -Useful in conjunction with \helpref{LazyCreate}{wxcombopopuplazycreate}. - - -\membersection{wxComboPopup::LazyCreate}\label{wxcombopopuplazycreate} - -\func{bool}{LazyCreate}{\void} - -The derived class may implement this to return -\true if it wants to delay call to \helpref{Create}{wxcombopopupcreate} -until the popup is shown for the first time. It is more -efficient, but on the other hand it is often more convenient -to have the control created immediately. - -\wxheading{Remarks} - -Base implementation returns \false. - - -\membersection{wxComboPopup::OnComboDoubleClick}\label{wxcombopopuponcombodoubleclick} - -\func{void}{OnComboDoubleClick}{\void} - -The derived class may implement this to do something -when the parent \helpref{wxComboCtrl}{wxcomboctrl} gets double-clicked. - - -\membersection{wxComboPopup::OnComboKeyEvent}\label{wxcombopopuponcombokeyevent} - -\func{void}{OnComboKeyEvent}{\param{wxKeyEvent\& }{event}} - -The derived class may implement this to receive -key events from the parent \helpref{wxComboCtrl}{wxcomboctrl}. - -Events not handled should be skipped, as usual. - - -\membersection{wxComboPopup::OnDismiss}\label{wxcombopopupondismiss} - -\func{void}{OnDismiss}{\void} - -The derived class may implement this to do -special processing when popup is hidden. - - -\membersection{wxComboPopup::OnPopup}\label{wxcombopopuponpopup} - -\func{void}{OnPopup}{\void} - -The derived class may implement this to do -special processing when popup is shown. - - -\membersection{wxComboPopup::PaintComboControl}\label{wxcombopopuppaintcombocontrol} - -\func{void}{PaintComboControl}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}} - -The derived class may implement this to paint -the parent \helpref{wxComboCtrl}{wxcomboctrl}. - -Default implementation draws value as string. - - -\membersection{wxComboPopup::SetStringValue}\label{wxcombopopupsetstringvalue} - -\func{void}{SetStringValue}{\param{const wxString\& }{value}} - -The derived class must implement this to receive -string value changes from \helpref{wxComboCtrl}{wxcomboctrl}. - diff --git a/docs/latex/wx/command.tex b/docs/latex/wx/command.tex deleted file mode 100644 index fbeb17db5f..0000000000 --- a/docs/latex/wx/command.tex +++ /dev/null @@ -1,93 +0,0 @@ -\section{\class{wxCommand}}\label{wxcommand} - -wxCommand is a base class for modelling an application command, -which is an action usually performed by selecting a menu item, pressing -a toolbar button or any other means provided by the application to -change the data or view. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\overview{Overview}{wxcommandoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCommand::wxCommand}\label{wxcommandctor} - -\func{}{wxCommand}{\param{bool}{ canUndo = false}, \param{const wxString\& }{name = NULL}} - -Constructor. wxCommand is an abstract class, so you will need to derive -a new class and call this constructor from your own constructor. - -{\it canUndo} tells the command processor whether this command is undo-able. You -can achieve the same functionality by overriding the CanUndo member function (if for example -the criteria for undoability is context-dependent). - -{\it name} must be supplied for the command processor to display the command name -in the application's edit menu. - -\membersection{wxCommand::\destruct{wxCommand}}\label{wxcommanddtor} - -\func{}{\destruct{wxCommand}}{\void} - -Destructor. - -\membersection{wxCommand::CanUndo}\label{wxcommandcanundo} - -\func{bool}{CanUndo}{\void} - -Returns true if the command can be undone, false otherwise. - -\membersection{wxCommand::Do}\label{wxcommanddo} - -\func{bool}{Do}{\void} - -Override this member function to execute the appropriate action when called. -Return true to indicate that the action has taken place, false otherwise. -Returning false will indicate to the command processor that the action is -not undoable and should not be added to the command history. - -\membersection{wxCommand::GetName}\label{wxcommandgetname} - -\func{wxString}{GetName}{\void} - -Returns the command name. - -\membersection{wxCommand::Undo}\label{wxcommandundo} - -\func{bool}{Undo}{\void} - -Override this member function to un-execute a previous Do. -Return true to indicate that the action has taken place, false otherwise. -Returning false will indicate to the command processor that the action is -not redoable and no change should be made to the command history. - -How you implement this command is totally application dependent, but typical -strategies include: - -\begin{itemize}\itemsep=0pt -\item Perform an inverse operation on the last modified piece of -data in the document. When redone, a copy of data stored in command -is pasted back or some operation reapplied. This relies on the fact that -you know the ordering of Undos; the user can never Undo at an arbitrary position -in the command history. -\item Restore the entire document state (perhaps using document transactioning). -Potentially very inefficient, but possibly easier to code if the user interface -and data are complex, and an `inverse execute' operation is hard to write. -\end{itemize} - -The docview sample uses the first method, to remove or restore segments -in the drawing. - - diff --git a/docs/latex/wx/conditn.tex b/docs/latex/wx/conditn.tex deleted file mode 100644 index 84510e7ee4..0000000000 --- a/docs/latex/wx/conditn.tex +++ /dev/null @@ -1,215 +0,0 @@ -\section{\class{wxCondition}}\label{wxcondition} - -wxCondition variables correspond to pthread conditions or to Win32 event -objects. They may be used in a multithreaded application to wait until the -given condition becomes true which happens when the condition becomes signaled. - -For example, if a worker thread is doing some long task and another thread has -to wait until it is finished, the latter thread will wait on the condition -object and the worker thread will signal it on exit (this example is not -perfect because in this particular case it would be much better to just -\helpref{Wait()}{wxthreadwait} for the worker thread, but if there are several -worker threads it already makes much more sense). - -Note that a call to \helpref{Signal()}{wxconditionsignal} may happen before the -other thread calls \helpref{Wait()}{wxconditionwait} and, just as with the -pthread conditions, the signal is then lost and so if you want to be sure that -you don't miss it you must keep the mutex associated with the condition -initially locked and lock it again before calling -\helpref{Signal()}{wxconditionsignal}. Of course, this means that this call is -going to block until \helpref{Wait()}{wxconditionwait} is called by another -thread. - -\wxheading{Example} - -This example shows how a main thread may launch a worker thread which starts -running and then waits until the main thread signals it to continue: - -\begin{verbatim} -class MySignallingThread : public wxThread -{ -public: - MySignallingThread(wxMutex *mutex, wxCondition *condition) - { - m_mutex = mutex; - m_condition = condition; - - Create(); - } - - virtual ExitCode Entry() - { - ... do our job ... - - // tell the other(s) thread(s) that we're about to terminate: we must - // lock the mutex first or we might signal the condition before the - // waiting threads start waiting on it! - wxMutexLocker lock(*m_mutex); - m_condition->Broadcast(); // same as Signal() here -- one waiter only - - return 0; - } - -private: - wxCondition *m_condition; - wxMutex *m_mutex; -}; - -int main() -{ - wxMutex mutex; - wxCondition condition(mutex); - - // the mutex should be initially locked - mutex.Lock(); - - // create and run the thread but notice that it won't be able to - // exit (and signal its exit) before we unlock the mutex below - MySignallingThread *thread = new MySignallingThread(&mutex, &condition); - - thread->Run(); - - // wait for the thread termination: Wait() atomically unlocks the mutex - // which allows the thread to continue and starts waiting - condition.Wait(); - - // now we can exit - return 0; -} -\end{verbatim} - -Of course, here it would be much better to simply use a joinable thread and -call \helpref{wxThread::Wait}{wxthreadwait} on it, but this example does -illustrate the importance of properly locking the mutex when using -wxCondition. - -\wxheading{Constants} - -The following return codes are returned by wxCondition member functions: - -\begin{verbatim} -enum wxCondError -{ - wxCOND_NO_ERROR = 0, // successful completion - wxCOND_INVALID, // object hasn't been initialized successfully - wxCOND_TIMEOUT, // WaitTimeout() has timed out - wxCOND_MISC_ERROR // some other error -}; -\end{verbatim} - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCondition::wxCondition}\label{wxconditionctor} - -\func{}{wxCondition}{\param{wxMutex\& }{mutex}} - -Default and only constructor. The {\it mutex} must be locked by the caller -before calling \helpref{Wait}{wxconditionwait} function. - -Use \helpref{IsOk}{wxconditionisok} to check if the object was successfully -initialized. - -\membersection{wxCondition::\destruct{wxCondition}}\label{wxconditiondtor} - -\func{}{\destruct{wxCondition}}{\void} - -Destroys the wxCondition object. The destructor is not virtual so this class -should not be used polymorphically. - -\membersection{wxCondition::Broadcast}\label{wxconditionbroadcast} - -\func{void}{Broadcast}{\void} - -Broadcasts to all waiting threads, waking all of them up. Note that this method -may be called whether the mutex associated with this condition is locked or -not. - -\wxheading{See also} - -\helpref{wxCondition::Signal}{wxconditionsignal} - -\membersection{wxCondition::IsOk}\label{wxconditionisok} - -\constfunc{bool}{IsOk}{\void} - -Returns {\tt true} if the object had been initialized successfully, {\tt false} -if an error occurred. - -\membersection{wxCondition::Signal}\label{wxconditionsignal} - -\func{void}{Signal}{\void} - -Signals the object waking up at most one thread. If several threads are waiting -on the same condition, the exact thread which is woken up is undefined. If no -threads are waiting, the signal is lost and the condition would have to be -signalled again to wake up any thread which may start waiting on it later. - -Note that this method may be called whether the mutex associated with this -condition is locked or not. - -\wxheading{See also} - -\helpref{wxCondition::Broadcast}{wxconditionbroadcast} - -\membersection{wxCondition::Wait}\label{wxconditionwait} - -\func{wxCondError}{Wait}{\void} - -Waits until the condition is signalled. - -This method atomically releases the lock on the mutex associated with this -condition (this is why it must be locked prior to calling Wait) and puts the -thread to sleep until \helpref{Signal}{wxconditionsignal} or -\helpref{Broadcast}{wxconditionbroadcast} is called. It then locks the mutex -again and returns. - -Note that even if \helpref{Signal}{wxconditionsignal} had been called before -Wait without waking up any thread, the thread would still wait for another one -and so it is important to ensure that the condition will be signalled after -Wait or the thread may sleep forever. - -\wxheading{Return value} - -Returns {\tt wxCOND\_NO\_ERROR} on success, another value if an error occurred. - -\wxheading{See also} - -\helpref{WaitTimeout}{wxconditionwaittimeout} - - -\membersection{wxCondition::WaitTimeout}\label{wxconditionwaittimeout} - -\func{wxCondError}{WaitTimeout}{\param{unsigned long}{ milliseconds}} - -Waits until the condition is signalled or the timeout has elapsed. - -This method is identical to \helpref{Wait}{wxconditionwait} except that it -returns, with the return code of {\tt wxCOND\_TIMEOUT} as soon as the given -timeout expires. - -\wxheading{Parameters} - -\docparam{milliseconds}{Timeout in milliseconds} - -\wxheading{Return value} - -Returns {\tt wxCOND\_NO\_ERROR} if the condition was signalled, -{\tt wxCOND\_TIMEOUT} if the timeout elapsed before this happened or another -error code from wxCondError enum. - diff --git a/docs/latex/wx/config.tex b/docs/latex/wx/config.tex deleted file mode 100644 index 83c1e01824..0000000000 --- a/docs/latex/wx/config.tex +++ /dev/null @@ -1,865 +0,0 @@ -\section{\class{wxConfigBase}}\label{wxconfigbase} - -wxConfigBase class defines the basic interface of all config classes. It can -not be used by itself (it is an abstract base class) and you will always use one -of its derivations: \helpref{wxFileConfig}{wxfileconfig}, -wxRegConfig or any other. - -However, usually you don't even need to know the precise nature of the class -you're working with but you would just use the wxConfigBase methods. This -allows you to write the same code regardless of whether you're working with -the registry under Win32 or text-based config files under Unix (or even -Windows 3.1 .INI files if you're really unlucky). To make writing the portable -code even easier, wxWidgets provides a typedef wxConfig -which is mapped onto the native wxConfigBase implementation on the given -platform: i.e. wxRegConfig under Win32 and -wxFileConfig otherwise. - -See \helpref{config overview}{wxconfigoverview} for the descriptions of all -features of this class. - -It is highly recommended to use static functions {\it Get()} and/or {\it Set()}, -so please have a \helpref{look at them.}{wxconfigstaticfunctions} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - (to let wxWidgets choose a wxConfig class for your platform)\\ - (base config class)\\ - (wxFileConfig class)\\ - (wxRegConfig class) - -\wxheading{Example} - -Here is how you would typically use this class: - -\begin{verbatim} - // using wxConfig instead of writing wxFileConfig or wxRegConfig enhances - // portability of the code - wxConfig *config = new wxConfig("MyAppName"); - - wxString str; - if ( config->Read("LastPrompt", &str) ) { - // last prompt was found in the config file/registry and its value is now - // in str - ... - } - else { - // no last prompt... - } - - // another example: using default values and the full path instead of just - // key name: if the key is not found , the value 17 is returned - long value = config->ReadLong("/LastRun/CalculatedValues/MaxValue", 17); - ... - ... - ... - // at the end of the program we would save everything back - config->Write("LastPrompt", str); - config->Write("/LastRun/CalculatedValues/MaxValue", value); - - // the changes will be written back automatically - delete config; -\end{verbatim} - -This basic example, of course, doesn't show all wxConfig features, such as -enumerating, testing for existence and deleting the entries and groups of -entries in the config file, its abilities to automatically store the default -values or expand the environment variables on the fly. However, the main idea -is that using this class is easy and that it should normally do what you -expect it to. - -NB: in the documentation of this class, the words "config file" also mean -"registry hive" for wxRegConfig and, generally speaking, might mean any -physical storage where a wxConfigBase-derived class stores its data. - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Static functions}\label{wxconfigstaticfunctions} - -These functions deal with the "default" config object. Although its usage is -not at all mandatory it may be convenient to use a global config object -instead of creating and deleting the local config objects each time you need -one (especially because creating a wxFileConfig object might be a time -consuming operation). In this case, you may create this global config object -in the very start of the program and {\it Set()} it as the default. Then, from -anywhere in your program, you may access it using the {\it Get()} function. -This global wxConfig object will be deleted by wxWidgets automatically if it -exists. Note that this implies that if you do delete this object yourself -(usually in \helpref{wxApp::OnExit}{wxapponexit}) you must use {\it Set(NULL)} -to prevent wxWidgets from deleting it the second time. - -As it happens, you may even further simplify the procedure described above: -you may forget about calling {\it Set()}. When {\it Get()} is called and there -is no current object, it will create one using {\it Create()} function. To -disable this behaviour {\it DontCreateOnDemand()} is provided. - -{\bf Note:} You should use either {\it Set()} or {\it Get()} because wxWidgets -library itself would take advantage of it and could save various information -in it. For example \helpref{wxFontMapper}{wxfontmapper} or Unix version -of \helpref{wxFileDialog}{wxfiledialog} have the ability to use wxConfig class. - -\helpref{Set}{wxconfigbaseset}\\ -\helpref{Get}{wxconfigbaseget}\\ -\helpref{Create}{wxconfigbasecreate}\\ -\helpref{DontCreateOnDemand}{wxconfigbasedontcreateondemand} - - -\membersection{Constructor and destructor}\label{congigconstructordestructor} - -\helpref{wxConfigBase}{wxconfigbasector}\\ -\helpref{\destruct{wxConfigBase}}{wxconfigbasedtor} - - -\membersection{Path management}\label{configpathmanagement} - -As explained in \helpref{config overview}{wxconfigoverview}, the config classes -support a file system-like hierarchy of keys (files) and groups (directories). -As in the file system case, to specify a key in the config class you must use -a path to it. Config classes also support the notion of the current group, -which makes it possible to use the relative paths. To clarify all this, here -is an example (it is only for the sake of demonstration, it doesn't do anything -sensible!): - -\begin{verbatim} - wxConfig *config = new wxConfig("FooBarApp"); - - // right now the current path is '/' - conf->Write("RootEntry", 1); - - // go to some other place: if the group(s) don't exist, they will be created - conf->SetPath("/Group/Subgroup"); - - // create an entry in subgroup - conf->Write("SubgroupEntry", 3); - - // '..' is understood - conf->Write("../GroupEntry", 2); - conf->SetPath(".."); - - wxASSERT( conf->ReadLong("Subgroup/SubgroupEntry", 0) == 3 ); - - // use absolute path: it is allowed, too - wxASSERT( conf->ReadLong("/RootEntry", 0) == 1 ); -\end{verbatim} - -{\it Warning}: it is probably a good idea to always restore the path to its -old value on function exit: - -\begin{verbatim} - void foo(wxConfigBase *config) - { - wxString strOldPath = config->GetPath(); - - config->SetPath("/Foo/Data"); - ... - - config->SetPath(strOldPath); - } -\end{verbatim} - -because otherwise the assert in the following example will surely fail -(we suppose here that {\it foo()} function is the same as above except that it -doesn't save and restore the path): - -\begin{verbatim} - void bar(wxConfigBase *config) - { - config->Write("Test", 17); - - foo(config); - - // we're reading "/Foo/Data/Test" here! -1 will probably be returned... - wxASSERT( config->ReadLong("Test", -1) == 17 ); - } -\end{verbatim} - -Finally, the path separator in wxConfigBase and derived classes is always '/', -regardless of the platform (i.e. it is {\bf not} '$\backslash\backslash$' under Windows). - -\helpref{SetPath}{wxconfigbasesetpath}\\ -\helpref{GetPath}{wxconfigbasegetpath} - - -\membersection{Enumeration}\label{configenumeration} - -The functions in this section allow to enumerate all entries and groups in the -config file. All functions here return \false when there are no more items. - -You must pass the same index to GetNext and GetFirst (don't modify it). -Please note that it is {\bf not} the index of the current item (you will have -some great surprises with wxRegConfig if you assume this) and you shouldn't -even look at it: it is just a "cookie" which stores the state of the -enumeration. It can't be stored inside the class because it would prevent you -from running several enumerations simultaneously, that's why you must pass it -explicitly. - -Having said all this, enumerating the config entries/groups is very simple: - -\begin{verbatim} - wxConfigBase *config = ...; - wxArrayString aNames; - - // enumeration variables - wxString str; - long dummy; - - // first enum all entries - bool bCont = config->GetFirstEntry(str, dummy); - while ( bCont ) { - aNames.Add(str); - - bCont = GetConfig()->GetNextEntry(str, dummy); - } - - ... we have all entry names in aNames... - - // now all groups... - bCont = GetConfig()->GetFirstGroup(str, dummy); - while ( bCont ) { - aNames.Add(str); - - bCont = GetConfig()->GetNextGroup(str, dummy); - } - - ... we have all group (and entry) names in aNames... - -\end{verbatim} - -There are also functions to get the number of entries/subgroups without -actually enumerating them, but you will probably never need them. - -\helpref{GetFirstGroup}{wxconfigbasegetfirstgroup}\\ -\helpref{GetNextGroup}{wxconfigbasegetnextgroup}\\ -\helpref{GetFirstEntry}{wxconfigbasegetfirstentry}\\ -\helpref{GetNextEntry}{wxconfigbasegetnextentry}\\ -\helpref{GetNumberOfEntries}{wxconfigbasegetnumberofentries}\\ -\helpref{GetNumberOfGroups}{wxconfigbasegetnumberofgroups} - - -\membersection{Tests of existence}\label{configtestsofexistence} - -\helpref{HasGroup}{wxconfigbasehasgroup}\\ -\helpref{HasEntry}{wxconfigbasehasentry}\\ -\helpref{Exists}{wxconfigbaseexists}\\ -\helpref{GetEntryType}{wxconfigbasegetentrytype} - - -\membersection{Miscellaneous functions}\label{configmiscellaneous} - -\helpref{GetAppName}{wxconfigbasegetappname}\\ -\helpref{GetVendorName}{wxconfigbasegetvendorname}\\ -\helpref{SetUmask}{wxfileconfigsetumask} - - -\membersection{Key access}\label{configkeyaccess} - -These function are the core of wxConfigBase class: they allow you to read and -write config file data. All {\it Read} function take a default value which -will be returned if the specified key is not found in the config file. - -Currently, supported types of data are: -\helpref{wxString}{wxstring}, {\it long}, {\it double}, {\it bool}, -\helpref{wxColour}{wxcolour} and any other types, -for which functions \helpref{wxToString}{wxtostring} -and \helpref{wxFromString}{wxfromstring} are defined. - -Try not to read long values into string variables and vice versa: although it -just might work with wxFileConfig, you will get a system error with -wxRegConfig because in the Windows registry the different types of entries are -indeed used. - -Final remark: the {\it szKey} parameter for all these functions can contain an -arbitrary path (either relative or absolute), not just the key name. - -\helpref{Read}{wxconfigbaseread}\\ -\helpref{Write}{wxconfigbasewrite}\\ -\helpref{Flush}{wxconfigbaseflush} - - -\membersection{Rename entries/groups}\label{configrenaming} - -The functions in this section allow to rename entries or subgroups of the -current group. They will return \false on error. typically because either the -entry/group with the original name doesn't exist, because the entry/group with -the new name already exists or because the function is not supported in this -wxConfig implementation. - -\helpref{RenameEntry}{wxconfigbaserenameentry}\\ -\helpref{RenameGroup}{wxconfigbaserenamegroup} - - -\membersection{Delete entries/groups}\label{configdeleting} - -The functions in this section delete entries and/or groups of entries from the -config file. {\it DeleteAll()} is especially useful if you want to erase all -traces of your program presence: for example, when you uninstall it. - -\helpref{DeleteEntry}{wxconfigbasedeleteentry}\\ -\helpref{DeleteGroup}{wxconfigbasedeletegroup}\\ -\helpref{DeleteAll}{wxconfigbasedeleteall} - - -\membersection{Options}\label{configoptions} - -Some aspects of wxConfigBase behaviour can be changed during run-time. The -first of them is the expansion of environment variables in the string values -read from the config file: for example, if you have the following in your -config file: - -\begin{verbatim} - # config file for my program - UserData = $HOME/data - - # the following syntax is valud only under Windows - UserData = %windir%\\data.dat -\end{verbatim} -% $ % help EMACS syntax highlighting... -the call to {\tt config->Read("UserData")} will return something like -{\tt "/home/zeitlin/data"} if you're lucky enough to run a Linux system ;-) - -Although this feature is very useful, it may be annoying if you read a value -which containts '\$' or '\%' symbols (\% is used for environment variables -expansion under Windows) which are not used for environment variable -expansion. In this situation you may call SetExpandEnvVars(false) just before -reading this value and SetExpandEnvVars(true) just after. Another solution -would be to prefix the offending symbols with a backslash. - -The following functions control this option: - -\helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\ -\helpref{SetExpandEnvVars}{wxconfigbasesetexpandenvvars}\\ -\helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\ -\helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - - -\membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector} - -\func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString}, - \param{const wxString\& }{vendorName = wxEmptyString}, - \param{const wxString\& }{localFilename = wxEmptyString}, - \param{const wxString\& }{globalFilename = wxEmptyString}, - \param{long}{ style = 0}, - \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -This is the default and only constructor of the wxConfigBase class, and -derived classes. - -\wxheading{Parameters} - -\docparam{appName}{The application name. If this is empty, the class will -normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The -application name is used in the registry key on Windows, and can be used to -deduce the local filename parameter if that is missing.} - -\docparam{vendorName}{The vendor name. If this is empty, it is assumed that -no vendor name is wanted, if this is optional for the current config class. -The vendor name is appended to the application name for wxRegConfig.} - -\docparam{localFilename}{Some config classes require a local filename. If this -is not present, but required, the application name will be used instead.} - -\docparam{globalFilename}{Some config classes require a global filename. If -this is not present, but required, the application name will be used instead.} - -\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and -wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config -class and is ignored by some implementations. For wxFileConfig, these styles -determine whether a local or global config file is created or used: if -wxCONFIG\_USE\_GLOBAL\_FILE is used, then settings are read from the global -config file and if wxCONFIG\_USE\_LOCAL\_FILE is used, settings are read from -and written to local config file (if they are both set, global file is read -first, then local file, overwriting global settings). If the -flag is present but the parameter is empty, the parameter will be set to a -default. If the parameter is present but the style flag not, the relevant flag -will be added to the style. For wxRegConfig, thie GLOBAL flag refers to HKLM -key while LOCAL one is for the usual HKCU one. - -For wxFileConfig you can also add wxCONFIG\_USE\_RELATIVE\_PATH by logically -or'ing it to either of the \_FILE options to tell wxFileConfig to use relative -instead of absolute paths. - -On non-VMS Unix systems, the default local configuration file is \tt{~/.appname}. -However, this path may be also used as user data directory -(see \helpref{wxStandardPaths::GetUserDataDir}{wxstandardpathsgetuserdatadir}) if -the application has several data files. In this case wxCONFIG\_USE\_SUBDIR -flag, which changes the default local configuration file to \tt{~/.appname/appname} -should be used. Notice that this flag is ignored if \textit{localFilename} is -provided. \newsince{2.8.2} - -For wxFileConfig, you can also add wxCONFIG\_USE\_NO\_ESCAPE\_CHARACTERS which -will turn off character escaping for the values of entries stored in the config -file: for example a {\it foo} key with some backslash characters will be stored -as {\tt foo=C:$\backslash$mydir} instead of the usual storage of {\tt -foo=C:$\backslash\backslash$mydir}. - -The wxCONFIG\_USE\_NO\_ESCAPE\_CHARACTERS style can be helpful if your config -file must be read or written to by a non-wxWidgets program (which might not -understand the escape characters). Note, however, that if -wxCONFIG\_USE\_NO\_ESCAPE\_CHARACTERS style is used, it is is now -your application's responsibility to ensure that there is no newline or -other illegal characters in a value, before writing that value to the file.} - -\docparam{conv}{This parameter is only used by wxFileConfig when compiled -in Unicode mode. It specifies the encoding in which the configuration file -is written.} - - -\wxheading{Remarks} - -By default, environment variable expansion is on and recording defaults is -off. - - -\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor} - -\func{}{\destruct{wxConfigBase}}{\void} - -Empty but ensures that dtor of all derived classes is virtual. - - -\membersection{wxConfigBase::Create}\label{wxconfigbasecreate} - -\func{static wxConfigBase *}{Create}{\void} - -Create a new config object: this function will create the "best" -implementation of wxConfig available for the current platform, see comments -near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the -created object and also sets it as the current one. - - -\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand} - -\func{void}{DontCreateOnDemand}{\void} - -Calling this function will prevent {\it Get()} from automatically creating a -new config object if the current one is NULL. It might be useful to call it -near the program end to prevent "accidental" creation of a new config object. - - -\membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall} - -\func{bool}{DeleteAll}{\void} - -Delete the whole underlying object (disk file, registry key, ...). Primarly -for use by uninstallation routine. - - -\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry} - -\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ bDeleteGroupIfEmpty = true}} - -Deletes the specified entry and the group it belongs to if it was the last key -in it and the second parameter is true. - - -\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup} - -\func{bool}{DeleteGroup}{\param{const wxString\& }{ key}} - -Delete the group (with all subgroups). If the current path is under the group -being deleted it is changed to its deepest still existing component. E.g. if -the current path is \texttt{/A/B/C/D} and the group \texttt{C} is deleted the -path becomes \texttt{/A/B}. - - -\membersection{wxConfigBase::Exists}\label{wxconfigbaseexists} - -\constfunc{bool}{Exists}{\param{wxString\& }{strName}} - -returns \true if either a group or an entry with a given name exists - - -\membersection{wxConfigBase::Flush}\label{wxconfigbaseflush} - -\func{bool}{Flush}{\param{bool }{bCurrentOnly = false}} - -permanently writes all changes (otherwise, they're only written from object's -destructor) - - -\membersection{wxConfigBase::Get}\label{wxconfigbaseget} - -\func{static wxConfigBase *}{Get}{\param{bool }{CreateOnDemand = true}} - -Get the current config object. If there is no current object and -{\it CreateOnDemand} is true, creates one -(using {\it Create}) unless DontCreateOnDemand was called previously. - - -\membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname} - -\constfunc{wxString}{GetAppName}{\void} - -Returns the application name. - - -\membersection{wxConfigBase::GetEntryType}\label{wxconfigbasegetentrytype} - -\constfunc{enum wxConfigBase::EntryType}{GetEntryType}{\param{const wxString\& }{name}} - -Returns the type of the given entry or {\it Unknown} if the entry doesn't -exist. This function should be used to decide which version of Read() should -be used because some of wxConfig implementations will complain about type -mismatch otherwise: e.g., an attempt to read a string value from an integer -key with wxRegConfig will fail. - -The result is an element of enum EntryType: - -\begin{verbatim} - enum EntryType - { - Type_Unknown, - Type_String, - Type_Boolean, - Type_Integer, - Type_Float - }; -\end{verbatim} - - -\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup} - -\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{ index}} - -Gets the first group. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\perlnote{In wxPerl this method takes no arguments and returns a 3-element -list {\tt ( continue, str, index )}.} - - -\membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry} - -\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{ index}} - -Gets the first entry. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\perlnote{In wxPerl this method takes no arguments and returns a 3-element -list {\tt ( continue, str, index )}.} - - -\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup} - -\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{ index}} - -Gets the next group. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\perlnote{In wxPerl this method only takes the {\tt index} parameter -and returns a 3-element list {\tt ( continue, str, index )}.} - - -\membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry} - -\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{ index}} - -Gets the next entry. - -\pythonnote{The wxPython version of this method returns a 3-tuple -consisting of the continue flag, the value string, and the index for -the next call.} - -\perlnote{In wxPerl this method only takes the {\tt index} parameter -and returns a 3-element list {\tt ( continue, str, index )}.} - - -\membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries} - -\constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = false}} - - -\membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups} - -\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = false}} - -Get number of entries/subgroups in the current group, with or without its -subgroups. - - -\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath} - -\constfunc{const wxString\&}{GetPath}{\void} - -Retrieve the current path (always as absolute path). - - -\membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname} - -\constfunc{wxString}{GetVendorName}{\void} - -Returns the vendor name. - - -\membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry} - -\constfunc{bool}{HasEntry}{\param{wxString\& }{strName}} - -returns \true if the entry by this name exists - - -\membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup} - -\constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}} - -returns \true if the group by this name exists - - -\membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars} - -\constfunc{bool}{IsExpandingEnvVars}{\void} - -Returns \true if we are expanding environment variables in key values. - - -\membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults} - -\constfunc{bool}{IsRecordingDefaults}{\void} - -Returns \true if we are writing defaults back to the config file. - - -\membersection{wxConfigBase::Read}\label{wxconfigbaseread} - -\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}} - -Read a string from the key, returning \true if the value was read. If the key -was not found, {\it str} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ str}, \param{const wxString\& }{defaultVal}} - -Read a string from the key. The default value is returned if the key was not -found. - -Returns \true if value was really read, \false if the default was used. - -\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const -wxString\& }{defaultVal}} - -Another version of {\it Read()}, returning the string value directly. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}} - -Reads a long value, returning \true if the value was found. If the value was -not found, {\it l} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}, -\param{long}{ defaultVal}} - -Reads a long value, returning \true if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}} - -Reads a double value, returning \true if the value was found. If the value was -not found, {\it d} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}, - \param{double}{ defaultVal}} - -Reads a double value, returning \true if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}} - -Reads a bool value, returning \true if the value was found. If the value was -not found, {\it b} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d}, -\param{bool}{ defaultVal}} - -Reads a bool value, returning \true if the value was found. If the value was -not found, {\it defaultVal} is used instead. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{wxMemoryBuffer*}{ buf}} - -Reads a binary block, returning \true if the value was found. If the value was -not found, {\it buf} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{T*}{ value}} - -Reads a value of type T, for which function -\helpref{wxFromString}{wxfromstring} is defined, -returning \true if the value was found. -If the value was not found, {\it value} is not changed. - -\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{T*}{ value}, - \param{T const\& }{ defaultVal}} - -Reads a value of type T, for which function -\helpref{wxFromString}{wxfromstring} is defined, -returning \true if the value was found. -If the value was not found, {\it defaultVal} is used instead. - -bool Read(const wxString& key, T* value) const; - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Read(key, default="")}}{Returns a string.} -\twocolitem{{\bf ReadInt(key, default=0)}}{Returns an int.} -\twocolitem{{\bf ReadFloat(key, default=0.0)}}{Returns a floating point number.} -\end{twocollist}} -} - -\perlnote{In place of a single overloaded method, wxPerl uses:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Read(key, default="")}}{Returns a string} -\twocolitem{{\bf ReadInt(key, default=0)}}{Returns an integer} -\twocolitem{{\bf ReadFloat(key, default=0.0)}}{Returns a floating point number} -\twocolitem{{\bf ReadBool(key, default=0)}}{Returns a boolean} -\end{twocollist} -}} - - -\membersection{wxConfigBase::ReadBool}\label{wxconfigbasereadbool} - -\constfunc{long }{ReadBool}{\param{const wxString\& }{key}, \param{bool}{ defaultVal}} - -Reads a bool value from the key and returns it. {\it defaultVal} is returned -if the key is not found. - - -\membersection{wxConfigBase::ReadDouble}\label{wxconfigbasereaddouble} - -\constfunc{long }{ReadDouble}{\param{const wxString\& }{key}, \param{double}{ defaultVal}} - -Reads a double value from the key and returns it. {\it defaultVal} is returned -if the key is not found. - - -\membersection{wxConfigBase::ReadLong}\label{wxconfigbasereadlong} - -\constfunc{long }{ReadLong}{\param{const wxString\& }{key}, \param{long}{ defaultVal}} - -Reads a long value from the key and returns it. {\it defaultVal} is returned -if the key is not found. - - -\membersection{wxConfigBase::ReadObject}\label{wxconfigbasereadobject} - -\constfunc{T }{ReadObject}{\param{const wxString\& }{key}, \param{T const&}{ defaultVal}} - -Reads a value of type T, for which function -\helpref{wxFromString}{wxfromstring} is defined, from the key and returns it. -{\it defaultVal} is returned if the key is not found. - - -\membersection{wxConfigBase::RenameEntry}\label{wxconfigbaserenameentry} - -\func{bool}{RenameEntry}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}} - -Renames an entry in the current group. The entries names (both the old and -the new one) shouldn't contain backslashes, i.e. only simple names and not -arbitrary paths are accepted by this function. - -Returns \false if {\it oldName} doesn't exist or if {\it newName} already -exists. - - -\membersection{wxConfigBase::RenameGroup}\label{wxconfigbaserenamegroup} - -\func{bool}{RenameGroup}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}} - -Renames a subgroup of the current group. The subgroup names (both the old and -the new one) shouldn't contain backslashes, i.e. only simple names and not -arbitrary paths are accepted by this function. - -Returns \false if {\it oldName} doesn't exist or if {\it newName} already -exists. - - -\membersection{wxConfigBase::Set}\label{wxconfigbaseset} - -\func{static wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}} - -Sets the config object as the current one, returns the pointer to the previous -current object (both the parameter and returned value may be NULL) - - -\membersection{wxConfigBase::SetExpandEnvVars}\label{wxconfigbasesetexpandenvvars} - -\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = true}} - -Determine whether we wish to expand environment variables in key values. - - -\membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath} - -\func{void}{SetPath}{\param{const wxString\& }{strPath}} - -Set current path: if the first character is '/', it is the absolute path, -otherwise it is a relative path. '..' is supported. If strPath doesn't -exist it is created. - - -\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults} - -\func{void}{SetRecordDefaults}{\param{bool }{bDoIt = true}} - -Sets whether defaults are recorded to the config file whenever an attempt to -read the value which is not present in it is done. - -If on (default is off) all default values for the settings used by the program -are written back to the config file. This allows the user to see what config -options may be changed and is probably useful only for wxFileConfig. - - -\membersection{wxConfigBase::Write}\label{wxconfigbasewrite} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{ -value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{double}{ value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxMemoryBuffer\&}{ buf}} - -\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const T\&}{ buf}} - -These functions write the specified value to the config file and return \true -on success. In the last one, function \helpref{wxToString}{wxtostring} must be -defined for type {\it T}. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Write(key, value)}}{Writes a string.} -\twocolitem{{\bf WriteInt(key, value)}}{Writes an int.} -\twocolitem{{\bf WriteFloat(key, value)}}{Writes a floating point number.} -\end{twocollist}} -} - -\perlnote{In place of a single overloaded method, wxPerl uses:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Write(key, value)}}{Writes a string} -\twocolitem{{\bf WriteInt(key, value)}}{Writes an integer} -\twocolitem{{\bf WriteFloat(key, value)}}{Writes a floating point number} -\twocolitem{{\bf WriteBool(key, value)}}{Writes a boolean} -\end{twocollist} -}} - diff --git a/docs/latex/wx/constant.tex b/docs/latex/wx/constant.tex deleted file mode 100644 index 7beaa29d78..0000000000 --- a/docs/latex/wx/constant.tex +++ /dev/null @@ -1,13 +0,0 @@ -\chapter{Constants}\label{constants} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -This chapter describes the constants defined by wxWidgets. - -\input cppconst.tex -\input wxusedef.tex -\input stdevtid.tex -\input keycode.tex -\input keymod.tex -\input langcodes.tex -\input stockitems.tex diff --git a/docs/latex/wx/cont.bmp b/docs/latex/wx/cont.bmp deleted file mode 100644 index 56bed6b028ee4a012d1cd51c02135da21864e7e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120118 zcmeHwUuYcHnrCO%v&xg1?7jOk^HxS;dgvZ8YAVE0oK|*}@xaa+wkstfaHqjWg4hx9 zgW2TC814-o=3!adD4@Y2TrT**aJdX({4ied(#Bo{Hi7oE!GlC}Hx8cNf%~AQ4UVqI z^ZU-fI;Z+{>vXHTRQA+Schx!HIp;gy@B6;GT9{&H_U;O#W-0xoeOYZ-y zw{kOoRLcGQv!Cbw@-KhPo&4MHa{ue^|33F8fAVAQ{JH13>cZ*VKm6VQ&HY~ZdV~x| zy6l+QBeTaiG?4k#IJ7!E&&(df>uwx1Gkc6ftHbmBH)4-U%SlBGckeir8(*P)?BR%G zX6cMSJ{es&>o|7vYqja1(W&1Hi>SNM$agB&is6aEQf0N$3F`SytzHb9;da>k&f9D? zYtyyKTK${aG-xwRF0GBPjE-Y#xd_pU$EVKtgrj-y%(2SUnO1%ISfy3z%-s9zSmoO@ zEy9sMeh+lQG4t&faMZ)f>iA@I;cVdOz#g^fN~`AQQMb{l7Atp8PZq;A;b^w1#oeXT zlg;pPSghVzTxIsy^~=Cf3>PO|S{q*(9mnzf1K{}Mis!X}Bf$4srB$8uydvRfgh6{Z ztWMU$^)MgQuW@_qdfv;aa2oXS$>_pa$FWjk_BegD((=xRHTYJ&a;&nt=@%<^Djg5( zc2{Rso1OKrxN!A2?2%uXoN1kTS!kyV$IRx`@%;0A*(><@2f`kWg1_tCsWd#l;Ro$1 zvYL&lg~HiFeW_V1c&k;fSSwDig{N0tv^Ksnx;=vJrT6m3^M17zK3WJv&ku^#vkyb` zYdSSM3mCgv;YxLBp|Et~QP>O~u7u%+9Hpvv??s72iN)-3C^C$q(G15Zv^Y8* znLS3Q%TaL3>@f;0j*drWkJ0IJ6r8v{W`8mYUZdeMoFp8_RP^ExzTXx*Fx_+j$`gf?-K4gqv7J-o?bG;p=*Q3GkbLFWKc@xSKS)R{Hj|ggHkfT z>eg81SKT@pl#={5ETpE)Zn=M<^aNLMa4olH8_S{cnbij!7;2L z84k@k4;D4X-OL_LnZv5#V3y#u4`2^pw(q}U{UhLl)5+%`5DoB6KMpP~q~#DO0uoF4 zh~bY)q!ovh8Z!EblgcRq3%XCOZ%?7+h*f0FO$P0^g@E z3nh^K9ez1dm<38mKE&q_AuyAgA0l}nF(HtFgF!ll_F$eQ1PwU?afG}G1cQGGMJXsD zT?$fXkE0<(gSae|xbpoH`|}|(Vw8^~GYml?N(${kot()=@-ewdRtStZ9qB-@U3Gidnq2ixt0P=4c_e9>#IsQTEMglB0mR=xoDLvvlv3wc(5r;N z&m_B2KEp&{7zV%q1_ma5_BhJKC+Q(22f(GCEwxGa<&BNma_RPL={8bGZ?rcy_R{B9 z=pUqXh~6eelkQ1U5_opDywOGk6u<#t4|h>*U`$GN zh{V4QsR8Wf?OT9AD9)ch4}iByPt(^wU}Z?Z|$AGefuU500=>$WE$-; z%Tb6U6IWok2{iI^i}DF63heEruYX)BZQQ#K2nKtx z4~Q7h0A_D*BX#STrnu5h1W)TIOyS6-u8yx^QU1_KBw79=(KDF2xGG8aUuvcK1>sUkw~e z+;~KxOC630<}XSQOqRiw8!$?#3>3-ev1PwW|`LKCY~S=Nf5Q6H?261+|YtpJkHsODfg?R8jKrr z6Wksqkr_#vB(uk$mqmJ(H?EgR7qX~+dCo>mxnJ43!t2mKXfBW0gLj(D9z7j>$c%&Z z4>??=^>>uDD_Du-S8%$tj=Q#@Db_#uB%kti$?G~^k^9)~K{@I5D>r+nZvM*j56k=^ z`p4^F502p#_p8*;=kR*#RAD2+-&iL}>-^!=&#BXh@Ji#5AaKrb47n=ou4Y{)I{8(a z?IC`Ozw$W5C7uCru-=}+{=ug10dO$yN+AxCYfk+8ng6Hx0*pkHij647-gM%)X}d0Z z-hN$_clLDRSiWLj%6*e*{j!b7VWf5bc*nSP;ndHVv{queaR}+$Pbu{)cL13^x>ptl zquACZnLQ4s(}UE`?4fyIHeMaXm5jQXU!~cvCX5w{b0US$tC_1o*VOBB|Lz;C&xv8n z=zmEijDBw33*+oo^V#!iBQuv_j{|Z|jbCLrmsjrx*?!?sKh+q3;INXV;!Lehm)A?%LotPRNxN-Nl6zI(#Pv+&XBX=Ty zY^}TFBtS97tGOd@X+fxW5MlxX_h`bzaa4oxmc-#sOrJge0DvS8Wu*OyJ(QII`8Br( z`B#@c_9rHw_#RDU_8{wspe)xzSqYFcdq`v8oLYO(2&<%%^T+b$f}GhybF8eN58*-fDzB$s8TT`&>u~y2-@e4O%pdNTK&>T3 zH?bRj%v8g#VmI#cx9YkRQ-j02pF!NE;7&{pjsx00!*M_bqPo#P4#+OE#{m_X*~6;9 z%&)9!8HhNZe$KW?z?Q4DUvDyDEI7(5%gZkj2u?yk#(^VPxqp9ceSI5Y<BW$txh;Z*gTscj`uGNE4opS zFOb7B!%-+S8o;vo%LH)@`$A{a>%;;%49KrG*B(D!TU*;)ZzqUjv`qz%fupeg>tFwf zd-;FqkCu54ZoGf=$Q+U!d`dVToaGzs49R4`YGc9i!Yeeq{G-x(7o~Ue>$T~i z(Qe)gi=ZwvivDirx!0;S^8Sg!QuvwoFx)D1Dy>TAz3FCgy3%TfkHf8^-waQ$E*y&( z@z{89)bnTGeGJb!>&M$u>8<5_ZMs%moI2wZj^;PbySweev*PJvi>>3^>^{uDn69kW!|jFQ?*M0}Rhv?LL}V;D-md4r3r<|~3VpizH6Qk0`Sur@}_9{aLFRc1|A)8^`YiMY6|kCm%3-tXHoFu*a?+5OgDq1;@Mf!o#ri>3whW zJKtzcODq;P84k~D0Y{JzgZA#T$*{T5c;I_pab`6vpJ;`7j^lUSuePh6H`(-eL*|Ma zGkKlCARRn`g~@k*@NCQT)_Z!^rzK{O(|6x%d1u2KDR{S?5AxMx)uqj#xZ4WD>eRwi zc|w(V7!v4U82`~nGCCwi+5E*M8?w3gU`HmYBqRL z?>lBSIzkGXKk^}yS5iLnR%Mi(E3GKG{+=Htcx*g4KJ^|jcPeeu@+98oIMU<6@!WgR zA!*r|wcQ?v;4z+K!4bY_a2#Q<(%-XU(hQ#*3y$DK#8xM}siZVfYrO|)kI~rW$!4Z_%aK%L2Z{eF}9J*}5Gb~T~%!Yc| z;p5}6hapc1V^*JquTggBL;^U%GJaC6kNNsf5;*w6cf7M<5;(#d7QTIdtPkx@s$wEI zg15ICxGv|bR!1L61V>n+pH$n?Sp2HuU_YtGI%Xwf4=j9*pHy#ejKU&+s&PpOM;QDH z*X6#G(qHB;Jdw#E&zHsjTc~>ZR@Y=a&poYk$?V~-x9*aC9eA*QC9K3svWm*~3L+y~^mC>{Vuey3QrD$Nu{2T|(Dn?^65a=v*>; z?5C}M`MM_imFu6UbII({UswHebxrm!*)Lb;lG&r5ruNIzHMw8e-uXJ0%pSe^gFz>Y8+`VJoF`$?Rd%kSk5sq-&k-aypmH z9^LwJr|6n=uN5z;bII%x*A7ctp7^nq(=}Z)x&cQK{JoL<#9`Wb+Xzz?tP1ge8Of}^Y|k` zh}WiVPyEF_Lv=>Lm`}UL$h7_Qx};Go5g8>UUQK zj>T4U=?s6!r^+7z!UI3`+O+M7ADc|N1h#xPn$AVx_;wNY*zFXdggwgTIz8l5$Ibur2+#|9;HNfid*a6?lP-ZR-;JhokvM|-wHD#P zBRwQ*_}Lve7kmk1=(*~B9fp+-Jrx5Si<67+tE>DWpX%fc9ywug;IKULW0Ogjz?Sbu z)450-3lEPodu;l}%9IZP_aS&|i^$M(W%Y$0;z_b^xnE5$!UtFAA)n@Vi<7%8*pD9g zNdu0cP(NG$rhawTyHmN=3Xg|pIw5*D$VRVe zI2Kxu!f-`A(HXgU{#1646zbp(f*VnOjD95S$eE)(pG zL0CKjM0T@0@ne)030(qPz8g*FqT@In$s2696fYeIjbon55fOTX6oJZFp7@EErnD}B zE#Hl%bJ20Q)gDDDU4r5H>0B}#!|O5gD^quwUzz$CKBa4NG+eTNKD-{Yes1bc_s-0( zOx+BY(lt3)O}(_vC9{XFnL*>aCI_t>mDjms_K5T{cud#i;I(B9ol9m9sg+^Qx+aII z&+F)1UN3tb@cA+E;F$jWSbr@GO%D57x|9EfvG2Brcz$g5C;gl6l`9?`)1M#fRg}|( z1n(Pf`x_w9y-zv!EAix)yC9~RqPqV4m{}m65;!goAi7a>f-&s2hoHC%VhSdz>wL`u z@sw;&yhiil{7JmQ@S^z^Ly%$=m7n7;ir3rY_7D_3Bi?ks^uX0s1-zIL;pXyrc4P^8 z0O_WT$IhyHBvdMJ#KhE-Rw${%F+n1eEkxjkVTo=45hZmvjz|Fg&KgcpEQL5CB}Y(f zG@dJRQivmx-Z4f{(uu>S{%&8=VWty@E}>gI!x2q5wwOgfwqg-YRj}#b>QjdEsp=6& z+dTO36SV?Bg>Te?Ev70k9C6k*;?IaE5vuADZyS!-^6gDl+Da6BEPSID zY%x`Vi5zEbBfbF)$|kCM#M_2rCuaof_Tk2sJ{G=F3$~c5z(k%in#=LY(Ml91QPm^f zHXL&~-LG(TTE5pI40(Qd+OAwCv=#fmpCSnI`zaPvf|G3$J~({ zT2O6jv>SpbWK>0LGTUgX0>^RGWNjm|m6(9xIu9m}Bc?Zw!$uT9lo}!(S^X-;f|a&{ z6MQUuqZVv2S%GVL&a{V>Xsjq@b*+;gE)LP9V|wdj4?bj#4#$qB3iWRp!QN(o7)=Sn zMK~Us2%Z{tKFL)-cT{;ApzK^E zV^Cp&qr}=zewnW-utigMS3sZcCNj*zfQ*sg!s6Zi!w+{fzq)?oo?9p``7Vzz&{lnQFknf~s52*f&DYd@E>&kOU$Q)Up>9V z{E7}R3F=W0YKoN9Go}>E-NYDIq+i*HthmE`ew1k#BBKjjhxW-L5E;5Ba7bPU6-OeH zvw=>1M2Xc?aDdf=svz85sR$8?!)7E$96Oj55UyMzQGtPdo_<*hAnnsjtmjjUAd`_$ zlHqXitH6A-^WZoJ{ry3b3BQ8s>BChI;<+2==z|07@ulyVME?k+Lka10#fy0G;!#^C z4~}D?b;-_AQZl*%xfJAu=C9wl!d!^@hcpPlUAaUsf)X>;{{17sI|oY|kRfq6k5?Fl z0>5}QX#OmCy_sAi=g;-|Q6 zh>fii2OF=Bl4t=$)&fLEpCKGtp#DLS8J7L+!S-g!M=wN{IQsn5h~XG$yaIb>kNLmS z!c(sLD>fnk;&1={fp=Nb`*)Q=A{^xObH*-?7mlzCpmC!1ufu))idM0tdiuvT{reiH ziznv^2Z$$$dJ#1CUu{kVo#w(h{%c)Gr@Tjx&^yEP4}C$3aFEmQnAb&*63tG;z{`Ml z`?1+Sj?xHJ`sqoaVDerBjFW#35(kGAAw#AhvK*KGfgi!x1n=vP4afP*CXP1=hLuPe z6qFhSJDdz0bJRadrDvK~A^JI!)=H!tjJp=TQ41nQ8&Blri-c7LCYHG~`8@jD*7MdZeu`dvrOYmfCHWLjs!P73*R|Mxf1j zDO`Vc{pIx)?C+K5ui93E=+e2zRduEmcCg!{&7=?q=}Ix8DuVG!A3sXVk5-mx4_*-- zZ?g?Y*Ve8zu-)Z7pPE$_+-28Gs_F~^I~X`{iAPE29*OmjXIs~31K#@ud?0u%6g$+c z5=58IJ+7)V2<%|sm^&J{i!V#Y=a1)&nCM0_AsiS*rF`yZqkjZ16pn&N(Sird+`kVa zQR;zD>Qf4Jw}D<#RcEGP2h$#xgkJ?dh9L=_c^U9Kj*{M%QD`1{t|nX$$fH^ zLUk>>$5r)S_Mod$Si>R!4jm~f;wqwuRDwd}CX6q^1Qi@GefaDHI&Jskt&2C&D?!|4 z*GsDEy>Q?kz(a&n;=j;>eZ*Xk(Po5d=L{)`vC!53+1)>GY0u~%JGl!NzL=Q!;)@BK z5yKy%>_Z6)aRMQCA-Df}mo_abd@YtG(txpruDM+7m+EfMz;Pv)gH#tT z)=SE()VM3#<6PX2mi7!BQe8uyd*di!leNgJ6pkU=k=69}62TF?9ow2rmq1E2_*v(Y z3=aGj+>EX=yt4M7t3HoPn!e!&kCAyW! zFaPw1z;cBIb5<_yM6Ep&$HXcAGwKQMoSm1yR@{ji-~M1E4tLhpl3IHvj-zjBK{n=2 z)cCsLaA$2TskLX~I3i*E0U{E|0L1>%N4Z0=wn`RpG;vr_yAw72L@n525{El$Ye}s= z6Ngegp_h#fK(xthqYc4Y+QX16;%(xvqIM^0`iWYw#Uu`Q*4C0*dnS$nRKJgYY|=+G ziDPu_nK-Pd-HDohBAIP5iNl?>wWQXbiDPv7u}L4%B#zOwXX22kY1mc$+?}ZDCz9C~ zlQ`U2TT5!~nK(wLADi?MP2w0`dl?RGz*6dsG~Pd^DriiU9}i%psFl~-9!5Wx`f(se z`sp8w+rxpiu$);kY9(%uUqqIU8gnK_eEY|SVEvX&h^Un~jtIuV{55L97K?C=D;a)<3#6;zqIfm9g;D*SCYj#ab9b79`rY}B57J_khB81@Crx|Q)pJib52^UE5sST;orCSQ{T9aU3|p7i5P`JifBBy|OIt%^#uA7FJ`yaRN`?;CA+x z^st_JgQZ1+(U8W1qf9so+wEX9GP-aX3yu=*pQh&vIxZ57rp#Dy1Y6!F?#zF1HX)~i zD#nB3Q?Ixkd&FQgYVXNqJUCu>53b{pkGyeneoq-jkueq=;d5`Z{UaX1d7$0^FbY}w z@fZsZEKKshq&FGhF$2F}>!ZsX3yu&t&W7v}we4i4!SVF-@I*cT5UY21mihe3==2}w zG#-1rTQ6X_9z0vaw4O{C84r%~wZb>hSP5OkTi4!)6W3x_y3*<**$4}F@5IRC!BN}t z{>Dd3WqRK3(Ewe9_LX%Am8CPjS!_Hwg2&$T~i(Z=S!v@P~R zBj2g46~hy>b$O)|)bpKMy%^T9HE{DAZ>@!WWowhQ`Zw5Kwi(VWNiO_6CLEu757?R{ zcpER5Sl1u9)0*E}&O@}~;?xP+Heruq_0D3ez5sjd`eooKhKrMoy*i8s2VQPa6up9;*Y43p77LpUhv&6`Bf$4s zrB$6|TbEZljWBq*3wfL2dRPqV_qku~dftyy;WV~gR}ffaJUB2BZVDX1OT1}m(|9|a zl;G16v&ZSX@3p+MVGX|3tQ?zJy&pWN+@0yr_RBM?mDPG@Jbz07OH>9z3ms=;bp{Ui8QblIx>D|C_Vwr@6!RIt5tJbygzS6ktu1={~QC|1ut z3~B3foSK~lj9sm8rMk3GSfc&QgNG}$mwE88)C}Vj&6xZuC<(VB;mdf##QjGdipE22 z3cXeY8n0v=XBw|$l7_ReEK|r!X#Rk%qejDk%_8QLsWQ9Kkuf%Zs027*{?L->JW;B8 z_g<7>u`$`hY=tl3d(0wc(P2}G;J^|dgYWh@e~To8gL~FEf8{2F155ZVx)9_K>o)t= zO9)3;qQSSv`ea`r9SS6c150?kh~*!B2a$#)7>wx7MU)Kw&>yS?QCd{j+v7Ms$^9@CL$i`Q7g6%#3&W{T zRM*?%I6lgKXo@sc%AJcS`N@#Yit2iMhl)cNWDw0|IGnWQu3n2momvouEY&l=>Q-Q8 zk8YjxrDT59S3NQ_^DC)|9%o;^G*(>ROSxa+4e9bSq)!qftpW3+R0?tEl4?T7qS!`> zQ3SXY;(*7%2yBBICMw(b2{8~Ujdu~_ZNw~x738s0;?Pv@`@ZN2IKz!7NrAkKBjDL- z!$Ip^ZUClt64mEvGDMWc$w(7WeA9;GBmC@vV5D*$NKB@9Iz%=ACYIvVFiang51Gr5 z@}XuDmtY~v4m?VEFb{`CIYB6Xw+J{)1&6*)WMY!K2?I&aqU^v8LIi>VID`m?G}?nH znhd}?gp`%iA^Vc}T>cOz`ok%Ge)R*i4bixsg~~aBQMu$KI*`$qV|t(e9!{HIvB8Q- z$zn`sCbNE^ECvY2)b)>v520X^kAjkvDV^CsK@t$C2%66H&^j@;VXAHq zwhIkpCiO#lk~SoXfe#TJ>4QLsK*rx8+5i;{J3T5LJgoc0+oMhxK#R%d6oD|Sk z7`mVoVjeuK{t??SRoMf6MWU12Kvu-qAIHRi;UEHK2ZZM^?Gf8BRoUZ*QUK{leu&9p zfxtu*My4|bRtmZ3P=`2PmA7!4Oow&JsE2-%`<{d+8L3-PO!R<&Q;gZkpUcsHC~}l=o_Xg96yk}0|e$+hiVVH zZ%J*KDsf!+o+*9+AY_ok#i4JQ+TA|}fZ~@vx{&0$#3yHBU+(VOhN;pX6W<2|0FXuf z_Y+xP1)6MP|H1f%snQ;U;b@oI3`+1xBKDvSQ&(2RCXhH;HcVCa_(AG;fHV9m5qr>v zshil5leXo=bLg?ap3{-`zV`_HcXX{F~Q~!diy~<5DY+&S@O(_CDT9HhN;*3ZkVcY z{8?Onmo)5=#JI~hOufGRYwVZWW5ZM_2)Boe>_(Y{<_~HUOKq(5FnwSap@{@jiMC;? z#PJ31ABK?oCoq2;;`&P8Fje5-zdz7%eg37TA!4*vVXH$NCs zRA~>I2T61hw5TM-&j1!A)IYi)FoLmRs>G4|5WYtqD83{l5qOg5j6f6~0Rizt{QY5W zm@08hTpD8A-`_rYdT9M4wqdI3A355{cS7v>i(P-k_P=ZoV7?JBWil$?4;ax4U*r-Q zcP)Mu-!N6+_?U0*OZ)v|lV7&$FHu;M?fxr>Y!hHkpeS|={)!qATv&U*$BsIM5r#VS z=0d*(^$k-+N%=Z2w&Cx*c2xWSa-zN=Fevl$|KyW^dV9&>psPNQa3N3zT>?oP{H$|H z21k6uR9%9><(D;dE(zg?ZJ4S{Af+1otaC{QM|{InU4p^omo;=Q$>0b}zHFSGbqS1& zff72GgmA><(_r(KV^l2aD@m z40{AWHC`C{PmHZQQRmxVB2m(vwY8+)o`K`z*lSg^dgKFVF>ziUp-pE@;vQm*pdi68bCU*!r3M%Z2q#|PTBCqI=q z+=&C@aA$2T8MPO~@f#ZscVfg>sook<_HbuyEg7{J!|{Q{@r$?K>bA$e#E7p|d_`0^ zM%G>o$8RJKoD~jt;=nlESzAj+?Zt3>V8h`~jQA?mTO-}}(DgPcUD){;?sS^uz&2$6o2 z>aCG3dl0h&%~zQ{UI}{`UHStd^8Unu{mPxSwPe&@%&&f9)3Q4;;%n^|ikS5ere`%G zM0$(aLt2lDtJ3boh_6z;HKOd{&e~csYA?fK>q(J*tY%Qe%pO_)_$X)XVpd}2R|g#* zW8>9D?E-If9nP6JusufBo`J)9_0gRuMjg^dgL)u!vGJ6ET;m(**;<2skj z9&znt{i9nWZj^4n`Xr|>JhkQRKvA(kb`WCp?eYHc-}L3-0pcGzV4xzSZ;#^$b`BuC zR`owQ;uw8<97p)hlYu;_M`6A|cEK|8_5==>wo_du!;voYWcJAHF%Au6el-rQ4$m{Q X$MCuvN6pM0l0g+U|U0S*%6mSIuq(MqRSVB5hN<_Ll zl#YF`_x=%go_XfSIp@ro{LEKPLsjaLT?)_~bp9Uz1cEfiK?oqobk~Wdg!0bH2^$*= zAv`kNJ<`z7c%e>tVf^Im&kZ#-Euo<3kE*h&s`A0k&B65EnY|-{gUj8*5e`QT*6o>U zI!f@1>*{J#!)dST>Iq#vv$Jz-^ekr^C*%3U_7;u{WsX-@H@ceI1Yf@cYT5@6#0iGR zgq=OY195&1K_(`agV{Y_d%r&`dp4$4JL7AFKPODowA1aA)a10YgC}P@Cuf-%a44ds zrA=2_n}>~Sp-TJg?1rGJt@*D{ch5hCUT@5#Z+4F{WGxL4%L^vTtq6MA}Df}*mfs`j6Q8^ZV`!QRo` z#?waCN={gY&{)s$&-BWg^S{`utO$e~0yXW`!N~(2@q>lE0B65H8z=UrR!r1f@80DW zCl$%b$?S}-nJO9+_yq}R8HAT1Ha1pk>Ldkdo{gwf%Rg_E;`lZ85M0u(~{7ea9n zfrpFG+d~NOBbXW!B*Y14Cp;Wn1YK={mnWgUjqopz3v-10Tmm_Qkd#2Esvy`{5#(eD zs>+1vNrJPZjiwc0V~y}H1Yto!W(FZFgoBN1rA|hgU&c_^SoMLjp{CW&^d8}04+?^q z8XB*RpU_j&{@J-9{LAmvjWCB`fW6<VE!(gt)m*SE4_kl}u17AwUKA>+_@4p$~c;?YGzN5S~>J zHo(<20Lr(7hR|o*gaP){7BnbHAe|0c4@qzluQb%zBh{a%vuZNgXMc%;7M|DaaA`&*9GW>|HCic&f|jqT^cd zb~BHA|1$L*&-X@Vw{Jw6zp#aL7HQZPs-4*cpYeyh>Ioc!vxV_&v#tf%X~x^dSy!s# zMY7Yu%jyP{om5nVZ!>nv2$g9kJE|3m?k-Wb1!eq|wL9=~jW6!T9v{9|L0mO%pJ$*o z2E6J8>%PlAb}xF7x?}K#N#ikf;~h5v>L$iu=ClSLgWxiCYJwRu+@s)CK8CW!qr3$& zsI^!5QZ`4p?M!#~ZpY-y`fAK=(prgH-xa9>03o?|)J-W_Q5`{L=6T#hV^MM3&Da$0 zfD1BjKJEwFwuuffy-)BR{GLSmC!=_lsb`R(36T~lHo%KIdZ+QcW2@iP7cCR(x&zpk}>ZU<_`@_U^6V_le zXlJYj{wX;EMZ_M^`F$W+`#|Xz^zO96h=FK0JJ&A~R#U~!P#-Rsr4{gdpe$gxCKN2V zK*k#*K~$&WNqD@*0-)kk;y4(Iaf|x}36^YMyRCXNqhvwqLM(gn=((Fwh7D9GQ{}Ld zJV->_e#Jc-zzMHPxN2o!A~ILv+JQau5XW|`s4H3ipo)1mm*3^-Bq11n9Iwyvo2D{I ziV|9vY4bsGoWqwAcnf7@VhDBeeE*+blJ$Y z1;(!`w9vY@^x7Xe@7(E?Y^P4C=vhC24yc*HtD+T(?of_wwb)9Fyv?0^%5>|beMI&= zC-sDzE~{V5ebhJW=b8;&ZBDgRN6wlx>rb0;Q!zo$*jDqUh!t-`3I#k z-p9MnKhT3O3ctVLRA=1MdzWgMYbL`DbNXyZA6|>)ZgA|@XZoI+m+?treMyV?9WG`z z-3bdpsYNkPeuUHHYzge>c@!I`Nc5NXA>7F~OLQWlX-eb@w@<3B`rGb_zrRnkyJGu! zqUz6!1d3-EC^c@nvE^+g6COpm!DRMzw88cuJltY&@F%3lze=H0!1j3O!MCc0YOh-X zYdU5~SBq|ubLXZF)o;^Y_*vCXuAtMc`%m11>Dv8CK_{W>Cq*ya{D$L9-QREur=WK^ zD&G=pgvS09{j}g}{AnmuZ$5ad)ztbx3t<@%CFQ`O;2M|E)+c>VBMR z=}PadN^R0xmNfeFpjO>l6>jnxm{CeN{KZ8Nq9DV8^02v6Z$ZT9=ZcMbg>7HXgn4d2-M!y0?;|);ZG)Avwk_d5e>(&=AjBKeszWR}p zRA2PG%??^PHA-uvDdLQeRVqSLeu1~XE6Ksu~1=0 zJM=4J_AL~{7rc_iTbs#`;20zkPbTFKcSiV#7gD_OMSrx{Du`JM2PAn11P_`K{)}Kl zHUz3KM_&;BzNh%MsX}q}<9+){Det$Phhvw{7eELShheK>Cl%6;NEHaE>!8?Aw<*O^ zrHghl@u82nE3l+w)k-`&g47bOolK@FGKk_aVuz!TSHk`6XHA5$+k;pCT`y5|T=e~S zyUW~t6_VY)>-6*$>zr&y$?aur>+}|Oc!@?8+r^Ejh1`qmqI|yuZ(DMvlBDLg1>2#> zS^;1uTf}c(U;`?QS_(sJj#=RaQks)8W`~L{5lbDBG~0sdQ`Fd^JzxFg0-nRPec)dB z@Dd-mwmxwg7VfVf@lYy4sua{%6VWIN7Q;ozNP%-iBXgD_!aIG4Vo*d$Td@UrxZV(!mMjRnS{RBgx*q&Fdk9sLPUlo z@G5q+wG7T3UzNFaYmAV(z0_k3X1D0tBk^rk=gsy|uL z7L;iVpijYhwX#=$K#U>QrWd}IblKhqEgPg{Zx z{q$y606n>gw=RtldX(t*Br6~|YvLkJ@E(}T6(NcSPhv^wMPqZK(^pE;7jrd|R$;So}}#0XeY*Nf~yx5sbHVP<%EG9Szs2_s&D z!|tU(-lV`ZQWTG%|IH*LTat_LME6oar+mq$jL9BoSV(3*D23Pt3D?HP>rq1_j^dHX zgr5E^`=IC-t}zPIMgHnViWWuB8L_=2xo#Ixq1zZsB$VDZx7RdwAUGCCwUsW+;T z-%yc?=8>wdWooXZ(j<{GrJx$=2#KHw@hzxY6V%~R2Ko%rsUH<6L2Z;(c)zC5CL5#s zvZDW8#b8Ut@NC8CRmG6S=chr5OpKUNsoZ2+B16qj9qyl^?vy>Jr4pMztiF}T>6D<{8N~Mg&T(wl+%vKYwssYS3pvN`0FDpVWqb_o)!S0CJ zSgj+vcYt>+8{ph{7ysY45syngyQ$-XsOzHi&`Qc+BY+>GysHl>2-b$Gz|}IFZ;sw zgVeJID2^hNLIqE|V8X7O&;nu8(qDcDhQ9tx%w7tfgTHqq{SbSnN+lKMFG@^o3-4io z)7rv`@i2aLy~E>bWfb`SQvKO>D&|#7>A#uYS5w;uu*4F zYNqd_1$dTG1A8ve);$!&e1!NR8O*wk{(0Vh#N6@camR^e$Jwin3(}5X=k3?b-+o#^ zMJZpo)etFDwraF~!M1#(7pO}200p-AS>xfM?yf!MM12CGtT6CqQzy$@C)-UYlBJ77 zri)9aW19Edpk?S(Q`p^$7W-GZBvxp;-7k+j-O`qb#xjWoQ2#dhXDxi)>{O5`B-HeX zq?Iy(HK#+ftw(#VXJfOIzoLzIuKnF6aWd+a1%Rko(pKrb+2uD)BOb_u3MsDvl`a9i zj+`k}+j`?kU!q!a82Y$m`uwc=0@^x{NO1;MrPDv#d-Y2RtXssUxzIX5ZT|TpRFz>h(CN@bUont+ zUavRwa>8t6I%H%fcVxD0WNvO`W-d5~825?cN!cIr#ID5^ZmWgdJ-;Y=deyZ zFcDDaqbj3-C6Yjs&QS&uyJ?^LfMY4r119S-n*Z_Gg`xTfi6$o$W+ z+n;FGnQ++|wCr@)?MtWq`qXobndc<^Q5S9bXlJzIuZ-3Oa zVqzGvd*`X&A-GFy8#fLiIa8T zzrU5W+msbY(m=}*fAj)h4s zHa#&Ak#x$EYaSHQzDO#(MhLE24^3Ks9kz}+ShvdGeC_q~o$OS={G6NZ&p9md9F9yy zc-`ykw1%*%)`30OJe^+MxIg)#ip|>M?e9dkoy2_TjQ-k8%}%NAnrq%p>FCa9o3%=| z-5LB&J^5~V*zOm?PMPqoGTTlvmbfZxV@7muE9AQo*@AJ>bUisj>oJ)=euI5sT1)5G zT>M-=n8+e!3FotuHVSCc-7P-Y>15j*^*Y$pJ=h65*k;?=B^-P@I2b+H8`fQ4$v^DN zKkN=WWRZ*H1`uH~UUA4Sk+S^MQQqW6fpU=Ri#CT9RXc%l$AP-LwDQOFua8fwj_JmZ z1FLqw>K@;Dy<446*x{mByww5yASZfw@?EC9-`9p(!H1MyAC!Xv9kDLd*z8bs?5vFL zG_>!^>-}jt_}hB0+bDOUE^?xlysPjZSn0!Go~M&M6bO0jQpLehj%^c&VktUjTPxtG zpG>|KO!SZLkWnleE}YaR?Ra(U`uum+$adZ)cdqvI+~@VV_v`Z~|Lr#kua_PiEwf%w z$X|HqZR2pKf)r1kw}WELyAn(>z{36%nuW#^P*OpJqPW9~BCr+~#E)vG<06-uBKoW#tQ_j|3R*WWNm5X%M zM=HcndMUudOUy*5StPyoE)0tLQ#du=u{@#v)c5wT5@?9)0Z(6!ptUmx5Me%$#F|c~ zZTj4{GZqF!LT%M&~6^3YoXQALWkZI?drB5ObNqgnFPM`2Nj@%wB2$*&B(Uggv| zj=Ys+B4i}=)v7ipy&9RiFh5a{P>M42D?4u(?`n9qs2a;~?$wEU$}rb|9dHy;qVQNo z=jK9T{u>bQ%-_0fw>(v;I~C6h&?H#E-UZk~r4LUNI#M%DrKWOp%3c7l?A)>?qYJQoMg~ z)E%qXwL|68A^x}_a?AV_Zh+nUbbIte6Y>-MunIMf*#y6V>2J0EN;dWh_sv<(}2HKMA zl?;~I*{g5BrHtztccfINN{!9dh0>+NpW~>JZG7LUIgLe=rgR=oHT*1*x$Pk_P=A66 zH{lCfjnnfzeQRLzKI-hFjq!5_YGt%7ce1|eaTkQs*iOO%^?|O*3h!)NKx3eP+(mQm zk2#3On8l~t@CBIr+{TstSgL=d0gFs+LMCp7QPm)wI=rQmc+$Qw&y-^u-gDW@d_!#0S9l%K z_8%*IhspiYz`1Xm`5_U*ALL^$Hb4AEEq`svEi5o9W~`W1-Q>OTSxK9=Q1 z4+Bbg%E^@45|N97VeYUUm!-pa(Bb9{J3YNA4y2O9opkriJE{G8#f)nz$Qy&+Ked;H zbgnOvph)hL_en~3kYPf30U$Dp@m6Bw8Zg?(n&MZV($wvd7q9JyxtSPZlY|xja3lN6 zw5`V=4zK8klN@ZSflVClKfIfn^OjVP(GS?F62k_t&|t9$TNYcQ@*`yi)%z+j2_ry7 z^KSkkte6s@lgav>DXCb?*UFUIab{NEl|?C2$>(%*bm~ACaW8bg}&<#KBi;bZ{!|l4v)djDtiegMW4px3N0Vc(~Js z6!t_^-B|)t`H!8Tdg#JGhHIOBtYR{E9EpYU3HFc9=2i^!i>zRKgl1a`J>Kdkvu z#4JFi*2-z+OTxmqXW(*)<{WOQ0y=Fku?%6-XHUy6hPf!~%1j8uSgJIfGTR@0xIu0~ z5$yRKU)6ejpn*M26{E^Gn^$?^byT^2@xSMc*`<0ejf<~1Il0H)C=tk-(7mUheItHI zw%yADPd1dvZSyw6j_^%(p4&#>w?;TAPfAcx1p-7DSyE}4qGDSRUh`TZBsv_n{J?`Z zA021t8ef@>bDpY-zSmy1o%ROIc6WJe;a0|v)_R78djUsEhjjEbL-p_=*!%T^6y4KN zGhQMlwhw>p`>eAHMND*?=zFd>MlVHD3A>vTI9bAJ_Xm}@WZr=^7!`cujBBUEhx4_Y zG4M}PcX-J0u|_&tg+J}T4+NOPjb%Q9vCI$J>k`g-U&*qnRRg^!kNbf4s{FcaZ?ExAx$DzjfM+7}p)}Wqy*#@nm`EerLia+d> zitf0-uYtsBxbNGiGmDmGE5kD>->4HjAJe9m&Tx~9#=QJx4?PbvZXY4r4E^s@zcDV7 z7J>u>cn?wDtBC|}=)bX5*AMqXU)=jgn$6Bz73vlw8x0gN7>XNf+M_NWeLI+P^9q1h z9?iw2KxDuY?*6u}IY!jWOVyi$f|UW+nz;mnGlFR3&%4GjNidP@73!*s%=Zq2yqx!z zL=^3hMnB=brV1)w5~hCfAH{Co7r9-bJVwz{ryxjD=J%Y`u76GC2Q*gC?>~#V{=Lo? z*fKVM;NRCeOG8QYShk10^T;=ec)+x>+8(Bbmu@2$S>G|RrP15E^6HX1YcnGpWHp6s z-0uh;*$h1l{mAsLFhRtQ48HM>3BKav~XG-6T0Ule~mFmYxiG5L>^ehJC! z|HoB@S&*Ut3J52zd40Pr-$S$ZA#YgxE>y z69FaG9HsNJ?g(_ZNQk01f<{uDM>0~00jR{bt)w_t_gFkuMqEPvhEjDBiSkrbnCq58 z&?N&CRhyB@KpKBw*Q6({jW$OrU*10nK3bKe=Cs9Lkc($^@E zxB}&JNkR$ronbP4Y`}gdT6I}*H4SAo#hboRnf{-A>P#W(uM+z2_p87jajrTnRxsK{`ezB;K zMC6P{rgkcZa`2Yg)|-L-}oek1w^F z1&6=V4!0{0W=J!E(wL!+=_xXyDZdv5si@bHkhR&)LEXpi=f$>G*| zHNs~>ogNnL7YW08GQ%yj!@U`4Gi#c^t%iCa+P%sn#`S$ado)_wbOyzTC$wpohjs9f z(RWKYQaUJ~Ju&}~tS;*L;mEMKS(DliPq=wE%97*yC@Yk9yh6E2_#4iitnI8>8baelm z=-#)&gZ=SGxp*kI{!|ejAv-3F(7Kr$fD>sDjK?TtHK_AOKhpk4RyGKU9G&&leP?Bm z>}de(9KAz^X7bmelQmd9(Mz~VoTnXrFRqtFJ5IE&d&M%&$*sq+uFpBIOR`VUadI5v ztQ_BOGu*tGfrOh)n#!EE5N~dW=-AXX1ro;g4%72%|usze+=(2af}DBu?}Q;8qGPDIE<|{Ul$o!IF+aiIMB$T3(eRWp z-GCMM#NmzEfXqxD!rYrKCES|C#%VId|A$V4*{h-%VjO5{sE! z9aJ8^fJ_(r*8HW3#RkhS*IT2wNi?Kpw*31nq|}0pB)p0YM7A`GTj=sZKQX9(MP- zhxGPO(NI5{_t2h?$hMxYw2o-D-t(A`p8pkjqg?yD4?L_AnccP=gN{=SM^0oze(hS9t+YR=fG4+S*ei|HVVP#o3xDO)0dFD3PHp^KCg? zjf?G%iRu=2C8!v#${B@bXQau7=#(#koomkWEFSeN&SqymLJ^hxqSp?Jh@fIGsj=?bJG*(`Y&VKk*8g=6c~|2+!7 zK$MvzxT6;I3o90%ri=i{0#KNnHv>yr$Az-P<5xsbmx=vPI16a zVPnLzSRl3$Oce`s$3_dKL{W>P+j+0YYwvr&UVrr7K-k`3 zrst69UJul>TiBBl0F=i839_~T+Zs1M{RG-*AxjbknuKN}+i>ZcBJwqqR>6MtJ=#~C z8NY>TIl07&zDg=;WSJtP_+CkRl+|e>H`CVpDQyon0uDB#54JK7w*RrY#)IA7gN;Uw z)^JceurBpVbtwgF}ojs6<|bnwBPIv<_|9G*uXUSu9#79U;(c+07K%i+Bp_`Df$ zKo<1~aXuhxc65trEa_tizrGIGna`43OvAKn;mSPI%A#TVuS6p%l}Z9qL!h}=g>Cgox~zT7wBBl=kQ zb^+Y30|Tg z*%5Fp<4x>y)|eCZEI;NZtF<&PG!XGOlsq+7J2jC% zH8t}$b2&B3IyEoxH@r8OcAj*FXIMi!1ar-}eq>5QaB0T=F79?IP0bBFg0=I`AS!GROr9xx;s1 z^1+vZ&zoh*S13DL#M>`XKk88sI6bv4@E3g`b5VfU<+F4U=DoDLdoYkBDmVR7fjT>| zkSDM;ILAdYcL;2}g%0T0UBsRjNM12}CuV&MWYvvD&IAe^dB~MU8LC|vG+mYVT~++N zs@%M)I)7R5Gzin@O9}9Kf(&p_Be{PV{!m{|#2mQZ4KYo*_BwpzeHfrAO7Gcm=AL!d zt<<*jE7Mh82KSG?(V$IGQJU&2o@^9sQdfO3H`|Tpq5DbETSO8y0PC$ldHq9zQOv~{ z@hzU=_6IM-urEk{hDcWQIw|m}`sYXi*C?W=k2ItJW~fNi;tSc1Q01i;>_HKatN$*3 zcwx8|POFX)fBILPSPp3p*7kX)zSS&q1Ttu@PG(3^OTO7F3FHqt(0uwb(4VBF30mq6 zy&?a1DBqr#{dZb@F+LVGo)u)M_b0&x@Z~44zDd-w6wD*qX=J-^1c+4yMVOS)?jgH0 z^Abe&)>7EJAH4`leCPNBs2a~;`E@7U&7?@(P$nnMSVKibhTp6#5&%Fw$b4|z48d_i zbaRb;4<-lxmW*N9Uy>7981wxoQhm!|y(7+RocqvW)ap?KziAGjt}%oFWA~^=()W0F zF2^L3GK@~wJ=;AKnrrsm9Is@~N)b~GI+jkaZOkNf81X4ebpmQqRz2*n-(PPwEB;4p z$FMT1zH8c9E;DtX3dCIT{Ho=KCYvYQ7VzXekxoTk6WJ>`ktxt2Uy z>WZNe@oJM|u5Ja2Zp8WT`j(mha&<%Pr`~lCcAxrlJ^lEiVfi{vM2~QDak4R0`1I*Q zHR7-#_j!q4dnN=X{0@V|R7R3dh?`BBjNS=Cn)83kNYl(IrPLP4(&td&%FnQeiD)~n zSYgbklyT45A;lvy!!D;d)LG)1ulOr!2c&Os1**TbTL@H9 zZw2kvxB+{)Ns?)cyM-JFBRNWb_)f*c-|E-Gh=P^tAe3o-9Ge)t+%1?@ITbAahf_SX&j$7P2XYL&Weex0>fpC3RvUsOmdT#fQn}$p+ zDVco8{R%3r+_GBgUB2gc!j_ImB$&)ab?k4Y1%!qKoC-8~(*Oz>+K)kX(Oj%c^j>); z+z?2-Ls;=2qF+w$ zLnUUNN>(-*XpLATC>%;;&*wb;;v0VlYk49Tt&3Bk=n>VQ50(X;4EtD!vlSKiKI+>J z0`p2mdB+H07Q#Lc8&VLPc}n<4Te+{vuQuIN1adb95_Df~RYZ8T=&(~0O--2|zjB^h zh0Ej-F)tOwJQ-o^?mKcjU3R(4$=4zCcjR#g;YK8^9oux=FaKKh?8jfx+aCC9R`cUt z96;&yoTL38aZgVRspXuI2gDqo1gQqq-|PRt@FO_*PD{*5&c$BPB5^=|06kdT76>cF zeZCnJAT~yVX!sN$OevTvL*=oG%uc%XB<=;_m=;819`7w@;=7bs$n>JZD4#G9x+~uP8ui_a z&%Cbsr(P3er~W6+sc`6Q?KImw8OW(^O4bkzQgr0=o&i+A`64Kba1ZL)(=?eM)gx=LsiSw9CE z&T>uQ=_N>)9t=Bc3xt{$6|xBTZ$p@ zkuq{;LupAg(tn?hYm2!?ad)9M=7v8J%akDepXTIVE=c zNAfhkyeHW!Y$x;^l8=8T9C)PR& zWBl3OB+{M^W^v1la18ExLT+3TpHZqjlm(5q_sjY)?yC01KAt=q{k+^9$j`C_wN&@W zZQ0fFfgWq;KgbOCp+!o41Q~sY;)})d?lD*9q_cQRC<7)-?Wp`l6N`;_*e5a2xq*k2 ze1@qbrD&E1`k2SA5siU0LS7!_mUA4-X)-}dmR!3~!kB{m0#!&>Y2t^Cpav*4bcYtOK1cyRM%o3_RUMIt-pFiT zO_RTh74}dPoFmaQ?`AN~kIw5`rV27|jLY4Mj~cSLBmdm75dsxeBq7>{AgY)1-dtNa zfHWLqzwOT>wZZ~OdziQ(mz5%~iJB+i?Q8Ew9h01bU;cuqnm)a>zIzZixS9iD|GeK5 z-T5vqg0R=s{i>$>*{a~?qp?R!ECF9wovl{iNYIV>5ybNL_kKTKdg3_y%>6Zj)n4TD zlP7LSpkasB(l}w}k=TW@s5G9$r$M_EfGYH^8!*4p%^5oX_5i~2+x&yvSw{!Vhlw;{ z^ga#UFoX~ea%Z;c5*NFoXg~Tcp}z+vb&={mKf%bVQ6@SqnnF70G4Bd1H=f-{&)i{? zh>K6ub2JP3^~3e-%N?Qp=W5qf$#`&5Hz%GaR#fyP1Xt`J7&IQi9(Oh8*e3Gm>y7NTB^6i)dxt9 zcm5X9S5rv@W%+(S+}hC}@>?tqTb$My}an^f%_62L31jEfR?duNA6>-3uDh5BDnLJQGL)rF$3oS z0h#U05A~|R{xx%lM}sf9{5vJ}`~?p!2T!7|I&{QI3L@wStX-O8u;>TW;*89#(_qPF zg+xzBFhkUTvPa*(U3*%o9U`Qzzs4M1FNr-p=oTS-{n75>w4KN7v?-jVK?#}eCj41A z7oTvL4Hh!0IjOplu5n-3-|66<%*vD*IqI#;KG1WVg8Nnv{)AqP-4;D9A7f^6@Z z!Gd-02Y8z4?tE9LiVE&Y-nPz@&TmNLo+YQ$yOUo(bg~k=+^TkcTIz_sW5xxhol}IR z0QR?^5~t16M=CIKp(#+|ea~5j4Ly@fe$ZOvUeMLT9)s^9J|=!Y`FnHu zy?|s}UG!V*qA9HRUVaqDatNGpFto4GDT0KzKxCf4wGp~Nl^<*boqfBzgu7>ocVE6s zhH+d^zP|%Z^wFPYS6xAjB0*0meOx&+$Z{PtjCK^FxXEK4S~wu7>^dMAhe(e7HylYn z!pUX;Vl~T50W9=}ALZ>o3eKPz`$4iR=8k)IsFgyw0|)tHcG2;0Msc(tW03-V5g!|u zilXY>6$MIY0*~P;9p-7sv(+%}0*zU-J*k2)Yu0N68j9!-v7W5A4ZpvzutR$O{f0Z- z{bL7n#gMt8DG(_laD9Elk06Ls9~~uEKZuGFD5f1v&2L9o9*0r__2Et;)Sp0%+=ftY zK~y-@6+_=2P7R+IV=JPT;}qX`dRLKC2L(jdA=P>2rA?otFB5vwReo)2aCnob+3X-C zsjSEpb=1-(#7&8K4K3(CC4~1BI-C>{K{^c%91Kl245*#@fc@br+~OOKmYHZGSB#^f zvlGX4*S zbDEFsU!xr7+E`YQY5e4{)aj;C3^FM(wJ+Yr6bsAthHp8V^D+8clz@o1oflFmw0Q$1 zHZ0_#!}iv6Qb~0^UF;?3BUuDHQd01up;*aRZvA#=efmwsLqkO};3?)$bNEbw5)TztQ);qr6`B1zL$k z-Uqgs$Ll4Dj^s=wS{$1`IODi?Mz<#UcA693?FMXi)|j%V%s{skXL_Cky;SPI}uVk7k|hZ#OmGv6X*~B)x)Gz=$buPP+pxrd-b9_61BTlsdBdnHsB`{;LuB z|6XFn&-mxl12WXhxGq(!Il>&+$z8kyR>ke;lLDrFAeeW;+c{^YlnYZSHBkiJx>F`{KHzRY6l@>AvxR*%l=HIGaByX_avt0hIBL%!aF z0JqsR9IEQvo|~qpn2ovn=vI3;QMadfycKN zkJ!>(%=AuPoia!?u@i&>`KbKUCXI7>mI#&ER|%9*t|UPFx*iDrxX{bC5$v7SV!xp3 zq28@{u!(%GLTirdn~f(@#tamA4mJ)Aj=NO6EbB?D_-0r5wRvx-DxO}svu$f{w0LMx zam3}<9?y80nr{@bvI1zYd_oZgQpOPT2~EiDx2x_?%6axU+mFzX))IQhB`T*fJs!BC zXhp+)BKKzo%LSD?$(EF*p=xLYf=A_L=>gvJCkHET&t9k=gd7NMWom@lS8eAX)Q|3I zb8O*~4$h-0cGIZh+m$&Bs`eMEF35Iw&X;_AGPs*r2K zBCEn``}EZ(7G8guVjGw$|87hjJ0H%g_MLqJ`1g#TmO@NILy;V4@lO}dT70VRJe+jtP<4lfCZabCiO z(jwmvcqaQrF5bm%tQ>X`_C?sZa4nAnA!?%FWKn6i$u8#z4jDLUQ_V*{#RrHk_)rbv zZXD_25$S|z(NYa5g(BHs^o}@A3jsQlDC>%@8IVAMYbs!ybR>62sFa@5ym)4syVs(v zgmo{UYIX!lfSQKav#duc;S?zmO$0mmeIU~M zUgS%^2*sD4*$0IC9^S&FfA5RD*y0fuizyQG_%5a=Cde!H(Bs)E|KEq+Vxnqdl6n=A z)jh7EVvi#JPG^c`IDZi@6npF;w9xqF$W%aP>`SeMm~4sfP=Iu9YCB@)L)x3mY>95mjbA}E3TIeD#-;<_DAYJ z{b9I@q0S}Xz&<$3_y)uDQ&{$?<>Cn#?=MhYuleB%Rdv6%9*TUalS&3)br(p9J2hSf z>QqDQRu$~Zd-zxy9M8qIhEE(QAn8L{TyOWomV?8HUau-XPTvFZsh?E z<&BPaJGH>47UdB8z=xjYJuc@blz@k9#sLm5yiG_?OtLgMb8+4uP~WOKo3VH4*KVS>x+kM z1Vkq|qZbx=9zt=hIVq_X;vdw};HV`PRo!UaCvL@j20>qF?VeJy0Nugonic-KeST45 z{&qu+)CdLb!v=@Dr@_A)603WXiNBh^m((LZO%=P4H#&J<9c$G6Fu*K8JL{qQW|LFX zg*NReB^sb*+^B7QX;Us`wA!FAj|+D=i?Wmmp?KsC_Gd+&8B7G}zPL=`JvICPE>*hrJ=)~Bgsc<5wh(cQX zCy-eDe**I&4BdiUW420o`CGI2ljHbMKenki!YClNV{bTTPjy?%d4}`1O1$(DOn|Km zg#M_H0;j9QS08%t7I#2TIf6KP4sf@mn>A0{^kP5z2?Rrp%S3WBHwSP)Qsco_55Xun zx?>N4wWE1i`*|I7_evmk4vd0^TX(C+_p1Z-TNm~d=rpu*zz~FYuIIR0!}Y0)^}hGJ zsB^%&19xRFIHEVWaX)yOR5o0P`i0{+pey%eWBPh?IjRRYVn6zHKR~FPcff;pndkWf z)IqAxyRJWWl`D5w|9FS1e6COTb{q8sh`C$8v=Y$#if1^0U-q|Wud*k!MdJa4pLCgU zw_XQ*UoZMbCwkH={fazwRR3?$?=!PgJvt})!$Z9`bA35yy+|MZ)QdeYd;PLQ{yf@` z{n3B@J0pGDyFJ)PwA9Z%Ig>p~n?2rtv)UVd-Dh;)bM)JYKjg zlQiGQ{xG+G*Qf_cyWge?RnxzxYqT>sP<|1M>K@^WCpM9HW2at3Ujo|LZHd z_N#vVN3Qp~f9>x-K;RKLkYGWB2N5PzxKJSk005FPlsJ)MMT-|PGIR+3F(ZJCA3=r` zIg(^alNdKbIJuH#%ZVvFx|BJSW=)$QH%7dpE4w=VI+iTaUMiS$8Z|1Is;w^{sw_JE_jIvX`nx z4iJ$Na;TCmpAU8JRh%&F-Nla~Ps~)O!y!~&D6x7o>QgVc0OUrFY_}p_(WfK#vc-hg zflG!~<)K7sl-r33pg>808ZvI(KzRq(tNPRxL~AI8%HwH`t4=CBON>IKK@{PNr&kAl zox9h`m7WOk;z>##3TrHJoYnsmuO~C3!-jWRnAU`DBLZ z?n_WC1sSyIEH|#O1PBUZTV;hys4&7n1RLy7A=5kzk)%vi3Fe8*CNt?e zB)9C+AmWTOB}FNgSi^)#+R8*mFB?>nO&m!K1{Co;QI3)|5EVj zc&nlr(h`LfR{mRsl@uhI!$3g&r1Ufr-KeCINhPzTkx5Jdf|4Is@#2jqur$=t4*y)W ztiCE~#T8LBR5c;1zG6+NLfwoPyMvZVt{SP4*wIiOPr**RPRqE6*5%rHxEJuH@9s8rwu6)7n}1>IY1 zfzX6C{tKl{P8_Jj$a`63_|-ZlNuf>(gy_T;VR3Cm*CmvrV8A){6xQMH>>W9%UOssO zi2qozq>}Xvn&Fd9s7S$(Jfv{63sE|l*JK7u{&}ZN+&ILGDZQY=4VVWaZj^RC!MRja zKnX?#TZ2+%h!Z%-D2J_2m_QXgIN&;@uTKbjY?8vxNR^+Tnbufn`Q{+08CU| zqZKANB(Z}zOIbw`?>~eu9FAA6=m41)5%<>IKT-`R{WOe)Qv$hravpw>KY;^UI%Lbom`0 zVtYJBIl=prR>wM*oP`%}AP)s-qk@5`078fmlhjzTGb}N!Cr3De{!WmCBLHD}986x> z(l&&#O-_FU2?p{8(uh&i;dAp#+Xcr~wg()KZXkr=2_KNc+Gy>C`@7%^$L7ICNN$EF z7~%FN@WTw^frn}9S`w3}iY4Nq5mQ|LNdN`NlDGIJ z_k<OXt0rr~L!nP$5dqCKp5{A$#1+mKhn>tU{sFKinM2~x-ua)5=GJmvRJK(?(7K?x%?ru~pfMP`Dp zkK0S7*@nr1ttGK*n~diCkZ8OfLv0GSn0EGp(Ssh?CSba>PBU}g#2yH?=GL@H4twT& zsX#zERhM2ghkISy75)hu6k7zt73Io9DL4@rOpuBaDL8-;P652+_5`Y9n_=Cy%M)7| zK?ty01twBp3fL@X1#ciI*223JAjB3ZF)Zr5y{=_Lx!Guo`n8CbRaEYnn21#H-3IY&7 zBqCujOmyJ@PZ-4&ZtMV1Jb}lDXoUkZOhFVc#$FzXLIRQjfg~?k$xUYRlbsx8C{J0+ zRi^Tlt(;{nZ&}M-esTh$0H1}3O9&Kjv5RxYA|PDi4WuAN7cQ|0AOOJ>Yq0YrTww&; z4EZs|@<1Yp{s4uC44Tk|HuRwpooGcbn$eAR^rIm?Xd+lgA!ixIB|>p#0Z2hbo>&3} zKurNpP~eOeTE!|nu?bKx0ls{mOR=UCX<5&j*0r|vtpTu`N~>TLDaeDSH+?t&O(_)0 zQBko0vE|JDNL+@F^@&s^ z6J0m(Q9MKSs-Gs{LLV~G$KIu~gC^^2Py3tJo|qD&{q0LyduZma^}4G)=o~q_+4sJs zySE+hfk#r@6=LKBc$x9Z0JE48qWH#p`SFQA^5nN%dBy&j8C$_ypnsA#nU8 zF#Y190?qFNFHixA<@08*05#A8=WqG|a0E#Z_UKOpQPBTN@cUlS1A(UdLa+tpul`_= z0Btb*IPe5*um^Ea1{DPVR&WOcAP8b`AoR}&kx&IqPzQIg2@`MvlTZll1Myyu1yK+P zwQvNv&u>)yQ zGzc*VA%F>G@fc%q79B7HmvIWy5E_S(7;O<1f06$hF#<)g8FS45vyuFO@EYUq8&fbC zw{aR#qZqld6(R5y3lSNa@eWfF1>MmY(UD}Tk^Vr@3(t`gbMf`|Q3J#99&0iC7SRUl zaUJ0i8ru*dlaU|?F&|A33IehMdypdk5fd?z7tJvcAyP5aQ6AaR00(d+1F$6PkRd7Y zBdzZB%yA=u@#{f*>#N5-;--`!){>;Ib|SGXd^0FN0t&4bv|*GB5{|E(=pHA2SFP zlm1ANEz2S#1;Y1k5BLm1Gf|H-3&Jx;4>Y;4DJ}CWF7Y6uzyfy9^-Pa7Z_hPV6E;y# zHlMIEPZKpy@gOA6`mjv{!p!m(&o{3PI3bTWFON8_%{ad@H}@hn8B7?RQz|fXyVi0# zsS_&iOFFT0DXKHMuCqJ6Q#(nHE5%bOzLT)R^E`(FItR}FJlRty(zB=5Gd_F5J+~7+ z?UN_wGoI>mKW_p*2SV|JfXfUN^APkv6*NJeO!H6?HvyDCchewNbN4LtLR+u&=+87G zG(gESGchzoMO4;EQyw9-Lv5lusZTjsv_)MM+?3DUUXMdjlqLj}DMKJfb#zC0v`2mP zM}ag*g>*=Xv`BSy08g|=XF^3Ef(?xHNue}KrF2S<^dXfLJwG%WsdP)Zv`eFOAg`1t zm=pk<)Jx6uOwlw1-Y`ttGfOvu2huc7<@8Ip(j(baCdL#3=5$Z_6i5f*7Q`|d?^HhB z^daE1PZ1SS*`Q97bWnF{LUXW8Lx2i&lu~olQYZekQZ@BbH#Ji^^;11HR55i_JC#&H z)l@~bQ+YHQtkh9=;zrYu01|ap_Y_QB)kB+;{v?%FdDTo8HBkTaRz(6<-!w=UpbENS z5O`o&nUx2WwON<-S)p}VyP*nhz*wsQ3!-&eot0aqwONzETA>tEt28I=R9H)5Op_r< zqd*yM4+3n54c)OmyMHXX|tYa0nRT&n%N2Wv)W4`O*VCEm7i;Wloo_HO~;7RdHT{}lon z*Kze0a-}wFo3u-LK+yEnaP2E?58_|pba2ZR0y@`kTQ_K@wpdk{aJ#l|HCJziR&N29 zM{__&dzVO?up^h2bSFYxw-#t$cWyb?cC{8r^VW4Ymv3u!Y`b(#iT6=W*C76N5P~#s zHP?2B)@D0*Be*w5e|JaQ)@YSC{(0lpa{;z`8TEP(w#xKQ60NYht(jh2F0*n@*K zeQ#HP9d~zwbaodvesy?Q9d;o86@hg$e>qruBX@3F*hj4xh-G+&$+Sn$w@5=*fdlo4 zivoNyGb2)`5xGdD|F%w;8@E`KR(L7-BS`pj7kPjy zn12yDkyY7pGr54*cW<|NN+&8He?|FmQFmN>G=z0o zBAoVkfjM`*_Kl@hk&Rh}wfT^5`A5h2hRybwq1loFAaz|hlZBa+-Byl^c$V+jZ5?RbbGLX4rbj7OKADZ*bLqI|PCnEQE{A2*&u z^_K&BgE{$%DSArz*ew-0jdQplSk->p8JJhtnrE1DyLXlyS#z~^83nG;Z8h;u2r2F}GyLm?mxs?qWnKy!ppERb4+8}7U zm~9#g)SyMfpr(6tQMtNB$<1!zS81<$A&gp(cT^TE^cG|xNJSIZ;@W(D_epUWkkc9= zvf7tJph9D_3htUm0UPz8L9k1im-kvAj2fSNv^QBa8I03dle0x9J4nCTM-e)t7n`xw zxK}~jOFQ~OJNqD*RHaWiv{hS@!@0B>TB}z(wtG~low&3K!lb`@LZ`0RZ(G6hRS~br2Lmz`3=+ zn^nNSwOb8*!5Ms62OJ9$yuk~6z>}d_*#H6>prI9ev8%JN2Mthhjb2Ao(L_8%Q2@C) zJWKzK2u8fcU7XNL^q$`v5580KDi&j#EXR{f%5FSlHMYuhoZ5DL$c5a=MwZAIw8u&I z+6Dmy5?}{Ve6L{@JoQtd`;(P|Rh*|>J*)h;?b$jPSf;m}KD%7Yznsd?_^QX;Kg;}? zuRM#g+|9ET&4*Xcqr4!#F3(9|&-uL1{rt}XJeXqJw4Pxebhyr4J6(1g43h5yThvi3T{Cebf6k! zeb%dC88*PyasAeHJ=b}C*L}U$f&JHoJ=lqT*oU16XkFHIVA*xx7HrcV^*c*t0Scxe z)|UYqpaBpX01&v{3Ap{+!9Co?ecZ{t+|B*m(f!=Lo!htF37h~LszC>);TB>%4eMN& zN%+;Xff;C_8@d4l{Jk4w0pJ6^;0^xZ5kBD+e&HFu;TawS2%g|+Vd9g(43?b@?p)2Y zlnpGP8j@fNj)4onAQwoUeVLs+h9_7J+3kskNlAs#?rXjmm zJ&JpQ1d>4qHXsR*feRLZ5pE#qhv5c>q3NCe>7hRArGDzEzUr<1>ZzU#nw|{EAn6%_ z5psbGjv)z_p&F7wWCS(ZH@p|vpc18UVF1R!?#CeS^?vX9zVH41?*TvX z1%L4Q{u=In4C;OW62I#gfD32=8k7O!RXw^flLXq{8sMH0$iVKKU=cdM2|z#eMSt{3 zzw}N2^ie!Lp z2r;6>i4-eZyofQQ#*G{`0+5IhK(dDocxgoJQpqy^A+!lQB0IYyku<*}#Wiw;Dc-II-fz4ZA{3C^ak=9m_CqS#V>m z%WJ|qdv3CM^INx{N57?6x{0v4tm)<*x~MZ!G)t>tc}f^Eed;9*4$8m0j5KW>y zn~PEA%>y)t=G^u<=gpq0d*&>RbZ6Dp;adN`8ufR(JZ*xW-OXAx!H=oD7-P_R0~%2-Q%w+6qIe~w z#va?KqzCC1rVcKa!NsP@DR(9#XNrn#wxaqMDycYXTWXr$qDiBttk#$&oO9a9EuQSM zJENzJbv5X?iZ@=;>OAw_FvEeK;Q#i8e0*okZZNm;fOfAF_M|^{|;9e~1 zxEX^wE}Q1EdEZ zXXvzf`qN4%E+M}W;l%i>T7^GY@^o>7$OuwK?fyhLmPrP1!U-PkJm#+0sM%J zV+1mgf)wN+k4Q)eJ`jmVEPxS>$V4b|A%YW}WF;?Y#VTqNi(>R32d8MfGWdZOK4cyO z-H6JV9gvL$Nyap4_y`70p@C&6LlABG$Nu4Q3bxE+Eq|HE0+d0I!{j3%AE-w|B5{yu zBP22)xy)k>F_KDzpcAY3$o^|0a+b`{K^jfT%2bLIQgDn&GH!7THZY(KIM~G$a1en8 z`XPw%+@(G5sY`qIvX^2=Rj>TyrBL}90Xq`x79XwIR1ce_ zRhkn3w@AhhfI-rd{;rb&v9#l4En8VTwjr~cZG%{GuvxLPldSEGtf-RHXM#sg^OR` zD3*E&Ic`aQ@Yu&9m!t#+FiF!u(&RRGxeIQvb1A#v=vMc#6uvBHy{p;yiWj}0-K=zf zz=m6#a*g>d@q36XIfC>87%L_La!UdX7rPj_FCH*tZA@dx8W^$+i0pw8oZucSH^|Lp zu5zENT+258*Q?dFtdo^oQeXsO8c-;#Moo-m#q3vdy?Dw%zFZPKbXhE7fpJO5eCCpv zdB!r1v5ZL|;2Yl!+Wh7iySc`6j`N)34Cu(}IL>34o_!4s>%(kWfV^om zrNvB;TVFcYxW4q5e_duZTUyv^7Im>-4C5NhI2lkFaYlI<>u6gA#fwTbq#E7pTn_}; zDi$-P2Qz74Z+mRdwzjm-ZIM}%xX`#s#-f)6ZFI{UBh=QHxrIyaNxggC{N{>BfeY(= z!~6cD{VsSx>dlY@KmiH~h_+$vZSaWu8{iI!0udSzg=j0B;S`s+$Ag3Dhkyyg8yIL#q`^N6cE=g%fM&tYxzpVMsLLI?W4i{5jj&pYTp zf4I_Pz4M|A{OMU{I?tU>^+HEo=u^*niLIVy5& zLJmfM*wRyk11ER_9*A#yiYVa(LwLgSPtb^tG=lk0cmnF9Z;=yB;2}py{zaz$`y4?ef5V2Pr!V?=YaQzdkr`NjgSKmsDbwffQ@hj%ZGnTKzCrv^NB*fCnc41T0t()As-d@c_KXd^Bi-Gst{47=*NEgQy1r1fdF} za0LEGdqoI^trvb3xPmPRg?KOuN7#c_ncBp!^*APb#h<4b6xTkt=ND%$U zhHe;vxyOeSn0tz7g5uYG%*O$SNPoG9hT^1#OxS)pxP_`md z4CsfgxPAS1g9(UwHi!qRzyXawe4&_y{>Om*rwXT7iCQ>^TPTOE$N^h;e{*<%qezNV zF#$vHgbx6Ra~OwrND!m2gt}-Ds0Vw?M~DQ0dN*i-T4;pFsCwu~5a>vJ_qUE2XpE5< zf!c@%+?a)NIE=&>eN8Bbum_F=0e{w*hS=zP3n+&PNPJ453h^R92mIHNsCNW*I0PKXuiJGaom;nI*JDf*rP5=M^ diff --git a/docs/latex/wx/contbox.bmp b/docs/latex/wx/contbox.bmp deleted file mode 100644 index 183b266e63ddd44da78a1023be912c25151b0d9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107254 zcmeI5&w1=TZ^iBRO97r_n*vft7TKkPY`^D86KN(Dq`GXAa}GcPHw8FDR)Rja++kSZmA(B7({{rAwkF&(1(=pp^X|W?q=C8#JoVYkXM*n+eZvM|P-;BQc|<8+eZi}J zBZ)@IAfYawJmK-xYC~PSPm=WRMz50;V%J$bh7z+I$08pY)9dX-qhyeb8EoO%@Jnsp z-RO0aLhM|EpL{I>VFDE}8%Q)tV#b#dP@TW44R!54Nz%I;y-reyU1!M*uM-5b?-Nap z%#6eHZi4IDd$QzYw*P<}WX2hc!G-GhLyLh#qr_?qQ%36h#F=68X@4Z)%&f*+GV?c8 zY^^bpz?Fl7(Q3RUGY+V-#hX0HSxq!G$PB+2n+(ynId2wX8<-k^OUy*>ZPsT&tXn8F ztA-|#s_4xT3pIYe$#p;i&@QeTOidzHxyuK+SK7S0(d#6I*m-pNy`awilP8~p*~)uf zPn4bK<73QnAT%RwJ&~$3N|ui^L2TzH!fyNLR-WH_YIrHX>CAfKac0fku%SewWYEzK_C&9L^Y8z49mN;A&rLLjtwlfTT1<}J z{!_g|-$N!MCrKd|ZQtW~X)(He%Z%%@s+L5YX=T}%!4@&$ADICyKF&;_sW5Dpx5#1# z&<%7UcXA`aqgyuh-nlE!Ga#?u)N>#;K%>At#&PHSWDvH7l* zB2zl?VJAU;GY)3!a?f!);mnrrpCwFw4lrhCBnmUx+F-Wb{S%lqcf&>!+xO4NjPnY9 zwAMH?(b!sIHqw0tX>14MEDUfGjcqm2C^4+@TkoGCg@CQwsfj#TY;58Pv2kL+?`n_R zlH7kc8J3e2Vs*y^u50Qx)@W11nZZ8hlDa;t7Jr(Bftfj`5@_&ul z6Wyfw6J7D+T#rVKJI<8L+v)cl|AgZYv}sfVPm)6H(5)79dKXQ)`#~W|A$HEM7Ibgn8erKKf1a5K_N*YcCD-y zbb1#}y8A&PNg;O5uNHKA7frhRK_N*YcFwOBbb1#}y8A&PNg;O5uNORUQ|g7P8jhfl zq!5RhWyQg}#)E3fa#O?m-`uZXNv!&lY>$X;C(I=&#Lm)KLF3xPiPVM0mgP5h`qvVx z-A=YgM7I;>k`!WRX}zF%&FsuXV~bC$^l*{^r6+qsudJEC?qMw&enPX`i+g9*AwdV5{+Ro z$T#`cUnp!X5NGV(MF4Cik#xUayzkACb*q2m!uFoTVn;y^zm>abwOA2=!5^# z^xEZ8Q?lCaWP3z(J7F$KA$FF=3LeJP7)V`M$bV&KFLXoafv(!|i^xe*i0L3xTrKGI zE}C@rgF=!*?3`aM==3g{boYZol0xj9UoGhLu9^JH-46;$3bAv3wV>0xXwuye3P}pF zbAGj;)4OQW-46;$3bAv3wV>0xXwuye3P}pFbAGj;)4OQW-46;$3bAv3wV>0xXwuye z3P}pFbAGj;)4OQW-46;$3bAv3wV>0xXwuye3P}pFbAGj;)4OQW-46;$3bAv3wV>0x zXwuye3P}pFbAGj;)4OQW-46;$3bAv3wV>0xXwuye3P}pFbAGj;)4OQW-46;$3bAv3 z{w*Sb1fC>?IGHtfC=Ey8Nm7VCvo2kdM{hbeckPE0rB&>kTieRd&s>t?DWY=;JV^?% zYig}vGTZpu>hv~P67iH@&*=7-uuk24JreDJ{YL_iS%adyHEnj2Pg9IfitbH&6qg20t5@n7dWgP7=K3=s=P}>>A5wrQA8KX;DkRPy(-0F*Vk5?+P;`_nhmq zj$uh2eK8DZGy1_qX%&0jXempxC%q0x-OXYihn_#^{}Hv+a#LOT`4}X{Q$&yO2=pX{ z*fsS6_s^c3**`V+madveVRJCfl7%eZ4^FH~(spiQ&9LP+GtjtW#;a)l8Q6K48t9GT*JJiYG4e)45 zgcc{YhZASSS$_`Txq#;Yp%XrzZ{0N(Rc5Co8p9jR?9e&D!--Rv5dkTrwFXWEVg`1+ zuV!lvd@8u8iHn5O5^Nz1FEQh^fFJM1gNcWkp|@NIfthbgmW1|R#yKsvQxlD0GUF)Z zsK@?qzDO%g<0!^~tWQHz-85cdA!eV}m9Qw55j znyR+r%&KV38@00=DN3Pmq$KQe(Esp%NstW*v}$1mOaRwlTS`H>6OA2Ccd;@!a&;8d zF^T!ci+TRMfces8+q(~hepG(+%*ZzcVR`9j0?{W*Y)_$RD5 zb?TAaV^^DD$4-*4iAa9zx;0h*HS^od$dG>t3}*U)i&}>syV?vp&J5;{S>oyYt|Px@ zew!Iw60--c{1~5Jy$ZkgcvOev?B0LFjAK%_ZLoaTiuRGK&4w8qflZ6Evz=lH{-F6y zW*h-z#%mjAMj1Uq^z6@!Dm20R#%#YOj7`>WJMwGhN0{w@RGF^);=*z9`6cMTocT>= zUplYF;{CxZr@B)4y~m@P&x(&2Hojqw^=;gxs8Xuh9)l%kNR9JZ$vmr7EE9Di)-icG z^M!`(mzfo0k3Qm9vV(KXQudL|B|AT2-WzgQiP_y1!_4Rj7`wzQj#{re(@tQ6na^jM zb~vZ{yvmgVH=OhFsadrkhepYl3g<4LwWuOBPG}T!0jo)`YO%VFQ?HMds(V3|s~!um zK|N^}wX!#z2S43d*i4ena#|%4k1?|a7B54!Dk3v1<5;dd^jGQ}slLQeDkY}l^-2rHKKADk^C_n8U^%R#`!>yRWNa|QQ0SRq z`IVXRLcm~fycCZLGmbJ2G!Cf;nV}&aMr$lSlUFCeb3}<$HHs#6fa!iPQ(Q5CBF=RD zErVePTMR7wr?E*&oLX1{4HG#HQb)%HS&BxV&=jKrn&`m`MJ@-pWy2E^Ak(uHPb*M%+X{|X2*tE|~BBPen zn4s^ng#3CAuna+gs77!+?Pdad#?uPYYz#YDFd<^1hQx8fjfKth;Dqh#mtn@ENY`pp zlu(V?*p>XOq57Q9ypA=(3ap{|%u8gY$aODGraaEQ04S;o3)>`enqpJ6rgOCiWH%Nz zCCN)3X1S&=qbKYgavXs!ay1}02tYs^W~D690Y8gtvsluF{gUSCi4TUV5I z{KJifO-YOmOhy;FSUOJVzUI3yJMHje2(B~ZX{&4+M`lP#0MQfu~%E zSk&=zjTy?UCGQX_Q5(IGP4izl>YEN}sRA`AEi;o9Q=v5`X?Kj7BFDl9HB^-yGkn%5 z7%I#(rf9r|>BrY!gn&F9PxPH-mh^m-fS;mil3ZG)ViKBpqrNTe8hZWhN8-hX4y8$m|@X`ha4xc&UL=E#N|JGiC&=-VrDv$ zQH`pV8P#N@XXbU}GV3snU+!pu{=qsn-xWzkT0nw3{-aU+SQTYj zD6oGrW{z21c9iu5Lp#=7X9l3^3a^ggsG#Fg88QwF(`o`DgMj_jIY2U*G4corAXLfv zR2i9Rm8!BZ_+=@X${d`d9U+52d&(du9B`JZTPn*&vc@FztHugfE;1hiLNwD1Hx|vqe z@==T?SWAb3B?<_7gA(MksJe%w4iojbp@e$W;^8DEZ1}9*G(*U=II}7WB2-dUwu}rK zW@To}iYz0GT~rA^yuf$VWd)V;I>0q$w_2&~6m?eVm^mD$Wz1xZ4(f2Q5zlvKu%S3% z`^Jp3AcrQ+iy1QHnu3MRa!bt6N0h5C_zY$=Bvo0m&f(J6qLMhQ+AGs*YrcvydJ#t;ia-v2^VVe@z zdw}_lCQiG`xUM0iIGOD^!gtIp1D}f46vVZ_tJE2yE4X}eVQk{;VW)6X<2xysS2-nP zisa&gXO@_0`)TX)z~JCLGoGWlL?I)dPI#V1nj9hF{GnfDSe(VEeg|CgafO+keLH3( zS(w%H&16OtcViRhQsp7i3NsB^uKi1(zDq4SduYi-H9g6+F%+Gn>y0(-1QZ z*|*#70 z)0GjgFz2>SpkbzE{$#dItS(rwaL{u~T!K$#qs(yHm}B!hSYDpS<~#=+V8+`Pb+iuF ze@C?(XOr1j1QceW?KzQgw)EH827lXLVU{i(e!B}V*Ir@vavlGJ9iGhg!=KD1v;742 z*O+lOne8XAzs8KS$!tG?{WWHsO=kNE?5{E7Y%<$VV1JDnXOr1}0{d&sI6KZP-9MY+ zcLWUcd|%@`PPyEfVRzucrjP9X;r-Gz(tI|V4IatKY!FmZo6Hi7L2)u01eMe#vjk&M z%*=2)#q0n06O&OPUV|TO?HX#C*?y0__Wp`5U1KuafA}V|$!tG?{WWHsO=kNE?5{E7 z>^QT0t7C_}zrhRCNO5)nZw|O{;H}HIXLbPdWVRpLWHy=YC$PW9jI+sXKY{%{D8P*?@*#a`n_{isXc>xf8+9?Dt)MxW&nAKf=lEIJ1pgA^VM9yvA~zUEJvh-J8tz1Dwnzv;742 z*O+lOne8XAzs8KS$!tG?{WWHsO=kNE?5{E7Y%<$VV1JDnXOr1}0{d&sI6Ka4IoR;`TkkYWh?E>x(N0ED6;&=q_q@})|*ZL_qXSiqOuP~&nZUltn$(G3vDa&S#huI zi$^^(&k-kX?pI>-2O*<6vk-Oei z)Bj>^)ezX!AC>fos}A3DD}Grp<^ukdY4wg(b0GMw;}BEO4? zI%EO=#iwXF3cM`CA66zaaiLL2&P>PWBFqppVpjKZyE2m?fB6AbqoSRq6+Zee!VQq( zjIpHf3TDW{e=4rY;nm|zE^=&gNNJ2RR1i>zFpW2%BG+BabRdW+;3;tpW}Iils_a1u z!4%9mLV>_{iZh$mHsZ{TUX>YXkXhMl)PYz5!hFfTv!UCLO+w}rrl4ZLDw^)cCZ{tt z$A7Q0$r*Uh@y9o)K*Q&L-`gY~%=~nKz%qzD2k^vzADtc;abzIItLFeK#jCq7&kX(} zifkCwz0GO_q%wvXqllO^c)^9Bc?#tmM{;5&Ed(r%3Ja;rwT42F2ZC7_U>3uJWVn^R zrQl}~R`w$5%vjz2c`X^!aP7xppI)*4B-zc_q=(jh#tpZ_%&cNzmW*A98HNl8Re|&% zGY&u@r$voTrG(DrK^4~zV_K6>F4Q<{`&r_v>`Uo)W0QLKI-XOFRiT)DO=gIUKe)Xn qvvR}-_b>S7@StY{YAa)NpyvCkOlJF!{bV+o?I*Cm#*DLr%>EzI<%_Za diff --git a/docs/latex/wx/contbox.gif b/docs/latex/wx/contbox.gif deleted file mode 100644 index cb57dee9cbf699c93c470efd8f62ac8939f49bc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10175 zcmeHLRZ|-PgQSAASX(GA1&UjXYl~}ech}(V6t@7ygHzms1$UR=5;Q<@hvFXY`|fYt z?ZeLO%g*f1?8{2aO7ZcVSijbPb^C&XVuA8s_`jf#{YU&i{=b3$TMba%zy069EdS;I zZUO}ZiSh~qpU60`CjxBk^wg2()A}S0v;;xm^8zclP@P5(8L$*=&h&fgGe1-vnN! z4Ygf`HB>A_Xkmvxmn)+zL9J)Y4Pu;GdQhCUVA=9bRjX}YmxrsPP1WmNzusU{0Kkxq zzDP(g_B%pTv-tQTDa&JmZu8_6XS%g9etV0y)D%NS2ExmsX>oR?;uYn3?KyOlh#ZAS zx4o6-hJb*_jQW)s2&Z&1wz~VomWcr+?L;P5&)S!;y&T2W-P7eodJdxiT_1%lQ#0g| z+r%oD_co}a!pO+)`^}*9Xao-h@tw4|pN(&Yu;W^ey>jjr9>h~O|tqYOhc1n|fvM(%$+$k%x2vCNJCDraNvAx+0k8>`N< zP!!5U_s%4N%&_!p%8+xUekM?L*epX#z-BL-RP@~{`0~VUC&-*a$0U^=*0dF9q_||9 zZ@S#Hn=Y15Y!&!sf{`&VtyR`4+sotd!0D8>l=ipCgU)_w$Ihaax3(BM9T;hLv%pX+ zEG4&>X(Cm6Q0R2i3XI4_V`lM&L=hL%4hm!(2i4TsmRHtF-IwP>@()XMn~*T(TB6hF zilRoCPKsw=>S#_*_$Ih0fj9N=xYdu1WGk--rn{4Q+bhqQl?sbw3V*6LuLP9UWN!OXp}8T~{BBP?wR~S#@BW73 zefHXjq_4V@k6=H&+xiWh^V&|GGpM@X%~YDW-^+VB@!l^?JH6a5E~)aVDXl(z zIQr6v^LSi;WZ-$yyqA-C+|#p#MQE3pR-xl+ z5s$Lnn~*>E`L@uJQvdoduDRxY3wx|h%9o_p0Dty;_O8>x`1eMS$4GGY?d9#u-OS%j zl|;Y|gT2CJAO;pW%BmZ~n;AJn)NP~J^bF0YV&&qAhx6%jXe{r2YFt&JDW?70R7R-3 z)hGc}J1nI?X{o{tYY+3@TkZ1^h>Zd0NInLe%k)tYDEc7v{8BceD7Ec(mIpCl`C9ho>rCD z-G@k&5qIWP%Z-0*f^6{&3Aa= zA!AOd&RKBA68^ME#luq9YzezPx3zbZ6fjrMYvf!ZgY?K`z{6!O3O2*f28O9%lB+xn zg;Fu-Fw{=~|2x>PR3hxtbd+vA{pXHSDVxOUSf6C)tfx{LMv|F?4EzFG;W9b?jG2^H z{6cL1GJyBYbo#QJ_xFx6MU%t&?1yAp?&mUPwbYhBB;3Ma;xUypSl?0hOkkcl(~lOy zo^m;javuCi%<5?PhnpjQsRDYfg%&0LkCCCnBu7g2+9dUB0EmDE&}-~Lvw2y)%4!^_ zd*U-&d0`dewsWL7&7j%yP*;hmP-#jyx;W^PkQWzQX-+S{1ap8CNnG1jIn-tMl4!b$ zJOSC(%SleSG@ujb$5!Z3I@IsRdBr7=MUr6XD7=%c{uU2Xs_0(uWeL;Rc82g3FK}gl zW4^%>RoO+Sq0F7ONx{wi6!j=$X_NY_nGNx`AK_m27}Q|o5bH4XjYs$BJ#HJ$rdE%> zujqO4ZQI%NX{d|s+EJs2@xPN(H}{INJ0ITmB}p}_BTQjLtEbLrux8xvx%|HY8d^29 zP8VV^NzP@d<$_ifj71`Me8WE17 z4@!zt&vF2uBwdX@pAfXM?si*b=+1t8IMX&}k8`wJC8jKKHJ+iR(9_SdEv)lL!8HJN zmaZvCd^DRI4TEJwS*6MW$t5xkGkKSjX1I+Hhp5IFwe-_kbBQ}$RZzQr$?yB-Nf@hZ zPQg>=IGRVbUXf!`nmJR4<)9pKzmvQLnGGMVbA`U)InJK1HDpa^6wxx50>%1yWBM>- z5uP08U%|zjYo(Nc{5&n?znv5&%b#6rUrcrk7c2NTr6ud8AxcrXM{)k85dW z^4BJD9U4?fhwF(grJGkCt#=AaZp)9^H!&VXueo3!k!7mM_#+hi5j4#d3^!l!d~)iO~j4pW-p;@kz6ezqfM z3=&EuGbK_h6(x(GxAr11ciu|K#bP%M+o|b-2IdSmIKQeKsB@p2L&Sb&3~r_ zNN75el+vwmi>2R>F%I6UC^cNkv1bL4q3hM~kR=RUM)i9y8v`+do``t7qd9xs2FgQ&v_|GoDTi|c@Lf)hIUzzUv$Z$iYAOF*h+zIh&jbcOyrQE~h&p^W#wqW4MXjlY}G?S#=C z=(VZa4qSvWLQ6~iqnZpd-zC4f;?L7blfrQ2qxV*L7p8{sO|I0ApSC5c=jIh3 zG7k!;=kV1|MSIKS>n?1@C%nNB6PQXi&lmOE+FH;up;6{@4PWf7hN#p#PSD+-FC_V~ z?jUO2d^(@}MEIXpYa6N5n9qm#tPlAH3{m)Twa3Y5HAJTmYRcA zN7KQM^I2zGr5KE1lr)YB8D2?DWk*qE7uqh2yorDI+=CxdvNFn2<;n{Lz9##W6-Ae4 zz~Zsy%1&>~ewUY*$mM3(R#Ze+G(2Qi+m?5jWK-Hm7$tVm0 zjtT|dSJm@X62Vwumf+#TtSKh&>HC^zxv(DT8c*9A6pT`_cPXfusjZteH!Y#K%(WkZ z={r)jguwKt<1HHNZv&Q`UI%ypzO$RJ7EKbjHZu_bl%z&h5I z8ltv39_E^t!|J+JD5xxr60@FHu%1h=9?!R4h#B%@#fO2ko;$5xDW;yL4XOaFS8J>1 ztEkllW>{yGda2v|yMTNksIpi|x5~`=6Ws``Xp9(YGz)iUy7xzwZ?u2(uitF+j%h+I zX!0Lzavn`lrEgMZ&b7g84k4{s(rL2vZ3-oAegka!E#JiMTdfF>-L)(!p-xpBX+i9? z=(+f2GPh>SxAqa2hxv*#>or!yw9=2ZRv)#V>9nqVYHg4QR~}hr3mP_!w!Q5y>RM@i zBx>suY|90I@-gH)ywtN$6?pUQd}d*QY=i?_k*loZmg?D zvOhPv)X=nFB&(kk*87dQvW&KQq|~eIutK}6q6b!C#4>pOZqSUSyz8*sO24X2YOs#9 zBBiy$x_vNDx7`U)VWU3;go)~nmA4!YB0UfT0W3qd`h&m56wm9 z;}Fo_LL&gu>Kj;K{=4cW*vJaW$og_sJYr<*VI&n)^`~;c-Vc^DR+Wwg+hBqv17O-h zC7OPtP&Z==<_67}8jZ(hgVE7$zlPq*flg3Xc~nCOR-J(0*brhY`f-f=$gihz1gm0f zVr*=dY6JWu06rr+4l1jbCqlFt0aB92Dnz97DL%I67Uw+#Z@ zdgR;VnX(If+r)$&$%Hw&M`z_vW+fEbM4x9r&bBGo=cM37%a1lf=`G7FK+pS{JW&C7~Ne}aj5Lm(_8b$%oDSfkN;BO4u6;E`1jBK0i+ zq6N@^3K{i(nm~t4T3!1r*{$ESPoh0TxmIfRj+ZHR*2+-VU#(6xjIX~on0{24dPTmD zR`nMHxe_e-cVKs>0DZU@_-2Cerv}u*#h4{5yCrtZZ9$s9q>|gi$t*$WAX2|Jbb%h}Ja-v{N$#v%7p@DCCxWRofIjB*Y# z0+b^Rx8*E}xCjpa@*R$=9dbIax@FHNk8gW)9O_mr@5e0mj_aI@ZTMlUn~_Er<1D-v zTI$5X^GfjVN)0cJTj;1d8muBFcsi`b*d}^GxCS+u4%(Dosv>^APUg@E6{h=hV57lVY+VOsUfqWM*v9_cG5Pq%@p)--g8}=&T54Z(^r6A%8PWAD=KH)H|8NjkyQuV3cZx(adZOBN zg$F-bd$QbB8)LU_!37>rG#^l2p@{qnLVfpMC{p=LFUq@jKUhkgOnQT`=}ACf6*KV& zB0<9}YZa>g_)mg~Zy6IzU|~ekjdMgvTaw94ywO+SgiXaP2KhCi0~fQ=batxcZQ`qa z<g2*+|0n`2HA?Lm=q41Mo#aeQ$cvsQn5u)F6&wgt8=DNSct|w;^<<( zwWJS{bIZS#JMq(#7s+pXxd79mrmrSzvpN|{A63WA_IJ8nI&hT2eepRdH@N4uvTuAr ztF#q(jm!0~`!(Knyy%K)!FUe_71rV@2LEZ~yDV6h}-oV0~w)ZNM1X z`uFovH|v8`nW5dc0b<$ya|u$+WM`3&dQU2i{G>1#nJEa4K*wm_rpfl&-2r=u(c6(+YxT{hUg|x7$!9 z)<18#ltt0QK1tH=eRUgtFG;N7{J;UjfZRsAAJTPK(P zwE`sb^;SixL3;9uva(qimzs7=1-C%0YKq2?lueeC4uDYN zgQ~8EP$R^kdf-M^Jj~$ZqD;Yas!$siGf%xajXRHl#lp4nvMKcS*@)d5*IysQ#}<#Cvd>KRsOO_h!e}*tTOfJ@aB)a% zWs`Z534%af0y=(1(+Uu{+xhj1%&Rk44^4J=j0x?SH>U+TI=+z;5|>_`9fl^LQD_k` zX;JVUTE2VwL9oTP;`2$$3d+t7z7^ONNyvDfPmun%Ed%ZGxP}zd{vdN2>BHVkb5U^u zUN_XMZduo3VJb_@y0Yy-*Gkax(;DR2Y&lSTEEyftd%uRXvq0=3m^{gJb~#G?E?cH??V>iE}fGSq3lR6DqEZ4#T<`7rE==J#Ziq{j5L?JD5^oRJ!F>_5Fl zXp6iG;$0}&IFqJ0gpbmt-q!JUtMm+NtyW}PA}v!XM}@J?cA|9~f)~1He*=Tk3cfh7 z@Nt=2Oj$L#ez7I%;~fh7;8a4rq>Itq>tpW-jGQI#oZ`(OE}n8?@tOAN#-k)IMmINX zQ|kT|S@WXyU5L&2-2v|$0st_E;kSc zdT2UC8Q@P6hFo_z!Byf~IcRQYnuiu^&%^4?(sSSP%ZL%o{Em7CE}Nr)0|06>o=$49x0Nx#Qq(%WyT=MFQ=NCXb5cIq=#6`X*SNJREJtH zDbx=bN?yd*_FJ&Ix5&TFpGm?nCuR>r@&il>@Zz(xikL>N0hT61cVG{U(Qs_bE@ zQ~j1a4N<~Iba>!AgeBhq|AeN8TE_i*I(~SIqQ}jr^u5pxjun0-pZUw=v-XYoDn@zV zo7vnKtYrSnbV=UVb9v~J46KkLC4U00Ke%Dm5*7R^hXa@3PXpFcM~uIsRA=*BmP@20 z1!lP3ySc#H8DuqDRjo4W^BGWWPI&m$GUn%sc?WF3|GZ}$t7b~v+Rc=M1m?b_o@aPp zQL8wP%*07S{~Ww6Ay3hz`L607R|xy`etM{&BCgipKW7lWr(DNxpV`u50WDpVA~v_6 zqqsdhLj0nT`33>^BDT-WU&$YkQmv}d5Zh~@(WJII5CYajZ*uf6{}@U;O8(?oGq$x6h7`er_{*h91%L8h01 zHS4X(gX}(>~Y5m<>s&;->`?i-K(S=@>YLBj&6M~M_^)55KHrBvSX@_wMonG5{Jk#`a ze!+N)3fxB{5{E=ha2)oz*+NcY19&> zAMTVySo!U~N6TFCbj5ZIUGzxb8>VXMl1Pa@|3xinxJ6?NElG+W*R&?IpL{8U{>~Dc z=|k(Tt?Q%IWitao9EV-;CHf_nH7+Nx&_c>e-E6;q8fF#o)0`TYnDszLeAzDc^iP2G ze&5LxVHLUlW)UN+tvuyCFD2T!ac=qkN6eI(svBD^Nc2!aqDr}sIb;6M=n76>LW#Nn zWsMMQJB4%4#iqChGwyOA_(HdsKg^@PNZ8&M)1^`pdFr6jVegQ3wQLXgB5xBCDaBv;C)8QDv4qL52+H|4*a1wdW%=<^@)%*EW z6Uz4aFT~KRpSDvio`#T7=*(=a6?3FwW6=53yIecK`BP$3CBMbzfTgf%XLA2$ttLP>S%GEBbN$oz-A? z>+rtTL>TycUUxB0jAx;w+}+SOd$CJVHL}uSw=%^4$ej10vKi|?pMuY^Lzm$4x}hD* zXU(7b*n)_Z@u`0Th^^OX$3!mzUQ!=pbXzMbje+%d-As*DM*c?#!s50QCc_JITxWC9 zYL`!X$j*zXq3g;Grk3Wq`>QnR=MaW7@3C3u>)8AHKLuC!a}fbsU4BioHjm4Hu_)^c zA>cs}WzMW><7@!*o4X0K?v7d@bhH{dOk%$jKR*Akw$N$Q!mdX;4;#_V3An3%@gFk{ z{OLsP_aw`1d@@hm=2X=+d6B!3m9E@y#ZCQ8!uGiGvxr#aS+M(1Ec;kafK$t$uW2pX;f<&9AMO#om7-GOyab|4{@VB#Or( zN<`N4>>@&vB}%&8)jYy+@R08Liuw~wl!8U+0=S9279_w(#>+t)(y(tj;PS(SK)yG^fMp02i0O;kY?46+!=acALQxUVn>-a0) z&g(|OEmX_)R{YJDIO(idPIL{!r5Nq3I2#u9r&}K%LL6VPpCqYMbh}yXNsKs2OuC&H z7tv4a$ESN)C;66ACA3bSMRNb$00W)`immYNpYCs!9NK;Z-$9bPSp!m)lKSnE^&^r$ z@C5oU1esPOrw$}d$p#glM3nT~DoF7^E<#z5kqIC zRCaUiY-%Y1Z)H^FWz;T*g0Q&5^@jslsH611M1ZRPF~z@~riv-ViOiCTt4y{)G{gwD zePoms`_9u2ZA$?(cFeZ5$B;uYg;LDh&FlNtfvvxQvf#N7{o=BEuChs4BWdQcY@2P> zG_Z{Jp`C|2lW#4gZ!?#q5AEpl6JA&A@a*Ym zz#j{v0igKNEC_V&wpCs+L$1}j;+(toXh?YqtGfLF9?<~fw*wdw-AHV}IBI_vCaBsy ztNZdz`!ree4F2yby=roaUP8n;%~cQMSFzzYy_3;2%g4Mc=7aK4{eY}K=__%7dXGfA z%n%m~E1tp@8U3~!?8jHhgX8byj}!lN6meI`1Yi$s4X( zjpQ-47R4(B-F5#cpPsaPJDbnjAuGEvOlp}Hvdon^CHE~QWwGJ-Z7vKr*ECyHY%+@F$yJ)vQ$83>%i0SmvNltX zC`HXokWUL+rwc7732O|<$u|I64?t@0DfJ?_1_W-Y0-*BNm;fjyh|isIXmBQKgw(@L z2jJ7tIc9TVp;>uN`*}ToO)~?5&ztGrM_W{dqsKR5?YN`tC2O>WxyQ~mXJ2XA!snas zG+X~_Y71krbAgBus2#$p z4b#<*vRRDxUJS{Ww0+hb6~Wz9*4`M=o?OxfA7~HWYlAGbW3jcT>Qi6gEvD0G{}a__ z2kNAbYu`jIWq@_kN|)R%zGtBVZv7Unymivab@JS`!PvSPth$-Py4et%B4OMd)`_5J z_|U~triLctqfP<2?w>I2{BhmN@uhNBWdu~Wd^NLHVYxhe8Opj+&q`4&ywp%8m=de& zmxOuLHkzBQEe2iLU(rp1SGIAB9b&HJpd#|dSNJh|wG|LEi+Wvfy^qP`#qiFO6g`=a z5%?cU5j?5!aRmR0{^W_i!;}6r_G6!mWwnB!V{0D5q9!z)=LVcr1U0K0!8-k}IDZk=2x1X|hP_)LO({?zpb_`!T zLB$h^#g3*mER>V|K(6uAz9r#ttzJ2vbc2ahb_D+q*pPdjRdStPm8$c8PQiWMf}h7D z%ZOic-BWTohIZ=GIOF=8aXficEFu;Z1$`NxMQPN|{Jc~=y%dT~zWqU`&>!<5G5+nE OGDfjcDFz0L;Qs(4Tp}F+ diff --git a/docs/latex/wx/contents.gif b/docs/latex/wx/contents.gif deleted file mode 100644 index da92528ddd51bc53faff487ebfe232ebe3ea2136..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmZ?wbhEHbbYM_m_|5;{U+J45ENEC|UpiulSRNk%57mK?meFP@Z7mILIK*A>*-O!NFz@VXc@G z8x|gJ7f=>saS&`c(k;QtlyG2TAW{5J|>@-%;r8xr*qTNV^g(#cb$pYxXic9 z*l|_M&A_yC9oCgqe>x2{{O7yK=52Yo@zI4P4)gUQehFz_X$@JOwf9#+=Go - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxValidator}{wxvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxControl::Command}\label{wxcontrolcommand} - -\func{void}{Command}{\param{wxCommandEvent\& }{event}} - -Simulates the effect of the user issuing a command to the item. See \helpref{wxCommandEvent}{wxcommandevent}. - - -\membersection{wxControl::GetLabel}\label{wxcontrolgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the control's text. - -Note that the returned string contains the mnemonics (\texttt{\&} characters) if -any, use \helpref{wxControl::GetLabelText}{wxcontrolgetlabeltext} if they are -undesired. - - -\membersection{wxControl::GetLabelText}\label{wxcontrolgetlabeltext} - -\constfunc{const wxString\&}{GetLabelText}{\void} - -\func{static wxString}{GetLabelText}{\param{const wxString\& }{label}} - -Returns the control's label, or the given \arg{label} string for the static -version, without the mnemonics characters. - - -\membersection{wxControl::SetLabel}\label{wxcontrolsetlabel} - -\func{void}{SetLabel}{\param{const wxString\& }{label}} - -Sets the item's text. - -The \texttt{\&} characters in the \arg{label} are special and indicate that the -following character is a mnemonic for this control and can be used to activate -it from the keyboard (typically by using \textit{Alt} key in combination with -it). To insert a literal ampersand character, you need to double it, i.e. use -\texttt{"\&\&"}. - - diff --git a/docs/latex/wx/convauto.tex b/docs/latex/wx/convauto.tex deleted file mode 100644 index b1d976480a..0000000000 --- a/docs/latex/wx/convauto.tex +++ /dev/null @@ -1,115 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: convauto.tex -%% Purpose: wxConvAuto documentation -%% Author: Vadim Zeitlin -%% Created: 2007-08-26 -%% RCS-ID: $Id:$ -%% Copyright: (c) 2007 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxConvAuto}}\label{wxconvauto} - -This class implements a Unicode to/from multibyte converter capable of -automatically recognizing the encoding of the multibyte text on input. The -logic used is very simple: the class uses the BOM (byte order mark) if it's -present and tries to interpret the input as UTF-8 otherwise. If this fails, the -input is interpreted as being in the default multibyte encoding which can be -specified in the constructor of a wxConvAuto instance and, in turn, defaults to -the value of \helpref{GetFallbackEncoding}{wxconvautogetdefaultmbencoding} if -not explicitly given. - -For the conversion from Unicode to multibyte, the same encoding as was -previously used for multibyte to Unicode conversion is reused. If there had -been no previous multibyte to Unicode conversion, UTF-8 is used by default. -Notice that once the multibyte encoding is automatically detected, it doesn't -change any more, i.e. it is entirely determined by the first use of wxConvAuto -object in the multibyte-to-Unicode direction. However creating a copy of -wxConvAuto object, either via the usual copy constructor or assignment -operator, or using \helpref{Clone}{wxmbconvclone} method, resets the -automatically detected encoding so that the new copy will try to detect the -encoding of the input on first use. - -This class is used by default in wxWidgets classes and functions reading text -from files such as \helpref{wxFile}{wxfile}, \helpref{wxFFile}{wxffile}, -\helpref{wxTextFile}{wxtextfile}, \helpref{wxFileConfig}{wxfileconfig} and -various stream classes so the encoding set with its -\helpref{SetFallbackEncoding}{wxconvautosetdefaultmbencoding} method will -affect how these classes treat input files. In particular, use this method -to change the fall-back multibyte encoding used to interpret the contents of -the files whose contents isn't valid UTF-8 or to disallow it completely. - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConv classes overview}{mbconvclasses} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxConvAuto::wxConvAuto}\label{wxconvautowxconvauto} - -\func{}{wxConvAuto}{\param{wxFontEncoding }{enc = wxFONTENCODING\_DEFAULT}} - -Constructs a new wxConvAuto instance. The object will try to detect the input -of the multibyte text given to its \helpref{ToWChar}{wxmbconvtowchar} method -automatically but if the automatic detection of Unicode encodings fails, the -fall-back encoding \arg{enc} will be used to interpret it as multibyte text. -The default value of this parameter, \texttt{wxFONTENCODING\_DEFAULT} means -that the global default value which can be set using -\helpref{SetFallbackEncoding}{wxconvautosetdefaultmbencoding} method should be -used. As with that method, passing \texttt{wxFONTENCODING\_MAX} inhibits using -this encoding completely so the input multibyte text will always be interpreted -as UTF-8 in the absence of BOM and the conversion will fail if the input -doesn't form valid UTF-8 sequence. Another special value is -\texttt{wxFONTENCODING\_SYSTEM} which means to use the encoding currently used -on the user system, i.e. the encoding returned by -\helpref{wxLocale::GetSystemEncoding}{wxlocalegetsystemencoding}. Any other -encoding will be used as is, e.g. passing \texttt{wxFONTENCODING\_ISO8859\_1} -ensures that non-UTF-8 input will be treated as latin1. - - -\membersection{wxConvAuto::DisableFallbackEncoding}\label{wxconvautodisablefallbackencoding} - -\func{static void}{DisableFallbackEncoding}{\void} - -Disable the use of the fall back encoding: if the input doesn't have a BOM and -is not valid UTF-8, the conversion will fail. - - -\membersection{wxConvAuto::GetFallbackEncoding}\label{wxconvautogetdefaultmbencoding} - -\func{static wxFontEncoding}{GetFallbackEncoding}{\void} - -Returns the encoding used by default by wxConvAuto if no other encoding is -explicitly specified in constructor. By default, returns -\texttt{wxFONTENCODING\_ISO8859\_1} but can be changed using -\helpref{SetFallbackEncoding}{wxconvautosetdefaultmbencoding} method. - - -\membersection{wxConvAuto::SetFallbackEncoding}\label{wxconvautosetdefaultmbencoding} - -\func{static void}{SetFallbackEncoding}{\param{wxFontEncoding }{enc}} - -Changes the encoding used by default by wxConvAuto if no other encoding is -explicitly specified in constructor. The default value, which can be retrieved -using \helpref{GetFallbackEncoding}{wxconvautogetdefaultmbencoding}, is -\texttt{wxFONTENCODING\_ISO8859\_1}. - -Special values of \texttt{wxFONTENCODING\_SYSTEM} or -\texttt{wxFONTENCODING\_MAX} can be used for \arg{enc} parameter to use the -encoding of the current user locale as fall back or not use any encoding for -fall back at all, respectively (just as with the similar constructor -parameter). However \texttt{wxFONTENCODING\_DEFAULT} value cannot be used here. - diff --git a/docs/latex/wx/countstr.tex b/docs/latex/wx/countstr.tex deleted file mode 100644 index 0b62827a8b..0000000000 --- a/docs/latex/wx/countstr.tex +++ /dev/null @@ -1,50 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxCountingOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxCountingOutputStream}}\label{wxcountingoutputstream} - -wxCountingOutputStream is a specialized output stream which does not write any data anywhere, -instead it counts how many bytes would get written if this were a normal stream. This -can sometimes be useful or required if some data gets serialized to a stream or compressed -by using stream compression and thus the final size of the stream cannot be known other -than pretending to write the stream. One case where the resulting size would have to be -known is if the data has to be written to a piece of memory and the memory has to be -allocated before writing to it (which is probably always the case when writing to a -memory stream). - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream} -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxCountingOutputStream::wxCountingOutputStream}\label{wxcountingoutputstreamctor} - -\func{}{wxCountingOutputStream}{\void} - -Creates a wxCountingOutputStream object. - -\membersection{wxCountingOutputStream::\destruct{wxCountingOutputStream}}\label{wxcountingoutputstreamdtor} - -\func{}{\destruct{wxCountingOutputStream}}{\void} - -Destructor. - -\membersection{wxCountingOutputStream::GetSize}\label{wxcountingoutputstreamgetsize} - -\constfunc{size\_t}{GetSize}{\void} - -Returns the current size of the stream. - diff --git a/docs/latex/wx/cppconst.tex b/docs/latex/wx/cppconst.tex deleted file mode 100644 index 2c8d81af2a..0000000000 --- a/docs/latex/wx/cppconst.tex +++ /dev/null @@ -1,230 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: cppconst.tex -%% Purpose: Preprocessor symbols -%% Author: Vadim Zeitlin -%% Created: 2002-08-22 -%% RCS-ID: $Id$ -%% Copyright: (c) 2002-2006 wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Preprocessor symbols defined by wxWidgets}\label{cppconst} - -These are preprocessor symbols used in the wxWidgets source, grouped -by category (and sorted by alphabetical order inside each category). All of -these macros except for the \texttt{wxUSE\_XXX} variety is defined if the -corresponding condition is true and undefined if it isn't, so they should be -always tested using \texttt{#ifdef} and not \texttt{#if}. - -\subsection{GUI system}\label{guisystemconst} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_WINDOWS\_\_}{any Windows, you may also use \_\_WXMSW\_\_} -\twocolitem{\_\_WIN16\_\_}{Win16 API (not supported since wxWidgets 2.6)} -\twocolitem{\_\_WIN32\_\_}{Win32 API} -\twocolitem{\_\_WXBASE\_\_}{Only wxBase, no GUI features (same as \texttt{wxUSE\_GUI} $== 0$)} -\twocolitem{\_\_WXCOCOA\_\_}{OS X using Cocoa API} -\twocolitem{\_\_WXDFB\_\_}{wxUniversal using DirectFB} -\twocolitem{\_\_WXWINCE\_\_}{Windows CE} -\twocolitem{\_\_WXGTK\_\_}{GTK+} -\twocolitem{\_\_WXGTK12\_\_}{GTK+ 1.2 or higher} -\twocolitem{\_\_WXGTK20\_\_}{GTK+ 2.0 or higher} -\twocolitem{\_\_WXGTK24\_\_}{GTK+ 2.4 or higher} -\twocolitem{\_\_WXGTK26\_\_}{GTK+ 2.6 or higher} -\twocolitem{\_\_WXGTK210\_\_}{GTK+ 2.10 or higher} -\twocolitem{\_\_WXMOTIF\_\_}{Motif} -\twocolitem{\_\_WXMOTIF20\_\_}{Motif 2.0 or higher} -\twocolitem{\_\_WXMAC\_\_}{Mac OS all targets} -\twocolitem{\_\_WXMAC\_CLASSIC\_\_}{MacOS for Classic} -\twocolitem{\_\_WXMAC\_CARBON\_\_}{MacOS for Carbon CFM (running under Classic or OSX) or true OS X Mach-O Builds} -\twocolitem{\_\_WXMAC\_OSX\_\_}{MacOS X Carbon Mach-O Builds} -\twocolitem{\_\_WXMGL\_\_}{SciTech Soft MGL (\_\_WXUNIVERSAL\_\_ will be also -defined)} -\twocolitem{\_\_WXMSW\_\_}{Any Windows} -\twocolitem{\_\_WXOSX\_\_}{Any Mac OS X port (either Carbon or Cocoa)} -\twocolitem{\_\_WXPALMOS\_\_}{PalmOS} -\twocolitem{\_\_WXPM\_\_}{OS/2 native Presentation Manager} -\twocolitem{\_\_WXSTUBS\_\_}{Stubbed version ('template' wxWin implementation)} -\twocolitem{\_\_WXXT\_\_}{Xt; mutually exclusive with WX\_MOTIF, not -implemented in wxWidgets 2.x} -\twocolitem{\_\_WXX11\_\_}{wxX11 (\_\_WXUNIVERSAL\_\_ will be also defined)} -\twocolitem{\_\_WXWINE\_\_}{WINE (i.e. WIN32 on Unix)} -\twocolitem{\_\_WXUNIVERSAL\_\_}{wxUniversal port, always defined in addition -to one of the symbols above so this should be tested first.} -\twocolitem{\_\_X\_\_}{any X11-based GUI toolkit except GTK+} -\end{twocollist} - -There are two wxWidgets ports to Mac OS. One of them, wxMac, exists in two versions: Classic and -Carbon. The Classic version is the only one to work on Mac OS version 8. The -Carbon version may be built either as CFM or Mach-O (binary format, like ELF) -and the former may run under OS 9 while the latter only runs under OS X. -Finally, there is a new Cocoa port which can only be used under OS X. To -summarize: - -\begin{itemize} -\item If you want to test for all Mac platforms, classic and OS X, you -should test both \texttt{\_\_WXMAC\_\_} and \texttt{\_\_WXCOCOA\_\_}. -\item If you want to test for any GUI Mac port under OS X, use -\texttt{\_\_WXOSX\_\_}. -\item If you want to test for any port under Mac OS X, including, for -example, wxGTK and also wxBase, use \texttt{\_\_DARWIN\_\_} (see below). -\end{itemize} - -The convention is to use the \texttt{\_\_WX} prefix for these -symbols, although this has not always been followed. - -\subsection{Operating systems}\label{osconst} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_APPLE\_\_}{any Mac OS version} -\twocolitem{\_\_AIX\_\_}{AIX} -\twocolitem{\_\_BSD\_\_}{Any *BSD system} -\twocolitem{\_\_CYGWIN\_\_}{Cygwin: Unix on Win32} -\twocolitem{\_\_DARWIN\_\_}{Mac OS X using the BSD Unix C library (as opposed to using the Metrowerks MSL C/C++ library)} -\twocolitem{\_\_DATA\_GENERAL\_\_}{DG-UX} -\twocolitem{\_\_DOS\_GENERAL\_\_}{DOS (used with wxMGL only)} -\twocolitem{\_\_FREEBSD\_\_}{FreeBSD} -\twocolitem{\_\_HPUX\_\_}{HP-UX (Unix)} -\twocolitem{\_\_GNU\_\_}{GNU Hurd} -\twocolitem{\_\_LINUX\_\_}{Linux} -\twocolitem{\_\_MACH\_\_}{Mach-O Architecture (Mac OS X only builds)} -\twocolitem{\_\_OSF\_\_}{OSF/1} -\twocolitem{\_\_PALMOS\_\_}{PalmOS} -\twocolitem{\_\_SGI\_\_}{IRIX} -\twocolitem{\_\_SOLARIS\_\_}{Solaris} -\twocolitem{\_\_SUN\_\_}{Any Sun} -\twocolitem{\_\_SUNOS\_\_}{Sun OS} -\twocolitem{\_\_SVR4\_\_}{SystemV R4} -\twocolitem{\_\_SYSV\_\_}{SystemV generic} -\twocolitem{\_\_ULTRIX\_\_}{Ultrix} -\twocolitem{\_\_UNIX\_\_}{any Unix} -\twocolitem{\_\_UNIX\_LIKE\_\_}{Unix, BeOS or VMS} -\twocolitem{\_\_VMS\_\_}{VMS} -\twocolitem{\_\_WINDOWS\_\_}{any Windows} -\twocolitem{\_\_WINE\_\_}{Wine} -\end{twocollist} - - -\subsection{Hardware architectures (CPU)}\label{cpuconst} - -Note that not all of these symbols are always defined, it depends on the -compiler used. - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_ALPHA\_\_}{DEC Alpha architecture} -\twocolitem{\_\_INTEL\_\_}{Intel i386 or compatible} -\twocolitem{\_\_IA64\_\_}{Intel 64 bit architecture} -\twocolitem{\_\_POWERPC\_\_}{Motorola Power PC} -\end{twocollist} - - -\subsection{Hardware type}\label{hardwareconst} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_SMARTPHONE\_\_}{Generic mobile devices with phone buttons and a small display} -\twocolitem{\_\_PDA\_\_}{Personal digital assistant, usually with touch screen} -\twocolitem{\_\_HANDHELD\_\_}{Small but powerful computer, usually with a keyboard} -\twocolitem{\_\_POCKETPC\_\_}{Microsoft-powered PocketPC devices with touch-screen} -\twocolitem{\_\_WINCE\_STANDARDSDK\_\_}{Microsoft-powered Windows CE devices, for generic Windows CE applications} -\twocolitem{\_\_WINCE\_NET\_\_}{Microsoft-powered Windows CE .NET devices (\_WIN32\_WCE is 400 or greater)} -\twocolitem{WIN32\_PLATFORM\_WFSP}{Microsoft-powered smartphone} -\end{twocollist} - - -\subsection{Compilers}\label{compilerconst} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_BORLANDC\_\_}{Borland C++. The value of the macro corresponds -to the compiler version: $500$ is $5.0$.} -\twocolitem{\_\_DJGPP\_\_}{DJGPP} -\twocolitem{\_\_DIGITALMARS\_\_}{Digital Mars} -\twocolitem{\_\_GNUG\_\_}{Gnu C++ on any platform, see also -\helpref{wxCHECK\_GCC\_VERSION}{wxcheckgccversion}} -\twocolitem{\_\_GNUWIN32\_\_}{Gnu-Win32 compiler, see also -\helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}} -\twocolitem{\_\_MINGW32\_\_}{MinGW} -\twocolitem{\_\_MWERKS\_\_}{CodeWarrior MetroWerks compiler} -\twocolitem{\_\_SUNCC\_\_}{Sun CC, see also \helpref{wxCHECK\_SUNCC\_VERSION}{wxchecksunccversion}} -\twocolitem{\_\_SYMANTECC\_\_}{Symantec C++} -\twocolitem{\_\_VISAGECPP\_\_}{IBM Visual Age (OS/2)} -\twocolitem{\_\_VISUALC\_\_}{Microsoft Visual C++, see also -\helpref{wxCHECK\_VISUALC\_VERSION}{wxcheckvisualcversion}. The value of this -macro corresponds to the compiler version: $1020$ for $4.2$ (the first supported -version), $1100$ for $5.0$, $1200$ for $6.0$ and so on. For convenience, the -symbols \_\_VISUALCn\_\_ are also defined for each major compiler version from -5 to 9, i.e. you can use tests such \texttt{#ifdef \_\_VISUALC7\_\_} to test -for compiler version being precisely 7.} -\twocolitem{\_\_XLC\_\_}{AIX compiler} -\twocolitem{\_\_WATCOMC\_\_}{Watcom C++. The value of this macro corresponds to -the compiler version, $1100$ is $11.0$ and $1200$ is OpenWatcom.} -\twocolitem{\_WIN32\_WCE}{Windows CE version} -\end{twocollist} - - -\subsection{Feature tests}\label{featuretests} - -Some library features may not be always available even if they were selected by -the user. To make it possible to check if this is the case, the library -predefines the symbols in the form \texttt{wxHAS\_FEATURE}. Unlike -\texttt{wxUSE\_FEATURE} symbols which are defined by the library user (directly -in \texttt{setup.h} or by running configure script) and which must be always -defined as either $0$ or $1$, the \texttt{wxHAS} symbols are only defined if -the corresponding feature is available and not defined at all otherwise. - -Currently the following symbols exist: -\begin{twocollist}\itemsep=0pt -\twocolitem{wxHAS\_LARGE\_FILES}{Defined if \helpref{wxFile}{wxfile} supports -files more than 4GB in size.} -\twocolitem{wxHAS\_LARGE\_FFILES}{Defined if \helpref{wxFFile}{wxffile} -supports files more than 4GB in size.} -\twocolitem{wxHAS\_POWER\_EVENTS}{Defined if -\helpref{wxPowerEvent}{wxpowerevent} are ever generated on the current platform.} -\twocolitem{wxHAS\_RADIO\_MENU\_ITEMS}{Defined if the current port supports -\helpref{radio menu items}{wxmenuappendradioitem}.} -\twocolitem{wxHAS\_RAW\_KEY\_CODES}{Defined if -\helpref{raw key codes}{wxkeyeventgetrawkeycode} are supported.} -\twocolitem{wxHAS\_REGEX\_ADVANCED}{Defined if advanced syntax is available in -\helpref{wxRegEx}{wxregex}.} -\twocolitem{wxHAS\_TASK\_BAR\_ICON}{Defined if -\helpref{wxTaskBarIcon}{wxtaskbaricon} is available on the current platform.} -\end{twocollist} - - -\subsection{Miscellaneous}\label{miscellaneousconst} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_WXWINDOWS\_\_}{always defined in wxWidgets applications, see -also \helpref{wxCHECK\_VERSION}{wxcheckversion}} -\twocolitem{\_\_WXDEBUG\_\_}{defined in debug mode, undefined in release mode} -\twocolitem{wxUSE\_XXX}{if defined as $1$, feature XXX is active, see the -\helpref{complete list}{wxusedef} (the symbols of this form are always defined, -use \#if and not \#ifdef to test for them)} -\twocolitem{WX\_PRECOMP}{is defined if precompiled headers (PCH) are in use. In -this case, \texttt{wx/wxprec.h} includes \texttt{wx/wx.h} which, in turn, -includes a number of wxWidgets headers thus making it unnecessary to include -them explicitly. However if this is not defined, you do need to include them -and so the usual idiom which allows to support both cases is to first include -\texttt{wx/wxprec.h} and then, inside \texttt{#ifndef WX\_PRECOMP}, individual -headers you need.} -\twocolitem{\_UNICODE and UNICODE}{both are defined if wxUSE\_UNICODE is set to $1$} -\twocolitem{wxUSE\_GUI}{this particular feature test macro is defined to $1$ -when compiling or using the library with the GUI features activated, if it is -defined as $0$, only wxBase is available.} -\twocolitem{wxUSE\_BASE}{only used by wxWidgets internally (defined as $1$ when -building wxBase code, either as a standalone library or as part of the -monolithic wxWidgets library, defined as $0$ when building GUI library only)} -\twocolitem{wxNO\_RTTI}{is defined if the compiler RTTI support has been switched off} -\twocolitem{wxNO\_EXCEPTIONS}{is defined if the compiler support for C++ -exceptions has been switched off} -\twocolitem{wxNO\_THREADS}{if this macro is defined, the compilation options -don't include compiler flags needed for multithreaded code generation. This -implies that wxUSE\_THREADS is $0$ and also that other (non-wx-based) threading -packages cannot be used neither.} -\twocolitem{WXMAKINGDLL\_XXX}{used internally and defined when building the -library \texttt{XXX} as a DLL; when a monolithic wxWidgets build is used only a -single \texttt{WXMAKINGDLL} symbol is defined} -\twocolitem{WXUSINGDLL}{defined when compiling code which uses wxWidgets as a -DLL/shared library} -\twocolitem{WXBUILDING}{defined when building wxWidgets itself, whether as a -static or shared library} -\end{twocollist} diff --git a/docs/latex/wx/createevt.tex b/docs/latex/wx/createevt.tex deleted file mode 100644 index 9ace8eefe1..0000000000 --- a/docs/latex/wx/createevt.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{\class{wxWindowCreateEvent}}\label{wxwindowcreateevent} - -This event is sent just after the actual window associated with a wxWindow object -has been created. Since it is derived from wxCommandEvent, the event propagates up -the window hierarchy. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a window creation event, use this event handler macro to direct input to a member -function that takes a wxWindowCreateEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_WINDOW\_CREATE(func)}}{Process a wxEVT\_CREATE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxWindowDestroyEvent}{wxwindowdestroyevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindowCreateEvent::wxWindowCreateEvent}\label{wxwindowcreateeventctor} - -\func{}{wxWindowCreateEvent}{\param{wxWindow* }{win = NULL}} - -Constructor. - diff --git a/docs/latex/wx/critsect.tex b/docs/latex/wx/critsect.tex deleted file mode 100644 index d9cd0c0df1..0000000000 --- a/docs/latex/wx/critsect.tex +++ /dev/null @@ -1,62 +0,0 @@ -\section{\class{wxCriticalSection}}\label{wxcriticalsection} - -A critical section object is used for exactly the same purpose as -\helpref{mutexes}{wxmutex}. The only difference is that under Windows platform -critical sections are only visible inside one process, while mutexes may be -shared between processes, so using critical sections is slightly more -efficient. The terminology is also slightly different: mutex may be locked (or -acquired) and unlocked (or released) while critical section is entered and left -by the program. - -Finally, you should try to use -\helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} class whenever -possible instead of directly using wxCriticalSection for the same reasons -\helpref{wxMutexLocker}{wxmutexlocker} is preferrable to -\helpref{wxMutex}{wxmutex} - please see wxMutex for an example. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition}, -\helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCriticalSection::wxCriticalSection}\label{wxcriticalsectionctor} - -\func{}{wxCriticalSection}{\void} - -Default constructor initializes critical section object. - -\membersection{wxCriticalSection::\destruct{wxCriticalSection}}\label{wxcriticalsectiondtor} - -\func{}{\destruct{wxCriticalSection}}{\void} - -Destructor frees the resources. - -\membersection{wxCriticalSection::Enter}\label{wxcriticalsectionenter} - -\func{void }{Enter}{\void} - -Enter the critical section (same as locking a mutex). There is no error return -for this function. After entering the critical section protecting some global -data the thread running in critical section may safely use/modify it. - -\membersection{wxCriticalSection::Leave}\label{wxcriticalsectionleave} - -\func{void }{Leave}{\void} - -Leave the critical section allowing other threads use the global data protected -by it. There is no error return for this function. - diff --git a/docs/latex/wx/crtslock.tex b/docs/latex/wx/crtslock.tex deleted file mode 100644 index 2bdc6a33dc..0000000000 --- a/docs/latex/wx/crtslock.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{\class{wxCriticalSectionLocker}}\label{wxcriticalsectionlocker} - -This is a small helper class to be used with \helpref{wxCriticalSection}{wxcriticalsection} -objects. A wxCriticalSectionLocker enters the critical section in the -constructor and leaves it in the destructor making it much more difficult to -forget to leave a critical section (which, in general, will lead to serious -and difficult to debug problems). - -Example of using it: - -\begin{verbatim} -void Set Foo() -{ - // gs_critSect is some (global) critical section guarding access to the - // object "foo" - wxCriticalSectionLocker locker(gs_critSect); - - if ( ... ) - { - // do something - ... - - return; - } - - // do something else - ... - - return; -} -\end{verbatim} - -Without wxCriticalSectionLocker, you would need to remember to manually leave -the critical section before each {\tt return}. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxCriticalSection}{wxcriticalsection}, -\helpref{wxMutexLocker}{wxmutexlocker} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCriticalSectionLocker::wxCriticalSectionLocker}\label{wxcriticalsectionlockerctor} - -\func{}{wxCriticalSectionLocker}{\param{wxCriticalSection\& }{criticalsection}} - -Constructs a wxCriticalSectionLocker object associated with given -{\it criticalsection} and enters it. - -\membersection{wxCriticalSectionLocker::\destruct{wxCriticalSectionLocker}}\label{wxcriticalsectionlockerdtor} - -\func{}{\destruct{wxCriticalSectionLocker}}{\void} - -Destructor leaves the critical section. - diff --git a/docs/latex/wx/csconv.tex b/docs/latex/wx/csconv.tex deleted file mode 100644 index b26bef4ced..0000000000 --- a/docs/latex/wx/csconv.tex +++ /dev/null @@ -1,75 +0,0 @@ -% -% automatically generated by HelpGen from -% ../include/wx/strconv.h at 25/Mar/00 10:20:56 -% - -\section{\class{wxCSConv}}\label{wxcsconv} - -This class converts between any character sets and Unicode. -It has one predefined instance, {\bf wxConvLocal}, for the -default user character set. - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConv}{wxmbconv}, -\helpref{wxEncodingConverter}{wxencodingconverter}, -\helpref{wxMBConv classes overview}{mbconvclasses} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCSConv::wxCSConv}\label{wxcsconvwxcsconv} - -\func{}{wxCSConv}{\param{const wxChar* }{charset}} - -\func{}{wxCSConv}{\param{wxFontEncoding }{encoding}} - -Constructor. You may specify either the name of the character set you want to -convert from/to or an encoding constant. If the character set name (or the -encoding) is not recognized, ISO 8859-1 is used as fall back. - - -\membersection{wxCSConv::\destruct{wxCSConv}}\label{wxcsconvdtor} - -\func{}{\destruct{wxCSConv}}{\void} - -Destructor frees any resources needed to perform the conversion. - - -\membersection{wxCSConv::IsOk}\label{wxcsconvisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if the charset (or the encoding) given at constructor is really -available to use. Returns \false if ISO 8859-1 will be used instead. - -Note this does \emph{not} mean that a given string will be correctly converted. -A malformed string may still make conversion functions return \texttt{wxCONV\_FAILED}. - -\newsince{2.8.2} - - -\membersection{wxCSConv::MB2WC}\label{wxcsconvmb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from the selected character set to Unicode. Returns length of string written to destination buffer. - - -\membersection{wxCSConv::WC2MB}\label{wxcsconvwc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to the selected character set. Returns length of string written to destination buffer. - diff --git a/docs/latex/wx/cshelp.tex b/docs/latex/wx/cshelp.tex deleted file mode 100644 index 647578499f..0000000000 --- a/docs/latex/wx/cshelp.tex +++ /dev/null @@ -1,141 +0,0 @@ -\section{\class{wxContextHelp}}\label{wxcontexthelp} - -This class changes the cursor to a query and puts the application into a 'context-sensitive help mode'. -When the user left-clicks on a window within the specified window, a wxEVT\_HELP event is -sent to that control, and the application may respond to it by popping up some help. - -For example: - -\begin{verbatim} - wxContextHelp contextHelp(myWindow); -\end{verbatim} - -There are a couple of ways to invoke this behaviour implicitly: - -\begin{itemize} -\item Use the wxDIALOG\_EX\_CONTEXTHELP style for a dialog (Windows only). This will put a question mark -in the titlebar, and Windows will put the application into context-sensitive help mode automatically, -with further programming. -\item Create a \helpref{wxContextHelpButton}{wxcontexthelpbutton}, whose predefined behaviour is to create a context help object. -Normally you will write your application so that this button is only added to a dialog for non-Windows platforms -(use wxDIALOG\_EX\_CONTEXTHELP on Windows). -\end{itemize} - -Note that on Mac OS X, the cursor does not change when in context-sensitive -help mode. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHelpEvent}{wxhelpevent}, -\helpref{wxHelpController}{wxhelpcontroller}, -\helpref{wxContextHelpButton}{wxcontexthelpbutton} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxContextHelp::wxContextHelp}\label{wxcontexthelpctor} - -\func{}{wxContextHelp}{\param{wxWindow*}{ window = NULL}, \param{bool}{ doNow = true}} - -Constructs a context help object, calling \helpref{BeginContextHelp}{wxcontexthelpbegincontexthelp} if\rtfsp -{\it doNow} is true (the default). - -If {\it window} is NULL, the top window is used. - -\membersection{wxContextHelp::\destruct{wxContextHelp}}\label{wxcontexthelpdtor} - -\func{}{\destruct{wxContextHelp}}{\void} - -Destroys the context help object. - -\membersection{wxContextHelp::BeginContextHelp}\label{wxcontexthelpbegincontexthelp} - -\func{bool}{BeginContextHelp}{\param{wxWindow*}{ window = NULL}} - -Puts the application into context-sensitive help mode. {\it window} is the window -which will be used to catch events; if NULL, the top window will be used. - -Returns true if the application was successfully put into context-sensitive help mode. -This function only returns when the event loop has finished. - -\membersection{wxContextHelp::EndContextHelp}\label{wxcontexthelpendcontexthelp} - -\func{bool}{EndContextHelp}{\void} - -Ends context-sensitive help mode. Not normally called by the application. - -\section{\class{wxContextHelpButton}}\label{wxcontexthelpbutton} - -Instances of this class may be used to add a question mark button that when pressed, puts the -application into context-help mode. It does this by creating a \helpref{wxContextHelp}{wxcontexthelp} object which itself -generates a wxEVT\_HELP event when the user clicks on a window. - -On Windows, you may add a question-mark icon to a dialog by use of the wxDIALOG\_EX\_CONTEXTHELP extra style, but -on other platforms you will have to add a button explicitly, usually next to OK, Cancel or similar buttons. - -\wxheading{Derived from} - -\helpref{wxBitmapButton}{wxbitmapbutton}\\ -\helpref{wxButton}{wxbutton}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBitmapButton}{wxbitmapbutton}, \helpref{wxContextHelp}{wxcontexthelp} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxContextHelpButton::wxContextHelpButton}\label{wxcontexthelpbuttonconstr} - -\func{}{wxContextHelpButton}{\void} - -Default constructor. - -\func{}{wxContextHelpButton}{ -\param{wxWindow* }{parent}, -\param{wxWindowID }{id = wxID\_CONTEXT\_HELP}, -\param{const wxPoint\& }{pos = wxDefaultPosition}, -\param{const wxSize\& }{size = wxDefaultSize}, -\param{long }{style = wxBU\_AUTODRAW}} - -Constructor, creating and showing a context help button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Button identifier. Defaults to wxID\_CONTEXT\_HELP.} - -\docparam{pos}{Button position.} - -\docparam{size}{Button size. If the default size (-1, -1) is specified then the button is sized -appropriately for the question mark bitmap.} - -\docparam{style}{Window style.} - -\wxheading{Remarks} - -Normally you need pass only the parent window to the constructor, and use the defaults for the remaining parameters. - diff --git a/docs/latex/wx/ctrlsub.tex b/docs/latex/wx/ctrlsub.tex deleted file mode 100644 index deae9e7dca..0000000000 --- a/docs/latex/wx/ctrlsub.tex +++ /dev/null @@ -1,449 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: ctrlsub.tex -%% Purpose: wxControlWithItems documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 01.01.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxControlWithItems}}\label{wxcontrolwithitems} - -This class is an abstract base class for some wxWidgets controls which contain -several items, such as \helpref{wxListBox}{wxlistbox} and -\helpref{wxCheckListBox}{wxchecklistbox} derived from it, -\helpref{wxChoice}{wxchoice} and \helpref{wxComboBox}{wxcombobox}. - -It defines the methods for accessing the controls items and although each of -the derived classes implements them differently, they still all conform to the -same interface. - -The items in a wxControlWithItems have (non-empty) string labels and, -optionally, client data associated with them. Client data may be of two -different kinds: either simple untyped ({\tt void *}) pointers which are simply -stored by the control but not used in any way by it, or typed pointers -({\tt wxClientData *}) which are owned by the control meaning that the typed -client data (and only it) will be deleted when an item is -\helpref{deleted}{wxcontrolwithitemsdelete} or the entire control is -\helpref{cleared}{wxcontrolwithitemsclear} (which also happens when it is -destroyed). Finally note that in the same control all items must have client -data of the same type (typed or untyped), if any. This type is determined by -the first call to \helpref{Append}{wxcontrolwithitemsappend} (the version with -client data pointer) or \helpref{SetClientData}{wxcontrolwithitemssetclientdata}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - but usually never included directly - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxControlWithItems::Append}\label{wxcontrolwithitemsappend} - -\func{int}{Append}{\param{const wxString\& }{ item}} - -Adds the item to the end of the list box. - -\func{int}{Append}{\param{const wxString\& }{ item}, \param{void *}{clientData}} - -\func{int}{Append}{\param{const wxString\& }{ item}, \param{wxClientData *}{clientData}} - -Adds the item to the end of the list box, associating the given, typed or -untyped, client data pointer with the item. - -\func{void}{Append}{\param{const wxArrayString\& }{strings}} - -\func{void}{Append}{\param{unsigned int }{n},\param{const wxString* }{strings}} - -\func{void}{Append}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{void **}{clientData}} - -\func{void}{Append}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{wxClientData **}{clientData}} - -Appends several items at once to the control. Notice that calling this method -is usually much faster than appending them one by one if you need to add a lot -of items. - -\wxheading{Parameters} - -\docparam{item}{String to add.} - -\docparam{stringsArray}{Contains items to append to the control.} - -\docparam{strings}{Array of strings of size \arg{n}.} - -\docparam{n}{Number of items in the \arg{strings} array.} - -\docparam{clientData}{Array of client data pointers of size \arg{n} to associate with the new items.} - -\wxheading{Return value} - -When appending a single item, the return value is the index of the newly added -item which may be different from the last one if the control is sorted (e.g. -has {\tt wxLB\_SORT} or {\tt wxCB\_SORT} style). - -\membersection{wxControlWithItems::Clear}\label{wxcontrolwithitemsclear} - -\func{void}{Clear}{\void} - -Removes all items from the control. - -{\it Clear()} also deletes the client data of the existing items if it is owned -by the control. - -\membersection{wxControlWithItems::Delete}\label{wxcontrolwithitemsdelete} - -\func{void}{Delete}{\param{unsigned int}{ n}} - -Deletes an item from the control. The client data associated with the item -will be also deleted if it is owned by the control. - -Note that it is an error (signalled by an assert failure in debug builds) to -remove an item with the index negative or greater or equal than the number of -items in the control. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\wxheading{See also} - -\helpref{Clear}{wxcontrolwithitemsclear} - -\membersection{wxControlWithItems::FindString}\label{wxcontrolwithitemsfindstring} - -\func{int}{FindString}{\param{const wxString\& }{string}, \param{bool}{ caseSensitive = false}} - -Finds an item whose label matches the given string. - -\wxheading{Parameters} - -\docparam{string}{String to find.} - -\docparam{caseSensitive}{Whether search is case sensitive (default is not).} - -\wxheading{Return value} - -The zero-based position of the item, or {\tt wxNOT\_FOUND} if the string was -not found. - - -\membersection{wxControlWithItems::GetClientData}\label{wxcontrolwithitemsgetclientdata} - -\constfunc{void *}{GetClientData}{\param{unsigned int}{ n}} - -Returns a pointer to the client data associated with the given item (if any). -It is an error to call this function for a control which doesn't have untyped -client data at all although it is ok to call it even if the given item doesn't -have any client data associated with it (but other items do). - -\wxheading{Parameters} - -\docparam{n}{The zero-based position of the item.} - -\wxheading{Return value} - -A pointer to the client data, or {\tt NULL} if not present. - - -\membersection{wxControlWithItems::GetClientObject}\label{wxcontrolwithitemsgetclientobject} - -\constfunc{wxClientData *}{GetClientObject}{\param{unsigned int}{ n}} - -Returns a pointer to the client data associated with the given item (if any). -It is an error to call this function for a control which doesn't have typed -client data at all although it is ok to call it even if the given item doesn't -have any client data associated with it (but other items do). - -\wxheading{Parameters} - -\docparam{n}{The zero-based position of the item.} - -\wxheading{Return value} - -A pointer to the client data, or {\tt NULL} if not present. - - -\membersection{wxControlWithItems::GetCount}\label{wxcontrolwithitemsgetcount} - -\constfunc{unsigned int}{GetCount}{\void} - -Returns the number of items in the control. - -\wxheading{See also} - -\helpref{IsEmpty}{wxcontrolwithitemsisempty} - - -\membersection{wxControlWithItems::GetSelection}\label{wxcontrolwithitemsgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the index of the selected item or {\tt wxNOT\_FOUND} if no item is -selected. - -\wxheading{Return value} - -The position of the current selection. - -\wxheading{Remarks} - -This method can be used with single selection list boxes only, you should use -\helpref{wxListBox::GetSelections}{wxlistboxgetselections} for the list boxes -with {\tt wxLB\_MULTIPLE} style. - -\wxheading{See also} - -\helpref{SetSelection}{wxcontrolwithitemssetselection},\rtfsp -\helpref{GetStringSelection}{wxcontrolwithitemsgetstringselection} - - -\membersection{wxControlWithItems::GetString}\label{wxcontrolwithitemsgetstring} - -\constfunc{wxString}{GetString}{\param{unsigned int}{ n}} - -Returns the label of the item with the given index. - -\wxheading{Parameters} - -\docparam{n}{The zero-based index.} - -\wxheading{Return value} - -The label of the item or an empty string if the position was invalid. - - -\membersection{wxControlWithItems::GetStrings}\label{wxcontrolwithitemsgetstrings} - -\constfunc{wxArrayString}{GetStrings}{\void} - -Returns the array of the labels of all items in the control. - - -\membersection{wxControlWithItems::GetStringSelection}\label{wxcontrolwithitemsgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the label of the selected item or an empty string if no item is -selected. - -\wxheading{See also} - -\helpref{GetSelection}{wxcontrolwithitemsgetselection} - - -\membersection{wxControlWithItems::Insert}\label{wxcontrolwithitemsinsert} - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{unsigned int }{pos}} - -Inserts the item into the list before pos. -Not valid for {\tt wxLB\_SORT} or {\tt wxCB\_SORT} styles, use Append instead. - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{unsigned int }{pos}, \param{void *}{clientData}} - -\func{int}{Insert}{\param{const wxString\& }{ item}, \param{unsigned int }{pos}, \param{wxClientData *}{clientData}} - -Inserts the item into the list before pos, associating the given, typed or -untyped, client data pointer with the item. -Not valid for {\tt wxLB\_SORT} or {\tt wxCB\_SORT} styles, use Append instead. - -\func{void}{Insert}{\param{const wxArrayString\& }{strings}, \param{unsigned int }{pos}} - -\func{void}{Insert}{\param{const wxArrayString\& }{strings}, \param{unsigned int }{pos}} - -\func{void}{Insert}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{unsigned int }{pos}} - -\func{void}{Insert}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{unsigned int }{pos}, \param{void **}{clientData}} - -\func{void}{Insert}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{unsigned int }{pos}, \param{wxClientData **}{clientData}} - -Inserts several items at once into the control. Notice that calling this method -is usually much faster than inserting them one by one if you need to insert a lot -of items. - - -\wxheading{Parameters} - -\docparam{item}{String to add.} - -\docparam{pos}{Position to insert item before, zero based.} - -\docparam{stringsArray}{Contains items to insert into the control content} - -\docparam{strings}{Array of strings of size \arg{n}.} - -\docparam{n}{Number of items in the \arg{strings} array.} - -\docparam{clientData}{Array of client data pointers of size \arg{n} to associate with the new items.} - -\wxheading{Return value} - -The return value is the index of the newly inserted item. If the insertion failed -for some reason, -1 is returned. - - -\membersection{wxControlWithItems::IsEmpty}\label{wxcontrolwithitemsisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns {\tt true} if the control is empty or {\tt false} if it has some items. - -\wxheading{See also} - -\helpref{GetCount}{wxcontrolwithitemsgetcount} - - -\membersection{wxControlWithItems::Select}\label{wxcontrolwithitemsselect} - -\func{void}{Select}{\param{int}{ n}} - -This is the same as \helpref{SetSelection}{wxcontrolwithitemssetselection} and -exists only because it is slightly more natural for controls which support -multiple selection. - - -\membersection{wxControlWithItems::Set}\label{wxcontrolwithitemsset} - -\func{int}{Set}{\param{const wxString\& }{ item}} - -\func{int}{Set}{\param{const wxString\& }{ item}, \param{void *}{clientData}} - -\func{int}{Set}{\param{const wxString\& }{ item}, \param{wxClientData *}{clientData}} - -Replace control items with the (only) item specified, associating the typed or -untyped client data pointer with it if given. - -\func{void}{Set}{\param{const wxArrayString\& }{stringsArray}} - -\func{void}{Set}{\param{unsigned int }{n},\param{const wxString* }{strings}} - -\func{void}{Set}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{void **}{clientData}} - -\func{void}{Set}{\param{unsigned int }{n},\param{const wxString* }{strings}, \param{wxClientData **}{clientData}} - -Replaces the current control contents with the given items. Notice that calling -this method is much faster than appending the items one by one if you need to -append a lot of them. - -\wxheading{Parameters} - -\docparam{item}{The single item to insert into the control.} - -\docparam{stringsArray}{Contains items to set as control content.} - -\docparam{strings}{Raw C++ array of strings. Only used in conjunction with 'n'.} - -\docparam{n}{Number of items passed in 'strings'. Only used in conjunction with 'strings'.} - -\docparam{clientData}{Client data to associate with the item(s).} - -\wxheading{Return value} - -When the control is sorted (e.g. has {\tt wxLB\_SORT} or {\tt wxCB\_SORT} style) -the return value could be different from (GetCount() - 1). -When setting a single item to the container, the return value is the index of the -newly added item which may be different from the last one if the control is sorted -(e.g. has {\tt wxLB\_SORT} or {\tt wxCB\_SORT} style). - -By default this method subsequently calls \helpref{Clear}{wxcontrolwithitemsclear} -and \helpref{Append}{wxcontrolwithitemsappend}. - - -\membersection{wxControlWithItems::SetClientData}\label{wxcontrolwithitemssetclientdata} - -\func{void}{SetClientData}{\param{unsigned int}{ n}, \param{void *}{data}} - -Associates the given untyped client data pointer with the given item. Note that -it is an error to call this function if any typed client data pointers had been -associated with the control items before. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{data}{The client data to associate with the item.} - - -\membersection{wxControlWithItems::SetClientObject}\label{wxcontrolwithitemssetclientobject} - -\func{void}{SetClientObject}{\param{unsigned int}{ n}, \param{wxClientData *}{data}} - -Associates the given typed client data pointer with the given item: the -{\it data} object will be deleted when the item is deleted (either explicitly -by using \helpref{Deletes}{wxcontrolwithitemsdelete} or implicitly when the -control itself is destroyed). - -Note that it is an error to call this function if any untyped client data -pointers had been associated with the control items before. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{data}{The client data to associate with the item.} - - -\membersection{wxControlWithItems::SetSelection}\label{wxcontrolwithitemssetselection} - -\func{void}{SetSelection}{\param{int}{ n}} - -Sets the selection to the given item \arg{n} or removes the selection entirely -if \arg{n} $==$ {\tt wxNOT\_FOUND}. - -Note that this does not cause any command events to be emitted nor does it -deselect any other items in the controls which support multiple selections. - -\wxheading{Parameters} - -\docparam{n}{The string position to select, starting from zero.} - -\wxheading{See also} - -\helpref{SetString}{wxcontrolwithitemssetstring},\rtfsp -\helpref{SetStringSelection}{wxcontrolwithitemssetstringselection} - - -\membersection{wxControlWithItems::SetString}\label{wxcontrolwithitemssetstring} - -\func{void}{SetString}{\param{unsigned int}{ n}, \param{const wxString\& }{ string}} - -Sets the label for the given item. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{string}{The label to set.} - - -\membersection{wxControlWithItems::SetStringSelection}\label{wxcontrolwithitemssetstringselection} - -\func{bool}{SetStringSelection}{\param{const wxString\& }{ string}} - -Selects the item with the specified string in the control. This doesn't cause -any command events to be emitted. - -\wxheading{Parameters} - -\docparam{string}{The string to select.} - -\wxheading{Return value} - -\true if the specified string has been selected, \false if it wasn't found in -the control. - -\wxheading{See also} - -\helpref{SetSelection}{wxcontrolwithitemssetselection} - diff --git a/docs/latex/wx/cursor.tex b/docs/latex/wx/cursor.tex deleted file mode 100644 index 72f3903415..0000000000 --- a/docs/latex/wx/cursor.tex +++ /dev/null @@ -1,262 +0,0 @@ -\section{\class{wxCursor}}\label{wxcursor} - -A cursor is a small bitmap usually used for denoting where the mouse -pointer is, with a picture that might indicate the interpretation of a -mouse click. As with icons, cursors in X and MS Windows are created -in a different manner. Therefore, separate cursors will be created for the -different environments. Platform-specific methods for creating a {\bf -wxCursor} object are catered for, and this is an occasion where -conditional compilation will probably be required (see \helpref{wxIcon}{wxicon} for -an example). - -A single cursor object may be used in many windows (any subwindow type). -The wxWidgets convention is to set the cursor for a window, as in X, -rather than to set it globally as in MS Windows, although a -global \helpref{::wxSetCursor}{wxsetcursor} is also available for MS Windows use. - -\wxheading{Derived from} - -\helpref{wxBitmap}{wxbitmap}\\ -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullCursor} - -Pointers: - -{\bf wxSTANDARD\_CURSOR\\ -wxHOURGLASS\_CURSOR\\ -wxCROSS\_CURSOR} - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxIcon}{wxicon}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor},\rtfsp -\helpref{::wxSetCursor}{wxsetcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCursor::wxCursor}\label{wxcursorctor} - -\func{}{wxCursor}{\void} - -Default constructor. - -\func{}{wxCursor}{\param{const char}{ bits[]}, \param{int }{width}, - \param{int }{ height}, \param{int }{hotSpotX=-1}, \param{int }{hotSpotY=-1}, \param{const char }{maskBits[]=NULL}, - \param{wxColour*}{ fg=NULL}, \param{wxColour*}{ bg=NULL}} - -Constructs a cursor by passing an array of bits (Motif and GTK+ only). {\it maskBits} is used only under -Motif and GTK+. The parameters {\it fg} and {\it bg} are only present on GTK+, and force the -cursor to use particular background and foreground colours. - -If either {\it hotSpotX} or {\it hotSpotY} is -1, the hotspot will be the centre of the cursor image (Motif only). - -\func{}{wxCursor}{\param{const wxString\& }{cursorName}, \param{long }{type}, \param{int }{hotSpotX=0}, \param{int }{hotSpotY=0}} - -Constructs a cursor by passing a string resource name or filename. - -On MacOS when specifying a string resource name, first the color cursors 'crsr' and then the black/white cursors 'CURS' in the resource chain are scanned through. - -{\it hotSpotX} and {\it hotSpotY} are currently only used under Windows when loading from an -icon file, to specify the cursor hotspot relative to the top left of the image. - -\func{}{wxCursor}{\param{int}{ cursorId}} - -Constructs a cursor using a cursor identifier. - -\func{}{wxCursor}{\param{const wxImage\&}{ image}} - -Constructs a cursor from a wxImage. If cursor are monochrome on the current -platform, colors with the RGB elements all greater than 127 will be foreground, -colors less than this background. The mask (if any) will be used to specify the -transparent area. - -In wxMSW the foreground will be white and the background black. If the cursor -is larger than 32x32 it is resized. - -In wxGTK, colour cursors and alpha channel are supported (starting from GTK+ -2.2). Otherwise the two most frequent colors will be used for foreground and -background. In any case, the cursor will be displayed at the size of the image. - -In wxMac, if the cursor is larger than 16x16 it is resized and currently only -shown as black/white (mask respected). - -\func{}{wxCursor}{\param{const wxCursor\&}{ cursor}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{bits}{An array of bits.} - -\docparam{maskBits}{Bits for a mask bitmap.} - -\docparam{width}{Cursor width.} - -\docparam{height}{Cursor height.} - -\docparam{hotSpotX}{Hotspot x coordinate.} - -\docparam{hotSpotY}{Hotspot y coordinate.} - -\docparam{type}{Icon type to load. Under Motif, {\it type} defaults to {\bf wxBITMAP\_TYPE\_XBM}. Under Windows, -it defaults to {\bf wxBITMAP\_TYPE\_CUR\_RESOURCE}. Under MacOS, it defaults to {\bf wxBITMAP\_TYPE\_MACCURSOR\_RESOURCE}. - -Under X, the permitted cursor types are: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\end{twocollist} - -Under Windows, the permitted types are: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_CUR}}{Load a cursor from a .cur cursor file (only if USE\_RESOURCE\_LOADING\_IN\_MSW -is enabled in setup.h).} -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_CUR\_RESOURCE}}{Load a Windows resource (as specified in the .rc file).} -\twocolitem{\windowstyle{wxBITMAP\_TYPE\_ICO}}{Load a cursor from a .ico icon file (only if USE\_RESOURCE\_LOADING\_IN\_MSW -is enabled in setup.h). Specify {\it hotSpotX} and {\it hotSpotY}.} -\end{twocollist}} - -\docparam{cursorId}{A stock cursor identifier. May be one of: - -\twocolwidtha{6cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxCURSOR\_ARROW}}{A standard arrow cursor.} -\twocolitem{{\bf wxCURSOR\_RIGHT\_ARROW}}{A standard arrow cursor -pointing to the right.} -\twocolitem{{\bf wxCURSOR\_BLANK}}{Transparent cursor.} -\twocolitem{{\bf wxCURSOR\_BULLSEYE}}{Bullseye cursor.} -\twocolitem{{\bf wxCURSOR\_CHAR}}{Rectangular character cursor.} -\twocolitem{{\bf wxCURSOR\_CROSS}}{A cross cursor.} -\twocolitem{{\bf wxCURSOR\_HAND}}{A hand cursor.} -\twocolitem{{\bf wxCURSOR\_IBEAM}}{An I-beam cursor (vertical line).} -\twocolitem{{\bf wxCURSOR\_LEFT\_BUTTON}}{Represents a mouse with the left button depressed.} -\twocolitem{{\bf wxCURSOR\_MAGNIFIER}}{A magnifier icon.} -\twocolitem{{\bf wxCURSOR\_MIDDLE\_BUTTON}}{Represents a mouse with the middle button depressed.} -\twocolitem{{\bf wxCURSOR\_NO\_ENTRY}}{A no-entry sign cursor.} -\twocolitem{{\bf wxCURSOR\_PAINT\_BRUSH}}{A paintbrush cursor.} -\twocolitem{{\bf wxCURSOR\_PENCIL}}{A pencil cursor.} -\twocolitem{{\bf wxCURSOR\_POINT\_LEFT}}{A cursor that points left.} -\twocolitem{{\bf wxCURSOR\_POINT\_RIGHT}}{A cursor that points right.} -\twocolitem{{\bf wxCURSOR\_QUESTION\_ARROW}}{An arrow and question mark.} -\twocolitem{{\bf wxCURSOR\_RIGHT\_BUTTON}}{Represents a mouse with the right button depressed.} -\twocolitem{{\bf wxCURSOR\_SIZENESW}}{A sizing cursor pointing NE-SW.} -\twocolitem{{\bf wxCURSOR\_SIZENS}}{A sizing cursor pointing N-S.} -\twocolitem{{\bf wxCURSOR\_SIZENWSE}}{A sizing cursor pointing NW-SE.} -\twocolitem{{\bf wxCURSOR\_SIZEWE}}{A sizing cursor pointing W-E.} -\twocolitem{{\bf wxCURSOR\_SIZING}}{A general sizing cursor.} -\twocolitem{{\bf wxCURSOR\_SPRAYCAN}}{A spraycan cursor.} -\twocolitem{{\bf wxCURSOR\_WAIT}}{A wait cursor.} -\twocolitem{{\bf wxCURSOR\_WATCH}}{A watch cursor.} -\twocolitem{{\bf wxCURSOR\_ARROWWAIT}}{A cursor with both an arrow and -an hourglass, (windows.)} -\end{twocollist}\twocolwidtha{5cm} - -Note that not all cursors are available on all platforms.} - -\docparam{cursor}{Pointer or reference to a cursor to copy.} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf wxCursor(name, flags, hotSpotX=0, -hotSpotY=0)}}{Constructs a cursor from a filename} -\twocolitem{{\bf wxStockCursor(id)}}{Constructs a stock cursor } -\end{twocollist}} -} - -\perlnote{Constructors supported by wxPerl are:\par -\begin{itemize} -\item{Wx::Cursor->new( name, type, hotSpotX = 0, hotSpotY = 0 )} -\item{Wx::Cursor->new( id )} -\item{Wx::Cursor->new( image )} -\item{Wx::Cursor->newData( bits, width, height, hotSpotX = -1, hotSpotY = -1, maskBits = 0 )} -\end{itemize} -} - -\wxheading{Example} - -The following is an example of creating a -cursor from 32x32 bitmap data ({\tt down\_bits}) and a mask -({\tt down\_mask}) where 1 is black and 0 is white for -the bits, and 1 is opaque and 0 is transparent for -the mask. It works on Windows and GTK+. - -\begin{verbatim} -static char down_bits[] = { 255, 255, 255, 255, 31, - 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, 255, - 31, 255, 255, 255, 31, 255, 255, 255, 31, 255, 255, - 255, 31, 255, 255, 255, 31, 255, 255, 255, 25, 243, - 255, 255, 19, 249, 255, 255, 7, 252, 255, 255, 15, 254, - 255, 255, 31, 255, 255, 255, 191, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255 }; - -static char down_mask[] = { 240, 1, 0, 0, 240, 1, - 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 240, 1, - 0, 0, 240, 1, 0, 0, 240, 1, 0, 0, 255, 31, 0, 0, 255, - 31, 0, 0, 254, 15, 0, 0, 252, 7, 0, 0, 248, 3, 0, 0, - 240, 1, 0, 0, 224, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0 }; - -#ifdef __WXMSW__ -wxBitmap down_bitmap(down_bits, 32, 32); -wxBitmap down_mask_bitmap(down_mask, 32, 32); - -down_bitmap.SetMask(new wxMask(down_mask_bitmap)); -wxImage down_image = down_bitmap.ConvertToImage(); -down_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 6); -down_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 14); -wxCursor down_cursor = wxCursor(down_image); -#else -wxCursor down_cursor = wxCursor(down_bits, 32, 32, - 6, 14, down_mask, wxWHITE, wxBLACK); -#endif -\end{verbatim} - -\membersection{wxCursor::\destruct{wxCursor}}\label{wxcursordtor} - -\func{}{\destruct{wxCursor}}{\void} - -Destroys the cursor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -A cursor can be reused for more -than one window, and does not get destroyed when the window is -destroyed. wxWidgets destroys all cursors on application exit, although -it is best to clean them up explicitly. - -\membersection{wxCursor::IsOk}\label{wxcursorisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if cursor data is present. - -\membersection{wxCursor::operator $=$}\label{wxcursorassignment} - -\func{wxCursor\&}{operator $=$}{\param{const wxCursor\& }{cursor}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - diff --git a/docs/latex/wx/custdobj.tex b/docs/latex/wx/custdobj.tex deleted file mode 100644 index 1e236841e5..0000000000 --- a/docs/latex/wx/custdobj.tex +++ /dev/null @@ -1,114 +0,0 @@ -\section{\class{wxCustomDataObject}}\label{wxcustomdataobject} - -wxCustomDataObject is a specialization of -\helpref{wxDataObjectSimple}{wxdataobjectsimple} for some -application-specific data in arbitrary (either custom or one of the standard -ones). The only restriction is that it is supposed that this data can be -copied bitwise (i.e. with {\tt memcpy()}), so it would be a bad idea to make -it contain a C++ object (though C struct is fine). - -By default, wxCustomDataObject stores the data inside in a buffer. To put the -data into the buffer you may use either -\helpref{SetData}{wxcustomdataobjectsetdata} or -\helpref{TakeData}{wxcustomdataobjecttakedata} depending on whether you want -the object to make a copy of data or not. - -If you already store the data in another place, it may be more convenient and -efficient to provide the data on-demand which is possible too if you override -the virtual functions mentioned below. - -\wxheading{Virtual functions to override} - -This class may be used as is, but if you don't want store the data inside the -object but provide it on demand instead, you should override -\helpref{GetSize}{wxcustomdataobjectgetsize}, -\helpref{GetData}{wxcustomdataobjectgetdata} and -\helpref{SetData}{wxcustomdataobjectsetdata} (or may be only the first two or -only the last one if you only allow reading/writing the data) - -\wxheading{Derived from} - -\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCustomDataObject::wxCustomDataObject}\label{wxcustomdataobjectwxcustomdataobject} - -\func{}{wxCustomDataObject}{\param{const wxDataFormat\& }{format = wxFormatInvalid}} - -The constructor accepts a {\it format} argument which specifies the (single) -format supported by this object. If it isn't set here, -\helpref{SetFormat}{wxdataobjectsimplesetformat} should be used. - -\membersection{wxCustomDataObject::\destruct{wxCustomDataObject}}\label{wxcustomdataobjectdtor} - -\func{}{\destruct{wxCustomDataObject}}{\void} - -The destructor will free the data hold by the object. Notice that although it -calls a virtual \helpref{Free()}{wxcustomdataobjectfree} function, the base -class version will always be called (C++ doesn't allow calling virtual -functions from constructors or destructors), so if you override {\tt Free()}, you -should override the destructor in your class as well (which would probably -just call the derived class' version of {\tt Free()}). - -\membersection{wxCustomDataObject::Alloc}\label{wxcustomdataobjectalloc} - -\func{virtual void *}{Alloc}{\param{size\_t }{size}} - -This function is called to allocate {\it size} bytes of memory from SetData(). -The default version just uses the operator new. - -\membersection{wxCustomDataObject::Free}\label{wxcustomdataobjectfree} - -\func{virtual void}{Free}{\void} - -This function is called when the data is freed, you may override it to anything -you want (or may be nothing at all). The default version calls operator -delete$[]$ on the data. - -\membersection{wxCustomDataObject::GetSize}\label{wxcustomdataobjectgetsize} - -\constfunc{virtual size\_t}{GetSize}{\void} - -Returns the data size in bytes. - -\membersection{wxCustomDataObject::GetData}\label{wxcustomdataobjectgetdata} - -\constfunc{virtual void *}{GetData}{\void} - -Returns a pointer to the data. - -\membersection{wxCustomDataObject::SetData}\label{wxcustomdataobjectsetdata} - -\func{virtual void}{SetData}{ - \param{size\_t }{size}, \param{const void }{*data}} - -Set the data. The data object will make an internal copy. - -\pythonnote{This method expects a string in wxPython. You can pass -nearly any object by pickling it first.} - -\membersection{wxCustomDataObject::TakeData}\label{wxcustomdataobjecttakedata} - -\func{virtual void}{TakeData}{ - \param{size\_t }{size}, \param{const void }{*data}} - -Like \helpref{SetData}{wxcustomdataobjectsetdata}, but doesn't copy the data - -instead the object takes ownership of the pointer. - -\pythonnote{This method expects a string in wxPython. You can pass -nearly any object by pickling it first.} - diff --git a/docs/latex/wx/dataform.tex b/docs/latex/wx/dataform.tex deleted file mode 100644 index e4c7a565dc..0000000000 --- a/docs/latex/wx/dataform.tex +++ /dev/null @@ -1,126 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dataform.tex -%% Purpose: wxDataFormat documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 03.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDataFormat}}\label{wxdataformat} - -A wxDataFormat is an encapsulation of a platform-specific format handle which -is used by the system for the clipboard and drag and drop operations. The -applications are usually only interested in, for example, pasting data from the -clipboard only if the data is in a format the program understands and a data -format is something which uniquely identifies this format. - -On the system level, a data format is usually just a number ({\tt CLIPFORMAT} -under Windows or {\tt Atom} under X11, for example) and the standard formats -are, indeed, just numbers which can be implicitly converted to wxDataFormat. -The standard formats are: - -\begin{twocollist}\itemsep=1cm -\twocolitem{wxDF\_INVALID}{An invalid format - used as default argument for -functions taking a wxDataFormat argument sometimes} -\twocolitem{wxDF\_TEXT}{Text format (wxString)} -\twocolitem{wxDF\_BITMAP}{A bitmap (wxBitmap)} -\twocolitem{wxDF\_METAFILE}{A metafile (wxMetafile, Windows only)} -\twocolitem{wxDF\_FILENAME}{A list of filenames} -\twocolitem{wxDF\_HTML}{An HTML string. This is only valid when passed to wxSetClipboardData -when compiled with Visual C++ in non-Unicode mode} -\end{twocollist} - -As mentioned above, these standard formats may be passed to any function taking -wxDataFormat argument because wxDataFormat has an implicit conversion from -them (or, to be precise from the type {\tt wxDataFormat::NativeFormat} which is -the type used by the underlying platform for data formats). - -Aside the standard formats, the application may also use custom formats which -are identified by their names (strings) and not numeric identifiers. Although -internally custom format must be created (or {\it registered}) first, you -shouldn't care about it because it is done automatically the first time the -wxDataFormat object corresponding to a given format name is created. The only -implication of this is that you should avoid having global wxDataFormat objects -with non-default constructor because their constructors are executed before the -program has time to perform all necessary initialisations and so an attempt to -do clipboard format registration at this time will usually lead to a crash! - -\wxheading{Virtual functions to override} - -None - -\wxheading{Derived from} - -None - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{DnD sample}{samplednd}, -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataFormat::wxDataFormat}\label{wxdataformatwxdataformatdef} - -\func{}{wxDataFormat}{\param{NativeFormat}{ format = wxDF\_INVALID}} - -Constructs a data format object for one of the standard data formats or an -empty data object (use \helpref{SetType}{wxdataformatsettype} or -\helpref{SetId}{wxdataformatsetid} later in this case) - -\perlnote{In wxPerl this function is named {\tt newNative}.} - -\membersection{wxDataFormat::wxDataFormat}\label{wxdataformatwxdataformat} - -\func{}{wxDataFormat}{\param{const wxChar }{*format}} - -Constructs a data format object for a custom format identified by its name -{\it format}. - -\perlnote{In wxPerl this function is named {\tt newUser}.} - -\membersection{wxDataFormat::operator $==$}\label{wxdataformatoperatoreq} - -\constfunc{bool}{operator $==$}{\param{const wxDataFormat\&}{ format}} - -Returns true if the formats are equal. - -\membersection{wxDataFormat::operator $!=$}\label{wxdataformatoperatorneq} - -\constfunc{bool}{operator $!=$}{\param{const wxDataFormat\&}{ format}} - -Returns true if the formats are different. - -\membersection{wxDataFormat::GetId}\label{wxdataformatgetid} - -\constfunc{wxString}{GetId}{\void} - -Returns the name of a custom format (this function will fail for a standard -format). - -\membersection{wxDataFormat::GetType}\label{wxdataformatgettype} - -\constfunc{NativeFormat}{GetType}{\void} - -Returns the platform-specific number identifying the format. - -\membersection{wxDataFormat::SetId}\label{wxdataformatsetid} - -\func{void}{SetId}{\param{const wxChar }{*format}} - -Sets the format to be the custom format identified by the given name. - -\membersection{wxDataFormat::SetType}\label{wxdataformatsettype} - -\func{void}{SetType}{\param{NativeFormat}{ format}} - -Sets the format to the given value, which should be one of wxDF\_XXX constants. - diff --git a/docs/latex/wx/dataobj.tex b/docs/latex/wx/dataobj.tex deleted file mode 100644 index 699cfb52b3..0000000000 --- a/docs/latex/wx/dataobj.tex +++ /dev/null @@ -1,205 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dataobj.tex -%% Purpose: wxDataObject documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 18.10.99 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDataObject}}\label{wxdataobject} - -A wxDataObject represents data that can be copied to or from the clipboard, or -dragged and dropped. The important thing about wxDataObject is that this is a -'smart' piece of data unlike 'dumb' data containers such as memory -buffers or files. Being 'smart' here means that the data object itself should -know what data formats it supports and how to render itself in each of -its supported formats. - -A supported format, incidentally, is exactly the format in which the data can -be requested from a data object or from which the data object may be set. In -the general case, an object may support different formats on 'input' and -'output', i.e. it may be able to render itself in a given format but not be -created from data on this format or vice versa. wxDataObject defines an -enumeration type - -\begin{verbatim} -enum Direction -{ - Get = 0x01, // format is supported by GetDataHere() - Set = 0x02 // format is supported by SetData() -}; -\end{verbatim} - -which distinguishes between them. See -\helpref{wxDataFormat}{wxdataformat} documentation for more about formats. - -Not surprisingly, being 'smart' comes at a price of added complexity. This is -reasonable for the situations when you really need to support multiple formats, -but may be annoying if you only want to do something simple like cut and paste -text. - -To provide a solution for both cases, wxWidgets has two predefined classes -which derive from wxDataObject: \helpref{wxDataObjectSimple}{wxdataobjectsimple} and -\helpref{wxDataObjectComposite}{wxdataobjectcomposite}. -\helpref{wxDataObjectSimple}{wxdataobjectsimple} is -the simplest wxDataObject possible and only holds data in a single format (such -as HTML or text) and \helpref{wxDataObjectComposite}{wxdataobjectcomposite} is -the simplest way to implement a wxDataObject that does support multiple formats -because it achieves this by simply holding several wxDataObjectSimple objects. - -So, you have several solutions when you need a wxDataObject class (and you need -one as soon as you want to transfer data via the clipboard or drag and drop): - -\begin{twocollist}\itemsep=1cm -\twocolitem{{\bf 1. Use one of the built-in classes}}{You may use wxTextDataObject, -wxBitmapDataObject or wxFileDataObject in the simplest cases when you only need -to support one format and your data is either text, bitmap or list of files.} -\twocolitem{{\bf 2. Use wxDataObjectSimple}}{Deriving from wxDataObjectSimple is the simplest -solution for custom data - you will only support one format and so probably -won't be able to communicate with other programs, but data transfer will work -in your program (or between different copies of it).} -\twocolitem{{\bf 3. Use wxDataObjectComposite}}{This is a simple but powerful -solution which allows you to support any number of formats (either -standard or custom if you combine it with the previous solution).} -\twocolitem{{\bf 4. Use wxDataObject directly}}{This is the solution for -maximal flexibility and efficiency, but it is also the most difficult to -implement.} -\end{twocollist} - -Please note that the easiest way to use drag and drop and the clipboard with -multiple formats is by using wxDataObjectComposite, but it is not the most -efficient one as each wxDataObjectSimple would contain the whole data in its -respective formats. Now imagine that you want to paste 200 pages of text in -your proprietary format, as well as Word, RTF, HTML, Unicode and plain text to -the clipboard and even today's computers are in trouble. For this case, you -will have to derive from wxDataObject directly and make it enumerate its -formats and provide the data in the requested format on demand. - -Note that neither the GTK+ data transfer mechanisms for clipboard and -drag and drop, nor OLE data transfer, copy any data until another application -actually requests the data. This is in contrast to the 'feel' offered to the -user of a program who would normally think that the data resides in the -clipboard after having pressed 'Copy' - in reality it is only declared to be -available. - -There are several predefined data object classes derived from -wxDataObjectSimple: \helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject} and -\helpref{wxURLDataObject}{wxurldataobject} -which can be used without change. - -You may also derive your own data object classes from -\helpref{wxCustomDataObject}{wxcustomdataobject} for user-defined types. The -format of user-defined data is given as a mime-type string literal, such as -"application/word" or "image/png". These strings are used as they are under -Unix (so far only GTK+) to identify a format and are translated into their -Windows equivalent under Win32 (using the OLE IDataObject for data exchange to -and from the clipboard and for drag and drop). Note that the format string -translation under Windows is not yet finished. - -\pythonnote{At this time this class is not directly usable from wxPython. -Derive a class from \helpref{wxPyDataObjectSimple}{wxdataobjectsimple} -instead.} - -\perlnote{This class is not currently usable from wxPerl; you may -use \helpref{Wx::PlDataObjectSimple}{wxdataobjectsimple} instead.} - -\wxheading{Virtual functions to override} - -Each class derived directly from wxDataObject must override and implement all -of its functions which are pure virtual in the base class. - -The data objects which only render their data or only set it (i.e. work in -only one direction), should return 0 from -\helpref{GetFormatCount}{wxdataobjectgetformatcount}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{DnD sample}{samplednd}, -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject}, -\helpref{wxCustomDataObject}{wxcustomdataobject}, -\helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxDropSource}{wxdropsource}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, -\helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataObject::wxDataObject}\label{wxdataobjectwxdataobject} - -\func{}{wxDataObject}{\void} - -Constructor. - -\membersection{wxDataObject::\destruct{wxDataObject}}\label{wxdataobjectdtor} - -\func{}{\destruct{wxDataObject}}{\void} - -Destructor. - -\membersection{wxDataObject::GetAllFormats}\label{wxdataobjectgetallformats} - -\constfunc{virtual void}{GetAllFormats}{ \param{wxDataFormat *}{formats}, \param{Direction}{ dir = Get}} - -Copy all supported formats in the given direction to the array pointed to by -{\it formats}. There is enough space for GetFormatCount(dir) formats in it. - -\perlnote{In wxPerl this method only takes the {\tt dir} parameter. -In scalar context it returns the first format, -in list context it returns a list containing all the supported formats.} - -\membersection{wxDataObject::GetDataHere}\label{wxdataobjectgetdatahere} - -\constfunc{virtual bool}{GetDataHere}{\param{const wxDataFormat\&}{ format}, \param{void }{*buf} } - -The method will write the data of the format {\it format} in the buffer {\it -buf} and return true on success, false on failure. - -\membersection{wxDataObject::GetDataSize}\label{wxdataobjectgetdatasize} - -\constfunc{virtual size\_t}{GetDataSize}{\param{const wxDataFormat\&}{ format} } - -Returns the data size of the given format {\it format}. - -\membersection{wxDataObject::GetFormatCount}\label{wxdataobjectgetformatcount} - -\constfunc{virtual size\_t}{GetFormatCount}{\param{Direction}{ dir = Get}} - -Returns the number of available formats for rendering or setting the data. - -\membersection{wxDataObject::GetPreferredFormat}\label{wxdataobjectgetpreferredformat} - -\constfunc{virtual wxDataFormat}{GetPreferredFormat}{\param{Direction}{ dir = Get}} - -Returns the preferred format for either rendering the data (if {\it dir} is {\tt Get}, -its default value) or for setting it. Usually this will be the -native format of the wxDataObject. - -\membersection{wxDataObject::SetData}\label{wxdataobjectsetdata} - -\func{virtual bool}{SetData}{ \param{const wxDataFormat\&}{ format}, \param{size\_t}{ len}, \param{const void }{*buf} } - -Set the data in the format {\it format} of the length {\it len} provided in the -buffer {\it buf}. - -Returns true on success, false on failure. - diff --git a/docs/latex/wx/dataviewcolumn.tex b/docs/latex/wx/dataviewcolumn.tex deleted file mode 100644 index 479e4de5a7..0000000000 --- a/docs/latex/wx/dataviewcolumn.tex +++ /dev/null @@ -1,159 +0,0 @@ - -\section{\class{wxDataViewColumn}}\label{wxdataviewcolumn} - - -This class represents a column in a \helpref{wxDataViewCtrl}{wxdataviewctrl}. -One wxDataViewColumn is bound to one column in the data model, -to which the wxDataViewCtrl has been associated. - -An instance of \helpref{wxDataViewRenderer}{wxdataviewrenderer} is used by -this class to render its data. - -\wxheading{Constants} - -These flags define behaviour of the column: - -{\small -\begin{verbatim} -enum wxDataViewColumnFlags -{ - wxDATAVIEW_COL_RESIZABLE = 1, // the user can resize the column - wxDATAVIEW_COL_SORTABLE = 2, // same as SetSortable() - wxDATAVIEW_COL_REORDERABLE = 4, // column can be reordered - wxDATAVIEW_COL_HIDDEN = 8 // column is hidden -}; -\end{verbatim} -} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewColumn::wxDataViewColumn}\label{wxdataviewcolumnwxdataviewcolumn} - -\func{}{wxDataViewColumn}{\param{const wxString\& }{title}, \param{wxDataViewRenderer* }{renderer}, \param{unsigned int }{model\_column}, \param{int }{width = wxDVC\_DEFAULT\_WIDTH}, \param{wxAlignment }{align = wxALIGN\_CENTRE}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{}{wxDataViewColumn}{\param{const wxBitmap\& }{bitmap}, \param{wxDataViewRenderer* }{renderer}, \param{unsigned int }{model\_column}, \param{int }{width = wxDVC\_DEFAULT\_WIDTH}, \param{wxAlignment }{align = wxALIGN\_CENTRE}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Constructors. - - -\membersection{wxDataViewColumn::\destruct{wxDataViewColumn}}\label{wxdataviewcolumndtor} - -\func{}{\destruct{wxDataViewColumn}}{\void} - -Destructor. - -\membersection{wxDataViewColumn::GetBitmap}\label{wxdataviewcolumngetbitmap} - -\func{const wxBitmap\&}{GetBitmap}{\void} - -Returns the bitmap in the header of the column, if any. - -\membersection{wxDataViewColumn::GetModelColumn}\label{wxdataviewcolumngetmodelcolumn} - -\func{unsigned int}{GetModelColumn}{\void} - -Returns the index of the column of the model, which this -wxDataViewColumn is displaying. - -\membersection{wxDataViewColumn::GetOwner}\label{wxdataviewcolumngetowner} - -\func{wxDataViewCtrl*}{GetOwner}{\void} - -Returns the owning \helpref{wxDataViewCtrl}{wxdataviewctrl}. - -\membersection{wxDataViewColumn::GetRenderer}\label{wxdataviewcolumngetrenderer} - -\func{wxDataViewRenderer*}{GetRenderer}{\void} - -Returns the renderer of this wxDataViewColumn. - -See also \helpref{wxDataViewRenderer}{wxdataviewrenderer}. - -\membersection{wxDataViewColumn::GetReorderable}\label{wxdataviewcolumngetreorderable} - -\func{bool}{GetReorderable}{\void} - -Returns true if the column is reorderable. - -\membersection{wxDataViewColumn::GetSortable}\label{wxdataviewcolumngetsortable} - -\func{bool}{GetSortable}{\void} - -Returns true if the column is sortable. - -See \helpref{SetSortable}{wxdataviewcolumnsetsortable} - -\membersection{wxDataViewColumn::GetWidth}\label{wxdataviewcolumngetwidth} - -\func{int}{GetWidth}{\void} - -Returns the width of the column. - -\membersection{wxDataViewColumn::IsSortOrderAscending}\label{wxdataviewcolumnissortorderascending} - -\func{bool}{IsSortOrderAscending}{\void} - -Returns true, if the sort order is ascending. - -See also \helpref{SetSortOrder}{wxdataviewcolumnsetsortorder} - -\membersection{wxDataViewColumn::SetAlignment}\label{wxdataviewcolumnsetalignment} - -\func{void}{SetAlignment}{\param{wxAlignment }{align}} - -Set the alignment of the column header. - -\membersection{wxDataViewColumn::SetBitmap}\label{wxdataviewcolumnsetbitmap} - -\func{void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}} - -Set the bitmap of the column header. - -\membersection{wxDataViewColumn::SetReorderable}\label{wxdataviewcolumnsetreorderable} - -\func{void}{SetReorderable}{\param{bool }{reorderable}} - -Indicate wether the column can be reordered by the -user using the mouse. This is typically implemented -visually by dragging the header button around. - -\membersection{wxDataViewColumn::SetSortOrder}\label{wxdataviewcolumnsetsortorder} - -\func{void}{SetSortOrder}{\param{bool }{ascending}} - -Indicate the sort order if the implementation of the -wxDataViewCtrl supports it, most commonly by showing -a little arrow. - -\membersection{wxDataViewColumn::SetSortable}\label{wxdataviewcolumnsetsortable} - -\func{void}{SetSortable}{\param{bool }{sortable}} - -Indicate that the column is sortable. This does -not show any sorting indicate yet, but it does -make the column header clickable. Call -\helpref{SetSortOrder}{wxdataviewcolumnsetsortorder} -afterwards to actually make the sort indicator appear. -If {\it sortable} is false, the column header is -no longer clickable and the sort indicator (little -arrow) will disappear. - -\membersection{wxDataViewColumn::SetTitle}\label{wxdataviewcolumnsettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Set the title of the column header to {\it title}. - diff --git a/docs/latex/wx/dataviewctrl.tex b/docs/latex/wx/dataviewctrl.tex deleted file mode 100644 index 9f749c4e8a..0000000000 --- a/docs/latex/wx/dataviewctrl.tex +++ /dev/null @@ -1,339 +0,0 @@ -\section{\class{wxDataViewCtrl}}\label{wxdataviewctrl} - -wxDataViewCtrl is a control to display data either -in a tree like fashion or in a tabular form or both. -If you only need to display a simple tree structure -with an API more like the older wxTreeCtrl class, -then the specialized \helpref{wxDataViewTreeCtrl}{wxdataviewtreectrl} -can be used. - -A \helpref{wxDataViewItem}{wxdataviewitem} is used -to represent a (visible) item in the control. - -Unlike \helpref{wxListCtrl}{wxlistctrl} wxDataViewCtrl doesn't -get its data from the user through virtual functions or by -setting it directly. Instead you need to write your own -\helpref{wxDataViewModel}{wxdataviewmodel} and associate -it with this control. Then you need to add a number of -\helpref{wxDataViewColumn}{wxdataviewcolumn} to this control to -define what each column shall display. Each wxDataViewColumn -in turn owns 1 instance of a -\helpref{wxDataViewRenderer}{wxdataviewrenderer} to render its -cells. A number of standard renderers for rendering text, dates, -images, toggle, a progress bar etc. are provided. Additionally, -the user can write custom renderes deriving from -\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer} -for displaying anything. - -All data transfer from the control to the model and the user -code is done through \helpref{wxVariant}{wxvariant} which can -be extended to support more data formats as necessary. -Accordingly, all type information uses the strings returned -from \helpref{wxVariant::GetType}{wxvariantgettype}. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxDV\_SINGLE}}{Single selection mode. This is the default.} -\twocolitem{\windowstyle{wxDV\_MULTIPLE}}{Multiple selection mode.} -\twocolitem{\windowstyle{wxDV\_ROW\_LINES}}{Use alternating colours for rows if supported by platform and theme.} -\twocolitem{\windowstyle{wxDV\_HORIZ\_RULES}}{Display fine rules between row if supported.} -\twocolitem{\windowstyle{wxDV\_VERT\_RULES}}{Display fine rules between columns is supported.} -\end{twocollist} - - -\wxheading{Event handling} - -To process input from a dataview control, use the following event handler -macros to direct input to member functions that take a -\helpref{wxDataViewEvent}{wxdataviewevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt - -\twocolitem{{\bf EVT\_DATAVIEW\_SELECTION\_CHANGED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_SELECTION\_CHANGED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_ACTIVATED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_ACTIVATED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_EDITING\_STARTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_EDITING\_STARTED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_EDITING\_DONE(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_EDITING\_DONE event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_COLLAPSING(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_COLLAPSING event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_COLLAPSED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_COLLAPSED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_EXPANDING(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_EXPANDING event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_EXPANDED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_EXPANDED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_VALUE\_CHANGED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_VALUE\_CHANGED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_ITEM\_CONTEXT\_MENU(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_ITEM\_CONTEXT\_MENU event.} -\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_CLICK(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_CLICKED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_RIGHT\_CLICK(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_RIGHT\_CLICKED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_HEADER\_SORTED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_HEADER\_SORTED event.} -\twocolitem{{\bf EVT\_DATAVIEW\_COLUMN\_REORDERED(id, func)}}{Processes a wxEVT\_COMMAND\_DATAVIEW\_COLUMN\_REORDERED event.} - -\end{twocollist} - - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewCtrl::wxDataViewCtrl}\label{wxdataviewctrlwxdataviewctrl} - -\func{}{wxDataViewCtrl}{\void} - -\func{}{wxDataViewCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}} - -Constructor. Calls \helpref{Create}{wxdataviewctrlcreate}. - -\membersection{wxDataViewCtrl::\destruct{wxDataViewCtrl}}\label{wxdataviewctrldtor} - -\func{}{\destruct{wxDataViewCtrl}}{\void} - -Destructor. - -\membersection{wxDataViewCtrl::AppendColumn}\label{wxdataviewctrlappendcolumn} - -\func{virtual bool}{AppendColumn}{\param{wxDataViewColumn* }{col}} - -Add a \helpref{wxDataViewColumn}{wxdataviewcolumn} to the control. Returns -{\it true} on success. - -Note that there is a number of short cut methods which implicitly create -a \helpref{wxDataViewColumn}{wxdataviewcolumn} and a -\helpref{wxDataViewRenderer}{wxdataviewrenderer} for it (see below). - -\membersection{wxDataViewCtrl::AppendBitmapColumn}\label{wxdataviewctrlappendbitmapcolumn} - -\func{wxDataViewColumn*}{AppendBitmapColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendBitmapColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering a bitmap. Returns the wxDataViewColumn -created in the function or NULL on failure. - -\membersection{wxDataViewCtrl::AppendDateColumn}\label{wxdataviewctrlappenddatecolumn} - -\func{wxDataViewColumn*}{AppendDateColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendDateColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering a date. Returns the wxDataViewColumn -created in the function or NULL on failure. - -\membersection{wxDataViewCtrl::AppendProgressColumn}\label{wxdataviewctrlappendprogresscolumn} - -\func{wxDataViewColumn*}{AppendProgressColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 80}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendProgressColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 80}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering a progress indicator. Returns the wxDataViewColumn -created in the function or NULL on failure. - -\membersection{wxDataViewCtrl::AppendIconTextColumn}\label{wxdataviewctrlappendicontextcolumn} - -\func{wxDataViewColumn*}{AppendIconTextColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_LEFT}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendIconTextColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_LEFT}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering text with an icon. Returns the wxDataViewColumn -created in the function or NULL on failure. This uses the -\helpref{wxDataViewIconTextRenderer}{wxdataviewicontextrenderer}. - -\membersection{wxDataViewCtrl::AppendTextColumn}\label{wxdataviewctrlappendtextcolumn} - -\func{wxDataViewColumn*}{AppendTextColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_LEFT}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendTextColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = -1}, \param{wxAlignment }{align = wxALIGN\_LEFT}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering text. Returns the wxDataViewColumn -created in the function or NULL on failure. - -\membersection{wxDataViewCtrl::AppendToggleColumn}\label{wxdataviewctrlappendtogglecolumn} - -\func{wxDataViewColumn*}{AppendToggleColumn}{\param{const wxString\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 30}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -\func{wxDataViewColumn*}{AppendToggleColumn}{\param{const wxBitmap\& }{label}, \param{unsigned int }{model\_column}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{width = 30}, \param{wxAlignment }{align = wxALIGN\_CENTER}, \param{int }{flags = wxDATAVIEW\_COL\_RESIZABLE}} - -Appends a column for rendering a toggle. Returns the wxDataViewColumn -created in the function or NULL on failure. - -\membersection{wxDataViewCtrl::AssociateModel}\label{wxdataviewctrlassociatemodel} - -\func{virtual bool}{AssociateModel}{\param{wxDataViewModel* }{model}} - -Associates a \helpref{wxDataViewModel}{wxdataviewmodel} with the -control. This increases the reference count of the model by 1. - -\membersection{wxDataViewCtrl::Create}\label{wxdataviewctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}} - -Create the control. Useful for two step creation. - -\membersection{wxDataViewCtrl::ClearColumns}\label{wxdataviewctrlclearcolumns} - -\func{virtual bool}{ClearColumns}{\void} - -Removes all columns. - -\membersection{wxDataViewCtrl::ClearSelection}\label{wxdataviewctrlclearselection} - -\func{void}{ClearSelection}{\void} - -Unselects all rows. - -\membersection{wxDataViewCtrl::Collapse}\label{wxdataviewctrlcollapse} - -\func{void}{Collapse}{\param{const wxDataViewItem \& }{item}} - -Collapses the item. - -\membersection{wxDataViewCtrl::DeleteColumn}\label{wxdataviewctrldeletecolumn} - -\func{virtual bool}{DeleteColumn}{\param{const wxDataViewColumn* }{column}} - -Deletes given column. - -\membersection{wxDataViewCtrl::Expand}\label{wxdataviewctrlexpand} - -\func{void}{Expand}{\param{const wxDataViewItem \& }{item}} - -Expands the item. - -\membersection{wxDataViewCtrl::GetColumn}\label{wxdataviewctrlgetcolumn} - -\constfunc{virtual wxDataViewColumn*}{GetColumn}{\param{unsigned int }{pos}} - -Returns pointer to the column. {\it pos} refers to the -position in the control which may change after reordering -columns by the user. - -\membersection{wxDataViewCtrl::GetColumnCount}\label{wxdataviewctrlgetcolumncount} - -\constfunc{virtual unsigned int}{GetColumnCount}{\void} - -Returns the number of columns. - -\membersection{wxDataViewCtrl::GetColumnPosition}\label{wxdataviewctrlgetcolumnposition} - -\constfunc{virtual int}{GetColumnPosition}{\param{const wxDataViewColumn* }{column}} - -Returns the position of the column or -1 if not found in the control. - -\membersection{wxDataViewCtrl::EnsureVisible}\label{wxdataviewctrlensurevisible} - -\func{void}{EnsureVisible}{\param{const wxDataViewItem \& }{item}, \param{const wxDataViewColumn* }{column = NULL}} - -Call this to ensure that the given item is visible. - -\membersection{wxDataViewCtrl::GetExpanderColumn}\label{wxdataviewctrlgetexpandercolumn} - -\constfunc{wxDataViewColumn *}{GetExpanderColumn}{\void} - -Returns column containing the expanders. - -\membersection{wxDataViewCtrl::GetIndent}\label{wxdataviewctrlgetindent} - -\constfunc{int}{GetIndent}{\void} - -Returns indentation. - -\membersection{wxDataViewCtrl::GetItemRect}\label{wxdataviewctrlgetitemrect} - -\constfunc{wxRect}{GetItemRect}{\param{const wxDataViewItem\& }{item}, \param{const wxDataViewColumn *}{col = NULL}} - -Returns item rect. - -\membersection{wxDataViewCtrl::GetModel}\label{wxdataviewctrlgetmodel} - -\constfunc{virtual wxDataViewModel*}{GetModel}{\void} - -Returns pointer to the data model associated with the -control (if any). - -\membersection{wxDataViewCtrl::GetSelection}\label{wxdataviewctrlgetselection} - -\constfunc{wxDataViewItem}{GetSelection}{\void} - -Returns first selected item or an invalid item if none is selected. - -\membersection{wxDataViewCtrl::GetSelections}\label{wxdataviewctrlgetselections} - -\constfunc{int}{GetSelections}{\param{wxDataViewItemArray \& }{sel}} - -Fills {\it sel} with currently selected items and returns -their number. - -\membersection{wxDataViewCtrl::GetSortingColumn}\label{wxdataviewctrlgetsortingcolumn} - -\constfunc{virtual wxDataViewColumn*}{GetSortingColumn}{\void} - -Returns the wxDataViewColumn currently responsible for sorting -or NULL if none has been selected. - -\membersection{wxDataViewCtrl::HitTest}\label{wxdataviewctrlhittest} - -\constfunc{void}{HitTest}{\param{const wxPoint\& }{point}, \param{wxDataViewItem\& }{item}, \param{wxDataViewColumn *\&}{col}} - -Hittest. - -\membersection{wxDataViewCtrl::IsSelected}\label{wxdataviewctrlisselected} - -\constfunc{bool}{IsSelected}{\param{const wxDataViewItem \& }{item}} - -Return true if the item is selected. - -\membersection{wxDataViewCtrl::Select}\label{wxdataviewctrlselect} - -\func{void}{Select}{\param{const wxDataViewItem \& }{item}} - -Select the given item. - -\membersection{wxDataViewCtrl::SelectAll}\label{wxdataviewctrlselectall} - -\func{void}{SelectAll}{\void} - -Select all items. - -\membersection{wxDataViewCtrl::SetExpanderColumn}\label{wxdataviewctrlsetexpandercolumn} - -\func{void}{SetExpanderColumn}{\param{wxDataViewColumn *}{col}} - -Set which column shall contain the tree-like expanders. - -\membersection{wxDataViewCtrl::SetIndent}\label{wxdataviewctrlsetindent} - -\func{void}{SetIndent}{\param{int }{indent}} - -Sets the indendation. - -\membersection{wxDataViewCtrl::SetSelections}\label{wxdataviewctrlsetselections} - -\func{void}{SetSelections}{\param{const wxDataViewItemArray \& }{sel}} - -Sets the selection to the array of wxDataViewItems. - -\membersection{wxDataViewCtrl::Unselect}\label{wxdataviewctrlunselect} - -\func{void}{Unselect}{\param{const wxDataViewItem \& }{item}} - -Unselect the given item. - -\membersection{wxDataViewCtrl::UnselectAll}\label{wxdataviewctrlunselectall} - -\func{void}{UnselectAll}{\void} - -Unselect all item. This method only has effect if multiple -selections are allowed. - diff --git a/docs/latex/wx/dataviewevent.tex b/docs/latex/wx/dataviewevent.tex deleted file mode 100644 index 49092a6970..0000000000 --- a/docs/latex/wx/dataviewevent.tex +++ /dev/null @@ -1,99 +0,0 @@ - -\section{\class{wxDataViewEvent}}\label{wxdataviewevent} - - -wxDataViewEvent - the event class for the wxDataViewCtrl notifications - - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewEvent::wxDataViewEvent}\label{wxdatavieweventwxdataviewevent} - -\func{}{wxDataViewEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{winid = 0}} - - -\func{}{wxDataViewEvent}{\param{const wxDataViewEvent\& }{event}} - - -\membersection{wxDataViewEvent::Clone}\label{wxdatavieweventclone} - -\constfunc{wxEvent*}{Clone}{\void} - -Used to clone the event. - - -\membersection{wxDataViewEvent::GetColumn}\label{wxdatavieweventgetcolumn} - -\constfunc{int}{GetColumn}{\void} - -Returns the position of the column in the control or -1 -if no column field was set by the event emitter. - - -\membersection{wxDataViewEvent::GetDataViewColumn}\label{wxdatavieweventgetdataviewcolumn} - -\func{wxDataViewColumn*}{GetDataViewColumn}{\void} - -Returns a pointer to the wxDataViewColumn from which -the event was emitted or NULL. - - -\membersection{wxDataViewEvent::GetModel}\label{wxdatavieweventgetmodel} - -\constfunc{wxDataViewModel*}{GetModel}{\void} - -Returns the wxDataViewModel associated with the event. - - -\membersection{wxDataViewEvent::GetPosition}\label{wxdatavieweventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns a the position of a context menu event in screen coordinates. - - -\membersection{wxDataViewEvent::GetValue}\label{wxdatavieweventgetvalue} - -\constfunc{const wxVariant\&}{GetValue}{\void} - -Returns a reference to a value. - - -\membersection{wxDataViewEvent::SetColumn}\label{wxdatavieweventsetcolumn} - -\func{void}{SetColumn}{\param{int }{col}} - - -\membersection{wxDataViewEvent::SetDataViewColumn}\label{wxdatavieweventsetdataviewcolumn} - -\func{void}{SetDataViewColumn}{\param{wxDataViewColumn* }{col}} - -For wxEVT\_DATAVIEW\_COLUMN\_HEADER\_CLICKED only. - - -\membersection{wxDataViewEvent::SetModel}\label{wxdatavieweventsetmodel} - -\func{void}{SetModel}{\param{wxDataViewModel* }{model}} - - - -\membersection{wxDataViewEvent::SetValue}\label{wxdatavieweventsetvalue} - -\func{void}{SetValue}{\param{const wxVariant\& }{value}} - diff --git a/docs/latex/wx/dataviewindexlistmodel.tex b/docs/latex/wx/dataviewindexlistmodel.tex deleted file mode 100644 index a83d691c57..0000000000 --- a/docs/latex/wx/dataviewindexlistmodel.tex +++ /dev/null @@ -1,134 +0,0 @@ - -\section{\class{wxDataViewIndexListModel}}\label{wxdataviewindexlistmodel} - -wxDataViewIndexListModel is a specialized data model which lets -you address an item by its position (row) rather than its -wxDataViewItem (which you can obtain from this class). -This model also provides its own -\helpref{Compare}{wxdataviewindexlistmodelcompare} method -which sorts the model's data by the index. - -This model is special in the it is implemented differently under OS X -and other platforms. Under OS X a wxDataViewItem is always persistent -and this is also the case for this class. Under other platforms, the -meaning of a wxDataViewItem is changed to reflect a row number for -wxDataViewIndexListModel. The consequence of this is that -wxDataViewIndexListModel can be used as a virtual model with an -almost infinate number of items on platforms other than OS X. - -\wxheading{Derived from} - -\helpref{wxDataViewModel}{wxdataviewmodel} - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewIndexListModel::wxDataViewIndexListModel}\label{wxdataviewindexlistmodelwxdataviewindexlistmodel} - -\func{}{wxDataViewIndexListModel}{\param{unsigned int }{initial\_size = 0}} - -Constructor. - -\membersection{wxDataViewIndexListModel::\destruct{wxDataViewIndexListModel}}\label{wxdataviewindexlistmodeldtor} - -\func{}{\destruct{wxDataViewIndexListModel}}{\void} - -Destructor. - -\membersection{wxDataViewIndexListModel::Compare}\label{wxdataviewindexlistmodelcompare} - -\func{int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}} - -Compare method that sorts the items by their index. - -\membersection{wxDataViewIndexListModel::GetAttr}\label{wxdataviewindexlistmodelgetattr} - -\func{bool}{GetAttr}{\param{unsigned int }{row}, \param{unsigned int }{col}, \param{wxDataViewItemAttr\& }{attr}} - -Oberride this to indicate that the row has special font attributes. -This only affects the -\helpref{wxDataViewTextRendererText}{wxdataviewtextrendererattr} renderer. - -See also \helpref{wxDataViewItemAttr}{wxdataviewitemattr}. - -\membersection{wxDataViewIndexListModel::GetItem}\label{wxdataviewindexlistmodelgetitem} - -\constfunc{wxDataViewItem}{GetItem}{\param{unsigned int }{row}} - -Returns the wxDataViewItem at the given {\it row}. - -\membersection{wxDataViewIndexListModel::GetRow}\label{wxdataviewindexlistmodelgetrow} - -\constfunc{unsigned int}{GetRow}{\param{const wxDataViewItem\& }{item}} - -Returns the position of given {\it item}. - -\membersection{wxDataViewIndexListModel::GetValue}\label{wxdataviewindexlistmodelgetvalue} - -\constfunc{void}{GetValue}{\param{wxVariant\& }{variant}, \param{unsigned int }{row}, \param{unsigned int }{col}} - -Override this to allow getting values from the model. - - -\membersection{wxDataViewIndexListModel::Reset}\label{wxdataviewindexlistmodelreset} - -\func{void}{Reset}{\param{unsigned int }{new\_size}} - -Call this after if the data has to be read again from -the model. This is useful after major changes when -calling the methods below (possibly thousands of times) -doesn't make sense. - -\membersection{wxDataViewIndexListModel::RowAppended}\label{wxdataviewindexlistmodelrowappended} - -\func{void}{RowAppended}{\void} - -Call this after a row has been appended to the model. - -\membersection{wxDataViewIndexListModel::RowChanged}\label{wxdataviewindexlistmodelrowchanged} - -\func{void}{RowChanged}{\param{unsigned int }{row}} - -Call this after a row has been changed. - -\membersection{wxDataViewIndexListModel::RowDeleted}\label{wxdataviewindexlistmodelrowdeleted} - -\func{void}{RowDeleted}{\param{unsigned int }{row}} - -Call this after a row has been deleted. - -\membersection{wxDataViewIndexListModel::RowsDeleted}\label{wxdataviewindexlistmodelrowdeleted} - -\func{void}{RowsDeleted}{\param{const wxArrayInt &}{rows}} - -Call this after rows have been deleted. The array will internally -get copied and sorted in descending order so that the rows with -the highest position will be deleted first. - -\membersection{wxDataViewIndexListModel::RowInserted}\label{wxdataviewindexlistmodelrowinserted} - -\func{void}{RowInserted}{\param{unsigned int }{before}} - -Call this after a row has been inserted at the given position. - -\membersection{wxDataViewIndexListModel::RowPrepended}\label{wxdataviewindexlistmodelrowprepended} - -\func{void}{RowPrepended}{\void} - -Call this after a row has been prepended to the model. - -\membersection{wxDataViewIndexListModel::RowValueChanged}\label{wxdataviewindexlistmodelrowvaluechanged} - -\func{void}{RowValueChanged}{\param{unsigned int }{row}, \param{unsigned int }{col}} - -Call this after a value has been changed. - -\membersection{wxDataViewIndexListModel::SetValue}\label{wxdataviewindexlistmodelsetvalue} - -\func{bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{unsigned int }{row}, \param{unsigned int }{col}} - -Called in order to set a value in the model. diff --git a/docs/latex/wx/dataviewitem.tex b/docs/latex/wx/dataviewitem.tex deleted file mode 100644 index f4ce1e0bfc..0000000000 --- a/docs/latex/wx/dataviewitem.tex +++ /dev/null @@ -1,59 +0,0 @@ - -\section{\class{wxDataViewItem}}\label{wxdataviewitem} - -wxDataViewItem is a small opaque class that represents an -item in a \helpref{wxDataViewCtrl}{wxdataviewctrl} in a -persistent way, i.e. indepent of the position of the -item in the control or changes to its contents. It must -hold a unique ID of type {\it void*} in its only field -and can be converted to a from it. - -If the ID is {\it NULL} the wxDataViewItem is invalid and -\helpref{IsOk}{wxdataviewitemisok} will return {\it false} -which used in many places in the API of wxDataViewCtrl -to indicate that e.g. no item was found. An ID of NULL -is also used to indicate the invisible root. Examples -for this are -\helpref{wxDataViewModel::GetParent}{wxdataviewmodelgetparent} and -\helpref{wxDataViewModel::GetChildren}{wxdataviewmodelgetchildren}. - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\membersection{wxDataViewItem::wxDataViewItem}\label{wxdataviewitemwxdataviewitem} - -\func{}{wxDataViewItem}{\param{void* }{id = NULL}} - -Constructor. - -\func{}{wxDataViewItem}{\param{const wxDataViewItem\& }{item}} - - -\membersection{wxDataViewItem::GetID}\label{wxdataviewitemgetid} - -\constfunc{void*}{GetID}{\void} - -Returns the ID. - -\membersection{wxDataViewItem::IsOk}\label{wxdataviewitemisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the ID is not {\it NULL}. - -\membersection{wxDataViewItem::void*}\label{wxdataviewitemvoid} - -\constfunc{operator const}{void*}{\void} - -Converts to {\it void*}. diff --git a/docs/latex/wx/dataviewitemattr.tex b/docs/latex/wx/dataviewitemattr.tex deleted file mode 100644 index 838bc76e50..0000000000 --- a/docs/latex/wx/dataviewitemattr.tex +++ /dev/null @@ -1,54 +0,0 @@ -\section{\class{wxDataViewItemAttr}}\label{wxdataviewitemattr} - -This class is used to indicate to a \helpref{wxDataViewCtrl}{wxdataviewctrl} -that a certain \helpref{Item}{wxdataviewitem} has extra font attributes -for its renderer. For this, it is required to override -\helpref{wxDataViewModel::GetAttr}{wxdataviewmodelgetattr}. - -Attributes are currently only supported by -\helpref{wxDataViewTextRendererText}{wxdataviewtextrendererattr}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewItemAttr::wxDataViewItemAttr}\label{wxdataviewitemattrwxdataviewitemattr} - -\func{}{wxDataViewItemAttr}{\void} - -Constructor. - - -\membersection{wxDataViewItemAttr::SetBold}\label{wxdataviewitemattrsetbold} - -\func{void}{SetBold}{\param{bool }{set}} - -Call this to indicate that the item shall be displayed in bold text. - -\membersection{wxDataViewItemAttr::SetColour}\label{wxdataviewitemattrsetcolour} - -\func{void}{SetColour}{\param{const wxColour\& }{colour}} - -Call this to indicate that the item shall be displayed with -that colour. - -\membersection{wxDataViewItemAttr::SetItalic}\label{wxdataviewitemattrsetitalic} - -\func{void}{SetItalic}{\param{bool }{set}} - -Call this to indicate that the item shall be displayed in italic text. - diff --git a/docs/latex/wx/dataviewmodel.tex b/docs/latex/wx/dataviewmodel.tex deleted file mode 100644 index c14c20776c..0000000000 --- a/docs/latex/wx/dataviewmodel.tex +++ /dev/null @@ -1,312 +0,0 @@ - -\section{\class{wxDataViewModel}}\label{wxdataviewmodel} - -wxDataViewModel is the base class for all data model to be -displayed by a \helpref{wxDataViewCtrl}{wxdataviewctrl}. -All other models derive from it and must implement its -pure virtual functions in order to define a complete -data model. In detail, you need to override -\helpref{IsContainer}{wxdataviewmodeliscontainer}, -\helpref{GetParent}{wxdataviewmodelgetparent}, -\helpref{GetChildren}{wxdataviewmodelgetchildren}, -\helpref{GetColumnCount}{wxdataviewmodelgetcolumncount}, -\helpref{GetColumnType}{wxdataviewmodelgetcolumntype} and -\helpref{GetValue}{wxdataviewmodelgetvalue} in order to -define the data model which acts as an interface between -your actual data and the wxDataViewCtrl. Since you will -usually also allow the wxDataViewCtrl to change your data -through its graphical interface, you will also have to override -\helpref{SetValue}{wxdataviewmodelsetvalue} which the -wxDataViewCtrl will call when a change to some data has been -commited. - -wxDataViewModel (as indeed the entire wxDataViewCtrl -code) is using \helpref{wxVariant}{wxvariant} to store data and -its type in a generic way. wxVariant can be extended to contain -almost any data without changes to the original class. - -The data that is presented through this data model is expected -to change at run-time. You need to inform the data model when -a change happened. Depending on what happened you need to call -one of the following methods: -\helpref{ValueChanged}{wxdataviewmodelvaluechanged}, -\helpref{ItemAdded}{wxdataviewmodelitemadded}, -\helpref{ItemDeleted}{wxdataviewmodelitemdeleted}, -\helpref{ItemChanged}{wxdataviewmodelitemchanged}, -\helpref{Cleared}{wxdataviewmodelcleared}. There are -plural forms for notification of addition, change -or removal of several item at once. See -\helpref{ItemsAdded}{wxdataviewmodelitemsadded}, -\helpref{ItemsDeleted}{wxdataviewmodelitemsdeleted}, -\helpref{ItemsChanged}{wxdataviewmodelitemschanged}. - -Note that wxDataViewModel does not define the position or -index of any item in the control because different controls -might display the same data differently. wxDataViewModel does -provide a \helpref{Compare}{wxdataviewmodelcompare} method -which the wxDataViewCtrl may use to sort the data either -in conjunction with a column header or without (see -\helpref{HasDefaultCompare}{wxdataviewmodelhasdefaultcompare}). - -This class maintains a list of -\helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier} -which link this class to the specific implementations on the -supported platforms so that e.g. calling -\helpref{ValueChanged}{wxdataviewmodelvaluechanged} -on this model will just call -\helpref{wxDataViewModelNotifier::ValueChanged}{wxdataviewmodelnotifiervaluechanged} -for each notifier that has been added. You can also add -your own notifier in order to get informed about any changes -to the data in the list model. - -Currently wxWidgets provides the following models apart -from the base model: -\helpref{wxDataViewIndexListModel}{wxdataviewindexlistmodel}, -\helpref{wxDataViewTreeStore}{wxdataviewtreestore}. - -Note that wxDataViewModel is reference counted, derives from -\helpref{wxObjectRefData}{wxobjectrefdata} and cannot be deleted -directly as it can be shared by several wxDataViewCtrls. This -implies that you need to decrease the reference count after -associating the model with a control like this: - -{\small% -\begin{verbatim} - wxDataViewCtrl *musicCtrl = new wxDataViewCtrl( this, ID_MUSIC_CTRL ); - wxDataViewModel *musicModel = new MyMusicModel; - m_musicCtrl->AssociateModel( musicModel ); - musicModel->DecRef(); // avoid memory leak !! - // add columns now -\end{verbatim} -}% - -\wxheading{Derived from} - -\helpref{wxObjectRefData}{wxobjectrefdata} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewModel::wxDataViewModel}\label{wxdataviewmodelwxdataviewmodel} - -\func{}{wxDataViewModel}{\void} - -Constructor. - - -\membersection{wxDataViewModel::\destruct{wxDataViewModel}}\label{wxdataviewmodeldtor} - -\func{}{\destruct{wxDataViewModel}}{\void} - -Destructor. This should not be called directly. Use DecRef() instead. - - - -\membersection{wxDataViewModel::AddNotifier}\label{wxdataviewmodeladdnotifier} - -\func{void}{AddNotifier}{\param{wxDataViewModelNotifier* }{notifier}} - -Adds a \helpref{wxDataViewModelNotifier}{wxdataviewmodelnotifier} -to the model. - - -\membersection{wxDataViewModel::Cleared}\label{wxdataviewmodelcleared} - -\func{virtual bool}{Cleared}{\void} - -Called to inform the model that all data has been cleared. The -control will reread the data from the model again. - - -\membersection{wxDataViewModel::Compare}\label{wxdataviewmodelcompare} - -\func{virtual int}{Compare}{\param{const wxDataViewItem\& }{item1}, \param{const wxDataViewItem\& }{item2}, \param{unsigned int }{column}, \param{bool }{ascending}} - -The compare function to be used by control. The default compare function -sorts by container and other items separately and in ascending order. -Override this for a different sorting behaviour. - -See also \helpref{HasDefaultCompare}{wxdataviewmodelhasdefaultcompare}. - - -\membersection{wxDataViewModel::GetAttr}\label{wxdataviewmodelgetattr} - -\func{bool}{GetAttr}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}, \param{wxDataViewItemAttr\& }{attr}} - -Oberride this to indicate that the item has special font attributes. -This only affects the -\helpref{wxDataViewTextRendererText}{wxdataviewtextrendererattr} renderer. - -See also \helpref{wxDataViewItemAttr}{wxdataviewitemattr}. - -\membersection{wxDataViewModel::GetColumnCount}\label{wxdataviewmodelgetcolumncount} - -\constfunc{virtual unsigned int}{GetColumnCount}{\void} - -Override this to indicate the number of columns in the model. - - -\membersection{wxDataViewModel::GetColumnType}\label{wxdataviewmodelgetcolumntype} - -\constfunc{virtual wxString}{GetColumnType}{\param{unsigned int }{col}} - -Override this to indicate what type of data is stored in the -column specified by {\it col}. This should return a string -indicating the type of data as reported by \helpref{wxVariant}{wxvariant}. - - -\membersection{wxDataViewModel::GetChildren}\label{wxdataviewmodelgetchildren} - -\constfunc{virtual unsigned int}{GetChildren}{\param{const wxDataViewItem\& }{item}, \param{wxDataViewItemArray\& }{children} } - -Override this so the control can query the child items of -an item. Returns the number of items. - - -\membersection{wxDataViewModel::GetParent}\label{wxdataviewmodelgetparent} - -\constfunc{virtual wxDataViewItem}{GetParent}{\param{const wxDataViewItem\& }{item}} - -Override this to indicate which wxDataViewItem representing the parent -of {\it item} or an invalid wxDataViewItem if the the root item is -the parent item. - - -\membersection{wxDataViewModel::GetValue}\label{wxdataviewmodelgetvalue} - -\constfunc{virtual void}{GetValue}{\param{wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} - -Override this to indicate the value of {\it item} -A \helpref{wxVariant}{wxvariant} is used to store the data. - - - -\membersection{wxDataViewModel::HasContainerColumns}\label{wxdataviewmodelhascontainercolumns} - -\constfunc{virtual bool}{HasContainerColumns}{\param{const wxDataViewItem\& }{item}} - -Override this method to indicate if a container item merely -acts as a headline (or for categorisation) or if it also -acts a normal item with entries for futher columns. By -default returns {\it false}. - - -\membersection{wxDataViewModel::HasDefaultCompare}\label{wxdataviewmodelhasdefaultcompare} - -\constfunc{virtual bool}{HasDefaultCompare}{\void} - -Override this to indicate that the model provides a default compare -function that the control should use if no wxDataViewColumn has been -chosen for sorting. Usually, the user clicks on a column header for -sorting, the data will be sorted alphanumerically. If any other -order (e.g. by index or order of appearance) is required, then this -should be used. See also \helpref{wxDataViewIndexListModel}{wxdataviewindexlistmodel} -for a model which makes use of this. - - -\membersection{wxDataViewModel::IsContainer}\label{wxdataviewmodeliscontainer} - -\constfunc{virtual bool}{IsContainer}{\param{const wxDataViewItem\& }{item}} - -Override this to indicate of {\it item} is a container, i.e. if -it can have child items. - - -\membersection{wxDataViewModel::ItemAdded}\label{wxdataviewmodelitemadded} - -\func{virtual bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} - -Call this to inform the model that an item has been added -to the data. - - -\membersection{wxDataViewModel::ItemChanged}\label{wxdataviewmodelitemchanged} - -\func{virtual bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}} - -Call this to inform the model that an item has changed. - -This will eventually emit a wxEVT\_DATAVIEW\_ITEM\_VALUE\_CHANGED -event (in which the column fields will not be set) to the user. - - -\membersection{wxDataViewModel::ItemDeleted}\label{wxdataviewmodelitemdeleted} - -\func{virtual bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} - -Call this to inform the model that an item has been deleted from the data. - - -\membersection{wxDataViewModel::ItemsAdded}\label{wxdataviewmodelitemsadded} - -\func{virtual bool}{ItemsAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItemArray\& }{items}} - -Call this to inform the model that several items have been added -to the data. - - -\membersection{wxDataViewModel::ItemsChanged}\label{wxdataviewmodelitemschanged} - -\func{virtual bool}{ItemsChanged}{\param{const wxDataViewItemArray\& }{items}} - -Call this to inform the model that several items have changed. - -This will eventually emit wxEVT\_DATAVIEW\_ITEM\_VALUE\_CHANGED -events (in which the column fields will not be set) to the user. - - -\membersection{wxDataViewModel::ItemsDeleted}\label{wxdataviewmodelitemsdeleted} - -\func{virtual bool}{ItemsDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItemArray\& }{items}} - -Call this to inform the model that several items have been deleted. - - -\membersection{wxDataViewModel::RemoveNotifier}\label{wxdataviewmodelremovenotifier} - -\func{void}{RemoveNotifier}{\param{wxDataViewModelNotifier* }{notifier}} - -Remove the {\it notifier} from the list of notifiers. - - -\membersection{wxDataViewModel::Resort}\label{wxdataviewmodelresort} - -\func{virtual void}{Resort}{\void} - -Call this to initiate a resort after the sort function has -been changed. - - -\membersection{wxDataViewModel::SetValue}\label{wxdataviewmodelsetvalue} - -\func{virtual bool}{SetValue}{\param{const wxVariant\& }{variant}, \param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} - -This gets called in order to set a value in the data model. -The most common scenario is that the wxDataViewCtrl calls -this method after the user changed some data in the view. -Afterwards \helpref{ValueChanged}{wxdataviewmodelvaluechanged} -has to be called! - - -\membersection{wxDataViewModel::ValueChanged}\label{wxdataviewmodelvaluechanged} - -\func{virtual bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} - -Call this to inform this model that a value in the model has -been changed. This is also called from wxDataViewCtrl's -internal editing code, e.g. when editing a text field -in the control. - -This will eventually emit a wxEVT\_DATAVIEW\_ITEM\_VALUE\_CHANGED -event to the user. - diff --git a/docs/latex/wx/dataviewmodelnotifier.tex b/docs/latex/wx/dataviewmodelnotifier.tex deleted file mode 100644 index 261d71e4bf..0000000000 --- a/docs/latex/wx/dataviewmodelnotifier.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{\class{wxDataViewModelNotifier}}\label{wxdataviewmodelnotifier} - -A wxDataViewModelNotifier instance is owned by a -\helpref{wxDataViewModel}{wxdataviewmodel} -and mirrors its notification interface. See -the documentation of that class for further -information. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewModelNotifier::wxDataViewModelNotifier}\label{wxdataviewmodelnotifierwxdataviewmodelnotifier} - -\func{}{wxDataViewModelNotifier}{\void} - -Constructor. - -\membersection{wxDataViewModelNotifier::\destruct{wxDataViewModelNotifier}}\label{wxdataviewmodelnotifierdtor} - -\func{}{\destruct{wxDataViewModelNotifier}}{\void} - -Destructor. - -\membersection{wxDataViewModelNotifier::Cleared}\label{wxdataviewmodelnotifiercleared} - -\func{bool}{Cleared}{\void} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::GetOwner}\label{wxdataviewmodelnotifiergetowner} - -\func{wxDataViewModel*}{GetOwner}{\void} - -Get owning wxDataViewModel. - -\membersection{wxDataViewModelNotifier::ItemAdded}\label{wxdataviewmodelnotifieritemadded} - -\func{bool}{ItemAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::ItemChanged}\label{wxdataviewmodelnotifieritemchanged} - -\func{bool}{ItemChanged}{\param{const wxDataViewItem\& }{item}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::ItemDeleted}\label{wxdataviewmodelnotifieritemdeleted} - -\func{bool}{ItemDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{item}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::ItemsAdded}\label{wxdataviewmodelnotifieritemsadded} - -\func{bool}{ItemsAdded}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItemArray\& }{items}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::ItemsChanged}\label{wxdataviewmodelnotifieritemschanged} - -\func{bool}{ItemsChanged}{\param{const wxDataViewItemArray\& }{items}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::ItemsDeleted}\label{wxdataviewmodelnotifieritemsdeleted} - -\func{bool}{ItemsDeleted}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItemArray\& }{items}} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::Resort}\label{wxdataviewmodelnotifierresort} - -\func{void}{Resort}{\void} - -Called by owning model. - -\membersection{wxDataViewModelNotifier::SetOwner}\label{wxdataviewmodelnotifiersetowner} - -\func{void}{SetOwner}{\param{wxDataViewModel* }{owner}} - -Set owner of this notifier. Used internally. - -\membersection{wxDataViewModelNotifier::ValueChanged}\label{wxdataviewmodelnotifiervaluechanged} - -\func{bool}{ValueChanged}{\param{const wxDataViewItem\& }{item}, \param{unsigned int }{col}} - -Called by owning model. diff --git a/docs/latex/wx/dataviewrenderer.tex b/docs/latex/wx/dataviewrenderer.tex deleted file mode 100644 index 0d9b555208..0000000000 --- a/docs/latex/wx/dataviewrenderer.tex +++ /dev/null @@ -1,549 +0,0 @@ - -\section{\class{wxDataViewRenderer}}\label{wxdataviewrenderer} - - -This class is used by \helpref{wxDataViewCtrl}{wxdataviewctrl} to -render the individual cells. One instance of a renderer class is -owned by \helpref{wxDataViewColumn}{wxdataviewcolumn}. There is -a number of ready-to-use renderers provided: -\helpref{wxDataViewTextRenderer}{wxdataviewtextrenderer}, -\helpref{wxDataViewTextRendererAttr}{wxdataviewtextrendererattr}, -\helpref{wxDataViewIconTextRenderer}{wxdataviewicontextrenderer}, -\helpref{wxDataViewToggleRenderer}{wxdataviewtogglerenderer}, -\helpref{wxDataViewProgressRenderer}{wxdataviewprogressrenderer}, -\helpref{wxDataViewBitmapRenderer}{wxdataviewbitmaprenderer}, -\helpref{wxDataViewDateRenderer}{wxdataviewdaterenderer}. -\helpref{wxDataViewSpinRenderer}{wxdataviewspinrenderer}. - -Additionally, the user can write own renderers by deriving from -\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer}. - -The {\it wxDataViewCellMode} flag controls, what actions -the cell data allows. {\it wxDATAVIEW\_CELL\_ACTIVATABLE} -indicates that the user can double click the cell and -something will happen (e.g. a window for editing a date -will pop up). {\it wxDATAVIEW\_CELL\_EDITABLE} indicates -that the user can edit the data in-place, i.e. an control -will show up after a slow click on the cell. This behaviour -is best known from changing the filename in most file -managers etc. - - - -{\small -\begin{verbatim} -enum wxDataViewCellMode -{ - wxDATAVIEW_CELL_INERT, - wxDATAVIEW_CELL_ACTIVATABLE, - wxDATAVIEW_CELL_EDITABLE -}; -\end{verbatim} -} - -The {\it wxDataViewCellRenderState} flag controls how the -the renderer should display its contents in a cell: - -{\small -\begin{verbatim} -enum wxDataViewCellRenderState -{ - wxDATAVIEW_CELL_SELECTED = 1, - wxDATAVIEW_CELL_PRELIT = 2, - wxDATAVIEW_CELL_INSENSITIVE = 4, - wxDATAVIEW_CELL_FOCUSED = 8 -}; -\end{verbatim} -} - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewRenderer::wxDataViewRenderer}\label{wxdataviewrendererwxdataviewrenderer} - -\func{}{wxDataViewRenderer}{\param{const wxString\& }{varianttype}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{alignment = wxALIGN\_LEFT|wxALIGN\_CENTRE\_VERTICAL}} - -Constructor. - -\membersection{wxDataViewRenderer::GetMode}\label{wxdataviewrenderergetmode} - -\func{virtual wxDataViewCellMode}{GetMode}{\void} - -Returns the cell mode. - -\membersection{wxDataViewRenderer::GetOwner}\label{wxdataviewrenderergetowner} - -\func{virtual wxDataViewColumn*}{GetOwner}{\void} - -Returns pointer to the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}. - -\membersection{wxDataViewRenderer::GetValue}\label{wxdataviewrenderergetvalue} - -\func{virtual bool}{GetValue}{\param{wxVariant\& }{value}} - -This methods retrieves the value from the renderer in order to -transfer the value back to the data model. Returns {\it false} -on failure. - -\membersection{wxDataViewRenderer::GetVariantType}\label{wxdataviewrenderergetvarianttype} - -\func{virtual wxString}{GetVariantType}{\void} - -Returns a string with the type of the \helpref{wxVariant}{wxvariant} -supported by this renderer. - -\membersection{wxDataViewRenderer::SetOwner}\label{wxdataviewrenderersetowner} - -\func{virtual void}{SetOwner}{\param{wxDataViewColumn* }{owner}} - -Sets the owning \helpref{wxDataViewColumn}{wxdataviewcolumn}. This -is usually called from within wxDataViewColumn. - -\membersection{wxDataViewRenderer::SetValue}\label{wxdataviewrenderersetvalue} - -\func{virtual bool}{SetValue}{\param{const wxVariant\& }{value}} - -Set the value of the renderer (and thus its cell) to {\it value}. -The internal code will then render this cell with this data. - - -\membersection{wxDataViewRenderer::Validate}\label{wxdataviewrenderervalidate} - -\func{virtual bool}{Validate}{\param{wxVariant\& }{value}} - -Before data is committed to the data model, it is passed to this -method where it can be checked for validity. This can also be -used for checking a valid range or limiting the user input in -a certain aspect (e.g. max number of characters or only alphanumeric -input, ASCII only etc.). Return {\it false} if the value is -not valid. - -Please note that due to implementation limitations, this validation -is done after the editing control already is destroyed and the -editing process finished. - - -\section{\class{wxDataViewTextRenderer}}\label{wxdataviewtextrenderer} - -wxDataViewTextRenderer is used for rendering text. It supports -in-place editing if desired. - - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewTextRenderer::wxDataViewTextRenderer}\label{wxdataviewtextrendererwxdataviewtextrenderer} - -\func{}{wxDataViewTextRenderer}{\param{const wxString\& }{varianttype = "string"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}} - - -\section{\class{wxDataViewTextRendererAttr}}\label{wxdataviewtextrendererattr} - -The same as \helpref{wxDataViewTextRenderer}{wxdataviewtextrenderer} but with -support for font attributes. Font attributes are currently only supported -under GTK+ and MSW. - -See also \helpref{wxDataViewModel::GetAttr}{wxdataviewmodelgetattr} and -\helpref{wxDataViewItemAttr}{wxdataviewitemattr}. - -\wxheading{Derived from} - -\helpref{wxDataViewTextRenderer}{wxdataviewtextrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewTextRendererAttr::wxDataViewTextRendererAttr}\label{wxdataviewtextrendererattrwxdataviewtextrendererattr} - -\func{}{wxDataViewTextRendererAttr}{\param{const wxString\& }{varianttype = "string"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{int }{align = wxDVR\_DEFAULT\_ALIGNMENT}} - - -\section{\class{wxDataViewProgressRenderer}}\label{wxdataviewprogressrenderer} - -wxDataViewProgressRenderer - - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewProgressRenderer::wxDataViewProgressRenderer}\label{wxdataviewprogressrendererwxdataviewprogressrenderer} - -\func{}{wxDataViewProgressRenderer}{\param{const wxString\& }{label = wxEmptyString}, \param{const wxString\& }{varianttype = "long"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}} - - -\section{\class{wxDataViewIconText}}\label{wxdataviewicontext} - -wxDataViewIconText is used by -\helpref{wxDataViewIconTextRenderer}{wxdataviewicontextrenderer} -for data transfer. This class can be converted to a from -a \helpref{wxVariant}{wxvariant}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\membersection{wxDataViewIconText::wxDataViewIconText}\label{wxdataviewicontextwxdataviewicontext} - -\func{}{wxDataViewIconText}{\param{const wxString\& }{text = wxEmptyString}, \param{const wxIcon\& }{icon = wxNullIcon}} - -\func{}{wxDataViewIconText}{\param{const wxDataViewIconText\& }{other}} - -Constructor. - -\membersection{wxDataViewIconText::GetIcon}\label{wxdataviewicontextgeticon} - -\constfunc{const wxIcon\&}{GetIcon}{\void} - -Gets the icon. - -\membersection{wxDataViewIconText::GetText}\label{wxdataviewicontextgettext} - -\constfunc{wxString}{GetText}{\void} - -Gets the text. - -\membersection{wxDataViewIconText::SetIcon}\label{wxdataviewicontextseticon} - -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} - -Set the icon. - -\membersection{wxDataViewIconText::SetText}\label{wxdataviewicontextsettext} - -\func{void}{SetText}{\param{const wxString\& }{text}} - -Set the text. - -\section{\class{wxDataViewIconTextRenderer}}\label{wxdataviewicontextrenderer} - -The wxDataViewIconTextRenderer class is used to display text with -a small icon next to it as it is typically done in a file manager. -This classes uses the \helpref{wxDataViewIconText}{wxdataviewicontext} -helper class to store its data. wxDataViewIonText can be converted -to a from a \helpref{wxVariant}{wxvariant} using the left shift -operator. - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewIconTextRenderer::wxDataViewIconTextRenderer}\label{wxdataviewtogglerendererwxdataviewicontextrenderer} - -\func{}{wxDataViewIconTextRenderer}{\param{const wxString\& }{varianttype = "wxDataViewIconText"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}} - - -\section{\class{wxDataViewToggleRenderer}}\label{wxdataviewtogglerenderer} - -wxDataViewToggleRenderer - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewToggleRenderer::wxDataViewToggleRenderer}\label{wxdataviewtogglerendererwxdataviewtogglerenderer} - -\func{}{wxDataViewToggleRenderer}{\param{const wxString\& }{varianttype = "bool"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}} - - -\section{\class{wxDataViewBitmapRenderer}}\label{wxdataviewbitmaprenderer} - -wxDataViewBitmapRenderer - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewBitmapRenderer::wxDataViewBitmapRenderer}\label{wxdataviewbitmaprendererwxdataviewbitmaprenderer} - -\func{}{wxDataViewBitmapRenderer}{\param{const wxString\& }{varianttype = "wxBitmap"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}} - - -\section{\class{wxDataViewDateRenderer}}\label{wxdataviewdaterenderer} - -wxDataViewDateRenderer - - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewDateRenderer::wxDataViewDateRenderer}\label{wxdataviewdaterendererwxdataviewdaterenderer} - -\func{}{wxDataViewDateRenderer}{\param{const wxString\& }{varianttype = "datetime"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_ACTIVATABLE}} - - -\section{\class{wxDataViewCustomRenderer}}\label{wxdataviewcustomrenderer} - -You need to derive a new class from wxDataViewCustomRenderer in -order to write a new renderer. You need to override at least -\helpref{SetValue}{wxdataviewrenderersetvalue}, -\helpref{GetValue}{wxdataviewrenderergetvalue}, -\helpref{GetSize}{wxdataviewcustomrenderergetsize} -and \helpref{Render}{wxdataviewcustomrendererrender}. - -If you want your renderer to support in-place editing then you -also need to override -\helpref{HasEditorCtrl}{wxdataviewcustomrendererhaseditorctrl}, -\helpref{CreateEditorCtrl}{wxdataviewcustomrenderercreateeditorctrl} -and \helpref{GetValueFromEditorCtrl}{wxdataviewcustomrenderergetvaluefromeditorctrl}. -Note that a special event handler will be pushed onto that -editor control which handles and focus out events -in order to end the editing. - -\wxheading{Derived from} - -\helpref{wxDataViewRenderer}{wxdataviewrenderer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewCustomRenderer::wxDataViewCustomRenderer}\label{wxdataviewcustomrendererwxdataviewcustomrenderer} - -\func{}{wxDataViewCustomRenderer}{\param{const wxString\& }{varianttype = "string"}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_INERT}, \param{bool }{no\_init = false}} - -Constructor. - -\membersection{wxDataViewCustomRenderer::\destruct{wxDataViewCustomRenderer}}\label{wxdataviewcustomrendererdtor} - -\func{}{\destruct{wxDataViewCustomRenderer}}{\void} - -Destructor. - - -\membersection{wxDataViewCustomRenderer::HasEditorCtrl}\label{wxdataviewcustomrendererhaseditorctrl} - -\func{virtual bool}{HasEditorCtrl}{\void} - -Override this and make it return {\it true} in order to -indicate that this renderer supports in-place editing. - -\membersection{wxDataViewCustomRenderer::CreateEditorCtrl}\label{wxdataviewcustomrenderercreateeditorctrl} - -\func{virtual wxControl*}{CreateEditorCtrl}{\param{wxWindow *}{parent}, \param{wxRect }{labelRect}, \param{const wxVariant \& }{value}} - -Override this to create the actual editor control once editing -is about to start. {\it parent} is the parent of the editor -control, {\it labelRect} indicates the position and -size of the editor control and {\it value} is its initial value: - -{\small -\begin{verbatim} -{ - long l = value; - return new wxSpinCtrl( parent, wxID_ANY, wxEmptyString, - labelRect.GetTopLeft(), labelRect.GetSize(), 0, 0, 100, l ); -} -\end{verbatim} -} - -\membersection{wxDataViewCustomRenderer::GetValueFromEditorCtrl}\label{wxdataviewcustomrenderergetvaluefromeditorctrl} - -\func{virtual bool}{GetValueFromEditorCtrl}{\param{wxControl* }{editor}, \param{wxVariant \& }{value}} - -Overrride this so that the renderer can get the value -from the editor control (pointed to by {\it editor}): - -{\small -\begin{verbatim} -{ - wxSpinCtrl *sc = (wxSpinCtrl*) editor; - long l = sc->GetValue(); - value = l; - return true; -} -\end{verbatim} -} - -\membersection{wxDataViewCustomRenderer::Activate}\label{wxdataviewcustomrendereractivate} - -\func{virtual bool}{Activate}{\param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}} - -Override this to react to double clicks or . - -\membersection{wxDataViewCustomRenderer::GetDC}\label{wxdataviewcustomrenderergetdc} - -\func{virtual wxDC*}{GetDC}{\void} - -Create DC on request. Internal. - - -\membersection{wxDataViewCustomRenderer::GetSize}\label{wxdataviewcustomrenderergetsize} - -\func{virtual wxSize}{GetSize}{\void} - -Return size required to show content. - - -\membersection{wxDataViewCustomRenderer::LeftClick}\label{wxdataviewcustomrendererleftclick} - -\func{virtual bool}{LeftClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}} - -Overrride this to react to a left click. - -\membersection{wxDataViewCustomRenderer::Render}\label{wxdataviewcustomrendererrender} - -\func{virtual bool}{Render}{\param{wxRect }{cell}, \param{wxDC* }{dc}, \param{int }{state}} - -Override this to render the cell. Before this is called, -\helpref{SetValue}{wxdataviewrenderersetvalue} was called -so that this instance knows what to render. - -\membersection{wxDataViewCustomRenderer::RenderText}\label{wxdataviewcustomrendererrender} - -\func{bool}{RenderText}{\param{const wxString\& }{text}, \param{int }{xoffset}, \param{wxRect }{cell}, \param{wxDC* }{dc}, \param{int }{state}} - -This method should be called from within \helpref{Render}{wxdataviewcustomrendererrender} -whenever you need to render simple text. This will ensure that the -correct colour, font and vertical alignment will be chosen so the -text will look the same as text drawn by native renderers. - -\membersection{wxDataViewCustomRenderer::RightClick}\label{wxdataviewcustomrendererrightclick} - -\func{virtual bool}{RightClick}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}} - -Overrride this to react to a right click. - -\membersection{wxDataViewCustomRenderer::StartDrag}\label{wxdataviewcustomrendererstartdrag} - -\func{virtual bool}{StartDrag}{\param{wxPoint }{cursor}, \param{wxRect }{cell}, \param{wxDataViewModel* }{model}, \param{unsigned int }{col}, \param{unsigned int }{row}} - -Overrride this to start a drag operation. - - -\section{\class{wxDataViewSpinRenderer}}\label{wxdataviewspinrenderer} - -This is a specialized renderer for rendering integer values. It -supports modifying the values in-place by using a wxSpinCtrl. -The renderer only support variants of type {\it long}. - -\wxheading{Derived from} - -\helpref{wxDataViewCustomRenderer}{wxdataviewcustomrenderer} - -\wxheading{Include files} - - - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewSpinRenderer::wxDataViewSpinRenderer}\label{wxdataviewspinrendererwxdataviewspinrenderer} - -\func{}{wxDataViewSpinRenderer}{\param{int }{min}, \param{int }{max}, \param{wxDataViewCellMode }{mode = wxDATAVIEW\_CELL\_EDITABLE}, \param{int }{alignment = wxDVR\_DEFAULT\_ALIGNMENT}} - -Constructor. {\it min} and {\it max} indicate the minimum und -maximum values of for the wxSpinCtrl. - diff --git a/docs/latex/wx/dataviewtreectrl.tex b/docs/latex/wx/dataviewtreectrl.tex deleted file mode 100644 index c4bbfddc43..0000000000 --- a/docs/latex/wx/dataviewtreectrl.tex +++ /dev/null @@ -1,183 +0,0 @@ -\section{\class{wxDataViewTreeCtrl}}\label{wxdataviewtreectrl} - -This class is a \helpref{wxDataViewCtrl}{wxdataviewctrl} which internally -uses a \helpref{wxDataViewTreeStore}{wxdataviewtreestore} and forwards -most of its API to that class. Additionally, it uses a \helpref{wxImageList}{wximagelist} -to store a list of icons. The main purpose of this class is to look -like a \helpref{wxTreeCtrl}{wxtreectrl} to make a transition from it -to the wxDataViewCtrl class simpler. - -\wxheading{Derived from} - -\helpref{wxDataViewCtrl}{wxdataviewctrl} - -\wxheading{Include files} - - - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDataViewTreeCtrl::wxDataViewTreeCtrl}\label{wxdataviewtreectrlwxdataviewtreectrl} - -\func{}{wxDataViewTreeCtrl}{\void} - -Default constructor. - -\func{}{wxDataViewTreeCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDV\_NO\_HEADER}, \param{const wxValidator\& }{validator = wxDefaultValidator}} - -Constructor. Calls \helpref{Create}{wxdataviewtreectrlcreate}. - -\membersection{wxDataViewTreeCtrl::\destruct{wxDataViewTreeCtrl}}\label{wxdataviewtreectrldtor} - -\func{}{\destruct{wxDataViewTreeCtrl}}{\void} - -Destructor. Deletes the image list if any. - -\membersection{wxDataViewTreeCtrl::AppendContainer}\label{wxdataviewtreectrlappendcontainer} - -\func{wxDataViewItem}{AppendContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{int }{expanded = -1}, \param{wxClientData* }{data = NULL}} - - -\membersection{wxDataViewTreeCtrl::AppendItem}\label{wxdataviewtreectrlappenditem} - -\func{wxDataViewItem}{AppendItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{wxClientData* }{data = NULL}} - - -\membersection{wxDataViewTreeCtrl::Create}\label{wxdataviewtreectrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDV\_NO\_HEADER}, \param{const wxValidator\& }{validator = wxDefaultValidator}} - -Creates the control and a \helpref{wxDataViewTreeStore}{wxdataviewtreestore} as -its internal model. - -\membersection{wxDataViewTreeCtrl::DeleteAllItems}\label{wxdataviewtreectrldeleteallitems} - -\func{void}{DeleteAllItems}{\void} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::DeleteChildren}\label{wxdataviewtreectrldeletechildren} - -\func{void}{DeleteChildren}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::DeleteItem}\label{wxdataviewtreectrldeleteitem} - -\func{void}{DeleteItem}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetChildCount}\label{wxdataviewtreectrlgetchildcount} - -\constfunc{int}{GetChildCount}{\param{const wxDataViewItem\& }{parent}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetImageList}\label{wxdataviewtreectrlgetimagelist} - -\func{wxImageList*}{GetImageList}{\void} - -Returns the image list. - -\membersection{wxDataViewTreeCtrl::GetItemData}\label{wxdataviewtreectrlgetitemdata} - -\constfunc{wxClientData*}{GetItemData}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetItemExpandedIcon}\label{wxdataviewtreectrlgetitemexpandedicon} - -\constfunc{const wxIcon\&}{GetItemExpandedIcon}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetItemIcon}\label{wxdataviewtreectrlgetitemicon} - -\constfunc{const wxIcon\&}{GetItemIcon}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetItemText}\label{wxdataviewtreectrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\param{const wxDataViewItem\& }{item}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetNthChild}\label{wxdataviewtreectrlgetnthchild} - -\constfunc{wxDataViewItem}{GetNthChild}{\param{const wxDataViewItem\& }{parent}, \param{unsigned int }{pos}} - -Calls the identical method from wxDataViewTreeStore. - -\membersection{wxDataViewTreeCtrl::GetStore}\label{wxdataviewtreectrlgetstore} - -\func{wxDataViewTreeStore*}{GetStore}{\void} - -\constfunc{const wxDataViewTreeStore*}{GetStore}{\void} - -Returns the store. - -\membersection{wxDataViewTreeCtrl::InsertContainer}\label{wxdataviewtreectrlinsertcontainer} - -\func{wxDataViewItem}{InsertContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{previous}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{int }{expanded = -1}, \param{wxClientData* }{data = NULL}} - -Calls the same method from wxDataViewTreeStore but uess -and index position in the image list instead of a wxIcon. - -\membersection{wxDataViewTreeCtrl::InsertItem}\label{wxdataviewtreectrlinsertitem} - -\func{wxDataViewItem}{InsertItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{previous}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{wxClientData* }{data = NULL}} - -Calls the same method from wxDataViewTreeStore but uess -and index position in the image list instead of a wxIcon. - -\membersection{wxDataViewTreeCtrl::PrependContainer}\label{wxdataviewtreectrlprependcontainer} - -\func{wxDataViewItem}{PrependContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{int }{expanded = -1}, \param{wxClientData* }{data = NULL}} - -Calls the same method from wxDataViewTreeStore but uess -and index position in the image list instead of a wxIcon. - -\membersection{wxDataViewTreeCtrl::PrependItem}\label{wxdataviewtreectrlprependitem} - -\func{wxDataViewItem}{PrependItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{int }{icon = -1}, \param{wxClientData* }{data = NULL}} - -Calls the same method from wxDataViewTreeStore but uess -and index position in the image list instead of a wxIcon. - -\membersection{wxDataViewTreeCtrl::SetImageList}\label{wxdataviewtreectrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList* }{imagelist}} - -Sets the image list. - -\membersection{wxDataViewTreeCtrl::SetItemData}\label{wxdataviewtreectrlsetitemdata} - -\func{void}{SetItemData}{\param{const wxDataViewItem\& }{item}, \param{wxClientData* }{data}} - -Calls the identical method from wxDataViewTreeStore. - - -\membersection{wxDataViewTreeCtrl::SetItemExpandedIcon}\label{wxdataviewtreectrlsetitemexpandedicon} - -\func{void}{SetItemExpandedIcon}{\param{const wxDataViewItem\& }{item}, \param{const wxIcon\& }{icon}} - -Calls the identical method from wxDataViewTreeStore. - - -\membersection{wxDataViewTreeCtrl::SetItemIcon}\label{wxdataviewtreectrlsetitemicon} - -\func{void}{SetItemIcon}{\param{const wxDataViewItem\& }{item}, \param{const wxIcon\& }{icon}} - -Calls the identical method from wxDataViewTreeStore. - - -\membersection{wxDataViewTreeCtrl::SetItemText}\label{wxdataviewtreectrlsetitemtext} - -\func{void}{SetItemText}{\param{const wxDataViewItem\& }{item}, \param{const wxString\& }{text}} - -Calls the identical method from wxDataViewTreeStore. diff --git a/docs/latex/wx/dataviewtreestore.tex b/docs/latex/wx/dataviewtreestore.tex deleted file mode 100644 index a9ac75ee08..0000000000 --- a/docs/latex/wx/dataviewtreestore.tex +++ /dev/null @@ -1,150 +0,0 @@ - -\section{\class{wxDataViewTreeStore}}\label{wxdataviewtreestore} - -wxDataViewTreeStore is a specialised \helpref{wxDataViewModel}{wxdataviewmodel} -for displaying simple trees very much like \helpref{wxTreeCtrl}{wxtreectrl} -does and it offers a similar API. This class actually stores the entire -tree (therefore its name) and implements all virtual methods from the base -class so it can be used directly without having to derive any class from it. -This comes at the price of much reduced flexibility. - -\wxheading{Derived from} - -\helpref{wxDataViewModel}{wxdataviewmodel} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataViewTreeStore::wxDataViewTreeStore}\label{wxdataviewtreestorewxdataviewtreestore} - -\func{}{wxDataViewTreeStore}{\void} - -Constructor. Creates the invisible root node internally. - -\membersection{wxDataViewTreeStore::\destruct{wxDataViewTreeStore}}\label{wxdataviewtreestoredtor} - -\func{}{\destruct{wxDataViewTreeStore}}{\void} - -Destructor. - -\membersection{wxDataViewTreeStore::AppendContainer}\label{wxdataviewtreestoreappendcontainer} - -\func{wxDataViewItem}{AppendContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{const wxIcon\& }{expanded = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Append a container. - -\membersection{wxDataViewTreeStore::AppendItem}\label{wxdataviewtreestoreappenditem} - -\func{wxDataViewItem}{AppendItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Append an item. - -\membersection{wxDataViewTreeStore::DeleteAllItems}\label{wxdataviewtreestoredeleteallitems} - -\func{void}{DeleteAllItems}{\void} - -Delete all item in the model. - -\membersection{wxDataViewTreeStore::DeleteChildren}\label{wxdataviewtreestoredeletechildren} - -\func{void}{DeleteChildren}{\param{const wxDataViewItem\& }{item}} - -Delete all children of the item, but not the item itself. - -\membersection{wxDataViewTreeStore::DeleteItem}\label{wxdataviewtreestoredeleteitem} - -\func{void}{DeleteItem}{\param{const wxDataViewItem\& }{item}} - -Delete this item. - -\membersection{wxDataViewTreeStore::GetChildCount}\label{wxdataviewtreestoregetchildcount} - -\constfunc{int}{GetChildCount}{\param{const wxDataViewItem\& }{parent}} - -Return the number of children of item. - -\membersection{wxDataViewTreeStore::GetItemData}\label{wxdataviewtreestoregetitemdata} - -\constfunc{wxClientData*}{GetItemData}{\param{const wxDataViewItem\& }{item}} - -Returns the client data asoociated with the item. - -\membersection{wxDataViewTreeStore::GetItemExpandedIcon}\label{wxdataviewtreestoregetitemexpandedicon} - -\constfunc{const wxIcon\&}{GetItemExpandedIcon}{\param{const wxDataViewItem\& }{item}} - -Returns the icon to display in expanded containers. - -\membersection{wxDataViewTreeStore::GetItemIcon}\label{wxdataviewtreestoregetitemicon} - -\constfunc{const wxIcon\&}{GetItemIcon}{\param{const wxDataViewItem\& }{item}} - -Returns the icon of the item. - -\membersection{wxDataViewTreeStore::GetItemText}\label{wxdataviewtreestoregetitemtext} - -\constfunc{wxString}{GetItemText}{\param{const wxDataViewItem\& }{item}} - -Returns the text of the item. - -\membersection{wxDataViewTreeStore::GetNthChild}\label{wxdataviewtreestoregetnthchild} - -\constfunc{wxDataViewItem}{GetNthChild}{\param{const wxDataViewItem\& }{parent}, \param{unsigned int }{pos}} - -Returns the nth child item of item. - -\membersection{wxDataViewTreeStore::InsertContainer}\label{wxdataviewtreestoreinsertcontainer} - -\func{wxDataViewItem}{InsertContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{previous}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{const wxIcon\& }{expanded = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Inserts a container after {\it previous}. - -\membersection{wxDataViewTreeStore::InsertItem}\label{wxdataviewtreestoreinsertitem} - -\func{wxDataViewItem}{InsertItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxDataViewItem\& }{previous}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Inserts an item after {\it previous}. - -\membersection{wxDataViewTreeStore::PrependContainer}\label{wxdataviewtreestoreprependcontainer} - -\func{wxDataViewItem}{PrependContainer}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{const wxIcon\& }{expanded = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Inserts a container before the first child item or {\it parent}. - -\membersection{wxDataViewTreeStore::PrependItem}\label{wxdataviewtreestoreprependitem} - -\func{wxDataViewItem}{PrependItem}{\param{const wxDataViewItem\& }{parent}, \param{const wxString\& }{text}, \param{const wxIcon\& }{icon = wxNullIcon}, \param{wxClientData* }{data = NULL}} - -Inserts an item before the first child item or {\it parent}. - -\membersection{wxDataViewTreeStore::SetItemData}\label{wxdataviewtreestoresetitemdata} - -\func{void}{SetItemData}{\param{const wxDataViewItem\& }{item}, \param{wxClientData* }{data}} - -Sets the client data associated with the item. - -\membersection{wxDataViewTreeStore::SetItemExpandedIcon}\label{wxdataviewtreestoresetitemexpandedicon} - -\func{void}{SetItemExpandedIcon}{\param{const wxDataViewItem\& }{item}, \param{const wxIcon\& }{icon}} - -Sets the expanded icon for the item. - -\membersection{wxDataViewTreeStore::SetItemIcon}\label{wxdataviewtreestoresetitemicon} - -\func{void}{SetItemIcon}{\param{const wxDataViewItem\& }{item}, \param{const wxIcon\& }{icon}} - -Sets the icon for the item. - -\membersection{wxDataViewTreeStore::SetItemText}\label{wxdataviewtreestoresetitemtext} - -\func{void}{SetItemText}{\param{const wxDataViewItem\& }{item}, \param{const wxString\& }{text}} - -Sets the text of the item. diff --git a/docs/latex/wx/datectrl.tex b/docs/latex/wx/datectrl.tex deleted file mode 100644 index 09c2f933aa..0000000000 --- a/docs/latex/wx/datectrl.tex +++ /dev/null @@ -1,195 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: datectrl.tex -%% Purpose: wxDatePickerCtrl documentation -%% Author: Vadim Zeitlin -%% Created: 2005-01-15 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDatePickerCtrl}}\label{wxdatepickerctrl} - -This control allows the user to select a date. Unlike -\helpref{wxCalendarCtrl}{wxcalendarctrl}, which is a relatively big control, -wxDatePickerCtrl is implemented as a small window showing the currently selected date. -The control can be edited using the keyboard, and can also display a popup -window for more user-friendly date selection, depending on the styles used and -the platform, except PalmOS where date is selected using native dialog. - -It is only available if \texttt{wxUSE\_DATEPICKCTRL} is set to $1$. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -(only available if \texttt{wxUSE\_DATEPICKCTRL} is set to $1$) - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxDP\_SPIN}}{Creates a control without a month calendar -drop down but with spin-control-like arrows to change individual date -components. This style is not supported by the generic version.} -\twocolitem{\windowstyle{wxDP\_DROPDOWN}}{Creates a control with a month -calendar drop-down part from which the user can select a date.} -\twocolitem{\windowstyle{wxDP\_DEFAULT}}{Creates a control with the style -that is best supported for the current platform (currently wxDP\_SPIN -under Windows and wxDP\_DROPDOWN elsewhere).} -\twocolitem{\windowstyle{wxDP\_ALLOWNONE}}{With this style, the control allows -the user to not enter any valid date at all. Without it - the default - the control always has some valid date.} -\twocolitem{\windowstyle{wxDP\_SHOWCENTURY}}{Forces display of the century in -the default date format. Without this style the century could be displayed, or -not, depending on the default date representation in the system.} -\end{twocollist} - -\wxheading{Event handling} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_DATE\_CHANGED(id, func)}}{This event fires when the user -changes the current selection in the control.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxCalendarCtrl}{wxcalendarctrl},\\ -\helpref{wxDateEvent}{wxdateevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDatePickerCtrl::wxDatePickerCtrl}\label{wxdatepickerctrlctor} - -\func{}{wxDatePickerCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxDateTime\& }{dt = wxDefaultDateTime},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDP\_DEFAULT | wxDP\_SHOWCENTURY},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``datectrl"}} - -Initializes the object and calls \helpref{Create}{wxdatepickerctrlcreate} with -all the parameters. - - -\membersection{wxDatePickerCtrl::Create}\label{wxdatepickerctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxDateTime\& }{dt = wxDefaultDateTime},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDP\_DEFAULT | wxDP\_SHOWCENTURY},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``datectrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{dt}{The initial value of the control, if an invalid date (such as the -default value) is used, the control is set to today.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size. If left at default value, the control chooses its -own best size by using the height approximately equal to a text control and -width large enough to show the date string fully.} - -\docparam{style}{The window style, should be left at $0$ as there are no -special styles for this control in this version.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxDatePickerCtrl::GetRange}\label{wxdatepickerctrlgetrange} - -\constfunc{bool}{GetRange}{\param{wxDateTime *}{dt1}, \param{wxDateTime }{*dt2}} - -If the control had been previously limited to a range of dates using -\helpref{SetRange()}{wxdatepickerctrlsetrange}, returns the lower and upper -bounds of this range. If no range is set (or only one of the bounds is set), - \arg{dt1} and/or \arg{dt2} are set to be invalid. - -\wxheading{Parameters} - -\docparam{dt1}{Pointer to the object which receives the lower range limit or -becomes invalid if it is not set. May be \texttt{NULL} if the caller is not -interested in lower limit} - -\docparam{dt2}{Same as above but for the upper limit} - -\wxheading{Return value} - -\false if no range limits are currently set, \true if at least one bound is -set. - - -\membersection{wxDatePickerCtrl::GetValue}\label{wxdatepickerctrlgetvalue} - -\constfunc{wxDateTime}{GetValue}{\void} - -Returns the currently selected. If there is no selection or the selection is -outside of the current range, an invalid object is returned. - -\membersection{wxDatePickerCtrl::SetFormat}\label{wxdatepickerctrlsetformat} - -\func{void}{SetFormat}{\param{const wxChar*}{ format}} - -Please note that this function is only available in the generic version of this -control. The native version always uses the current system locale. - -Sets the display format for the date in the control. See wxDateTime for the -meaning of format strings. - -\wxheading{Remarks} - -If the format parameter is invalid, -the behaviour is undefined. - - -\membersection{wxDatePickerCtrl::SetRange}\label{wxdatepickerctrlsetrange} - -\func{void}{SetRange}{\param{const wxDateTime\&}{ dt1}, \param{const wxDateTime\&}{ dt2}} - -Sets the valid range for the date selection. If \arg{dt1} is valid, it becomes -the earliest date (inclusive) accepted by the control. If \arg{dt2} is valid, -it becomes the latest possible date. - -\wxheading{Remarks} - -If the current value of the control is outside of the newly set range bounds, -the behaviour is undefined. - - -\membersection{wxDatePickerCtrl::SetValue}\label{wxdatepickerctrlsetvalue} - -\func{void}{SetValue}{\param{const wxDateTime\&}{ dt}} - -Changes the current value of the control. The date should be valid and included -in the currently selected range, if any. - -Calling this method does not result in a date change event. - diff --git a/docs/latex/wx/dateevt.tex b/docs/latex/wx/dateevt.tex deleted file mode 100644 index ee05809f7e..0000000000 --- a/docs/latex/wx/dateevt.tex +++ /dev/null @@ -1,46 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dateevt.tex -%% Purpose: wxDateEvent documentation -%% Author: Vadim Zeitlin -%% Created: 2005-01-15 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDateEvent}}\label{wxdateevent} - -This event class holds information about a date change and is used together -with \helpref{wxDatePickerCtrl}{wxdatepickerctrl}. It also serves as a base class -for \helpref{wxCalendarEvent}{wxcalendarevent}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDateEvent::GetDate}\label{wxdateeventgetdate} - -\constfunc{const wxDateTime\&}{GetDate}{\void} - -Returns the date. - - -\membersection{wxDateEvent::SetDate}\label{wxdateeventsetdate} - -\func{void}{SetDate}{\param{const wxDateTime\&}{ date}} - -Sets the date carried by the event, normally only used by the library -internally. - diff --git a/docs/latex/wx/datespan.tex b/docs/latex/wx/datespan.tex deleted file mode 100644 index 8ea57e0fa8..0000000000 --- a/docs/latex/wx/datespan.tex +++ /dev/null @@ -1,328 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: datespan.tex -%% Purpose: wxDateSpan documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 04.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDateSpan}}\label{wxdatespan} - -This class is a "logical time span" and is useful for implementing program -logic for such things as "add one month to the date" which, in general, -doesn't mean to add $60*60*24*31$ seconds to it, but to take the same date -the next month (to understand that this is indeed different consider adding -one month to Feb, 15 -- we want to get Mar, 15, of course). - -When adding a month to the date, all lesser components (days, hours, ...) -won't be changed unless the resulting date would be invalid: for example, -Jan 31 + 1 month will be Feb 28, not (non-existing) Feb 31. - -Because of this feature, adding and subtracting back again the same -wxDateSpan will {\bf not}, in general give back the original date: Feb 28 - 1 -month will be Jan 28, not Jan 31! - -wxDateSpan objects can be either positive or negative. They may be -multiplied by scalars which multiply all deltas by the scalar: i.e. -$2*(1 \hbox{ month and } 1 \hbox{ day})$ is $2$ months and $2$ days. They can -be added together and with \helpref{wxDateTime}{wxdatetime} or -\helpref{wxTimeSpan}{wxtimespan}, but the type of result is different for each -case. - -Beware about weeks: if you specify both weeks and days, the total number of -days added will be $7*\hbox{weeks} + \hbox{days}$! See also GetTotalDays() -function. - -Equality operators are defined for wxDateSpans. Two datespans are equal if -and only if they both give the same target date when added to {\bf every}\rtfsp -source date. Thus wxDateSpan::Months(1) is not equal to wxDateSpan::Days(30), -because they don't give the same date when added to 1 Feb. But -wxDateSpan::Days(14) is equal to wxDateSpan::Weeks(2) - -Finally, notice that for adding hours, minutes and so on you don't need this -class at all: \helpref{wxTimeSpan}{wxtimespan} will do the job because there -are no subtleties associated with those (we don't support leap seconds). - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp -\helpref{wxDateTime}{wxdatetime} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -% wxDateSpan ctor -\membersection{wxDateSpan::wxDateSpan}\label{wxdatespanwxdatespan} - -\func{}{wxDateSpan}{\param{int }{years = $0$}, \param{int }{months = $0$}, \param{int }{weeks = $0$}, \param{int }{days = $0$}} - -Constructs the date span object for the given number of years, months, weeks -and days. Note that the weeks and days add together if both are given. - -% wxDateSpan::Add -\membersection{wxDateSpan::Add}\label{wxdatespanadd} - -\constfunc{wxDateSpan}{Add}{\param{const wxDateSpan\& }{other}} - -\func{wxDateSpan\&}{Add}{\param{const wxDateSpan\& }{other}} - -\func{wxDateSpan\&}{operator$+=$}{\param{const wxDateSpan\& }{other}} - -Returns the sum of two date spans. The first version returns a new object, the -second and third ones modify this object in place. - -% wxDateSpan::Day -\membersection{wxDateSpan::Day}\label{wxdatespanday} - -\func{static wxDateSpan}{Day}{\void} - -Returns a date span object corresponding to one day. - -\wxheading{See also} - -\helpref{Days}{wxdatespandays} - -% wxDateSpan::Days -\membersection{wxDateSpan::Days}\label{wxdatespandays} - -\func{static wxDateSpan}{Days}{\param{int }{days}} - -Returns a date span object corresponding to the given number of days. - -\wxheading{See also} - -\helpref{Day}{wxdatespanday} - -% wxDateSpan::GetDays -\membersection{wxDateSpan::GetDays}\label{wxdatespangetdays} - -\constfunc{int}{GetDays}{\void} - -Returns the number of days (only, that it not counting the weeks component!) -in this date span. - -\wxheading{See also} - -\helpref{GetTotalDays}{wxdatespangettotaldays} - -% wxDateSpan::GetMonths -\membersection{wxDateSpan::GetMonths}\label{wxdatespangetmonths} - -\constfunc{int}{GetMonths}{\void} - -Returns the number of the months (not counting the years) in this date span. - -% wxDateSpan::GetTotalDays -\membersection{wxDateSpan::GetTotalDays}\label{wxdatespangettotaldays} - -\constfunc{int}{GetTotalDays}{\void} - -Returns the combined number of days in this date span, counting both weeks and -days. It still doesn't take neither months nor years into the account. - -\wxheading{See also} - -\helpref{GetWeeks}{wxdatespangetweeks}, \helpref{GetDays}{wxdatespangetdays} - -% wxDateSpan::GetWeeks -\membersection{wxDateSpan::GetWeeks}\label{wxdatespangetweeks} - -\constfunc{int}{GetWeeks}{\void} - -Returns the number of weeks in this date span. - -\wxheading{See also} - -\helpref{GetTotalDays}{wxdatespangettotaldays} - -% wxDateSpan::GetYears -\membersection{wxDateSpan::GetYears}\label{wxdatespangetyears} - -\constfunc{int}{GetYears}{\void} - -Returns the number of years in this date span. - -% wxDateSpan::Month -\membersection{wxDateSpan::Month}\label{wxdatespanmonth} - -\func{static wxDateSpan}{Month}{\void} - -Returns a date span object corresponding to one month. - -\wxheading{See also} - -\helpref{Months}{wxdatespanmonths} - -% wxDateSpan::Months -\membersection{wxDateSpan::Months}\label{wxdatespanmonths} - -\func{static wxDateSpan}{Months}{\param{int }{mon}} - -Returns a date span object corresponding to the given number of months. - -\wxheading{See also} - -\helpref{Month}{wxdatespanmonth} - -% wxDateSpan::Multiply -\membersection{wxDateSpan::Multiply}\label{wxdatespanmultiply} - -\constfunc{wxDateSpan}{Multiply}{\param{int }{factor}} - -\func{wxDateSpan\&}{Multiply}{\param{int }{factor}} - -\func{wxDateSpan\&}{operator$*=$}{\param{int }{factor}} - -Returns the product of the date span by the specified {\it factor}. The -product is computed by multiplying each of the components by the factor. - -The first version returns a new object, the second and third ones modify this -object in place. - -% wxDateSpan::Negate -\membersection{wxDateSpan::Negate}\label{wxdatespannegate} - -\constfunc{wxDateSpan}{Negate}{\void} - -Returns the date span with the opposite sign. - -\wxheading{See also} - -\helpref{Neg}{wxdatespanneg} - -% wxDateSpan::Neg -\membersection{wxDateSpan::Neg}\label{wxdatespanneg} - -\func{wxDateSpan\&}{Neg}{\void} - -\func{wxDateSpan\&}{operator$-$}{\void} - -Changes the sign of this date span. - -\wxheading{See also} - -\helpref{Negate}{wxdatespannegate} - -% wxDateSpan::SetDays -\membersection{wxDateSpan::SetDays}\label{wxdatespansetdays} - -\func{wxDateSpan\&}{SetDays}{\param{int }{n}} - -Sets the number of days (without modifying any other components) in this date -span. - -% wxDateSpan::SetYears -\membersection{wxDateSpan::SetYears}\label{wxdatespansetyears} - -\func{wxDateSpan\&}{SetYears}{\param{int }{n}} - -Sets the number of years (without modifying any other components) in this date -span. - -% wxDateSpan::SetMonths -\membersection{wxDateSpan::SetMonths}\label{wxdatespansetmonths} - -\func{wxDateSpan\&}{SetMonths}{\param{int }{n}} - -Sets the number of months (without modifying any other components) in this -date span. - -% wxDateSpan::SetWeeks -\membersection{wxDateSpan::SetWeeks}\label{wxdatespansetweeks} - -\func{wxDateSpan\&}{SetWeeks}{\param{int }{n}} - -Sets the number of weeks (without modifying any other components) in this date -span. - -% wxDateSpan::Subtract -\membersection{wxDateSpan::Subtract}\label{wxdatespansubtract} - -\constfunc{wxDateSpan}{Subtract}{\param{const wxDateSpan\& }{other}} - -\func{wxDateSpan\&}{Subtract}{\param{const wxDateSpan\& }{other}} - -\func{wxDateSpan\&}{operator$+=$}{\param{const wxDateSpan\& }{other}} - -Returns the difference of two date spans. The first version returns a new -object, the second and third ones modify this object in place. - -% wxDateSpan::Week -\membersection{wxDateSpan::Week}\label{wxdatespanweek} - -\func{static wxDateSpan}{Week}{\void} - -Returns a date span object corresponding to one week. - -\wxheading{See also} - -\helpref{Weeks}{wxdatespanweeks} - -% wxDateSpan::Weeks -\membersection{wxDateSpan::Weeks}\label{wxdatespanweeks} - -\func{static wxDateSpan}{Weeks}{\param{int }{weeks}} - -Returns a date span object corresponding to the given number of weeks. - -\wxheading{See also} - -\helpref{Week}{wxdatespanweek} - -% wxDateSpan::Year -\membersection{wxDateSpan::Year}\label{wxdatespanyear} - -\func{static wxDateSpan}{Year}{\void} - -Returns a date span object corresponding to one year. - -\wxheading{See also} - -\helpref{Years}{wxdatespanyears} - -% wxDateSpan::Years -\membersection{wxDateSpan::Years}\label{wxdatespanyears} - -\func{static wxDateSpan}{Years}{\param{int }{years}} - -Returns a date span object corresponding to the given number of years. - -\wxheading{See also} - -\helpref{Year}{wxdatespanyear} - -% wxDateSpan::operator== -\membersection{wxDateSpan::operator$==$}\label{wxdatespanoperatorequal} - -\constfunc{bool}{operator$==$}{\param{wxDateSpan\&}{ other}} - -Returns {\tt true} if this date span is equal to the other one. Two date spans -are considered equal if and only if they have the same number of years and -months and the same total number of days (counting both days and weeks). - -% wxDateSpan::operator!= -\membersection{wxDateSpan::operator$!=$}\label{wxdatespanoperatornotequal} - -\constfunc{bool}{operator$!=$}{\param{wxDateSpan\&}{ other}} - -Returns {\tt true} if this date span is different from the other one. - -\wxheading{See also} - -\helpref{operator==}{wxdatespanoperatorequal} - diff --git a/docs/latex/wx/datetime.tex b/docs/latex/wx/datetime.tex deleted file mode 100644 index 3fa45268da..0000000000 --- a/docs/latex/wx/datetime.tex +++ /dev/null @@ -1,1683 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: datetime.tex -%% Purpose: wxDateTime documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 07.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDateTime}}\label{wxdatetime} - -wxDateTime class represents an absolute moment in the time. - -\wxheading{Types} - -The type {\tt wxDateTime\_t} is typedefed as {\tt unsigned short} and is used -to contain the number of years, hours, minutes, seconds and milliseconds. - -\wxheading{Constants} - -Global constant {\tt wxDefaultDateTime} and synonym for it {\tt wxInvalidDateTime} are defined. This constant will be different from any valid -wxDateTime object. - -All the following constants are defined inside wxDateTime class (i.e., to refer to -them you should prepend their names with {\tt wxDateTime::}). - -Time zone symbolic names: - -\begin{verbatim} - enum TZ - { - // the time in the current time zone - Local, - - // zones from GMT (= Greenwhich Mean Time): they're guaranteed to be - // consequent numbers, so writing something like `GMT0 + offset' is - // safe if abs(offset) <= 12 - - // underscore stands for minus - GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7, - GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1, - GMT0, - GMT1, GMT2, GMT3, GMT4, GMT5, GMT6, - GMT7, GMT8, GMT9, GMT10, GMT11, GMT12, GMT13, - // Note that GMT12 and GMT_12 are not the same: there is a difference - // of exactly one day between them - - // some symbolic names for TZ - - // Europe - WET = GMT0, // Western Europe Time - WEST = GMT1, // Western Europe Summer Time - CET = GMT1, // Central Europe Time - CEST = GMT2, // Central Europe Summer Time - EET = GMT2, // Eastern Europe Time - EEST = GMT3, // Eastern Europe Summer Time - MSK = GMT3, // Moscow Time - MSD = GMT4, // Moscow Summer Time - - // US and Canada - AST = GMT_4, // Atlantic Standard Time - ADT = GMT_3, // Atlantic Daylight Time - EST = GMT_5, // Eastern Standard Time - EDT = GMT_4, // Eastern Daylight Saving Time - CST = GMT_6, // Central Standard Time - CDT = GMT_5, // Central Daylight Saving Time - MST = GMT_7, // Mountain Standard Time - MDT = GMT_6, // Mountain Daylight Saving Time - PST = GMT_8, // Pacific Standard Time - PDT = GMT_7, // Pacific Daylight Saving Time - HST = GMT_10, // Hawaiian Standard Time - AKST = GMT_9, // Alaska Standard Time - AKDT = GMT_8, // Alaska Daylight Saving Time - - // Australia - - A_WST = GMT8, // Western Standard Time - A_CST = GMT13 + 1, // Central Standard Time (+9.5) - A_EST = GMT10, // Eastern Standard Time - A_ESST = GMT11, // Eastern Summer Time - - // New Zealand - NZST = GMT12, // Standard Time - NZDT = GMT13, // Daylight Saving Time - - // Universal Coordinated Time = the new and politically correct name - // for GMT - UTC = GMT0 - }; -\end{verbatim} - -Month names: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec and -Inv\_Month for an invalid.month value are the values of {\tt wxDateTime::Month} -enum. - -Likewise, Sun, Mon, Tue, Wed, Thu, Fri, Sat, and Inv\_WeekDay are the values in -{\tt wxDateTime::WeekDay} enum. - -Finally, Inv\_Year is defined to be an invalid value for year parameter. - -\helpref{GetMonthName()}{wxdatetimegetmonthname} and -\helpref{GetWeekDayName}{wxdatetimegetweekdayname} functions use the following -flags: - -\begin{verbatim} - enum NameFlags - { - Name_Full = 0x01, // return full name - Name_Abbr = 0x02 // return abbreviated name - }; -\end{verbatim} - -Several functions accept an extra parameter specifying the calendar to use -(although most of them only support now the Gregorian calendar). This -parameters is one of the following values: - -\begin{verbatim} - enum Calendar - { - Gregorian, // calendar currently in use in Western countries - Julian // calendar in use since -45 until the 1582 (or later) - }; -\end{verbatim} - -Date calculations often depend on the country and wxDateTime allows to set the -country whose conventions should be used using -\helpref{SetCountry}{wxdatetimesetcountry}. It takes one of the following -values as parameter: - -\begin{verbatim} - enum Country - { - Country_Unknown, // no special information for this country - Country_Default, // set the default country with SetCountry() method - // or use the default country with any other - - Country_WesternEurope_Start, - Country_EEC = Country_WesternEurope_Start, - France, - Germany, - UK, - Country_WesternEurope_End = UK, - - Russia, - - USA - }; -\end{verbatim} - -Different parts of the world use different conventions for the week start. -In some countries, the week starts on Sunday, while in others -- on Monday. -The ISO standard doesn't address this issue, so we support both conventions in -the functions whose result depends on it (\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} and -\helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}). - -The desired behvaiour may be specified by giving one of the following -constants as argument to these functions: - -\begin{verbatim} - enum WeekFlags - { - Default_First, // Sunday_First for US, Monday_First for the rest - Monday_First, // week starts with a Monday - Sunday_First // week starts with a Sunday - }; -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp -\helpref{wxTimeSpan}{wxtimespan},\rtfsp -\helpref{wxDateSpan}{wxdatespan},\rtfsp -\helpref{wxCalendarCtrl}{wxcalendarctrl} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Static functions}\label{datetimestaticfunctions} - -For convenience, all static functions are collected here. These functions -either set or return the static variables of wxDateSpan (the country), return -the current moment, year, month or number of days in it, or do some general -calendar-related actions. - -Please note that although several function accept an extra {\it Calendar} -parameter, it is currently ignored as only the Gregorian calendar is -supported. Future versions will support other calendars. - -\pythonnote{These methods are standalone functions named -{\tt wxDateTime\_} in wxPython.} - -\helpref{SetCountry}{wxdatetimesetcountry}\\ -\helpref{GetCountry}{wxdatetimegetcountry}\\ -\helpref{IsWestEuropeanCountry}{wxdatetimeiswesteuropeancountry}\\ -\helpref{GetCurrentYear}{wxdatetimegetcurrentyear}\\ -\helpref{ConvertYearToBC}{wxdatetimeconvertyeartobc}\\ -\helpref{GetCurrentMonth}{wxdatetimegetcurrentmonth}\\ -\helpref{IsLeapYear}{wxdatetimeisleapyear}\\ -\helpref{GetCentury}{wxdatetimegetcenturystatic}\\ -\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\ -\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\ -\helpref{GetMonthName}{wxdatetimegetmonthname}\\ -\helpref{GetWeekDayName}{wxdatetimegetweekdayname}\\ -\helpref{GetAmPmStrings}{wxdatetimegetampmstrings}\\ -\helpref{IsDSTApplicable}{wxdatetimeisdstapplicable}\\ -\helpref{GetBeginDST}{wxdatetimegetbegindst}\\ -\helpref{GetEndDST}{wxdatetimegetenddst}\\ -\helpref{Now}{wxdatetimenow}\\ -\helpref{UNow}{wxdatetimeunow}\\ -\helpref{Today}{wxdatetimetoday} - - -\membersection{Constructors, assignment operators and setters}\label{datetimeconstructors} - -Constructors and various {\tt Set()} methods are collected here. If you -construct a date object from separate values for day, month and year, you -should use \helpref{IsValid}{wxdatetimeisvalid} method to check that the -values were correct as constructors can not return an error code. - -\helpref{wxDateTime()}{wxdatetimewxdatetimedef}\\ -\helpref{wxDateTime(time\_t)}{wxdatetimewxdatetimetimet}\\ -\helpref{wxDateTime(struct tm)}{wxdatetimewxdatetimetm}\\ -%\helpref{wxDateTime(struct Tm)}{wxdatetimewxdatetimetm} - Tm not documented yet\\ -\helpref{wxDateTime(double jdn)}{wxdatetimewxdatetimejdn}\\ -\helpref{wxDateTime(h, m, s, ms)}{wxdatetimewxdatetimetime}\\ -\helpref{wxDateTime(day, mon, year, h, m, s, ms)}{wxdatetimewxdatetimedate}\\ -\helpref{SetToCurrent}{wxdatetimesettocurrent}\\ -\helpref{Set(time\_t)}{wxdatetimesettimet}\\ -\helpref{Set(struct tm)}{wxdatetimesettm}\\ -%\helpref{Set(struct Tm)}{wxdatetimesettm} - Tm not documented yet\\ -\helpref{Set(double jdn)}{wxdatetimesetjdn}\\ -\helpref{Set(h, m, s, ms)}{wxdatetimesettime}\\ -\helpref{Set(day, mon, year, h, m, s, ms)}{wxdatetimesetdate}\\ -\helpref{SetFromDOS(unsigned long ddt)}{wxdatetimesetfromdos}\\ -\helpref{ResetTime}{wxdatetimeresettime}\\ -\helpref{SetYear}{wxdatetimesetyear}\\ -\helpref{SetMonth}{wxdatetimesetmonth}\\ -\helpref{SetDay}{wxdatetimesetdate}\\ -\helpref{SetHour}{wxdatetimesethour}\\ -\helpref{SetMinute}{wxdatetimesetminute}\\ -\helpref{SetSecond}{wxdatetimesetsecond}\\ -\helpref{SetMillisecond}{wxdatetimesetmillisecond}\\ -\helpref{operator$=$(time\_t)}{wxdatetimeoperatoreqtimet}\\ -\helpref{operator$=$(struct tm)}{wxdatetimeoperatoreqtm}\rtfsp - - -\membersection{Accessors}\label{datetimeaccessors} - -Here are the trivial accessors. Other functions, which might have to perform -some more complicated calculations to find the answer are under the -\helpref{Calendar calculations}{datetimecalculations} section. - -\helpref{IsValid}{wxdatetimeisvalid}\\ -\helpref{GetTicks}{wxdatetimegetticks}\\ -\helpref{GetCentury}{wxdatetimegetcentury}\\ -\helpref{GetYear}{wxdatetimegetyear}\\ -\helpref{GetMonth}{wxdatetimegetmonth}\\ -\helpref{GetDay}{wxdatetimegetday}\\ -\helpref{GetWeekDay}{wxdatetimegetweekday}\\ -\helpref{GetHour}{wxdatetimegethour}\\ -\helpref{GetMinute}{wxdatetimegetminute}\\ -\helpref{GetSecond}{wxdatetimegetsecond}\\ -\helpref{GetMillisecond}{wxdatetimegetmillisecond}\\ -\helpref{GetDayOfYear}{wxdatetimegetdayofyear}\\ -\helpref{GetWeekOfYear}{wxdatetimegetweekofyear}\\ -\helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}\\ -\helpref{GetYearDay}{wxdatetimegetyearday}\\ -\helpref{IsWorkDay}{wxdatetimeisworkday}\\ -\helpref{IsGregorianDate}{wxdatetimeisgregoriandate}\\ -\helpref{GetAsDOS}{wxdatetimegetasdos} - - -\membersection{Date comparison}\label{datecomparison} - -There are several function to allow date comparison. To supplement them, a few -global operators $>$, $<$ etc taking wxDateTime are defined. - -\helpref{IsEqualTo}{wxdatetimeisequalto}\\ -\helpref{IsEarlierThan}{wxdatetimeisearlierthan}\\ -\helpref{IsLaterThan}{wxdatetimeislaterthan}\\ -\helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween}\\ -\helpref{IsBetween}{wxdatetimeisbetween}\\ -\helpref{IsSameDate}{wxdatetimeissamedate}\\ -\helpref{IsSameTime}{wxdatetimeissametime}\\ -\helpref{IsEqualUpTo}{wxdatetimeisequalupto} - - -\membersection{Date arithmetics}\label{datearithmetics} - -These functions carry out \helpref{arithmetics}{tdatearithm} on the wxDateTime -objects. As explained in the overview, either wxTimeSpan or wxDateSpan may be -added to wxDateTime, hence all functions are overloaded to accept both -arguments. - -Also, both {\tt Add()} and {\tt Subtract()} have both const and non-const -version. The first one returns a new object which represents the -sum/difference of the original one with the argument while the second form -modifies the object to which it is applied. The operators $-=$ and $+=$ are -defined to be equivalent to the second forms of these functions. - -\helpref{Add(wxTimeSpan)}{wxdatetimeaddts}\\ -\helpref{Add(wxDateSpan)}{wxdatetimeaddds}\\ -\helpref{Subtract(wxTimeSpan)}{wxdatetimesubtractts}\\ -\helpref{Subtract(wxDateSpan)}{wxdatetimesubtractds}\\ -\helpref{Subtract(wxDateTime)}{wxdatetimesubtractdt}\\ -\helpref{oparator$+=$(wxTimeSpan)}{wxdatetimeaddts}\\ -\helpref{oparator$+=$(wxDateSpan)}{wxdatetimeaddds}\\ -\helpref{oparator$-=$(wxTimeSpan)}{wxdatetimesubtractts}\\ -\helpref{oparator$-=$(wxDateSpan)}{wxdatetimesubtractds} - - -\membersection{Parsing and formatting dates}\label{datetimeparsing} - -These functions convert wxDateTime objects to and from text. The -conversions to text are mostly trivial: you can either do it using the default -date and time representations for the current locale ( -\helpref{FormatDate}{wxdatetimeformatdate} and -\helpref{FormatTime}{wxdatetimeformattime}), using the international standard -representation defined by ISO 8601 ( -\helpref{FormatISODate}{wxdatetimeformatisodate}, -\helpref{FormatISOTime}{wxdatetimeformatisotime} and -\helpref{FormatISOCombined}{wxdatetimeformatisocombined}) or by specifying any -format at all and using \helpref{Format}{wxdatetimeformat} directly. - -The conversions from text are more interesting, as there are much more -possibilities to care about. The simplest cases can be taken care of with -\helpref{ParseFormat}{wxdatetimeparseformat} which can parse any date in the -given (rigid) format. \helpref{ParseRfc822Date}{wxdatetimeparserfc822date} is -another function for parsing dates in predefined format -- the one of RFC 822 -which (still...) defines the format of email messages on the Internet. This -format can not be described with {\tt strptime(3)}-like format strings used by -\helpref{Format}{wxdatetimeformat}, hence the need for a separate function. - -But the most interesting functions are -\helpref{ParseTime}{wxdatetimeparsetime}, -\helpref{ParseDate}{wxdatetimeparsedate} and -\helpref{ParseDateTime}{wxdatetimeparsedatetime}. They try to parse the date -ans time (or only one of them) in `free' format, i.e. allow them to be -specified in any of possible ways. These functions will usually be used to -parse the (interactive) user input which is not bound to be in any predefined -format. As an example, \helpref{ParseDateTime}{wxdatetimeparsedatetime} can -parse the strings such as {\tt "tomorrow"}, {\tt "March first"} and even -{\tt "next Sunday"}. - -Finally notice that each of the parsing functions is available in several -overloads: if the input string is a narrow (\texttt{char *}) string, then a -narrow pointer is returned. If the input string is a wide string, a wide char -pointer is returned. Finally, if the input parameter is a wxString, a narrow -char pointer is also returned for backwards compatibility but there is also an -additional argument of wxString::const\_iterator type in which, if it is not -\NULL, an iterator pointing to the end of the scanned string part is returned. - -\helpref{ParseFormat}{wxdatetimeparseformat}\\ -\helpref{ParseDateTime}{wxdatetimeparsedatetime}\\ -\helpref{ParseDate}{wxdatetimeparsedate}\\ -\helpref{ParseTime}{wxdatetimeparsetime}\\ -\helpref{ParseISODate}{wxdatetimeparseisodate}\\ -\helpref{ParseISOTime}{wxdatetimeparseisotime}\\ -\helpref{ParseISOCombined}{wxdatetimeparseisocombined}\\ -\helpref{ParseRfc822Date}{wxdatetimeparserfc822date}\\ -\helpref{Format}{wxdatetimeformat}\\ -\helpref{FormatDate}{wxdatetimeformatdate}\\ -\helpref{FormatTime}{wxdatetimeformattime}\\ -\helpref{FormatISOCombined}{wxdatetimeformatisocombined}\\ -\helpref{FormatISODate}{wxdatetimeformatisodate}\\ -\helpref{FormatISOTime}{wxdatetimeformatisotime} - - -\membersection{Calendar calculations}\label{datetimecalculations} - -The functions in this section perform the basic calendar calculations, mostly -related to the week days. They allow to find the given week day in the -week with given number (either in the month or in the year) and so on. - -All (non-const) functions in this section don't modify the time part of the -wxDateTime -- they only work with the date part of it. - -\helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek}\\ -\helpref{GetWeekDayInSameWeek}{wxdatetimegetweekdayinsameweek}\\ -\helpref{SetToNextWeekDay}{wxdatetimesettonextweekday}\\ -\helpref{GetNextWeekDay}{wxdatetimegetnextweekday}\\ -\helpref{SetToPrevWeekDay}{wxdatetimesettoprevweekday}\\ -\helpref{GetPrevWeekDay}{wxdatetimegetprevweekday}\\ -\helpref{SetToWeekDay}{wxdatetimesettoweekday}\\ -\helpref{GetWeekDay}{wxdatetimegetweekday2}\\ -\helpref{SetToLastWeekDay}{wxdatetimesettolastweekday}\\ -\helpref{GetLastWeekDay}{wxdatetimegetlastweekday}\\ -\helpref{SetToWeekOfYear}{wxdatetimesettoweekofyear}\\ -\helpref{SetToLastMonthDay}{wxdatetimesettolastmonthday}\\ -\helpref{GetLastMonthDay}{wxdatetimegetlastmonthday}\\ -\helpref{SetToYearDay}{wxdatetimesettoyearday}\\ -\helpref{GetYearDay}{wxdatetimegetyearday} - - -\membersection{Astronomical/historical functions}\label{astronomyhistoryfunctions} - -Some degree of support for the date units used in astronomy and/or history is -provided. You can construct a wxDateTime object from a -\helpref{JDN}{wxdatetimesetjdn} and you may also get its JDN, -\helpref{MJD}{wxdatetimegetmodifiedjuliandaynumber} or -\helpref{Rata Die number}{wxdatetimegetratadie} from it. - -\helpref{wxDateTime(double jdn)}{wxdatetimewxdatetimejdn}\\ -\helpref{Set(double jdn)}{wxdatetimesetjdn}\\ -\helpref{GetJulianDayNumber}{wxdatetimegetjuliandaynumber}\\ -\helpref{GetJDN}{wxdatetimegetjdn}\\ -\helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber}\\ -\helpref{GetMJD}{wxdatetimegetmjd}\\ -\helpref{GetRataDie}{wxdatetimegetratadie} - - -\membersection{Time zone and DST support}\label{datetimedstzone} - -Please see the \helpref{time zone overview}{tdatetimezones} for more -information about time zones. Normally, these functions should be rarely used. - -\helpref{FromTimezone}{wxdatetimefromtimezone}\\ -\helpref{ToTimezone}{wxdatetimetotimezone}\\ -\helpref{MakeTimezone}{wxdatetimemaketimezone}\\ -\helpref{MakeFromTimezone}{wxdatetimemakefromtimezone}\\ -\helpref{ToUTC}{wxdatetimetoutc}\\ -\helpref{MakeUTC}{wxdatetimemakeutc}\\ -\helpref{GetBeginDST}{wxdatetimegetbegindst}\\ -\helpref{GetEndDST}{wxdatetimegetenddst}\\ -\helpref{IsDST}{wxdatetimeisdst} - -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%% static functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::ConvertYearToBC}\label{wxdatetimeconvertyeartobc} - -\func{static int}{ConvertYearToBC}{\param{int }{year}} - -Converts the year in absolute notation (i.e. a number which can be negative, -positive or zero) to the year in BC/AD notation. For the positive years, -nothing is done, but the year 0 is year 1 BC and so for other years there is a -difference of 1. - -This function should be used like this: - -\begin{verbatim} - wxDateTime dt(...); - int y = dt.GetYear(); - printf("The year is %d%s", wxDateTime::ConvertYearToBC(y), y > 0 ? "AD" : "BC"); -\end{verbatim} - - -\membersection{wxDateTime::GetAmPmStrings}\label{wxdatetimegetampmstrings} - -\func{static void}{GetAmPmStrings}{\param{wxString *}{am}, \param{wxString *}{pm}} - -Returns the translations of the strings {\tt AM} and {\tt PM} used for time -formatting for the current locale. Either of the pointers may be {\tt NULL} if -the corresponding value is not needed. - - -\membersection{wxDateTime::GetBeginDST}\label{wxdatetimegetbegindst} - -\func{static wxDateTime}{GetBeginDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}} - -Get the beginning of DST for the given country in the given year (current one -by default). This function suffers from limitations described in -\helpref{DST overview}{tdatedst}. - -\wxheading{See also} - -\helpref{GetEndDST}{wxdatetimegetenddst} - - -\membersection{wxDateTime::GetCountry}\label{wxdatetimegetcountry} - -\func{static Country}{GetCountry}{\void} - -Returns the current default country. The default country is used for DST -calculations, for example. - -\wxheading{See also} - -\helpref{SetCountry}{wxdatetimesetcountry} - - -\membersection{wxDateTime::GetCurrentYear}\label{wxdatetimegetcurrentyear} - -\func{static int}{GetCurrentYear}{\param{Calendar }{cal = Gregorian}} - -Get the current year in given calendar (only Gregorian is currently supported). - - -\membersection{wxDateTime::GetCurrentMonth}\label{wxdatetimegetcurrentmonth} - -\func{static Month}{GetCurrentMonth}{\param{Calendar }{cal = Gregorian}} - -Get the current month in given calendar (only Gregorian is currently supported). - - -\membersection{wxDateTime::GetCentury}\label{wxdatetimegetcenturystatic} - -\func{static int}{GetCentury}{\param{int }{year}} - -Get the current century, i.e. first two digits of the year, in given calendar -(only Gregorian is currently supported). - - -\membersection{wxDateTime::GetEndDST}\label{wxdatetimegetenddst} - -\func{static wxDateTime}{GetEndDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}} - -Returns the end of DST for the given country in the given year (current one by -default). - -\wxheading{See also} - -\helpref{GetBeginDST}{wxdatetimegetbegindst} - - -\membersection{wxDateTime::GetMonthName}\label{wxdatetimegetmonthname} - -\func{static wxString}{GetMonthName}{\param{Month }{month}, \param{NameFlags }{flags = Name\_Full}} - -Gets the full (default) or abbreviated (specify {\tt Name\_Abbr} name of the -given month. - -\wxheading{See also} - -\helpref{GetWeekDayName}{wxdatetimegetweekdayname} - - -\membersection{wxDateTime::GetNumberOfDays}\label{wxdatetimegetnumberofdays} - -\func{static wxDateTime\_t}{GetNumberOfDays}{\param{int }{year}, \param{Calendar }{cal = Gregorian}} - -\func{static wxDateTime\_t}{GetNumberOfDays}{\param{Month }{month}, \param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}} - -Returns the number of days in the given year or in the given month of the -year. - -The only supported value for {\it cal} parameter is currently {\tt Gregorian}. - -\pythonnote{These two methods are named {\tt GetNumberOfDaysInYear} -and {\tt GetNumberOfDaysInMonth} in wxPython.} - - -\membersection{wxDateTime::GetTimeNow}\label{wxdatetimegettimenow} - -\func{static time\_t}{GetTimeNow}{\void} - -Returns the current time. - - -\membersection{wxDateTime::GetTmNow}\label{wxdatetimegettmnow} - -\func{static struct tm *}{GetTmNow}{\param{struct tm *}{tm}} - -Returns the current time broken down, uses the buffer whose adress is -passed to the function via {\it tm} to store the result. - -\membersection{wxDateTime::GetTmNow} - -\func{static struct tm *}{GetTmNow}{\void} - -Returns the current time broken down. Note that this function returns a -pointer to a static buffer that's reused by calls to this function and -certain C library functions (e.g. localtime). If there is any chance your -code might be used in a multi-threaded application, you really should use -the flavour of function \helpref{wxDateTime::GetTmNow}{wxdatetimegettmnow} -taking a parameter. - -\membersection{wxDateTime::GetWeekDayName}\label{wxdatetimegetweekdayname} - -\func{static wxString}{GetWeekDayName}{\param{WeekDay }{weekday}, \param{NameFlags }{flags = Name\_Full}} - -Gets the full (default) or abbreviated (specify {\tt Name\_Abbr} name of the -given week day. - -\wxheading{See also} - -\helpref{GetMonthName}{wxdatetimegetmonthname} - - -\membersection{wxDateTime::IsLeapYear}\label{wxdatetimeisleapyear} - -\func{static bool}{IsLeapYear}{\param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}} - -Returns {\tt true} if the {\it year} is a leap one in the specified calendar. - -This functions supports Gregorian and Julian calendars. - - -\membersection{wxDateTime::IsWestEuropeanCountry}\label{wxdatetimeiswesteuropeancountry} - -\func{static bool}{IsWestEuropeanCountry}{\param{Country }{country = Country\_Default}} - -This function returns {\tt true} if the specified (or default) country is one -of Western European ones. It is used internally by wxDateTime to determine the -DST convention and date and time formatting rules. - - -\membersection{wxDateTime::IsDSTApplicable}\label{wxdatetimeisdstapplicable} - -\func{static bool}{IsDSTApplicable}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}} - -Returns {\tt true} if DST was used n the given year (the current one by -default) in the given country. - - -\membersection{wxDateTime::Now}\label{wxdatetimenow} - -\func{static wxDateTime}{Now}{\void} - -Returns the object corresponding to the current time. - -Example: - -\begin{verbatim} - wxDateTime now = wxDateTime::Now(); - printf("Current time in Paris:\t%s\n", now.Format("%c", wxDateTime::CET).c_str()); -\end{verbatim} - -Note that this function is accurate up to second: -\helpref{wxDateTime::UNow}{wxdatetimeunow} should be used for better precision -(but it is less efficient and might not be available on all platforms). - -\wxheading{See also} - -\helpref{Today}{wxdatetimetoday} - - -\membersection{wxDateTime::SetCountry}\label{wxdatetimesetcountry} - -\func{static void}{SetCountry}{\param{Country }{country}} - -Sets the country to use by default. This setting influences the DST -calculations, date formatting and other things. - -The possible values for {\it country} parameter are enumerated in -\helpref{wxDateTime constants section}{wxdatetime}. - -\wxheading{See also} - -\helpref{GetCountry}{wxdatetimegetcountry} - - -\membersection{wxDateTime::Today}\label{wxdatetimetoday} - -\func{static wxDateTime}{Today}{\void} - -Returns the object corresponding to the midnight of the current day (i.e. the -same as \helpref{Now()}{wxdatetimenow}, but the time part is set to $0$). - -\wxheading{See also} - -\helpref{Now}{wxdatetimenow} - - -\membersection{wxDateTime::UNow}\label{wxdatetimeunow} - -\func{static wxDateTime}{UNow}{\void} - -Returns the object corresponding to the current time including the -milliseconds if a function to get time with such precision is available on the -current platform (supported under most Unices and Win32). - -\wxheading{See also} - -\helpref{Now}{wxdatetimenow} - -%%%%%%%%%%%%%%%%%%%%%%%%%%% constructors &c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimedef} - -\func{}{wxDateTime}{\void} - -Default constructor. Use one of {\tt Set()} functions to initialize the object -later. - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetimet} - -\func{wxDateTime\&}{wxDateTime}{\param{time\_t }{timet}} - -Same as \helpref{Set}{wxdatetimewxdatetimetimet}. - -\pythonnote{This constructor is named {\tt wxDateTimeFromTimeT} in wxPython.} - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetm} - -\func{wxDateTime\&}{wxDateTime}{\param{const struct tm\& }{tm}} - -Same as \helpref{Set}{wxdatetimewxdatetimetm} - -\pythonnote{Unsupported.} - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimejdn} - -\func{wxDateTime\&}{wxDateTime}{\param{double }{jdn}} - -Same as \helpref{Set}{wxdatetimewxdatetimejdn} - -\pythonnote{This constructor is named {\tt wxDateTimeFromJDN} in wxPython.} - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetime} - -\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{hour}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}} - -Same as \helpref{Set}{wxdatetimewxdatetimetime} - -\pythonnote{This constructor is named {\tt wxDateTimeFromHMS} in wxPython.} - - -\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimedate} - -\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int}{ Inv\_Year}, -\param{wxDateTime\_t }{hour = 0}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}} - -Same as \helpref{Set}{wxdatetimesetdate} - -\pythonnote{This constructor is named {\tt wxDateTimeFromDMY} in wxPython.} - - -\membersection{wxDateTime::SetToCurrent}\label{wxdatetimesettocurrent} - -\func{wxDateTime\&}{SetToCurrent}{\void} - -Sets the date and time of to the current values. Same as assigning the result -of \helpref{Now()}{wxdatetimenow} to this object. - - -\membersection{wxDateTime::Set}\label{wxdatetimesettimet} - -\func{wxDateTime\&}{Set}{\param{time\_t }{timet}} - -Constructs the object from {\it timet} value holding the number of seconds -since Jan 1, 1970. - -\pythonnote{This method is named {\tt SetTimeT} in wxPython.} - - -\membersection{wxDateTime::Set}\label{wxdatetimesettm} - -\func{wxDateTime\&}{Set}{\param{const struct tm\& }{tm}} - -Sets the date and time from the broken down representation in the standard -{\tt tm} structure. - -\pythonnote{Unsupported.} - - -\membersection{wxDateTime::Set}\label{wxdatetimesetjdn} - -\func{wxDateTime\&}{Set}{\param{double }{jdn}} - -Sets the date from the so-called {\it Julian Day Number}. - -By definition, the Julian Day Number, usually abbreviated as JDN, of a -particular instant is the fractional number of days since 12 hours Universal -Coordinated Time (Greenwich mean noon) on January 1 of the year -4712 in the -Julian proleptic calendar. - -\pythonnote{This method is named {\tt SetJDN} in wxPython.} - - -\membersection{wxDateTime::Set}\label{wxdatetimesettime} - -\func{wxDateTime\&}{Set}{\param{wxDateTime\_t }{hour}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}} - -Sets the date to be equal to \helpref{Today}{wxdatetimetoday} and the time -from supplied parameters. - -\pythonnote{This method is named {\tt SetHMS} in wxPython.} - - -\membersection{wxDateTime::Set}\label{wxdatetimesetdate} - -\func{wxDateTime\&}{Set}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}, \param{wxDateTime\_t }{hour = 0}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}} - -Sets the date and time from the parameters. - - -\membersection{wxDateTime::ResetTime}\label{wxdatetimeresettime} - -\func{wxDateTime\&}{ResetTime}{\void} - -Reset time to midnight (00:00:00) without changing the date. - - -\membersection{wxDateTime::SetYear}\label{wxdatetimesetyear} - -\func{wxDateTime\&}{SetYear}{\param{int }{year}} - -Sets the year without changing other date components. - - -\membersection{wxDateTime::SetMonth}\label{wxdatetimesetmonth} - -\func{wxDateTime\&}{SetMonth}{\param{Month }{month}} - -Sets the month without changing other date components. - - -\membersection{wxDateTime::SetDay}\label{wxdatetimesetday} - -\func{wxDateTime\&}{SetDay}{\param{wxDateTime\_t }{day}} - -Sets the day without changing other date components. - - -\membersection{wxDateTime::SetHour}\label{wxdatetimesethour} - -\func{wxDateTime\&}{SetHour}{\param{wxDateTime\_t }{hour}} - -Sets the hour without changing other date components. - - -\membersection{wxDateTime::SetMinute}\label{wxdatetimesetminute} - -\func{wxDateTime\&}{SetMinute}{\param{wxDateTime\_t }{minute}} - -Sets the minute without changing other date components. - - -\membersection{wxDateTime::SetSecond}\label{wxdatetimesetsecond} - -\func{wxDateTime\&}{SetSecond}{\param{wxDateTime\_t }{second}} - -Sets the second without changing other date components. - - -\membersection{wxDateTime::SetMillisecond}\label{wxdatetimesetmillisecond} - -\func{wxDateTime\&}{SetMillisecond}{\param{wxDateTime\_t }{millisecond}} - -Sets the millisecond without changing other date components. - - -\membersection{wxDateTime::operator$=$}\label{wxdatetimeoperatoreqtimet} - -\func{wxDateTime\&}{operator}{\param{time\_t }{timet}} - -Same as \helpref{Set}{wxdatetimesettimet}. - - -\membersection{wxDateTime::operator$=$}\label{wxdatetimeoperatoreqtm} - -\func{wxDateTime\&}{operator}{\param{const struct tm\& }{tm}} - -Same as \helpref{Set}{wxdatetimesettm}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% accessors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::IsValid}\label{wxdatetimeisvalid} - -\constfunc{bool}{IsValid}{\void} - -Returns {\tt true} if the object represents a valid time moment. - - -\membersection{wxDateTime::GetDateOnly}\label{wxdatetimegetdateonly} - -\constfunc{wxDateTime}{GetDateOnly}{\void} - -Returns the object having the same date component as this one but time of -00:00:00. - -\newsince{2.8.2} - -\wxheading{See also} - -\helpref{ResetTime}{wxdatetimeresettime} - - -\membersection{wxDateTime::GetTm}\label{wxdatetimegettm} - -\constfunc{Tm}{GetTm}{\param{const TimeZone\& }{tz = Local}} - -Returns broken down representation of the date and time. - - -\membersection{wxDateTime::GetTicks}\label{wxdatetimegetticks} - -\constfunc{time\_t}{GetTicks}{\void} - -Returns the number of seconds since Jan 1, 1970. An assert failure will occur -if the date is not in the range covered by {\tt time\_t} type. - - -\membersection{wxDateTime::GetCentury}\label{wxdatetimegetcentury} - -\constfunc{int}{GetCentury}{\param{const TimeZone\& }{tz = Local}} - -Returns the century of this date. - - -\membersection{wxDateTime::GetYear}\label{wxdatetimegetyear} - -\constfunc{int}{GetYear}{\param{const TimeZone\& }{tz = Local}} - -Returns the year in the given timezone (local one by default). - - -\membersection{wxDateTime::GetMonth}\label{wxdatetimegetmonth} - -\constfunc{Month}{GetMonth}{\param{const TimeZone\& }{tz = Local}} - -Returns the month in the given timezone (local one by default). - - -\membersection{wxDateTime::GetDay}\label{wxdatetimegetday} - -\constfunc{wxDateTime\_t}{GetDay}{\param{const TimeZone\& }{tz = Local}} - -Returns the day in the given timezone (local one by default). - - -\membersection{wxDateTime::GetWeekDay}\label{wxdatetimegetweekday} - -\constfunc{WeekDay}{GetWeekDay}{\param{const TimeZone\& }{tz = Local}} - -Returns the week day in the given timezone (local one by default). - - -\membersection{wxDateTime::GetHour}\label{wxdatetimegethour} - -\constfunc{wxDateTime\_t}{GetHour}{\param{const TimeZone\& }{tz = Local}} - -Returns the hour in the given timezone (local one by default). - - -\membersection{wxDateTime::GetMinute}\label{wxdatetimegetminute} - -\constfunc{wxDateTime\_t}{GetMinute}{\param{const TimeZone\& }{tz = Local}} - -Returns the minute in the given timezone (local one by default). - - -\membersection{wxDateTime::GetSecond}\label{wxdatetimegetsecond} - -\constfunc{wxDateTime\_t}{GetSecond}{\param{const TimeZone\& }{tz = Local}} - -Returns the seconds in the given timezone (local one by default). - - -\membersection{wxDateTime::GetMillisecond}\label{wxdatetimegetmillisecond} - -\constfunc{wxDateTime\_t}{GetMillisecond}{\param{const TimeZone\& }{tz = Local}} - -Returns the milliseconds in the given timezone (local one by default). - - -\membersection{wxDateTime::GetDayOfYear}\label{wxdatetimegetdayofyear} - -\constfunc{wxDateTime\_t}{GetDayOfYear}{\param{const TimeZone\& }{tz = Local}} - -Returns the day of the year (in $1\ldots366$ range) in the given timezone -(local one by default). - - -\membersection{wxDateTime::GetWeekOfYear}\label{wxdatetimegetweekofyear} - -\constfunc{wxDateTime\_t}{GetWeekOfYear}{\param{WeekFlags }{flags = Monday\_First}, \param{const TimeZone\& }{tz = Local}} - -Returns the number of the week of the year this date is in. The first week of -the year is, according to international standards, the one containing Jan 4 or, -equivalently, the first week which has Thursday in this year. Both of these -definitions are the same as saying that the first week of the year must contain -more than half of its days in this year. Accordingly, the week number will -always be in $1\ldots53$ range ($52$ for non-leap years). - -The function depends on the \helpref{week start}{wxdatetime} convention -specified by the {\it flags} argument but its results for -\texttt{Sunday\_First} are not well-defined as the ISO definition quoted above -applies to the weeks starting on Monday only. - - -\membersection{wxDateTime::GetWeekOfMonth}\label{wxdatetimegetweekofmonth} - -\constfunc{wxDateTime\_t}{GetWeekOfMonth}{\param{WeekFlags }{flags = Monday\_First}, \param{const TimeZone\& }{tz = Local}} - -Returns the ordinal number of the week in the month (in $1\ldots5$ range). - -As \helpref{GetWeekOfYear}{wxdatetimegetweekofyear}, this function supports -both conventions for the week start. See the description of these -\helpref{week start}{wxdatetime} conventions. - - -\membersection{wxDateTime::IsWorkDay}\label{wxdatetimeisworkday} - -\constfunc{bool}{IsWorkDay}{\param{Country }{country = Country\_Default}} - -Returns {\tt true} is this day is not a holiday in the given country. - - -\membersection{wxDateTime::IsGregorianDate}\label{wxdatetimeisgregoriandate} - -\constfunc{bool}{IsGregorianDate}{\param{GregorianAdoption }{country = Gr\_Standard}} - -Returns {\tt true} if the given date is later than the date of adoption of the -Gregorian calendar in the given country (and hence the Gregorian calendar -calculations make sense for it). - -%%%%%%%%%%%%%%%%%%%%%% dos date and time format %%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::SetFromDOS}\label{wxdatetimesetfromdos} - -\func{wxDateTime\&}{Set}{\param{unsigned long }{ddt}} - -Sets the date from the date and time in -\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html} -format. - - -\membersection{wxDateTime::GetAsDOS}\label{wxdatetimegetasdos} - -\constfunc{unsigned long}{GetAsDOS}{\void} - -Returns the date and time in -\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html} -format. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% comparison %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::IsEqualTo}\label{wxdatetimeisequalto} - -\constfunc{bool}{IsEqualTo}{\param{const wxDateTime\& }{datetime}} - -Returns {\tt true} if the two dates are strictly identical. - - -\membersection{wxDateTime::IsEarlierThan}\label{wxdatetimeisearlierthan} - -\constfunc{bool}{IsEarlierThan}{\param{const wxDateTime\& }{datetime}} - -Returns {\tt true} if this date precedes the given one. - - -\membersection{wxDateTime::IsLaterThan}\label{wxdatetimeislaterthan} - -\constfunc{bool}{IsLaterThan}{\param{const wxDateTime\& }{datetime}} - -Returns {\tt true} if this date is later than the given one. - - -\membersection{wxDateTime::IsStrictlyBetween}\label{wxdatetimeisstrictlybetween} - -\constfunc{bool}{IsStrictlyBetween}{\param{const wxDateTime\& }{t1}, \param{const wxDateTime\& }{t2}} - -Returns {\tt true} if this date lies strictly between the two others, - -\wxheading{See also} - -\helpref{IsBetween}{wxdatetimeisbetween} - - -\membersection{wxDateTime::IsBetween}\label{wxdatetimeisbetween} - -\constfunc{bool}{IsBetween}{\param{const wxDateTime\& }{t1}, \param{const wxDateTime\& }{t2}} - -Returns {\tt true} if \helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween} -is {\tt true} or if the date is equal to one of the limit values. - -\wxheading{See also} - -\helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween} - - -\membersection{wxDateTime::IsSameDate}\label{wxdatetimeissamedate} - -\constfunc{bool}{IsSameDate}{\param{const wxDateTime\& }{dt}} - -Returns {\tt true} if the date is the same without comparing the time parts. - - -\membersection{wxDateTime::IsSameTime}\label{wxdatetimeissametime} - -\constfunc{bool}{IsSameTime}{\param{const wxDateTime\& }{dt}} - -Returns {\tt true} if the time is the same (although dates may differ). - - -\membersection{wxDateTime::IsEqualUpTo}\label{wxdatetimeisequalupto} - -\constfunc{bool}{IsEqualUpTo}{\param{const wxDateTime\& }{dt}, \param{const wxTimeSpan\& }{ts}} - -Returns {\tt true} if the date is equal to another one up to the given time -interval, i.e. if the absolute difference between the two dates is less than -this interval. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% arithmetics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::Add}\label{wxdatetimeaddts} - -\constfunc{wxDateTime}{Add}{\param{const wxTimeSpan\& }{diff}} - -\func{wxDateTime\&}{Add}{\param{const wxTimeSpan\& }{diff}} - -\func{wxDateTime\&}{operator$+=$}{\param{const wxTimeSpan\& }{diff}} - -Adds the given time span to this object. - -\pythonnote{This method is named {\tt AddTS} in wxPython.} - - - -\membersection{wxDateTime::Add}\label{wxdatetimeaddds} - -\constfunc{wxDateTime}{Add}{\param{const wxDateSpan\& }{diff}} - -\func{wxDateTime\&}{Add}{\param{const wxDateSpan\& }{diff}} - -\func{wxDateTime\&}{operator$+=$}{\param{const wxDateSpan\& }{diff}} - -Adds the given date span to this object. - -\pythonnote{This method is named {\tt AddDS} in wxPython.} - - - -\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractts} - -\constfunc{wxDateTime}{Subtract}{\param{const wxTimeSpan\& }{diff}} - -\func{wxDateTime\&}{Subtract}{\param{const wxTimeSpan\& }{diff}} - -\func{wxDateTime\&}{operator$-=$}{\param{const wxTimeSpan\& }{diff}} - -Subtracts the given time span from this object. - -\pythonnote{This method is named {\tt SubtractTS} in wxPython.} - - - -\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractds} - -\constfunc{wxDateTime}{Subtract}{\param{const wxDateSpan\& }{diff}} - -\func{wxDateTime\&}{Subtract}{\param{const wxDateSpan\& }{diff}} - -\func{wxDateTime\&}{operator$-=$}{\param{const wxDateSpan\& }{diff}} - -Subtracts the given date span from this object. - -\pythonnote{This method is named {\tt SubtractDS} in wxPython.} - - - -\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractdt} - -\constfunc{wxTimeSpan}{Subtract}{\param{const wxDateTime\& }{dt}} - -Subtracts another date from this one and returns the difference between them -as wxTimeSpan. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% parsing/formatting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::ParseRfc822Date}\label{wxdatetimeparserfc822date} - -\func{const char *}{ParseRfc822Date}{\param{const wxString\& }{date}, \param{wxString::const\_iterator *}{end = \NULL}} - -\func{const char *}{ParseRfc822Date}{\param{const char* }{date}} - -\func{const wchar\_t *}{ParseRfc822Date}{\param{const wchar\_t* }{date}} - -Parses the string \arg{date} looking for a date formatted according to the RFC -822 in it. The exact description of this format may, of course, be found in -the RFC (section $5$), but, briefly, this is the format used in the headers of -Internet email messages and one of the most common strings expressing date in -this format may be something like {\tt "Sat, 18 Dec 1999 00:48:30 +0100"}. - -Returns {\tt NULL} if the conversion failed, otherwise return the pointer to -the character immediately following the part of the string which could be -parsed. If the entire string contains only the date in RFC 822 format, -the returned pointer will be pointing to a {\tt NUL} character. - -This function is intentionally strict, it will return an error for any string -which is not RFC 822 compliant. If you need to parse date formatted in more -free ways, you should use \helpref{ParseDateTime}{wxdatetimeparsedatetime} or -\helpref{ParseDate}{wxdatetimeparsedate} instead. - - -\membersection{wxDateTime::ParseFormat}\label{wxdatetimeparseformat} - -\func{const char *}{ParseFormat}{\param{const wxString\& }{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}, \param{wxString::const\_iterator *}{end = \NULL}} - -\func{const char *}{ParseFormat}{\param{const char *}{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}} - -\func{const wchar\_t *}{ParseFormat}{\param{const wchar\_t *}{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}} - -This function parses the string {\it date} according to the given -{\it format}. The system {\tt strptime(3)} function is used whenever available, -but even if it is not, this function is still implemented, although support -for locale-dependent format specifiers such as {\tt "\%c"}, {\tt "\%x"} or {\tt "\%X"} may -not be perfect and GNU extensions such as {\tt "\%z"} and {\tt "\%Z"} are -not implemented. This function does handle the month and weekday -names in the current locale on all platforms, however. - -Please see the description of the ANSI C function {\tt strftime(3)} for the syntax -of the format string. - -The {\it dateDef} parameter is used to fill in the fields which could not be -determined from the format string. For example, if the format is {\tt "\%d"} (the -ay of the month), the month and the year are taken from {\it dateDef}. If -it is not specified, \helpref{Today}{wxdatetimetoday} is used as the -default date. - -Returns {\tt NULL} if the conversion failed, otherwise return the pointer to -the character which stopped the scan. - - -\membersection{wxDateTime::ParseDateTime}\label{wxdatetimeparsedatetime} - -\func{const char *}{ParseDateTime}{\param{const wxString\& }{datetime}, \param{wxString::const\_iterator *}{end = \NULL}} - -\func{const char *}{ParseDateTime}{\param{const char *}{datetime}} - -\func{const wchar\_t *}{ParseDateTime}{\param{const wchar\_t *}{datetime}} - -Parses the string {\it datetime} containing the date and time in free format. -This function tries as hard as it can to interpret the given string as date -and time. Unlike \helpref{ParseRfc822Date}{wxdatetimeparserfc822date}, it -will accept anything that may be accepted and will only reject strings which -can not be parsed in any way at all. - -Returns {\tt NULL} if the conversion failed, otherwise return the pointer to -the character which stopped the scan. - - -\membersection{wxDateTime::ParseDate}\label{wxdatetimeparsedate} - -\func{const char *}{ParseDate}{\param{const wxString\& }{date}, \param{wxString::const\_iterator *}{end = \NULL}} - -\func{const char *}{ParseDate}{\param{const char *}{date}} - -\func{const wchar\_t *}{ParseDate}{\param{const wchar\_t *}{date}} - -This function is like \helpref{ParseDateTime}{wxdatetimeparsedatetime}, but it -only allows the date to be specified. It is thus less flexible then -\helpref{ParseDateTime}{wxdatetimeparsedatetime}, but also has less chances to -misinterpret the user input. - -Returns {\tt NULL} if the conversion failed, otherwise return the pointer to -the character which stopped the scan. - - -\membersection{wxDateTime::ParseTime}\label{wxdatetimeparsetime} - -\func{const char *}{ParseTime}{\param{const wxString\& }{time}, \param{wxString::const\_iterator *}{end = \NULL}} - -\func{const char *}{ParseTime}{\param{const char *}{time}} - -\func{const wchar\_t *}{ParseTime}{\param{const wchar\_t *}{time}} - -This functions is like \helpref{ParseDateTime}{wxdatetimeparsedatetime}, but -only allows the time to be specified in the input string. - -Returns {\tt NULL} if the conversion failed, otherwise return the pointer to -the character which stopped the scan. - - -\membersection{wxDateTime::ParseISODate}\label{wxdatetimeparseisodate} - -\func{bool}{ParseISODate}{\param{const wxString\& }{date}} - -This function parses the date in ISO 8601 format (YYYY-MM-DD). - -Returns \true if the entire string was parsed successfully, \false otherwise. - - -\membersection{wxDateTime::ParseISOTime}\label{wxdatetimeparseisotime} - -\func{bool}{ParseISOTime}{\param{const wxString\& }{date}} - -This function parses the time in ISO 8601 format (HH:MM:SS). - -Returns \true if the entire string was parsed successfully, \false otherwise. - - -\membersection{wxDateTime::ParseISOCombined}\label{wxdatetimeparseisocombined} - -\func{bool}{ParseISOCombined}{\param{const wxString\& }{date}, \param{char }{sep = 'T'}} - -This function parses the string containing the date and time in ISO 8601 -combined format (YYYY-MM-DDTHH:MM:SS). The separator between the date and time -parts must be equal to \arg{sep} for the function to succeed. - -Returns \true if the entire string was parsed successfully, \false otherwise. - - -\membersection{wxDateTime::Format}\label{wxdatetimeformat} - -\constfunc{wxString }{Format}{\param{const wxChar *}{format = wxDefaultDateTimeFormat}, \param{const TimeZone\& }{tz = Local}} - -This function does the same as the standard ANSI C {\tt strftime(3)} function. -Please see its description for the meaning of {\it format} parameter. - -It also accepts a few wxWidgets-specific extensions: you can optionally specify -the width of the field to follow using {\tt printf(3)}-like syntax and the -format specification {\tt \%l} can be used to get the number of milliseconds. - -\wxheading{See also} - -\helpref{ParseFormat}{wxdatetimeparseformat} - - -\membersection{wxDateTime::FormatDate}\label{wxdatetimeformatdate} - -\constfunc{wxString }{FormatDate}{\void} - -Identical to calling \helpref{Format()}{wxdatetimeformat} with {\tt "\%x"} -argument (which means `preferred date representation for the current locale'). - - -\membersection{wxDateTime::FormatTime}\label{wxdatetimeformattime} - -\constfunc{wxString }{FormatTime}{\void} - -Identical to calling \helpref{Format()}{wxdatetimeformat} with {\tt "\%X"} -argument (which means `preferred time representation for the current locale'). - - -\membersection{wxDateTime::FormatISOCombined}\label{wxdatetimeformatisocombined} - -\constfunc{wxString}{FormatISOCombined}{\param{char }{sep = 'T'}} - -Returns the combined date-time representation in the ISO 8601 format -(YYYY-MM-DDTHH:MM:SS). The \arg{sep} parameter default value produces the -result exactly corresponding to the ISO standard, but it can also be useful to -use a space as seprator if a more human-readable combined date-time -representation is needed. - -\wxheading{See also} - -\helpref{FormatISODate}{wxdatetimeformatisodate},\\ -\helpref{FormatISOTime}{wxdatetimeformatisotime},\\ -\helpref{ParseISOCombined}{wxdatetimeparseisocombined} - - -\membersection{wxDateTime::FormatISODate}\label{wxdatetimeformatisodate} - -\constfunc{wxString }{FormatISODate}{\void} - -This function returns the date representation in the ISO 8601 format -(YYYY-MM-DD). - - -\membersection{wxDateTime::FormatISOTime}\label{wxdatetimeformatisotime} - -\constfunc{wxString }{FormatISOTime}{\void} - -This function returns the time representation in the ISO 8601 format -(HH:MM:SS). - -%%%%%%%%%%%%%%%%%%%%%%%%%%% calendar calculations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::SetToWeekDayInSameWeek}\label{wxdatetimesettoweekdayinsameweek} - -\func{wxDateTime\&}{SetToWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}} - -Adjusts the date so that it will still lie in the same week as before, but its -week day will be the given one. - -Returns the reference to the modified object itself. - - -\membersection{wxDateTime::GetWeekDayInSameWeek}\label{wxdatetimegetweekdayinsameweek} - -\constfunc{wxDateTime}{GetWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}} - -Returns the copy of this object to which -\helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek} was -applied. - - -\membersection{wxDateTime::SetToNextWeekDay}\label{wxdatetimesettonextweekday} - -\func{wxDateTime\&}{SetToNextWeekDay}{\param{WeekDay }{weekday}} - -Sets the date so that it will be the first {\it weekday} following the current -date. - -Returns the reference to the modified object itself. - - -\membersection{wxDateTime::GetNextWeekDay}\label{wxdatetimegetnextweekday} - -\constfunc{wxDateTime}{GetNextWeekDay}{\param{WeekDay }{weekday}} - -Returns the copy of this object to which -\helpref{SetToNextWeekDay}{wxdatetimesettonextweekday} was applied. - - -\membersection{wxDateTime::SetToPrevWeekDay}\label{wxdatetimesettoprevweekday} - -\func{wxDateTime\&}{SetToPrevWeekDay}{\param{WeekDay }{weekday}} - -Sets the date so that it will be the last {\it weekday} before the current -date. - -Returns the reference to the modified object itself. - - -\membersection{wxDateTime::GetPrevWeekDay}\label{wxdatetimegetprevweekday} - -\constfunc{wxDateTime}{GetPrevWeekDay}{\param{WeekDay }{weekday}} - -Returns the copy of this object to which -\helpref{SetToPrevWeekDay}{wxdatetimesettoprevweekday} was applied. - - -\membersection{wxDateTime::SetToWeekDay}\label{wxdatetimesettoweekday} - -\func{bool}{SetToWeekDay}{\param{WeekDay }{weekday}, \param{int }{n = 1}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -Sets the date to the {\it n}-th {\it weekday} in the given month of the given -year (the current month and year are used by default). The parameter {\it n} -may be either positive (counting from the beginning of the month) or negative -(counting from the end of it). - -For example, {\tt SetToWeekDay(2, wxDateTime::Wed)} will set the date to the -second Wednesday in the current month and -{\tt SetToWeekDay(-1, wxDateTime::Sun)} -- to the last Sunday in it. - -Returns {\tt true} if the date was modified successfully, {\tt false} -otherwise meaning that the specified date doesn't exist. - - -\membersection{wxDateTime::GetWeekDay}\label{wxdatetimegetweekday2} - -\constfunc{wxDateTime}{GetWeekDay}{\param{WeekDay }{weekday}, \param{int }{n = 1}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -Returns the copy of this object to which -\helpref{SetToWeekDay}{wxdatetimesettoweekday} was applied. - - -\membersection{wxDateTime::SetToLastWeekDay}\label{wxdatetimesettolastweekday} - -\func{bool}{SetToLastWeekDay}{\param{WeekDay }{weekday}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -The effect of calling this function is the same as of calling -{\tt SetToWeekDay(-1, weekday, month, year)}. The date will be set to the last -{\it weekday} in the given month and year (the current ones by default). - -Always returns {\tt true}. - - -\membersection{wxDateTime::GetLastWeekDay}\label{wxdatetimegetlastweekday} - -\func{wxDateTime}{GetLastWeekDay}{\param{WeekDay }{weekday}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -Returns the copy of this object to which -\helpref{SetToLastWeekDay}{wxdatetimesettolastweekday} was applied. - - -\membersection{wxDateTime::SetToWeekOfYear}\label{wxdatetimesettoweekofyear} - -\func{static wxDateTime}{SetToWeekOfYear}{\param{int }{year}, \param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}} - -Set the date to the given \arg{weekday} in the week number \arg{numWeek} of the -given \arg{year} . The number should be in range $1\ldots53$. - -Note that the returned date may be in a different year than the one passed to -this function because both the week $1$ and week $52$ or $53$ (for leap years) -contain days from different years. See -\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} for the explanation of how the -year weeks are counted. - - -\membersection{wxDateTime::SetToLastMonthDay}\label{wxdatetimesettolastmonthday} - -\func{wxDateTime\&}{SetToLastMonthDay}{\param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -Sets the date to the last day in the specified month (the current one by -default). - -Returns the reference to the modified object itself. - - -\membersection{wxDateTime::GetLastMonthDay}\label{wxdatetimegetlastmonthday} - -\constfunc{wxDateTime}{GetLastMonthDay}{\param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}} - -Returns the copy of this object to which -\helpref{SetToLastMonthDay}{wxdatetimesettolastmonthday} was applied. - - -\membersection{wxDateTime::SetToYearDay}\label{wxdatetimesettoyearday} - -\func{wxDateTime\&}{SetToYearDay}{\param{wxDateTime\_t }{yday}} - -Sets the date to the day number {\it yday} in the same year (i.e., unlike the -other functions, this one does not use the current year). The day number -should be in the range $1\ldots366$ for the leap years and $1\ldots365$ for -the other ones. - -Returns the reference to the modified object itself. - - -\membersection{wxDateTime::GetYearDay}\label{wxdatetimegetyearday} - -\constfunc{wxDateTime}{GetYearDay}{\param{wxDateTime\_t }{yday}} - -Returns the copy of this object to which -\helpref{SetToYearDay}{wxdatetimesettoyearday} was applied. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% astronomical functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::GetJulianDayNumber}\label{wxdatetimegetjuliandaynumber} - -\constfunc{double}{GetJulianDayNumber}{\void} - -Returns the \helpref{JDN}{wxdatetimesetjdn} corresponding to this date. Beware -of rounding errors! - -\wxheading{See also} - -\helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber} - - -\membersection{wxDateTime::GetJDN}\label{wxdatetimegetjdn} - -\constfunc{double}{GetJDN}{\void} - -Synonym for \helpref{GetJulianDayNumber}{wxdatetimegetjuliandaynumber}. - - -\membersection{wxDateTime::GetModifiedJulianDayNumber}\label{wxdatetimegetmodifiedjuliandaynumber} - -\constfunc{double}{GetModifiedJulianDayNumber}{\void} - -Returns the {\it Modified Julian Day Number} (MJD) which is, by definition, -equal to $JDN - 2400000.5$. The MJDs are simpler to work with as the integral -MJDs correspond to midnights of the dates in the Gregorian calendar and not th -noons like JDN. The MJD $0$ is Nov 17, 1858. - - -\membersection{wxDateTime::GetMJD}\label{wxdatetimegetmjd} - -\constfunc{double}{GetMJD}{\void} - -Synonym for \helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber}. - - -\membersection{wxDateTime::GetRataDie}\label{wxdatetimegetratadie} - -\constfunc{double}{GetRataDie}{\void} - -Return the {\it Rata Die number} of this date. - -By definition, the Rata Die number is a date specified as the number of days -relative to a base date of December 31 of the year 0. Thus January 1 of the -year 1 is Rata Die day 1. - -%%%%%%%%%%%%%%%%%%%%%%%%%%% timezone and DST %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxDateTime::FromTimezone}\label{wxdatetimefromtimezone} - -\constfunc{wxDateTime}{FromTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}} - -Transform the date from the given time zone to the local one. If {\it noDST} is -{\tt true}, no DST adjustments will be made. - -Returns the date in the local time zone. - - -\membersection{wxDateTime::ToTimezone}\label{wxdatetimetotimezone} - -\constfunc{wxDateTime}{ToTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}} - -Transform the date to the given time zone. If {\it noDST} is {\tt true}, no -DST adjustments will be made. - -Returns the date in the new time zone. - - -\membersection{wxDateTime::MakeTimezone}\label{wxdatetimemaketimezone} - -\func{wxDateTime\&}{MakeTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}} - -Modifies the object in place to represent the date in another time zone. If -{\it noDST} is {\tt true}, no DST adjustments will be made. - - -\membersection{wxDateTime::MakeFromTimezone}\label{wxdatetimemakefromtimezone} - -\func{wxDateTime\&}{MakeFromTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}} - -Same as \helpref{FromTimezone}{wxdatetimefromtimezone} but modifies the object -in place. - - -\membersection{wxDateTime::ToUTC}\label{wxdatetimetoutc} - -\constfunc{wxDateTime}{ToUTC}{\param{bool }{noDST = false}} - -This is the same as calling \helpref{ToTimezone}{wxdatetimetotimezone} with -the argument {\tt GMT0}. - - -\membersection{wxDateTime::MakeUTC}\label{wxdatetimemakeutc} - -\func{wxDateTime\&}{MakeUTC}{\param{bool }{noDST = false}} - -This is the same as calling \helpref{MakeTimezone}{wxdatetimemaketimezone} with -the argument {\tt GMT0}. - - -\membersection{wxDateTime::IsDST}\label{wxdatetimeisdst} - -\constfunc{int}{IsDST}{\param{Country }{country = Country\_Default}} - -Returns {\tt true} if the DST is applied for this date in the given country. - -\wxheading{See also} - -\helpref{GetBeginDST}{wxdatetimegetbegindst} and -\helpref{GetEndDST}{wxdatetimegetenddst} - -\section{\class{wxDateTimeHolidayAuthority}}\label{wxdatetimeholidayauthority} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -TODO - -\section{\class{wxDateTimeWorkDays}}\label{wxdatetimeworkdays} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -TODO - diff --git a/docs/latex/wx/datistrm.tex b/docs/latex/wx/datistrm.tex deleted file mode 100644 index 7c4a990b3e..0000000000 --- a/docs/latex/wx/datistrm.tex +++ /dev/null @@ -1,148 +0,0 @@ -\section{\class{wxDataInputStream}}\label{wxdatainputstream} - -This class provides functions that read binary data types in a -portable way. Data can be read in either big-endian or little-endian -format, little-endian being the default on all architectures. - -If you want to read data from text files (or streams) use -\helpref{wxTextInputStream}{wxtextinputstream} instead. - -The >> operator is overloaded and you can use this class like a standard C++ iostream. -Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc -and on a typical 32-bit computer, none of these match to the "long" type (wxInt32 -is defined as signed int on 32-bit architectures) so that you cannot use long. To avoid -problems (here and elsewhere), make use of the wxInt32, wxUint32, etc types. - -For example: - -\begin{verbatim} - wxFileInputStream input( "mytext.dat" ); - wxDataInputStream store( input ); - wxUint8 i1; - float f2; - wxString line; - - store >> i1; // read a 8 bit integer. - store >> i1 >> f2; // read a 8 bit integer followed by float. - store >> line; // read a text line -\end{verbatim} - -See also \helpref{wxDataOutputStream}{wxdataoutputstream}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataInputStream::wxDataInputStream}\label{wxdatainputstreamctor} - -\func{}{wxDataInputStream}{\param{wxInputStream\&}{ stream}} - -\func{}{wxDataInputStream}{\param{wxInputStream\&}{ stream}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Constructs a datastream object from an input stream. Only read methods will -be available. The second form is only available in Unicode build of wxWidgets. - -\wxheading{Parameters} - -\docparam{stream}{The input stream.} - -\docparam{conv}{Charset conversion object object used to decode strings in Unicode -mode (see \helpref{wxDataInputStream::ReadString}{wxdatainputstreamreadstring} -documentation for detailed description). Note that you must not destroy -{\it conv} before you destroy this wxDataInputStream instance!} - -\membersection{wxDataInputStream::\destruct{wxDataInputStream}}\label{wxdatainputstreamdtor} - -\func{}{\destruct{wxDataInputStream}}{\void} - -Destroys the wxDataInputStream object. - -\membersection{wxDataInputStream::BigEndianOrdered}\label{wxdatainputstreambigendianordered} - -\func{void}{BigEndianOrdered}{\param{bool}{ be\_order}} - -If {\it be\_order} is true, all data will be read in big-endian -order, such as written by programs on a big endian architecture -(e.g. Sparc) or written by Java-Streams (which always use -big-endian order). - -\membersection{wxDataInputStream::Read8}\label{wxdatainputstreamread8} - -\func{wxUint8}{Read8}{\void} - -Reads a single byte from the stream. - -\func{void}{Read8}{\param{wxUint8 *}{buffer}, \param{size\_t }{size}} - -Reads bytes from the stream in a specified buffer. The amount of -bytes to read is specified by the {\it size} variable. - -\membersection{wxDataInputStream::Read16}\label{wxdatainputstreamread16} - -\func{wxUint16}{Read16}{\void} - -Reads a 16 bit unsigned integer from the stream. - -\func{void}{Read16}{\param{wxUint16 *}{buffer}, \param{size\_t }{size}} - -Reads 16 bit unsigned integers from the stream in a specified buffer. the -amount of 16 bit unsigned integer to read is specified by the {\it size} variable. - -\membersection{wxDataInputStream::Read32}\label{wxdatainputstreamread32} - -\func{wxUint32}{Read32}{\void} - -Reads a 32 bit unsigned integer from the stream. - -\func{void}{Read32}{\param{wxUint32 *}{buffer}, \param{size\_t }{size}} - -Reads 32 bit unsigned integers from the stream in a specified buffer. the amount of -32 bit unsigned integer to read is specified by the {\it size} variable. - -\membersection{wxDataInputStream::Read64}\label{wxdatainputstreamread64} - -\func{wxUint64}{Read64}{\void} - -Reads a 64 bit unsigned integer from the stream. - -\func{void}{Read64}{\param{wxUint64 *}{buffer}, \param{size\_t }{size}} - -Reads 64 bit unsigned integers from the stream in a specified buffer. the amount of -64 bit unsigned integer to read is specified by the {\it size} variable. - -\membersection{wxDataInputStream::ReadDouble}\label{wxdatainputstreamreaddouble} - -\func{double}{ReadDouble}{\void} - -Reads a double (IEEE encoded) from the stream. - -\func{void}{ReadDouble}{\param{double *}{buffer}, \param{size\_t }{size}} - -Reads double data (IEEE encoded) from the stream in a specified buffer. the amount of -double to read is specified by the {\it size} variable. - -\membersection{wxDataInputStream::ReadString}\label{wxdatainputstreamreadstring} - -\func{wxString}{ReadString}{\void} - -Reads a string from a stream. Actually, this function first reads a long -integer specifying the length of the string (without the last null character) -and then reads the string. - -In Unicode build of wxWidgets, the fuction first reads multibyte (char*) -string from the stream and then converts it to Unicode using the {\it conv} -object passed to constructor and returns the result as wxString. You are -responsible for using the same convertor as when writing the stream. - -See also \helpref{wxDataOutputStream::WriteString}{wxdataoutputstreamwritestring}. - diff --git a/docs/latex/wx/datostrm.tex b/docs/latex/wx/datostrm.tex deleted file mode 100644 index c2601381aa..0000000000 --- a/docs/latex/wx/datostrm.tex +++ /dev/null @@ -1,133 +0,0 @@ -\section{\class{wxDataOutputStream}}\label{wxdataoutputstream} - -This class provides functions that write binary data types in a -portable way. Data can be written in either big-endian or little-endian -format, little-endian being the default on all architectures. - -If you want to write data to text files (or streams) use -\helpref{wxTextOutputStream}{wxtextoutputstream} instead. - -The << operator is overloaded and you can use this class like a standard -C++ iostream. See \helpref{wxDataInputStream}{wxdatainputstream} for its -usage and caveats. - -See also \helpref{wxDataInputStream}{wxdatainputstream}. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataOutputStream::wxDataOutputStream}\label{wxdataoutputstreamctor} - -\func{}{wxDataOutputStream}{\param{wxOutputStream\&}{ stream}} - -\func{}{wxDataOutputStream}{\param{wxOutputStream\&}{ stream}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Constructs a datastream object from an output stream. Only write methods will -be available. The second form is only available in Unicode build of wxWidgets. - -\wxheading{Parameters} - -\docparam{stream}{The output stream.} - -\docparam{conv}{Charset conversion object object used to encoding Unicode -strings before writing them to the stream -in Unicode mode (see \helpref{wxDataOutputStream::WriteString}{wxdataoutputstreamwritestring} -documentation for detailed description). Note that you must not destroy -{\it conv} before you destroy this wxDataOutputStream instance! It is -recommended to use default value (UTF-8).} - -\membersection{wxDataOutputStream::\destruct{wxDataOutputStream}}\label{wxdataoutputstreamdtor} - -\func{}{\destruct{wxDataOutputStream}}{\void} - -Destroys the wxDataOutputStream object. - -\membersection{wxDataOutputStream::BigEndianOrdered}\label{wxdataoutputstreambigendianorder} - -\func{void}{BigEndianOrdered}{\param{bool}{ be\_order}} - -If {\it be\_order} is true, all data will be written in big-endian -order, e.g. for reading on a Sparc or from Java-Streams (which -always use big-endian order), otherwise data will be written in -little-endian order. - -\membersection{wxDataOutputStream::Write8}\label{wxdataoutputstreamwrite8} - -\func{void}{Write8}{{\param wxUint8 }{i8}} - -Writes the single byte {\it i8} to the stream. - -\func{void}{Write8}{\param{const wxUint8 *}{buffer}, \param{size\_t }{size}} - -Writes an array of bytes to the stream. The amount of bytes to write is -specified with the {\it size} variable. - -\membersection{wxDataOutputStream::Write16}\label{wxdataoutputstreamwrite16} - -\func{void}{Write16}{{\param wxUint16 }{i16}} - -Writes the 16 bit unsigned integer {\it i16} to the stream. - -\func{void}{Write16}{\param{const wxUint16 *}{buffer}, \param{size\_t }{size}} - -Writes an array of 16 bit unsigned integer to the stream. The amount of -16 bit unsigned integer to write is specified with the {\it size} variable. - -\membersection{wxDataOutputStream::Write32}\label{wxdataoutputstreamwrite32} - -\func{void}{Write32}{{\param wxUint32 }{i32}} - -Writes the 32 bit unsigned integer {\it i32} to the stream. - -\func{void}{Write32}{\param{const wxUint32 *}{buffer}, \param{size\_t }{size}} - -Writes an array of 32 bit unsigned integer to the stream. The amount of -32 bit unsigned integer to write is specified with the {\it size} variable. - -\membersection{wxDataOutputStream::Write64}\label{wxdataoutputstreamwrite64} - -\func{void}{Write64}{{\param wxUint64 }{i64}} - -Writes the 64 bit unsigned integer {\it i64} to the stream. - -\func{void}{Write64}{\param{const wxUint64 *}{buffer}, \param{size\_t }{size}} - -Writes an array of 64 bit unsigned integer to the stream. The amount of -64 bit unsigned integer to write is specified with the {\it size} variable. - -\membersection{wxDataOutputStream::WriteDouble}\label{wxdataoutputstreamwritedouble} - -\func{void}{WriteDouble}{{\param double }{f}} - -Writes the double {\it f} to the stream using the IEEE format. - -\func{void}{WriteDouble}{\param{const double *}{buffer}, \param{size\_t }{size}} - -Writes an array of double to the stream. The amount of double to write is -specified with the {\it size} variable. - -\membersection{wxDataOutputStream::WriteString}\label{wxdataoutputstreamwritestring} - -\func{void}{WriteString}{{\param const wxString\&}{string}} - -Writes {\it string} to the stream. Actually, this method writes the size of -the string before writing {\it string} itself. - -In ANSI build of wxWidgets, the string is written to the stream in exactly -same way it is represented in memory. In Unicode build, however, the string -is first converted to multibyte representation with {\it conv} object passed -to stream's constructor (consequently, ANSI application can read data -written by Unicode application, as long as they agree on encoding) and this -representation is written to the stream. UTF-8 is used by default. - diff --git a/docs/latex/wx/dc.tex b/docs/latex/wx/dc.tex deleted file mode 100644 index a834277cf9..0000000000 --- a/docs/latex/wx/dc.tex +++ /dev/null @@ -1,1307 +0,0 @@ -\section{\class{wxDC}}\label{wxdc} - -A wxDC is a {\it device context} onto which graphics and text can be drawn. -It is intended to represent a number of output devices in a generic way, -so a window can have a device context associated with it, and a printer also has a device context. -In this way, the same piece of code may write to a number of different devices, -if the device context is used as a parameter. - -Notice that wxDC is an abstract base class and can't be created directly, -please use \helpref{wxPaintDC}{wxpaintdc}, \helpref{wxClientDC}{wxclientdc}, -\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc}, -\helpref{wxMemoryDC}{wxmemorydc} or \helpref{wxPrinterDC}{wxprinterdc}. - -% VZ: we should really document them instead of this lame excuse, but I don't -% have time for it now, when it is done please remove this -Please note that in addition to the versions of the methods documented here, -there are also versions which accept single {\tt wxPoint} parameter instead of -two {\tt wxCoord} ones or {\tt wxPoint} and {\tt wxSize} instead of four of -them. - -\wxheading{Support for Transparency / Alpha Channel} - -On Mac OS X when using Core Graphics (wx\_MAC\_USE\_CORE\_GRAPHICS set to 1) -colors with alpha are supported, so instances {\tt wxPen} or {\tt wxBrush} that are built from {\tt wxColour} use -the color's alpha values when stroking or filling. - -Note that beginning with wxWidgets 2.9.0 the entire wxDC code has been -reorganized. All platform dependent code (actual all drawing code) has -been moved into backend classes which derive from a common wxDCImpl -class. The user-visible classes such as wxClientDC and wxPaintDC -merely forward all calls to the backend implementation. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Overview}{dcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDC::Blit}\label{wxdcblit} - -\func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, - \param{wxDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{int}{ logicalFunc = wxCOPY}, - \param{bool }{useMask = false}, \param{wxCoord}{ xsrcMask = -1}, \param{wxCoord}{ ysrcMask = -1}} - -Copy from a source DC to this DC, specifying the destination -coordinates, size of area to copy, source DC, source coordinates, -logical function, whether to use a bitmap mask, and mask source position. - -\wxheading{Parameters} - -\docparam{xdest}{Destination device context x position.} - -\docparam{ydest}{Destination device context y position.} - -\docparam{width}{Width of source area to be copied.} - -\docparam{height}{Height of source area to be copied.} - -\docparam{source}{Source device context.} - -\docparam{xsrc}{Source device context x position.} - -\docparam{ysrc}{Source device context y position.} - -\docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.} - -\docparam{useMask}{If true, Blit does a transparent blit using the mask that is associated with the bitmap -selected into the source device context. The Windows implementation does the following if MaskBlt cannot be used: - -\begin{enumerate} -\item Creates a temporary bitmap and copies the destination area into it. -\item Copies the source area into the temporary bitmap using the specified logical function. -\item Sets the masked area in the temporary bitmap to BLACK by ANDing the -mask bitmap with the temp bitmap with the foreground colour set to WHITE -and the bg colour set to BLACK. -\item Sets the unmasked area in the destination area to BLACK by ANDing the -mask bitmap with the destination area with the foreground colour set to BLACK -and the background colour set to WHITE. -\item ORs the temporary bitmap with the destination area. -\item Deletes the temporary bitmap. -\end{enumerate} - -This sequence of operations ensures that the source's transparent area need not be black, -and logical functions are supported. - -{\bf Note:} on Windows, blitting with masks can be speeded up considerably by compiling -wxWidgets with the wxUSE\_DC\_CACHE option enabled. You can also influence whether MaskBlt -or the explicit mask blitting code above is used, by using \helpref{wxSystemOptions}{wxsystemoptions} and -setting the {\bf no-maskblt} option to 1. - -} - -\docparam{xsrcMask}{Source x position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc -will be assumed for the mask source position. Currently only implemented on Windows.} - -\docparam{ysrcMask}{Source y position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc -will be assumed for the mask source position. Currently only implemented on Windows.} - - -\wxheading{Remarks} - -There is partial support for Blit in wxPostScriptDC, under X. - -See \helpref{wxMemoryDC}{wxmemorydc} for typical usage. - -\wxheading{See also} - -\helpref{wxDC::StretchBlit}{wxdcstretchblit}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask} - -\begin{comment} - -\membersection{wxDC::CacheEnabled}\label{wxdccacheenabled} - -\func{static bool}{CacheEnabled}{\void} - -On supported platforms (currently only Windows), returns true -if the DC cache is enabled. The DC cache -can speed up the \helpref{Blit}{wxdcblit} operation when -drawing a large number of masked bitmaps. - -If using the cache functions in your code, please test for the -wxUSE\_DC\_CACHEING preprocessor symbol for portability. - -\wxheading{See also} - -\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::ClearCache} -\end{comment} - - -\membersection{wxDC::CalcBoundingBox}\label{wxdccalcboundingbox} - -\func{void}{CalcBoundingBox}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Adds the specified point to the bounding box which can be retrieved with -\helpref{MinX}{wxdcminx}, \helpref{MaxX}{wxdcmaxx} and -\helpref{MinY}{wxdcminy}, \helpref{MaxY}{wxdcmaxy} functions. - -\wxheading{See also} - -\helpref{ResetBoundingBox}{wxdcresetboundingbox} - - -\membersection{wxDC::Clear}\label{wxdcclear} - -\func{void}{Clear}{\void} - -Clears the device context using the current background brush. - -\begin{comment} - -\membersection{wxDC::ClearCache}\label{wxdcclearcache} - -\func{static void}{ClearCache}{\void} - -On supported platforms (currently only Windows), clears -the contents of the DC cache (one bitmap and two Windows device contexts). The DC cache -can speed up the \helpref{Blit}{wxdcblit} operation when -drawing a large number of masked bitmaps. You should -call ClearCache at the end of length DC operations if you wish to only use -the cache transiently; you should also call it as your application exits. - -If using the cache functions in your code, please test for the -wxUSE\_DC\_CACHEING preprocessor symbol for portability. - -\wxheading{See also} - -\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::CacheEnabled} -\end{comment} - - -\membersection{wxDC::ComputeScaleAndOrigin}\label{wxdccomputescaleandorigin} - -\func{virtual void}{ComputeScaleAndOrigin}{\void} - -Performs all necessary computations for given platform and context type -after each change of scale and origin parameters. Usually called automatically -internally after such changes. - - -\membersection{wxDC::CrossHair}\label{wxdccrosshair} - -\func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Displays a cross hair using the current pen. This is a vertical -and horizontal line the height and width of the window, centred -on the given point. - - -\membersection{wxDC::DestroyClippingRegion}\label{wxdcdestroyclippingregion} - -\func{void}{DestroyClippingRegion}{\void} - -Destroys the current clipping region so that none of the DC is clipped. -See also \helpref{wxDC::SetClippingRegion}{wxdcsetclippingregion}. - - -\membersection{wxDC::DeviceToLogicalX}\label{wxdcdevicetologicalx} - -\func{virtual wxCoord}{DeviceToLogicalX}{\param{wxCoord}{ x}} - -Convert device X coordinate to logical coordinate, using the current -mapping mode. - - -\membersection{wxDC::DeviceToLogicalXRel}\label{wxdcdevicetologicalxrel} - -\func{virtual wxCoord}{DeviceToLogicalXRel}{\param{wxCoord}{ x}} - -Convert device X coordinate to relative logical coordinate, using the current -mapping mode but ignoring the x axis orientation. -Use this function for converting a width, for example. - - -\membersection{wxDC::DeviceToLogicalY}\label{wxdcdevicetologicaly} - -\func{virtual wxCoord}{DeviceToLogicalY}{\param{wxCoord}{ y}} - -Converts device Y coordinate to logical coordinate, using the current -mapping mode. - - -\membersection{wxDC::DeviceToLogicalYRel}\label{wxdcdevicetologicalyrel} - -\func{virtual wxCoord}{DeviceToLogicalYRel}{\param{wxCoord}{ y}} - -Convert device Y coordinate to relative logical coordinate, using the current -mapping mode but ignoring the y axis orientation. -Use this function for converting a height, for example. - - -\membersection{wxDC::DrawArc}\label{wxdcdrawarc} - -\func{void}{DrawArc}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ xc}, \param{wxCoord}{ yc}} - -Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1}) -and ending at ({\it x2, y2}). The current pen is used for the outline -and the current brush for filling the shape. - -The arc is drawn in an anticlockwise direction from the start point to the end point. - - -\membersection{wxDC::DrawBitmap}\label{wxdcdrawbitmap} - -\func{void}{DrawBitmap}{\param{const wxBitmap\&}{ bitmap}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{bool}{ transparent}} - -Draw a bitmap on the device context at the specified point. If {\it transparent} is true and the bitmap has -a transparency mask, the bitmap will be drawn transparently. - -When drawing a mono-bitmap, the current text foreground colour will be used to draw the foreground -of the bitmap (all bits set to 1), and the current text background colour to draw the background -(all bits set to 0). See also \helpref{SetTextForeground}{wxdcsettextforeground}, -\helpref{SetTextBackground}{wxdcsettextbackground} and \helpref{wxMemoryDC}{wxmemorydc}. - - -\membersection{wxDC::DrawCheckMark}\label{wxdcdrawcheckmark} - -\func{void}{DrawCheckMark}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{DrawCheckMark}{\param{const wxRect \&}{rect}} - -Draws a check mark inside the given rectangle. - - -\membersection{wxDC::DrawCircle}\label{wxdcdrawcircle} - -\func{void}{DrawCircle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ radius}} - -\func{void}{DrawCircle}{\param{const wxPoint\&}{ pt}, \param{wxCoord}{ radius}} - -Draws a circle with the given centre and radius. - -\wxheading{See also} - -\helpref{DrawEllipse}{wxdcdrawellipse} - - -\membersection{wxDC::DrawEllipse}\label{wxdcdrawellipse} - -\func{void}{DrawEllipse}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{DrawEllipse}{\param{const wxPoint\&}{ pt}, \param{const wxSize\&}{ size}} - -\func{void}{DrawEllipse}{\param{const wxRect\&}{ rect}} - -Draws an ellipse contained in the rectangle specified either with the given top -left corner and the given size or directly. The current pen is used for the -outline and the current brush for filling the shape. - -\wxheading{See also} - -\helpref{DrawCircle}{wxdcdrawcircle} - - -\membersection{wxDC::DrawEllipticArc}\label{wxdcdrawellipticarc} - -\func{void}{DrawEllipticArc}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, - \param{double}{ start}, \param{double}{ end}} - -Draws an arc of an ellipse. The current pen is used for drawing the arc and -the current brush is used for drawing the pie. - -{\it x} and {\it y} specify the x and y coordinates of the upper-left corner of the rectangle that contains -the ellipse. - -{\it width} and {\it height} specify the width and height of the rectangle that contains -the ellipse. - -{\it start} and {\it end} specify the start and end of the arc relative to the three-o'clock -position from the center of the rectangle. Angles are specified -in degrees (360 is a complete circle). Positive values mean -counter-clockwise motion. If {\it start} is equal to {\it end}, a -complete ellipse will be drawn. - - -\membersection{wxDC::DrawIcon}\label{wxdcdrawicon} - -\func{void}{DrawIcon}{\param{const wxIcon\&}{ icon}, \param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draw an icon on the display (does nothing if the device context is PostScript). -This can be the simplest way of drawing bitmaps on a window. - - -\membersection{wxDC::DrawLabel}\label{wxdcdrawlabel} - -\func{virtual void}{DrawLabel}{\param{const wxString\&}{ text}, - \param{const wxBitmap\&}{ image}, - \param{const wxRect\&}{ rect}, - \param{int}{ alignment = wxALIGN\_LEFT | wxALIGN\_TOP}, - \param{int}{ indexAccel = -1}, - \param{wxRect *}{rectBounding = NULL}} - -\func{void}{DrawLabel}{\param{const wxString\&}{ text}, \param{const wxRect\&}{ rect}, - \param{int}{ alignment = wxALIGN\_LEFT | wxALIGN\_TOP}, - \param{int}{ indexAccel = -1}} - -Draw optional bitmap and the text into the given rectangle and aligns it as specified -by alignment parameter; it also will emphasize the character with the given index if -it is != -1 and return the bounding rectangle if required. - - -\membersection{wxDC::DrawLine}\label{wxdcdrawline} - -\func{void}{DrawLine}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}} - -Draws a line from the first point to the second. The current pen is used -for drawing the line. Note that the point $(x2, y2)$ is {\emph not} part of the -line and is not drawn by this function (this is consistent with the behaviour -of many other toolkits). - - -\membersection{wxDC::DrawLines}\label{wxdcdrawlines} - -\func{void}{DrawLines}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}} - -Draws lines using an array of {\it points} of size {\it n} -adding the optional offset coordinate. The current pen is -used for drawing the lines. - -\func{void}{DrawLines}{\param{const wxPointList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}} - -This method uses a list of wxPoints, adding the optional offset -coordinate. The programmer is responsible for deleting the list -of points. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\perlnote{The wxPerl version of this method accepts - as its first parameter a reference to an array - of wxPoint objects.} - - -\membersection{wxDC::DrawPolygon}\label{wxdcdrawpolygon} - -\func{void}{DrawPolygon}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -Draws a filled polygon using an array of {\it points} of size {\it n}, -adding the optional offset coordinate. - -\func{void}{DrawPolygon}{\param{const wxPointList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -This method draws a filled polygon using a list of wxPoints, -adding the optional offset coordinate. - -The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the -default) or {\bf wxWINDING\_RULE}. - -The current pen is used for drawing the outline, and the current brush -for filling the shape. Using a transparent brush suppresses filling. -The programmer is responsible for deleting the list of points. - -Note that wxWidgets automatically closes the first and last points. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\perlnote{The wxPerl version of this method accepts - as its first parameter a reference to an array - of wxPoint objects.} - - -\membersection{wxDC::DrawPolyPolygon}\label{wxdcdrawpolypolygon} - -\func{void}{DrawPolyPolygon}{\param{int}{ n}, \param{int}{ count[]}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -Draws two or more filled polygons using an array of {\it points}, adding the -optional offset coordinates. - -Notice that for the platforms providing a native implementation -of this function (Windows and PostScript-based wxDC currently), this is more -efficient than using \helpref{DrawPolygon}{wxdcdrawpolygon} in a loop. - -{\it n} specifies the number of polygons to draw, the array {\it count} of size -{\it n} specifies the number of points in each of the polygons in the -{\it points} array. - -The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the default) -or {\bf wxWINDING\_RULE}. - -The current pen is used for drawing the outline, and the current brush for -filling the shape. Using a transparent brush suppresses filling. - -The polygons maybe disjoint or overlapping. Each polygon specified in a call to -{\bf DrawPolyPolygon} must be closed. Unlike polygons created by the -\helpref{DrawPolygon}{wxdcdrawpolygon} member function, the polygons created by -{\bf DrawPolyPolygon} are not closed automatically. - -\pythonnote{Not implemented yet} - -\perlnote{Not implemented yet} - - -\membersection{wxDC::DrawPoint}\label{wxdcdrawpoint} - -\func{void}{DrawPoint}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draws a point using the color of the current pen. Note that the other properties of the pen are not used, such as width etc.. - - -\membersection{wxDC::DrawRectangle}\label{wxdcdrawrectangle} - -\func{void}{DrawRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Draws a rectangle with the given top left corner, and with the given -size. The current pen is used for the outline and the current brush -for filling the shape. - - -\membersection{wxDC::DrawRotatedText}\label{wxdcdrawrotatedtext} - -\func{void}{DrawRotatedText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{double}{ angle}} - -Draws the text rotated by {\it angle} degrees. - -{\bf NB:} Under Win9x only TrueType fonts can be drawn by this function. In -particular, a font different from {\tt wxNORMAL\_FONT} should be used as the -latter is not a TrueType font. {\tt wxSWISS\_FONT} is an example of a font -which is. - -\wxheading{See also} - -\helpref{DrawText}{wxdcdrawtext} - - -\membersection{wxDC::DrawRoundedRectangle}\label{wxdcdrawroundedrectangle} - -\func{void}{DrawRoundedRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, \param{double}{ radius}} - -Draws a rectangle with the given top left corner, and with the given -size. The corners are quarter-circles using the given radius. The -current pen is used for the outline and the current brush for filling -the shape. - -If {\it radius} is positive, the value is assumed to be the -radius of the rounded corner. If {\it radius} is negative, -the absolute value is assumed to be the {\it proportion} of the smallest -dimension of the rectangle. This means that the corner can be -a sensible size relative to the size of the rectangle, and also avoids -the strange effects X produces when the corners are too big for -the rectangle. - - -\membersection{wxDC::DrawSpline}\label{wxdcdrawspline} - -\func{void}{DrawSpline}{\param{int }{n}, \param{wxPoint }{points[]}} - -Draws a spline between all given control points, using the current -pen. - -\func{void}{DrawSpline}{\param{const wxPointList *}{points}} - -Draws a spline between all given control points. - -\func{void}{DrawSpline}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ x3}, \param{wxCoord}{ y3}} - -Draws a three-point spline using the current pen. - -\pythonnote{The wxPython version of this method accepts a Python list -of wxPoint objects.} - -\perlnote{The wxPerl version of this method accepts a reference to an array - of wxPoint objects.} - - -\membersection{wxDC::DrawText}\label{wxdcdrawtext} - -\func{void}{DrawText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draws a text string at the specified point, using the current text font, -and the current text foreground and background colours. - -The coordinates refer to the top-left corner of the rectangle bounding -the string. See \helpref{wxDC::GetTextExtent}{wxdcgettextextent} for how -to get the dimensions of a text string, which can be used to position the -text more precisely. - -{\bf NB:} under wxGTK the current -\helpref{logical function}{wxdcgetlogicalfunction} is used by this function -but it is ignored by wxMSW. Thus, you should avoid using logical functions -with this function in portable programs. - -\begin{comment} - -\membersection{wxDC::EnableCache}\label{wxdcenablecache} - -\func{static void}{EnableCache}{\param{bool}{ enableCache}} - -On supported platforms (currently only Windows), enables the DC cache -which can speed up the \helpref{Blit}{wxdcblit} operation when -drawing a large number of masked bitmaps. - -If using the cache functions in your code, please test for the -wxUSE\_DC\_CACHEING preprocessor symbol for portability. - -\wxheading{See also} - -\helpref{wxDC::CacheEnabled}{wxdccacheenabled}, \helpref{wxDC::ClearCache} -\end{comment} - - -\membersection{wxDC::EndDoc}\label{wxdcenddoc} - -\func{void}{EndDoc}{\void} - -Ends a document (only relevant when outputting to a printer). - - -\membersection{wxDC::EndPage}\label{wxdcendpage} - -\func{void}{EndPage}{\void} - -Ends a document page (only relevant when outputting to a printer). - - -\membersection{wxDC::FloodFill}\label{wxdcfloodfill} - -\func{bool}{FloodFill}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{const wxColour\&}{ colour}, \param{int}{ style=wxFLOOD\_SURFACE}} - -Flood fills the device context starting from the given point, using -the {\it current brush colour}, and using a style: - -\begin{itemize}\itemsep=0pt -\item wxFLOOD\_SURFACE: the flooding occurs until a colour other than the given colour is encountered. -\item wxFLOOD\_BORDER: the area to be flooded is bounded by the given colour. -\end{itemize} - -Returns false if the operation failed. - -{\it Note:} The present implementation for non-Windows platforms may fail to find -colour borders if the pixels do not match the colour exactly. However the -function will still return true. - - -\membersection{wxDC::GetBackground}\label{wxdcgetbackground} - -\constfunc{const wxBrush\&}{GetBackground}{\void} - -Gets the brush used for painting the background (see \helpref{wxDC::SetBackground}{wxdcsetbackground}). - - -\membersection{wxDC::GetBackgroundMode}\label{wxdcgetbackgroundmode} - -\constfunc{int}{GetBackgroundMode}{\void} - -Returns the current background mode: {\tt wxSOLID} or {\tt wxTRANSPARENT}. - -\wxheading{See also} - -\helpref{SetBackgroundMode}{wxdcsetbackgroundmode} - - -\membersection{wxDC::GetBrush}\label{wxdcgetbrush} - -\constfunc{const wxBrush\&}{GetBrush}{\void} - -Gets the current brush (see \helpref{wxDC::SetBrush}{wxdcsetbrush}). - - -\membersection{wxDC::GetCharHeight}\label{wxdcgetcharheight} - -\func{wxCoord}{GetCharHeight}{\void} - -Gets the character height of the currently set font. - - -\membersection{wxDC::GetCharWidth}\label{wxdcgetcharwidth} - -\func{wxCoord}{GetCharWidth}{\void} - -Gets the average character width of the currently set font. - - -\membersection{wxDC::GetClippingBox}\label{wxdcgetclippingbox} - -\func{void}{GetClippingBox}{\param{wxCoord}{ *x}, \param{wxCoord}{ *y}, \param{wxCoord}{ *width}, \param{wxCoord}{ *height}} - -Gets the rectangle surrounding the current clipping region. - -\pythonnote{No arguments are required and the four values defining the -rectangle are returned as a tuple.} - -\perlnote{This method takes no arguments and returns a four element list -{\tt ( x, y, width, height )}} - - -\membersection{wxDC::GetDepth}\label{wxdcgetdepth} - -\constfunc{int}{GetDepth}{\void} - -Returns the depth (number of bits/pixel) of this DC. - -\wxheading{See also} - -\helpref{wxDisplayDepth}{wxdisplaydepth} - - -\membersection{wxDC::GetFont}\label{wxdcgetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Gets the current font. Notice that even although each device context object has -some default font after creation, this method would return a \texttt{wxNullFont} -initially and only after calling \helpref{wxDC::SetFont}{wxdcsetfont} a valid -font is returned. - - -\membersection{wxDC::GetLayoutDirection}\label{wxdcgetlayoutdirection} - -\constfunc{wxLayoutDirection}{GetLayoutDirection}{\void} - -Gets the current layout direction of the device context. On platforms where RTL layout -is supported, the return value will either be \texttt{wxLayout\_LeftToRight} or -\texttt{wxLayout\_RightToLeft}. If RTL layout is not supported, the return value will -be \texttt{wxLayout\_Default}. - -\wxheading{See also} - -\helpref{SetLayoutDirection}{wxdcsetlayoutdirection} - - -\membersection{wxDC::GetLogicalFunction}\label{wxdcgetlogicalfunction} - -\func{int}{GetLogicalFunction}{\void} - -Gets the current logical function (see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}). - - -\membersection{wxDC::GetMapMode}\label{wxdcgetmapmode} - -\func{int}{GetMapMode}{\void} - -Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}). - - -\membersection{wxDC::GetMultiLineTextExtent}\label{wxdcgetmultilinetextextent} - -\constfunc{void}{GetMultiLineTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w},\\ - \param{wxCoord *}{h}, \param{wxCoord *}{heightLine = NULL}, \param{wxFont *}{font = NULL}} - -\constfunc{wxSize}{GetMultiLineTextExtent}{\param{const wxString\& }{string}} - -Gets the dimensions of the string using the currently selected font. -\rtfsp{\it string} is the text string to measure, {\it heightLine}, if non NULL, -is where to store the height of a single line. - -The text extent is returned in {\it w} and {\it h} pointers (first form) or as -a \helpref{wxSize}{wxsize} object (second form). - -If the optional parameter {\it font} is specified and valid, then it is used -for the text extent calculation. Otherwise the currently selected font is. - -Note that this function works both with single-line and multi-line strings. - -\wxheading{See also} - -\helpref{wxFont}{wxfont},\rtfsp -\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp -\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp -\helpref{wxDC::GetTextExtent}{wxdcgettextextent} - - -\membersection{wxDC::GetPartialTextExtents}\label{wxdcgetpartialtextextents} - -\constfunc{bool}{GetPartialTextExtents}{\param{const wxString\& }{text}, -\param{wxArrayInt\& }{widths}} - -Fills the {\it widths} array with the widths from the beginning of -{\it text} to the corresponding character of {\it text}. The generic -version simply builds a running total of the widths of each character -using \helpref{GetTextExtent}{wxdcgettextextent}, however if the -various platforms have a native API function that is faster or more -accurate than the generic implementation then it should be used -instead. - -\wxheading{See also} - -\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent},\rtfsp -\helpref{wxDC::GetTextExtent}{wxdcgettextextent} - -\pythonnote{This method only takes the {\it text} parameter and - returns a Python list of integers.} - - -\membersection{wxDC::GetPen}\label{wxdcgetpen} - -\constfunc{const wxPen\&}{GetPen}{\void} - -Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}). - - -\membersection{wxDC::GetPixel}\label{wxdcgetpixel} - -\func{bool}{GetPixel}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxColour *}{colour}} - -Gets in {\it colour} the colour at the specified location. -Not available for wxPostScriptDC or wxMetafileDC. - -Note that setting a pixel can be done using \helpref{DrawPoint}{wxdcdrawpoint}. - -\pythonnote{For wxPython the wxColour value is returned and is not -required as a parameter.} - -\perlnote{This method only takes the parameters {\tt x} and {\tt y} and returns -a Wx::Colour value} - -\membersection{wxDC::GetPPI}\label{wxdcgetppi} - -\constfunc{wxSize}{GetPPI}{\void} - -Returns the resolution of the device in pixels per inch. - -\membersection{wxDC::GetSize}\label{wxdcgetsize} - -\constfunc{void}{GetSize}{\param{wxCoord *}{width}, \param{wxCoord *}{height}} - -\constfunc{wxSize}{GetSize}{\void} - -This gets the horizontal and vertical resolution in device units. It can be used to scale graphics to fit the page. -For example, if {\it maxX} and {\it maxY}\rtfsp -represent the maximum horizontal and vertical `pixel' values used in your -application, the following code will scale the graphic to fit on the -printer page: - -\begin{verbatim} - wxCoord w, h; - dc.GetSize(&w, &h); - double scaleX=(double)(maxX/w); - double scaleY=(double)(maxY/h); - dc.SetUserScale(min(scaleX,scaleY),min(scaleX,scaleY)); -\end{verbatim} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetSize()}}{Returns a wxSize} -\twocolitem{{\bf GetSizeTuple()}}{Returns a 2-tuple (width, height)} -\end{twocollist}} -} - -\perlnote{In place of a single overloaded method, wxPerl uses:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetSize()}}{Returns a Wx::Size} -\twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list - {\tt ( width, height )}} -\end{twocollist} -}} - -\membersection{wxDC::GetSizeMM}\label{wxdcgetsizemm} - -\constfunc{void}{GetSizeMM}{\param{wxCoord *}{width}, \param{wxCoord *}{height}} - -\constfunc{wxSize}{GetSizeMM}{\void} - -Returns the horizontal and vertical resolution in millimetres. - -\membersection{wxDC::GetTextBackground}\label{wxdcgettextbackground} - -\constfunc{const wxColour\&}{GetTextBackground}{\void} - -Gets the current text background colour (see \helpref{wxDC::SetTextBackground}{wxdcsettextbackground}). - - -\membersection{wxDC::GetTextExtent}\label{wxdcgettextextent} - -\constfunc{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\ - \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{const wxFont *}{font = NULL}} - -\constfunc{wxSize}{GetTextExtent}{\param{const wxString\& }{string}} - -Gets the dimensions of the string using the currently selected font. -\rtfsp{\it string} is the text string to measure, {\it descent} is the -dimension from the baseline of the font to the bottom of the -descender, and {\it externalLeading} is any extra vertical space added -to the font by the font designer (usually is zero). - -The text extent is returned in {\it w} and {\it h} pointers (first form) or as -a \helpref{wxSize}{wxsize} object (second form). - -If the optional parameter {\it font} is specified and valid, then it is used -for the text extent calculation. Otherwise the currently selected font is. - -Note that this function only works with single-line strings. - -\wxheading{See also} - -\helpref{wxFont}{wxfont},\rtfsp -\helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp -\helpref{wxDC::GetPartialTextExtents}{wxdcgetpartialtextextents},\rtfsp -\helpref{wxDC::GetMultiLineTextExtent}{wxdcgetmultilinetextextent} - -\pythonnote{The following methods are implemented in wxPython:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetTextExtent(string)}}{Returns a 2-tuple, (width, height)} -\twocolitem{{\bf GetFullTextExtent(string, font=NULL)}}{Returns a -4-tuple, (width, height, descent, externalLeading) } -\end{twocollist}} -} - -\perlnote{In wxPerl this method is implemented as - {\bf GetTextExtent( string, font = undef )} returning a four element - array {\tt ( width, height, descent, externalLeading )} -} - - -\membersection{wxDC::GetTextForeground}\label{wxdcgettextforeground} - -\constfunc{const wxColour\&}{GetTextForeground}{\void} - -Gets the current text foreground colour (see \helpref{wxDC::SetTextForeground}{wxdcsettextforeground}). - - -\membersection{wxDC::GetUserScale}\label{wxdcgetuserscale} - -\func{void}{GetUserScale}{\param{double}{ *x}, \param{double}{ *y}} - -Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetuserscale}). - -\perlnote{In wxPerl this method takes no arguments and return a two element - array {\tt ( x, y )}} - - -\membersection{wxDC::GradientFillConcentric}\label{wxdcgradientfillconcentric} - -\func{void}{GradientFillConcentric}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}} - -\func{void}{GradientFillConcentric}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}, \param{const wxPoint\& }{circleCenter}} - -Fill the area specified by rect with a radial gradient, starting from -\arg{initialColour} at the centre of the circle and fading to \arg{destColour} -on the circle outside. - -\arg{circleCenter} are the relative coordinates of centre of the circle in -the specified \arg{rect}. If not specified, the cercle is placed at the -centre of rect. - -\textbf{Note: } Currently this function is very slow, don't use it for -real-time drawing. - - -\membersection{wxDC::GradientFillLinear}\label{wxdcgradientfilllinear} - -\func{void}{GradientFillLinear}{\param{const wxRect\&}{ rect}, \param{const wxColour\&}{ initialColour}, \param{const wxColour\&}{ destColour}, \param{wxDirection}{ nDirection = wxEAST}} - -Fill the area specified by \arg{rect} with a linear gradient, starting from -\arg{initialColour} and eventually fading to \arg{destColour}. The -\arg{nDirection} specifies the direction of the colour change, default is to -use \arg{initialColour} on the left part of the rectangle and -\arg{destColour} on the right one. - - -\membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex} - -\func{virtual wxCoord}{LogicalToDeviceX}{\param{wxCoord}{ x}} - -Converts logical X coordinate to device coordinate, using the current -mapping mode. - - -\membersection{wxDC::LogicalToDeviceXRel}\label{wxdclogicaltodevicexrel} - -\func{virtual wxCoord}{LogicalToDeviceXRel}{\param{wxCoord}{ x}} - -Converts logical X coordinate to relative device coordinate, using the current -mapping mode but ignoring the x axis orientation. -Use this for converting a width, for example. - - -\membersection{wxDC::LogicalToDeviceY}\label{wxdclogicaltodevicey} - -\func{virtual wxCoord}{LogicalToDeviceY}{\param{wxCoord}{ y}} - -Converts logical Y coordinate to device coordinate, using the current -mapping mode. - - -\membersection{wxDC::LogicalToDeviceYRel}\label{wxdclogicaltodeviceyrel} - -\func{virtual wxCoord}{LogicalToDeviceYRel}{\param{wxCoord}{ y}} - -Converts logical Y coordinate to relative device coordinate, using the current -mapping mode but ignoring the y axis orientation. -Use this for converting a height, for example. - - -\membersection{wxDC::MaxX}\label{wxdcmaxx} - -\func{wxCoord}{MaxX}{\void} - -Gets the maximum horizontal extent used in drawing commands so far. - - -\membersection{wxDC::MaxY}\label{wxdcmaxy} - -\func{wxCoord}{MaxY}{\void} - -Gets the maximum vertical extent used in drawing commands so far. - - -\membersection{wxDC::MinX}\label{wxdcminx} - -\func{wxCoord}{MinX}{\void} - -Gets the minimum horizontal extent used in drawing commands so far. - - -\membersection{wxDC::MinY}\label{wxdcminy} - -\func{wxCoord}{MinY}{\void} - -Gets the minimum vertical extent used in drawing commands so far. - - -\membersection{wxDC::IsOk}\label{wxdcisok} - -\func{bool}{Ok}{\void} - -Returns true if the DC is ok to use. - - -\membersection{wxDC::ResetBoundingBox}\label{wxdcresetboundingbox} - -\func{void}{ResetBoundingBox}{\void} - -Resets the bounding box: after a call to this function, the bounding box -doesn't contain anything. - -\wxheading{See also} - -\helpref{CalcBoundingBox}{wxdccalcboundingbox} - - -\membersection{wxDC::SetAxisOrientation}\label{wxdcsetaxisorientation} - -\func{void}{SetAxisOrientation}{\param{bool}{ xLeftRight}, - \param{bool}{ yBottomUp}} - -Sets the x and y axis orientation (i.e., the direction from lowest to -highest values on the axis). The default orientation is -x axis from left to right and y axis from top down. - -\wxheading{Parameters} - -\docparam{xLeftRight}{True to set the x axis orientation to the natural -left to right orientation, false to invert it.} - -\docparam{yBottomUp}{True to set the y axis orientation to the natural -bottom up orientation, false to invert it.} - - -\membersection{wxDC::SetBackground}\label{wxdcsetbackground} - -\func{void}{SetBackground}{\param{const wxBrush\& }{brush}} - -Sets the current background brush for the DC. - - -\membersection{wxDC::SetBackgroundMode}\label{wxdcsetbackgroundmode} - -\func{void}{SetBackgroundMode}{\param{int}{ mode}} - -{\it mode} may be one of wxSOLID and wxTRANSPARENT. This setting determines -whether text will be drawn with a background colour or not. - - -\membersection{wxDC::SetBrush}\label{wxdcsetbrush} - -\func{void}{SetBrush}{\param{const wxBrush\& }{brush}} - -Sets the current brush for the DC. - -If the argument is wxNullBrush, the current brush is selected out of the device -context (leaving wxDC without any valid brush), allowing the current brush to -be destroyed safely. - -See also \helpref{wxBrush}{wxbrush}. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - - -\membersection{wxDC::SetClippingRegion}\label{wxdcsetclippingregion} - -\func{void}{SetClippingRegion}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{SetClippingRegion}{\param{const wxPoint\& }{pt}, \param{const wxSize\& }{sz}} - -\func{void}{SetClippingRegion}{\param{const wxRect\&}{ rect}} - -\func{void}{SetClippingRegion}{\param{const wxRegion\&}{ region}} - -Sets the clipping region for this device context to the intersection of the -given region described by the parameters of this method and the previously set -clipping region. You should call -\helpref{DestroyClippingRegion}{wxdcdestroyclippingregion} if you want to set -the clipping region exactly to the region specified. - -The clipping region is an area to which drawing is restricted. Possible uses -for the clipping region are for clipping text or for speeding up window redraws -when only a known area of the screen is damaged. - -\wxheading{See also} - -\helpref{wxDC::DestroyClippingRegion}{wxdcdestroyclippingregion}, \helpref{wxRegion}{wxregion} - - -\membersection{wxDC::SetDeviceOrigin}\label{wxdcsetdeviceorigin} - -\func{void}{SetDeviceOrigin}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Sets the device origin (i.e., the origin in pixels after scaling has been -applied). - -This function may be useful in Windows printing -operations for placing a graphic on a page. - - -\membersection{wxDC::SetFont}\label{wxdcsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the current font for the DC. It must be a valid font, in particular you -should not pass {\tt wxNullFont} to this method. - -See also \helpref{wxFont}{wxfont}. - - -\membersection{wxDC::SetLayoutDirection}\label{wxdcsetlayoutdirection} - -\func{void}{SetLayoutDirection}{\param{wxLayoutDirection}{ dir}} - -Sets the current layout direction for the device context. \arg{dir} may be either -\texttt{wxLayout\_Default}, \texttt{wxLayout\_LeftToRight} or \texttt{wxLayout\_RightToLeft}. - -\wxheading{See also} - -\helpref{GetLayoutDirection}{wxdcgetlayoutdirection} - - -\membersection{wxDC::SetLogicalFunction}\label{wxdcsetlogicalfunction} - -\func{void}{SetLogicalFunction}{\param{int}{ function}} - -Sets the current logical function for the device context. This determines how -a source pixel (from a pen or brush colour, or source device context if -using \helpref{wxDC::Blit}{wxdcblit}) combines with a destination pixel in the -current device context. - -The possible values -and their meaning in terms of source and destination pixel values are -as follows: - -\begin{verbatim} -wxAND src AND dst -wxAND_INVERT (NOT src) AND dst -wxAND_REVERSE src AND (NOT dst) -wxCLEAR 0 -wxCOPY src -wxEQUIV (NOT src) XOR dst -wxINVERT NOT dst -wxNAND (NOT src) OR (NOT dst) -wxNOR (NOT src) AND (NOT dst) -wxNO_OP dst -wxOR src OR dst -wxOR_INVERT (NOT src) OR dst -wxOR_REVERSE src OR (NOT dst) -wxSET 1 -wxSRC_INVERT NOT src -wxXOR src XOR dst -\end{verbatim} - -The default is wxCOPY, which simply draws with the current colour. -The others combine the current colour and the background using a -logical operation. wxINVERT is commonly used for drawing rubber bands or -moving outlines, since drawing twice reverts to the original colour. - - -\membersection{wxDC::SetMapMode}\label{wxdcsetmapmode} - -\func{void}{SetMapMode}{\param{int}{ int}} - -The {\it mapping mode} of the device context defines the unit of -measurement used to convert logical units to device units. Note that -in X, text drawing isn't handled consistently with the mapping mode; a -font is always specified in point size. However, setting the {\it -user scale} (see \helpref{wxDC::SetUserScale}{wxdcsetuserscale}) scales the text appropriately. In -Windows, scalable TrueType fonts are always used; in X, results depend -on availability of fonts, but usually a reasonable match is found. - -The coordinate origin is always at the top left of the screen/printer. - -Drawing to a Windows printer device context uses the current mapping mode, -but mapping mode is currently ignored for PostScript output. - -The mapping mode can be one of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxMM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of - an inch.} -\twocolitem{wxMM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.} -\twocolitem{wxMM\_METRIC}{Each logical unit is 1 mm.} -\twocolitem{wxMM\_LOMETRIC}{Each logical unit is 1/10 of a mm.} -\twocolitem{wxMM\_TEXT}{Each logical unit is 1 device pixel.} -\end{twocollist} - - -\membersection{wxDC::SetPalette}\label{wxdcsetpalette} - -\func{void}{SetPalette}{\param{const wxPalette\& }{palette}} - -If this is a window DC or memory DC, assigns the given palette to the window -or bitmap associated with the DC. If the argument is wxNullPalette, the current -palette is selected out of the device context, and the original palette -restored. - -See \helpref{wxPalette}{wxpalette} for further details. - - -\membersection{wxDC::SetPen}\label{wxdcsetpen} - -\func{void}{SetPen}{\param{const wxPen\& }{pen}} - -Sets the current pen for the DC. - -If the argument is wxNullPen, the current pen is selected out of the device -context (leaving wxDC without any valid pen), allowing the current brush to -be destroyed safely. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - - -\membersection{wxDC::SetTextBackground}\label{wxdcsettextbackground} - -\func{void}{SetTextBackground}{\param{const wxColour\& }{colour}} - -Sets the current text background colour for the DC. - - -\membersection{wxDC::SetTextForeground}\label{wxdcsettextforeground} - -\func{void}{SetTextForeground}{\param{const wxColour\& }{colour}} - -Sets the current text foreground colour for the DC. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - - -\membersection{wxDC::SetUserScale}\label{wxdcsetuserscale} - -\func{void}{SetUserScale}{\param{double}{ xScale}, \param{double}{ yScale}} - -Sets the user scaling factor, useful for applications which require -`zooming'. - - -\membersection{wxDC::StartDoc}\label{wxdcstartdoc} - -\func{bool}{StartDoc}{\param{const wxString\& }{message}} - -Starts a document (only relevant when outputting to a printer). -Message is a message to show while printing. - - -\membersection{wxDC::StartPage}\label{wxdcstartpage} - -\func{bool}{StartPage}{\void} - -Starts a document page (only relevant when outputting to a printer). - - -\membersection{wxDC::StretchBlit}\label{wxdcstretchblit} - -\func{bool}{StretchBlit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ dstWidth}, \param{wxCoord}{ dstHeight}, - \param{wxDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{wxCoord}{ srcWidth}, \param{wxCoord}{ srcHeight}, - \param{int}{ logicalFunc = wxCOPY}, \param{bool }{useMask = false}, \param{wxCoord}{ xsrcMask = -1}, \param{wxCoord}{ ysrcMask = -1}} - -Copy from a source DC to this DC, specifying the destination -coordinates, destination size, source DC, source coordinates, -size of source area to copy, logical function, whether to use a bitmap mask, -and mask source position. - -\wxheading{Parameters} - -\docparam{xdest}{Destination device context x position.} - -\docparam{ydest}{Destination device context y position.} - -\docparam{dstWidth}{Width of destination area.} - -\docparam{dstHeight}{Height of destination area.} - -\docparam{source}{Source device context.} - -\docparam{xsrc}{Source device context x position.} - -\docparam{ysrc}{Source device context y position.} - -\docparam{srcWidth}{Width of source area to be copied.} - -\docparam{srcHeight}{Height of source area to be copied.} - -\docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.} - -\docparam{useMask}{If true, Blit does a transparent blit using the mask that is associated with the bitmap -selected into the source device context. The Windows implementation does the following if \texttt{MaskBlt} cannot be used: - -\begin{enumerate} -\item Creates a temporary bitmap and copies the destination area into it. -\item Copies the source area into the temporary bitmap using the specified logical function. -\item Sets the masked area in the temporary bitmap to BLACK by ANDing the -mask bitmap with the temp bitmap with the foreground colour set to WHITE -and the background colour set to BLACK. -\item Sets the unmasked area in the destination area to BLACK by ANDing the -mask bitmap with the destination area with the foreground colour set to BLACK -and the background colour set to WHITE. -\item ORs the temporary bitmap with the destination area. -\item Deletes the temporary bitmap. -\end{enumerate} - -This sequence of operations ensures that the source's transparent area need not be black, -and logical functions are supported. - -{\bf Note:} on Windows, blitting with masks can be speeded up considerably by compiling -wxWidgets with the \texttt{wxUSE\_DC\_CACHE} option enabled. You can also influence whether \texttt{MaskBlt} -or the explicit mask blitting code above is used, by using \helpref{wxSystemOptions}{wxsystemoptions} and -setting the {\bf no-maskblt} option to 1. - -} - -\docparam{xsrcMask}{Source x position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc -will be assumed for the mask source position. Currently only implemented on Windows.} - -\docparam{ysrcMask}{Source y position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc -will be assumed for the mask source position. Currently only implemented on Windows.} - - -\wxheading{Remarks} - -There is partial support for Blit in wxPostScriptDC, under X. - -wxDC::StretchBlit is only implemented under wxMAC and wxMSW. - -See \helpref{wxMemoryDC}{wxmemorydc} for typical usage. - -\newsince{2.9.0} - -\wxheading{See also} - -\helpref{wxDC::Blit}{wxdcblit}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask} - diff --git a/docs/latex/wx/dcclipper.tex b/docs/latex/wx/dcclipper.tex deleted file mode 100644 index 1f2d3e5e84..0000000000 --- a/docs/latex/wx/dcclipper.tex +++ /dev/null @@ -1,66 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dcclipper.tex -%% Purpose: wxDCClipper documentation -%% Author: Vadim Zeitlin -%% Created: 2006-04-10 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDCClipper}}\label{wxdcclipper} - -wxDCClipper is a small helper class for setting a clipping region on a -\helpref{wxDC}{wxdc} and unsetting it automatically. An object of wxDCClipper -class is typically created on the stack so that it is automatically destroyed -when the object goes out of scope. A typical usage example: - -\begin{verbatim} - void MyFunction(wxDC& dc) - { - wxDCClipper clip(rect); - ... drawing functions here are affected by clipping rect ... - } - - void OtherFunction() - { - wxDC dc; - MyFunction(dc); - ... drawing functions here are not affected by clipping rect ... - } -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC::SetClippingRegion}{wxdcsetclippingregion} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDCClipper::wxDCClipper}\label{wxdcclipperctor} - -\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{const wxRegion\& }{r}} - -\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}} - -\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}} - -Sets the clipping region to the specified region \arg{r} or rectangle specified -by either a single \arg{rect} parameter or its position (\arg{x} and \arg{y}) -and size (\arg{w} ad \arg{h}). - -The clipping region is automatically unset when this object is destroyed. - diff --git a/docs/latex/wx/dcsvg.tex b/docs/latex/wx/dcsvg.tex deleted file mode 100644 index 6498cf5843..0000000000 --- a/docs/latex/wx/dcsvg.tex +++ /dev/null @@ -1,708 +0,0 @@ -\section{\class{wxSVGFileDC}}\label{wxsvgfiledc} - -A wxSVGFileDC is a {\it device context} onto which graphics and text can be drawn, and the output -produced as a vector file, in the SVG format -(see \urlref{W3C specifications}{http://www.w3.org/TR/2001/REC-SVG-20010904/}). -This format can be read by a range of programs, including a Netscape plugin (Adobe), full details -in the \urlref{SVG Implementation and Resource Directory}{http://www.svgi.org}. -Vector formats may often be smaller than raster formats. - -The intention behind wxSVGFileDC is that it can be used to produce a file corresponding -to the screen display context, wxSVGFileDC, by passing the wxSVGFileDC as a parameter instead of a wxSVGFileDC. Thus the wxSVGFileDC is a write-only class. - -As the wxSVGFileDC is a vector format, raster operations like GetPixel are unlikely to be supported. -However, the SVG specification allows for PNG format raster files to be embedded in the SVG, and so -bitmaps, icons and blit operations into the wxSVGFileDC are supported. - -A more substantial SVG library (for reading and writing) is available at the -\urlref{wxArt2D website}{http://wxart2d.sourceforge.net/}. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -%\helpref{Overview}{dcoverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSVGFileDC::wxSVGFileDC}\label{wxsvgfiledcctor} - -\func{}{wxSVGFileDC}{\param{wxString}{ f}} - -\func{}{wxSVGFileDC}{\param{wxString}{ f}, \param{int}{ Width},\param{int}{ Height}} - -\func{}{wxSVGFileDC}{\param{wxString}{ f}, \param{int}{ Width},\param{int}{ Height},\param{float}{ dpi}} - -Constructors: -a filename {\it f} with default size 340x240 at 72.0 dots per inch (a frequent screen resolution). -a filename {\it f} with size {\it Width} by {\it Height} at 72.0 dots per inch -a filename {\it f} with size {\it Width} by {\it Height} at {\it dpi} resolution. - -\membersection{wxSVGFileDC::\destruct{wxSVGFileDC}}\label{wxsvgfiledcdtor} - -\func{}{\destruct{wxSVGFileDC}}{\void} - -Destructor. - -\membersection{wxSVGFileDC::BeginDrawing}\label{wxsvgfiledcbegindrawing} - -Does nothing - -\membersection{wxSVGFileDC::Blit}\label{wxsvgfiledcblit} - -\func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, - \param{wxSVGFileDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{int}{ logicalFunc = wxCOPY}, - \param{bool }{useMask = FALSE}, \param{wxCoord}{ xsrcMask = -1}, \param{wxCoord}{ ysrcMask = -1}} - -As wxDC: Copy from a source DC to this DC, specifying the destination -coordinates, size of area to copy, source DC, source coordinates, -logical function, whether to use a bitmap mask, and mask source position. - -\membersection{wxSVGFileDC::CalcBoundingBox}\label{wxsvgfiledccalcboundingbox} - -\func{void}{CalcBoundingBox}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Adds the specified point to the bounding box which can be retrieved with -\helpref{MinX}{wxdcminx}, \helpref{MaxX}{wxdcmaxx} and -\helpref{MinY}{wxdcminy}, \helpref{MaxY}{wxdcmaxy} functions. - - -\membersection{wxSVGFileDC::Clear}\label{wxsvgfiledcclear} - -\func{void}{Clear}{\void} - -This makes no sense in wxSVGFileDC and does nothing - - -\membersection{wxSVGFileDC::CrossHair}\label{wxsvgfiledccrosshair} - -\func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Not Implemented - -\membersection{wxSVGFileDC::DestroyClippingRegion}\label{wxsvgfiledcdestroyclippingregion} - -\func{void}{DestroyClippingRegion}{\void} - -Not Implemented - -\membersection{wxSVGFileDC::DeviceToLogicalX}\label{wxsvgfiledcdevicetologicalx} - -\func{wxCoord}{DeviceToLogicalX}{\param{wxCoord}{ x}} - -Convert device X coordinate to logical coordinate, using the current -mapping mode. - -\membersection{wxSVGFileDC::DeviceToLogicalXRel}\label{wxsvgfiledcdevicetologicalxrel} - -\func{wxCoord}{DeviceToLogicalXRel}{\param{wxCoord}{ x}} - -Convert device X coordinate to relative logical coordinate, using the current -mapping mode but ignoring the x axis orientation. -Use this function for converting a width, for example. - -\membersection{wxSVGFileDC::DeviceToLogicalY}\label{wxsvgfiledcdevicetologicaly} - -\func{wxCoord}{DeviceToLogicalY}{\param{wxCoord}{ y}} - -Converts device Y coordinate to logical coordinate, using the current -mapping mode. - -\membersection{wxSVGFileDC::DeviceToLogicalYRel}\label{wxsvgfiledcdevicetologicalyrel} - -\func{wxCoord}{DeviceToLogicalYRel}{\param{wxCoord}{ y}} - -Convert device Y coordinate to relative logical coordinate, using the current -mapping mode but ignoring the y axis orientation. -Use this function for converting a height, for example. - -\membersection{wxSVGFileDC::DrawArc}\label{wxsvgfiledcdrawarc} - -\func{void}{DrawArc}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ xc}, \param{wxCoord}{ yc}} - -Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1}) -and ending at ({\it x2, y2}). The current pen is used for the outline -and the current brush for filling the shape. - -The arc is drawn in an anticlockwise direction from the start point to the end point. - -\membersection{wxSVGFileDC::DrawBitmap}\label{wxsvgfiledcdrawbitmap} - -\func{void}{DrawBitmap}{\param{const wxBitmap\&}{ bitmap}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{bool}{ transparent}} - -Draw a bitmap on the device context at the specified point. If {\it transparent} is true and the bitmap has -a transparency mask, the bitmap will be drawn transparently. - -When drawing a mono-bitmap, the current text foreground colour will be used to draw the foreground -of the bitmap (all bits set to 1), and the current text background colour to draw the background -(all bits set to 0). See also \helpref{SetTextForeground}{wxdcsettextforeground}, -\helpref{SetTextBackground}{wxdcsettextbackground} and \helpref{wxMemoryDC}{wxmemorydc}. - -\membersection{wxSVGFileDC::DrawCheckMark}\label{wxsvgfiledcdrawcheckmark} - -\func{void}{DrawCheckMark}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{DrawCheckMark}{\param{const wxRect \&}{rect}} - -Draws a check mark inside the given rectangle. - -\membersection{wxSVGFileDC::DrawCircle}\label{wxsvgfiledcdrawcircle} - -\func{void}{DrawCircle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ radius}} - -\func{void}{DrawCircle}{\param{const wxPoint\&}{ pt}, \param{wxCoord}{ radius}} - -Draws a circle with the given centre and radius. - -\wxheading{See also} - -\helpref{DrawEllipse}{wxdcdrawellipse} - -\membersection{wxSVGFileDC::DrawEllipse}\label{wxsvgfiledcdrawellipse} - -\func{void}{DrawEllipse}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{DrawEllipse}{\param{const wxPoint\&}{ pt}, \param{const wxSize\&}{ size}} - -\func{void}{DrawEllipse}{\param{const wxRect\&}{ rect}} - -Draws an ellipse contained in the rectangle specified either with the given top -left corner and the given size or directly. The current pen is used for the -outline and the current brush for filling the shape. - -\wxheading{See also} - -\helpref{DrawCircle}{wxdcdrawcircle} - -\membersection{wxSVGFileDC::DrawEllipticArc}\label{wxsvgfiledcdrawellipticarc} - -\func{void}{DrawEllipticArc}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, - \param{double}{ start}, \param{double}{ end}} - -Draws an arc of an ellipse. The current pen is used for drawing the arc and -the current brush is used for drawing the pie. - -{\it x} and {\it y} specify the x and y coordinates of the upper-left corner of the rectangle that contains -the ellipse. - -{\it width} and {\it height} specify the width and height of the rectangle that contains -the ellipse. - -{\it start} and {\it end} specify the start and end of the arc relative to the three-o'clock -position from the center of the rectangle. Angles are specified -in degrees (360 is a complete circle). Positive values mean -counter-clockwise motion. If {\it start} is equal to {\it end}, a -complete ellipse will be drawn. - -\membersection{wxSVGFileDC::DrawIcon}\label{wxsvgfiledcdrawicon} - -\func{void}{DrawIcon}{\param{const wxIcon\&}{ icon}, \param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draw an icon on the display (does nothing if the device context is PostScript). -This can be the simplest way of drawing bitmaps on a window. - -\membersection{wxSVGFileDC::DrawLine}\label{wxsvgfiledcdrawline} - -\func{void}{DrawLine}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}} - -Draws a line from the first point to the second. The current pen is used -for drawing the line. - -\membersection{wxSVGFileDC::DrawLines}\label{wxsvgfiledcdrawlines} - -\func{void}{DrawLines}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}} - -\func{void}{DrawLines}{\param{wxList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}} - -Draws lines using an array of {\it points} of size {\it n}, or list of -pointers to points, adding the optional offset coordinate. The current -pen is used for drawing the lines. The programmer is responsible for -deleting the list of points. - -\membersection{wxSVGFileDC::DrawPolygon}\label{wxsvgfiledcdrawpolygon} - -\func{void}{DrawPolygon}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -\func{void}{DrawPolygon}{\param{wxList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\ - \param{int }{fill\_style = wxODDEVEN\_RULE}} - -Draws a filled polygon using an array of {\it points} of size {\it n}, -or list of pointers to points, adding the optional offset coordinate. - -The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the -default) or {\bf wxWINDING\_RULE}. - -The current pen is used for drawing the outline, and the current brush -for filling the shape. Using a transparent brush suppresses filling. -The programmer is responsible for deleting the list of points. - -Note that wxWindows automatically closes the first and last points. - - -\membersection{wxSVGFileDC::DrawPoint}\label{wxsvgfiledcdrawpoint} - -\func{void}{DrawPoint}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draws a point using the current pen. - -\membersection{wxSVGFileDC::DrawRectangle}\label{wxsvgfiledcdrawrectangle} - -\func{void}{DrawRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Draws a rectangle with the given top left corner, and with the given -size. The current pen is used for the outline and the current brush -for filling the shape. - -\membersection{wxSVGFileDC::DrawRotatedText}\label{wxsvgfiledcdrawrotatedtext} - -\func{void}{DrawRotatedText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{double}{ angle}} - -Draws the text rotated by {\it angle} degrees. - -The wxMSW wxDC and wxSVGFileDC rotate the text around slightly different points, depending on the size of the font - -\membersection{wxSVGFileDC::DrawRoundedRectangle}\label{wxsvgfiledcdrawroundedrectangle} - -\func{void}{DrawRoundedRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, \param{double}{ radius = 20}} - -Draws a rectangle with the given top left corner, and with the given -size. The corners are quarter-circles using the given radius. The -current pen is used for the outline and the current brush for filling -the shape. - -If {\it radius} is positive, the value is assumed to be the -radius of the rounded corner. If {\it radius} is negative, -the absolute value is assumed to be the {\it proportion} of the smallest -dimension of the rectangle. This means that the corner can be -a sensible size relative to the size of the rectangle, and also avoids -the strange effects X produces when the corners are too big for -the rectangle. - -\membersection{wxSVGFileDC::DrawSpline}\label{wxsvgfiledcdrawspline} - -\func{void}{DrawSpline}{\param{wxList *}{points}} - -Draws a spline between all given control points, using the current -pen. Doesn't delete the wxList and contents. The spline is drawn -using a series of lines, using an algorithm taken from the X drawing -program `XFIG'. - -\func{void}{DrawSpline}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ x3}, \param{wxCoord}{ y3}} - -Draws a three-point spline using the current pen. - -\membersection{wxSVGFileDC::DrawText}\label{wxsvgfiledcdrawtext} - -\func{void}{DrawText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Draws a text string at the specified point, using the current text font, -and the current text foreground and background colours. - -The coordinates refer to the top-left corner of the rectangle bounding -the string. See \helpref{wxSVGFileDC::GetTextExtent}{wxdcgettextextent} for how -to get the dimensions of a text string, which can be used to position the -text more precisely. - - - -\membersection{wxSVGFileDC::EndDoc}\label{wxsvgfiledcenddoc} - -\func{void}{EndDoc}{\void} - -Does nothing - -\membersection{wxSVGFileDC::EndDrawing}\label{wxsvgfiledcenddrawing} - -\func{void}{EndDrawing}{\void} - -Does nothing - -\membersection{wxSVGFileDC::EndPage}\label{wxsvgfiledcendpage} - -\func{void}{EndPage}{\void} - -Does nothing - -\membersection{wxSVGFileDC::FloodFill}\label{wxsvgfiledcfloodfill} - -\func{void}{FloodFill}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{const wxColour\&}{ colour}, \param{int}{ style=wxFLOOD\_SURFACE}} - -Not implemented - -\membersection{wxSVGFileDC::GetBackground}\label{wxsvgfiledcgetbackground} - -\func{wxBrush\&}{GetBackground}{\void} - -\constfunc{const wxBrush\&}{GetBackground}{\void} - -Gets the brush used for painting the background (see \helpref{wxSVGFileDC::SetBackground}{wxdcsetbackground}). - -\membersection{wxSVGFileDC::GetBackgroundMode}\label{wxsvgfiledcgetbackgroundmode} - -\constfunc{int}{GetBackgroundMode}{\void} - -Returns the current background mode: {\tt wxSOLID} or {\tt wxTRANSPARENT}. - -\wxheading{See also} - -\helpref{SetBackgroundMode}{wxdcsetbackgroundmode} - -\membersection{wxSVGFileDC::GetBrush}\label{wxsvgfiledcgetbrush} - -\func{wxBrush\&}{GetBrush}{\void} - -\constfunc{const wxBrush\&}{GetBrush}{\void} - -Gets the current brush (see \helpref{wxSVGFileDC::SetBrush}{wxdcsetbrush}). - -\membersection{wxSVGFileDC::GetCharHeight}\label{wxsvgfiledcgetcharheight} - -\func{wxCoord}{GetCharHeight}{\void} - -Gets the character height of the currently set font. - -\membersection{wxSVGFileDC::GetCharWidth}\label{wxsvgfiledcgetcharwidth} - -\func{wxCoord}{GetCharWidth}{\void} - -Gets the average character width of the currently set font. - -\membersection{wxSVGFileDC::GetClippingBox}\label{wxsvgfiledcgetclippingbox} - -\func{void}{GetClippingBox}{\param{wxCoord}{ *x}, \param{wxCoord}{ *y}, \param{wxCoord}{ *width}, \param{wxCoord}{ *height}} - -Not implemented - -\membersection{wxSVGFileDC::GetFont}\label{wxsvgfiledcgetfont} - -\func{wxFont\&}{GetFont}{\void} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Gets the current font (see \helpref{wxSVGFileDC::SetFont}{wxdcsetfont}). - -\membersection{wxSVGFileDC::GetLogicalFunction}\label{wxsvgfiledcgetlogicalfunction} - -\func{int}{GetLogicalFunction}{\void} - -Gets the current logical function (see \helpref{wxSVGFileDC::SetLogicalFunction}{wxdcsetlogicalfunction}). - -\membersection{wxSVGFileDC::GetMapMode}\label{wxsvgfiledcgetmapmode} - -\func{int}{GetMapMode}{\void} - -Gets the {\it mapping mode} for the device context (see \helpref{wxSVGFileDC::SetMapMode}{wxdcsetmapmode}). - -\membersection{wxSVGFileDC::GetPen}\label{wxsvgfiledcgetpen} - -\func{wxPen\&}{GetPen}{\void} - -\constfunc{const wxPen\&}{GetPen}{\void} - -Gets the current pen (see \helpref{wxSVGFileDC::SetPen}{wxdcsetpen}). - -\membersection{wxSVGFileDC::GetPixel}\label{wxsvgfiledcgetpixel} - -\func{bool}{GetPixel}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxColour *}{colour}} - -Not implemented - -\membersection{wxSVGFileDC::GetSize}\label{wxsvgfiledcgetsize} - -\func{void}{GetSize}{\param{wxCoord *}{width}, \param{wxCoord *}{height}} - - -For a Windows printer device context, this gets the horizontal and vertical -resolution. - -\membersection{wxSVGFileDC::GetTextBackground}\label{wxsvgfiledcgettextbackground} - -\func{wxColour\&}{GetTextBackground}{\void} - -\constfunc{const wxColour\&}{GetTextBackground}{\void} - -Gets the current text background colour (see \helpref{wxSVGFileDC::SetTextBackground}{wxdcsettextbackground}). - -\membersection{wxSVGFileDC::GetTextExtent}\label{wxsvgfiledcgettextextent} - -\func{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\ - \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}} - -Gets the dimensions of the string using the currently selected font. -\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are -the total width and height respectively, {\it descent} is the -dimension from the baseline of the font to the bottom of the -descender, and {\it externalLeading} is any extra vertical space added -to the font by the font designer (usually is zero). - -The optional parameter {\it font} specifies an alternative -to the currently selected font: but note that this does not -yet work under Windows, so you need to set a font for -the device context first. - -See also \helpref{wxFont}{wxfont}, \helpref{wxSVGFileDC::SetFont}{wxdcsetfont}. - -\membersection{wxSVGFileDC::GetTextForeground}\label{wxsvgfiledcgettextforeground} - -\func{wxColour\&}{GetTextForeground}{\void} - -\constfunc{const wxColour\&}{GetTextForeground}{\void} - -Gets the current text foreground colour (see \helpref{wxSVGFileDC::SetTextForeground}{wxdcsettextforeground}). - - -\membersection{wxSVGFileDC::GetUserScale}\label{wxsvgfiledcgetuserscale} - -\func{void}{GetUserScale}{\param{double}{ *x}, \param{double}{ *y}} - -Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetuserscale}). - -\membersection{wxSVGFileDC::LogicalToDeviceX}\label{wxsvgfiledclogicaltodevicex} - -\func{wxCoord}{LogicalToDeviceX}{\param{wxCoord}{ x}} - -Converts logical X coordinate to device coordinate, using the current -mapping mode. - -\membersection{wxSVGFileDC::LogicalToDeviceXRel}\label{wxsvgfiledclogicaltodevicexrel} - -\func{wxCoord}{LogicalToDeviceXRel}{\param{wxCoord}{ x}} - -Converts logical X coordinate to relative device coordinate, using the current -mapping mode but ignoring the x axis orientation. -Use this for converting a width, for example. - -\membersection{wxSVGFileDC::LogicalToDeviceY}\label{wxsvgfiledclogicaltodevicey} - -\func{wxCoord}{LogicalToDeviceY}{\param{wxCoord}{ y}} - -Converts logical Y coordinate to device coordinate, using the current -mapping mode. - -\membersection{wxSVGFileDC::LogicalToDeviceYRel}\label{wxsvgfiledclogicaltodeviceyrel} - -\func{wxCoord}{LogicalToDeviceYRel}{\param{wxCoord}{ y}} - -Converts logical Y coordinate to relative device coordinate, using the current -mapping mode but ignoring the y axis orientation. -Use this for converting a height, for example. - -\membersection{wxSVGFileDC::MaxX}\label{wxsvgfiledcmaxx} - -\func{wxCoord}{MaxX}{\void} - -Gets the maximum horizontal extent used in drawing commands so far. - -\membersection{wxSVGFileDC::MaxY}\label{wxsvgfiledcmaxy} - -\func{wxCoord}{MaxY}{\void} - -Gets the maximum vertical extent used in drawing commands so far. - -\membersection{wxSVGFileDC::MinX}\label{wxsvgfiledcminx} - -\func{wxCoord}{MinX}{\void} - -Gets the minimum horizontal extent used in drawing commands so far. - -\membersection{wxSVGFileDC::MinY}\label{wxsvgfiledcminy} - -\func{wxCoord}{MinY}{\void} - -Gets the minimum vertical extent used in drawing commands so far. - -\membersection{wxSVGFileDC::Ok}\label{wxsvgfiledcok} - -\func{bool}{Ok}{\void} - -Returns true if the DC is ok to use; False values arise from being unable to -write the file - -\membersection{wxSVGFileDC::ResetBoundingBox}\label{wxsvgfiledcresetboundingbox} - -\func{void}{ResetBoundingBox}{\void} - -Resets the bounding box: after a call to this function, the bounding box -doesn't contain anything. - -\wxheading{See also} - -\helpref{CalcBoundingBox}{wxdccalcboundingbox} - -\membersection{wxSVGFileDC::SetAxisOrientation}\label{wxsvgfiledcsetaxisorientation} - -\func{void}{SetAxisOrientation}{\param{bool}{ xLeftRight}, - \param{bool}{ yBottomUp}} - -Sets the x and y axis orientation (i.e., the direction from lowest to -highest values on the axis). The default orientation is the natural -orientation, e.g. x axis from left to right and y axis from bottom up. - -\wxheading{Parameters} - -\docparam{xLeftRight}{True to set the x axis orientation to the natural -left to right orientation, false to invert it.} - -\docparam{yBottomUp}{True to set the y axis orientation to the natural -bottom up orientation, false to invert it.} - -\membersection{wxSVGFileDC::SetDeviceOrigin}\label{wxsvgfiledcsetdeviceorigin} - -\func{void}{SetDeviceOrigin}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -Sets the device origin (i.e., the origin in pixels after scaling has been -applied). - -This function may be useful in Windows printing -operations for placing a graphic on a page. - -\membersection{wxSVGFileDC::SetBackground}\label{wxsvgfiledcsetbackground} - -\func{void}{SetBackground}{\param{const wxBrush\& }{brush}} - -Sets the current background brush for the DC. - -\membersection{wxSVGFileDC::SetBackgroundMode}\label{wxsvgfiledcsetbackgroundmode} - -\func{void}{SetBackgroundMode}{\param{int}{ mode}} - -{\it mode} may be one of wxSOLID and wxTRANSPARENT. This setting determines -whether text will be drawn with a background colour or not. - -\membersection{wxSVGFileDC::SetClippingRegion}\label{wxsvgfiledcsetclippingregion} - -\func{void}{SetClippingRegion}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -\func{void}{SetClippingRegion}{\param{const wxPoint\& }{pt}, \param{const wxSize\& }{sz}} - -\func{void}{SetClippingRegion}{\param{const wxRect\&}{ rect}} - -\func{void}{SetClippingRegion}{\param{const wxRegion\&}{ region}} - -Not implemented - - -\membersection{wxSVGFileDC::SetPalette}\label{wxsvgfiledcsetpalette} - -\func{void}{SetPalette}{\param{const wxPalette\& }{palette}} - -Not implemented - -\membersection{wxSVGFileDC::SetBrush}\label{wxsvgfiledcsetbrush} - -\func{void}{SetBrush}{\param{const wxBrush\& }{brush}} - -Sets the current brush for the DC. - -If the argument is wxNullBrush, the current brush is selected out of the device -context, and the original brush restored, allowing the current brush to -be destroyed safely. - -See also \helpref{wxBrush}{wxbrush}. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - -\membersection{wxSVGFileDC::SetFont}\label{wxsvgfiledcsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the current font for the DC. It must be a valid font, in particular you -should not pass {\tt wxNullFont} to this method. - -See also \helpref{wxFont}{wxfont}. - -\membersection{wxSVGFileDC::SetLogicalFunction}\label{wxsvgfiledcsetlogicalfunction} - -\func{void}{SetLogicalFunction}{\param{int}{ function}} - - -Only wxCOPY is avalaible; trying to set one of the othe values will fail - -\membersection{wxSVGFileDC::SetMapMode}\label{wxsvgfiledcsetmapmode} - -\func{void}{SetMapMode}{\param{int}{ int}} - -The {\it mapping mode} of the device context defines the unit of -measurement used to convert logical units to device units. Note that -in X, text drawing isn't handled consistently with the mapping mode; a -font is always specified in point size. However, setting the {\it -user scale} (see \helpref{wxSVGFileDC::SetUserScale}{wxdcsetuserscale}) scales the text appropriately. In -Windows, scaleable TrueType fonts are always used; in X, results depend -on availability of fonts, but usually a reasonable match is found. - -Note that the coordinate origin should ideally be selectable, but for -now is always at the top left of the screen/printer. - -Drawing to a Windows printer device context under UNIX -uses the current mapping mode, but mapping mode is currently ignored for -PostScript output. - -The mapping mode can be one of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxMM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of - an inch.} -\twocolitem{wxMM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.} -\twocolitem{wxMM\_METRIC}{Each logical unit is 1 mm.} -\twocolitem{wxMM\_LOMETRIC}{Each logical unit is 1/10 of a mm.} -\twocolitem{wxMM\_TEXT}{Each logical unit is 1 pixel.} -\end{twocollist} - -\membersection{wxSVGFileDC::SetPen}\label{wxsvgfiledcsetpen} - -\func{void}{SetPen}{\param{const wxPen\& }{pen}} - -Sets the current pen for the DC. - -If the argument is wxNullPen, the current pen is selected out of the device -context, and the original pen restored. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - -\membersection{wxSVGFileDC::SetTextBackground}\label{wxsvgfiledcsettextbackground} - -\func{void}{SetTextBackground}{\param{const wxColour\& }{colour}} - -Sets the current text background colour for the DC. - -\membersection{wxSVGFileDC::SetTextForeground}\label{wxsvgfiledcsettextforeground} - -\func{void}{SetTextForeground}{\param{const wxColour\& }{colour}} - -Sets the current text foreground colour for the DC. - -See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours -when drawing into a monochrome bitmap. - -\membersection{wxSVGFileDC::SetUserScale}\label{wxsvgfiledcsetuserscale} - -\func{void}{SetUserScale}{\param{double}{ xScale}, \param{double}{ yScale}} - -Sets the user scaling factor, useful for applications which require -`zooming'. - -\membersection{wxSVGFileDC::StartDoc}\label{wxsvgfiledcstartdoc} - -\func{bool}{StartDoc}{\param{const wxString\& }{message}} - -Does nothing - -\membersection{wxSVGFileDC::StartPage}\label{wxsvgfiledcstartpage} - -\func{bool}{StartPage}{\void} - -Does nothing diff --git a/docs/latex/wx/ddeclint.tex b/docs/latex/wx/ddeclint.tex deleted file mode 100644 index 4d1f26a7c3..0000000000 --- a/docs/latex/wx/ddeclint.tex +++ /dev/null @@ -1,75 +0,0 @@ -\section{\class{wxDDEClient}}\label{wxddeclient} - -A wxDDEClient object represents the client part of a client-server DDE -(Dynamic Data Exchange) conversation. - -To create a client which can communicate with a suitable server, -you need to derive a class from wxDDEConnection and another from wxDDEClient. -The custom wxDDEConnection class will intercept communications in -a `conversation' with a server, and the custom wxDDEServer is required -so that a user-overridden \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} member can return -a wxDDEConnection of the required class, when a connection is made. - -This DDE-based implementation is -available on Windows only, but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPClient}{wxtcpclient}. - -\wxheading{Derived from} - -wxClientBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEConnection}{wxddeconnection}, -\helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEClient::wxDDEClient}\label{wxddeclientctor} - -\func{}{wxDDEClient}{\void} - -Constructs a client object. - -\membersection{wxDDEClient::MakeConnection}\label{wxddeclientmakeconnection} - -\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} - -Tries to make a connection with a server specified by the host -(machine name under UNIX, ignored under Windows), service name (must -contain an integer port number under UNIX), and topic string. If the -server allows a connection, a wxDDEConnection object will be returned. -The type of wxDDEConnection returned can be altered by overriding -the \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} member to return your own -derived connection object. - -\membersection{wxDDEClient::OnMakeConnection}\label{wxddeclientonmakeconnection} - -\func{wxConnectionBase *}{OnMakeConnection}{\void} - -The type of \helpref{wxDDEConnection}{wxddeconnection} returned from a \helpref{wxDDEClient::MakeConnection}{wxddeclientmakeconnection} call can -be altered by deriving the {\bf OnMakeConnection} member to return your -own derived connection object. By default, a wxDDEConnection -object is returned. - -The advantage of deriving your own connection class is that it will -enable you to intercept messages initiated by the server, such -as \helpref{wxDDEConnection::OnAdvise}{wxconnectiononadvise}. You may also want to -store application-specific data in instances of the new class. - -\membersection{wxDDEClient::ValidHost}\label{wxddeclientvalidhost} - -\func{bool}{ValidHost}{\param{const wxString\& }{host}} - -Returns \true if this is a valid host name, \false otherwise. This always -returns \true under MS Windows. - diff --git a/docs/latex/wx/ddeconn.tex b/docs/latex/wx/ddeconn.tex deleted file mode 100644 index a1992da586..0000000000 --- a/docs/latex/wx/ddeconn.tex +++ /dev/null @@ -1,230 +0,0 @@ -\section{\class{wxDDEConnection}}\label{wxddeconnection} - -A wxDDEConnection object represents the connection between a client and a -server. It can be created by making a connection using a\rtfsp -\helpref{wxDDEClient}{wxddeclient} object, or by the acceptance of a connection by a\rtfsp -\helpref{wxDDEServer}{wxddeserver} object. The bulk of a DDE (Dynamic Data Exchange) -conversation is controlled by -calling members in a {\bf wxDDEConnection} object or by overriding its -members. - -An application should normally derive a new connection class from -wxDDEConnection, in order to override the communication event handlers -to do something interesting. - -This DDE-based implementation is available on Windows only, -but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPConnection}{wxtcpconnection}. - -\wxheading{Derived from} - -wxConnectionBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Types} - -\index{wxIPCFormat}wxIPCFormat is defined as follows: - -\begin{verbatim} -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UTF16TEXT = 13, /* CF_UNICODE */ - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_UTF8TEXT = 17, - wxIPC_UTF32TEXT = 18, -#if SIZEOF_WCHAR_T == 2 - wxIPC_UNICODETEXT = wxIPC_UTF16TEXT, -#elif SIZEOF_WCHAR_T == 4 - wxIPC_UNICODETEXT = wxIPC_UTF32TEXT, -#endif - wxIPC_PRIVATE = 20 -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEServer}{wxddeserver}, \helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEConnection::wxDDEConnection}\label{wxddeconnectionctor} - -\func{}{wxDDEConnection}{\void} - -\func{}{wxDDEConnection}{\param{void* }{buffer}, \param{size\_t}{ size}} - -Constructs a connection object. If no user-defined connection object is -to be derived from wxDDEConnection, then the constructor should not be -called directly, since the default connection object will be provided on -requesting (or accepting) a connection. However, if the user defines his -or her own derived connection object, the \helpref{wxDDEServer::OnAcceptConnection}{wxddeserveronacceptconnection}\rtfsp -and/or \helpref{wxDDEClient::OnMakeConnection}{wxddeclientonmakeconnection} members should be replaced by -functions which construct the new connection object. If the arguments of -the wxDDEConnection constructor are void, then a default buffer is -associated with the connection. Otherwise, the programmer must provide a -a buffer and size of the buffer for the connection object to use in -transactions. - -\membersection{wxDDEConnection::Advise}\label{wxddeconnectionadvise} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the server application to advise the client of a change in -the data associated with the given item. Causes the client -connection's \helpref{wxDDEConnection::OnAdvise}{wxddeconnectiononadvise} -member to be called. Returns true if successful. - -\membersection{wxDDEConnection::Execute}\label{wxddeconnectionexecute} - -\func{bool}{Execute}{\param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Execute}{\param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wxString& }{data}} - -Called by the client application to execute a command on the server. Can -also be used to transfer arbitrary data to the server (similar -to \helpref{wxDDEConnection::Poke}{wxddeconnectionpoke} in that respect). Causes the -server connection's \helpref{wxDDEConnection::OnExecute}{wxddeconnectiononexecute} member to be -called. Returns true if successful. - -\membersection{wxDDEConnection::Disconnect}\label{wxddeconnectiondisconnect} - -\func{bool}{Disconnect}{\void} - -Called by the client or server application to disconnect from the other -program; it causes the \helpref{wxDDEConnection::OnDisconnect}{wxddeconnectionondisconnect} message -to be sent to the corresponding connection object in the other -program. The default behaviour of {\bf OnDisconnect} is to delete the -connection, but the calling application must explicitly delete its -side of the connection having called {\bf Disconnect}. Returns true if -successful. - -\membersection{wxDDEConnection::OnAdvise}\label{wxddeconnectiononadvise} - -\func{virtual bool}{OnAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the client application when the server notifies it of a -change in the data associated with the given item. - -\membersection{wxDDEConnection::OnDisconnect}\label{wxddeconnectionondisconnect} - -\func{virtual bool}{OnDisconnect}{\void} - -Message sent to the client or server application when the other -application notifies it to delete the connection. Default behaviour is -to delete the connection object. - -\membersection{wxDDEConnection::OnExecute}\label{wxddeconnectiononexecute} - -\func{virtual bool}{OnExecute}{\param{const wxString\& }{topic}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -execute the given data. Note that there is no item associated with -this message. - -\membersection{wxDDEConnection::OnPoke}\label{wxddeconnectiononpoke} - -\func{virtual bool}{OnPoke}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client notifies it to -accept the given data. - -\membersection{wxDDEConnection::OnRequest}\label{wxddeconnectiononrequest} - -\func{virtual const void*}{OnRequest}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{size\_t * }{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client -calls \helpref{wxDDEConnection::Request}{wxddeconnectionrequest}. The server -should respond by returning a character string from {\bf OnRequest}, -or NULL to indicate no data. - -\membersection{wxDDEConnection::OnStartAdvise}\label{wxddeconnectiononstartadvise} - -\func{virtual bool}{OnStartAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to start an `advise loop' for the given topic and item. The -server can refuse to participate by returning false. - -\membersection{wxDDEConnection::OnStopAdvise}\label{wxddeconnectiononstopadvise} - -\func{virtual bool}{OnStopAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to stop an `advise loop' for the given topic and item. The -server can refuse to stop the advise loop by returning false, although -this doesn't have much meaning in practice. - -\membersection{wxDDEConnection::Poke}\label{wxddeconnectionpoke} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the client application to poke data into the server. Can be -used to transfer arbitrary data to the server. Causes the server -connection's \helpref{wxDDEConnection::OnPoke}{wxddeconnectiononpoke} member -to be called. Returns true if successful. - -\membersection{wxDDEConnection::Request}\label{wxddeconnectionrequest} - -\func{const void*}{Request}{\param{const wxString\& }{item}, \param{size\_t *}{size}, \param{wxIPCFormat }{format = wxIPC\_TEXT}} - -Called by the client application to request data from the server. Causes -the server connection's \helpref{wxDDEConnection::OnRequest}{wxddeconnectiononrequest} member to be called. Returns a -character string (actually a pointer to the connection's buffer) if -successful, NULL otherwise. - -\membersection{wxDDEConnection::StartAdvise}\label{wxddeconnectionstartadvise} - -\func{bool}{StartAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be started -with the server. Causes the server connection's \helpref{wxDDEConnection::OnStartAdvise}{wxddeconnectiononstartadvise}\rtfsp -member to be called. Returns true if the server okays it, false -otherwise. - -\membersection{wxDDEConnection::StopAdvise}\label{wxddeconnectionstopadvise} - -\func{bool}{StopAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -stopped. Causes the server connection's \helpref{wxDDEConnection::OnStopAdvise}{wxddeconnectiononstopadvise} member -to be called. Returns true if the server okays it, false otherwise. - diff --git a/docs/latex/wx/ddeservr.tex b/docs/latex/wx/ddeservr.tex deleted file mode 100644 index d5d2bd2612..0000000000 --- a/docs/latex/wx/ddeservr.tex +++ /dev/null @@ -1,55 +0,0 @@ -\section{\class{wxDDEServer}}\label{wxddeserver} - -A wxDDEServer object represents the server part of a client-server DDE -(Dynamic Data Exchange) conversation. - -This DDE-based implementation is -available on Windows only, but a platform-independent, socket-based version -of this API is available using \helpref{wxTCPServer}{wxtcpserver}. - -\wxheading{Derived from} - -wxServerBase - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection}, \helpref{IPC overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDDEServer::wxDDEServer}\label{wxddeserverctor} - -\func{}{wxDDEServer}{\void} - -Constructs a server object. - -\membersection{wxDDEServer::Create}\label{wxddeservercreate} - -\func{bool}{Create}{\param{const wxString\& }{service}} - -Registers the server using the given service name. Under UNIX, the -string must contain an integer id which is used as an Internet port -number. false is returned if the call failed (for example, the port -number is already in use). - -\membersection{wxDDEServer::OnAcceptConnection}\label{wxddeserveronacceptconnection} - -\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}} - -When a client calls {\bf MakeConnection}, the server receives the -message and this member is called. The application should derive a -member to intercept this message and return a connection object of -either the standard wxDDEConnection type, or of a user-derived type. If the -topic is ``STDIO'', the application may wish to refuse the connection. -Under UNIX, when a server is created the OnAcceptConnection message is -always sent for standard input and output, but in the context of DDE -messages it doesn't make a lot of sense. - diff --git a/docs/latex/wx/debugcxt.tex b/docs/latex/wx/debugcxt.tex deleted file mode 100644 index 4967c04bdd..0000000000 --- a/docs/latex/wx/debugcxt.tex +++ /dev/null @@ -1,288 +0,0 @@ -\section{\class{wxDebugContext}}\label{wxdebugcontext} - -A class for performing various debugging and memory tracing -operations. Full functionality (such as printing out objects -currently allocated) is only present in a debugging build of wxWidgets, -i.e. if the \_\_WXDEBUG\_\_ symbol is defined. wxDebugContext -and related functions and macros can be compiled out by setting -wxUSE\_DEBUG\_CONTEXT to 0 is setup.h - -\wxheading{Derived from} - -No parent class. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\overview{Overview}{wxdebugcontextoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDebugContext::Check}\label{wxdebugcontextcheck} - -\func{int}{Check}{\void} - -Checks the memory blocks for errors, starting from the currently set -checkpoint. - -\wxheading{Return value} - -Returns the number of errors, -so a value of zero represents success. Returns -1 if an error -was detected that prevents further checking. - -\membersection{wxDebugContext::Dump}\label{wxdebugcontextdump} - -\func{bool}{Dump}{\void} - -Performs a memory dump from the currently set checkpoint, writing to the -current debug stream. Calls the {\bf Dump} member function for each wxObject -derived instance. - -\wxheading{Return value} - -true if the function succeeded, false otherwise. - -\membersection{wxDebugContext::GetCheckPrevious}\label{wxdebugcontextgetcheckprevious} - -\func{bool}{GetCheckPrevious}{\void} - -Returns true if the memory allocator checks all previous memory blocks for errors. -By default, this is false since it slows down execution considerably. - -\wxheading{See also} - -\helpref{wxDebugContext::SetCheckPrevious}{wxdebugcontextsetcheckprevious} - -\membersection{wxDebugContext::GetDebugMode}\label{wxdebugcontextgetdebugmode} - -\func{bool}{GetDebugMode}{\void} - -Returns true if debug mode is on. If debug mode is on, the wxObject new and delete -operators store or use information about memory allocation. Otherwise, -a straight malloc and free will be performed by these operators. - -\wxheading{See also} - -\helpref{wxDebugContext::SetDebugMode}{wxdebugcontextsetdebugmode} - -\membersection{wxDebugContext::GetLevel}\label{wxdebugcontextgetlevel} - -\func{int}{GetLevel}{\void} - -Gets the debug level (default 1). The debug level is used by the wxTraceLevel function and -the WXTRACELEVEL macro to specify how detailed the trace information is; setting -a different level will only have an effect if trace statements in the application -specify a value other than one. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetLevel}{wxdebugcontextsetlevel} - -\membersection{wxDebugContext::GetStream}\label{wxdebugcontextgetstream} - -\func{ostream\&}{GetStream}{\void} - -Returns the output stream associated with the debug context. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream} - -\membersection{wxDebugContext::GetStreamBuf}\label{wxdebugcontextgetstreambuf} - -\func{streambuf*}{GetStreamBuf}{\void} - -Returns a pointer to the output stream buffer associated with the debug context. -There may not necessarily be a stream buffer if the stream has been set -by the user. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\membersection{wxDebugContext::HasStream}\label{wxdebugcontexthasstream} - -\func{bool}{HasStream}{\void} - -Returns true if there is a stream currently associated -with the debug context. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::SetStream}{wxdebugcontextsetstream}, \helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream} - -\membersection{wxDebugContext::PrintClasses}\label{wxdebugcontextprintclasses} - -\func{bool}{PrintClasses}{\void} - -Prints a list of the classes declared in this application, giving derivation -and whether instances of this class can be dynamically created. - -\wxheading{See also} - -\helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} - -\membersection{wxDebugContext::PrintStatistics}\label{wxdebugcontextprintstatistics} - -\func{bool}{PrintStatistics}{\param{bool}{ detailed = true}} - -Performs a statistics analysis from the currently set checkpoint, writing -to the current debug stream. The number of object and non-object -allocations is printed, together with the total size. - -\wxheading{Parameters} - -\docparam{detailed}{If true, the function will also print how many -objects of each class have been allocated, and the space taken by -these class instances.} - -\wxheading{See also} - -\helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} - -\membersection{wxDebugContext::SetCheckpoint}\label{wxdebugcontextsetcheckpoint} - -\func{void}{SetCheckpoint}{\param{bool}{ all = false}} - -Sets the current checkpoint: Dump and PrintStatistics operations will -be performed from this point on. This allows you to ignore allocations -that have been performed up to this point. - -\wxheading{Parameters} - -\docparam{all}{If true, the checkpoint is reset to include all -memory allocations since the program started.} - -\membersection{wxDebugContext::SetCheckPrevious}\label{wxdebugcontextsetcheckprevious} - -\func{void}{SetCheckPrevious}{\param{bool}{ check}} - -Tells the memory allocator to check all previous memory blocks for errors. -By default, this is false since it slows down execution considerably. - -\wxheading{See also} - -\helpref{wxDebugContext::GetCheckPrevious}{wxdebugcontextgetcheckprevious} - -\membersection{wxDebugContext::SetDebugMode}\label{wxdebugcontextsetdebugmode} - -\func{void}{SetDebugMode}{\param{bool}{ debug}} - -Sets the debug mode on or off. If debug mode is on, the wxObject new and delete -operators store or use information about memory allocation. Otherwise, -a straight malloc and free will be performed by these operators. - -By default, debug mode is on if \_\_WXDEBUG\_\_ is defined. If the application -uses this function, it should make sure that all object memory allocated -is deallocated with the same value of debug mode. Otherwise, the -delete operator might try to look for memory information that does not -exist. - -\wxheading{See also} - -\helpref{wxDebugContext::GetDebugMode}{wxdebugcontextgetdebugmode} - -\membersection{wxDebugContext::SetFile}\label{wxdebugcontextsetfile} - -\func{bool}{SetFile}{\param{const wxString\& }{filename}} - -Sets the current debug file and creates a stream. This will delete any existing -stream and stream buffer. By default, the debug context stream -outputs to the debugger (Windows) or standard error (other platforms). - -\membersection{wxDebugContext::SetLevel}\label{wxdebugcontextsetlevel} - -\func{void}{SetLevel}{\param{int}{ level}} - -Sets the debug level (default 1). The debug level is used by the wxTraceLevel function and -the WXTRACELEVEL macro to specify how detailed the trace information is; setting -a different level will only have an effect if trace statements in the application -specify a value other than one. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{See also} - -\helpref{wxDebugContext::GetLevel}{wxdebugcontextgetlevel} - -\membersection{wxDebugContext::SetShutdownNotifyFunction}\label{wxdebugcontextsetshutdownnotifyhook} - -\func{void}{SetShutdownNotifyFunction}{\param{wxShutdownNotifyFunction }{func}} - -Installs a function to be called at the end of wxWidgets shutdown. It will be called after -all files with global instances of wxDebugContextDumpDelayCounter have run their destructors. - -The shutdown function must be take no parameters and return nothing. - -\membersection{wxDebugContext::SetStandardError}\label{wxdebugcontextsetstandarderror} - -\func{bool}{SetStandardError}{\void} - -Sets the debugging stream to be the debugger (Windows) or standard error (other platforms). -This is the default setting. The existing stream will be flushed and deleted. - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\membersection{wxDebugContext::SetStream}\label{wxdebugcontextsetstream} - -\func{void}{SetStream}{\param{ostream* }{stream}, \param{streambuf* }{streamBuf = NULL}} - -Sets the stream and optionally, stream buffer associated with the debug context. -This operation flushes and deletes the existing stream (and stream buffer if any). - -This is obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{Parameters} - -\docparam{stream}{Stream to associate with the debug context. Do not set this to NULL.} - -\docparam{streamBuf}{Stream buffer to associate with the debug context.} - -\wxheading{See also} - -\helpref{wxDebugContext::GetStream}{wxdebugcontextgetstream}, \helpref{wxDebugContext::HasStream}{wxdebugcontexthasstream} - -\section{\class{wxDebugStreamBuf}}\label{wxdebugstreambuf} - -This class allows you to treat debugging output in a similar -(stream-based) fashion on different platforms. Under -Windows, an ostream constructed with this buffer outputs -to the debugger, or other program that intercepts debugging -output. On other platforms, the output goes to standard error (cerr). - -This is soon to be obsolete, replaced by \helpref{wxLog}{wxlog} functionality. - -\wxheading{Derived from} - -streambuf - -\wxheading{Include files} - - - -\wxheading{Example} - -\begin{verbatim} - wxDebugStreamBuf streamBuf; - ostream stream(&streamBuf); - - stream << "Hello world!" << endl; -\end{verbatim} - -\wxheading{See also} - -\overview{Overview}{wxdebugcontextoverview} - - diff --git a/docs/latex/wx/debugrpt.tex b/docs/latex/wx/debugrpt.tex deleted file mode 100644 index df438049c0..0000000000 --- a/docs/latex/wx/debugrpt.tex +++ /dev/null @@ -1,276 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: debugrpt.tex -%% Purpose: wxDebugReport documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2005-03-21 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin 2005 -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDebugReport}}\label{wxdebugreport} - -wxDebugReport is used to generate a debug report, containing information about -the program current state. It is usually used from -\helpref{wxApp::OnFatalException()}{wxapponfatalexception} as shown in the -\helpref{sample}{sampledebugrpt}. - -A wxDebugReport object contains one or more files. A few of them can be created by the -class itself but more can be created from the outside and then added to the -report. Also note that several virtual functions may be overridden to further -customize the class behaviour. - -Once a report is fully assembled, it can simply be left in the temporary -directory so that the user can email it to the developers (in which case you -should still use \helpref{wxDebugReportCompress}{wxdebugreportcompress} to -compress it in a single file) or uploaded to a Web server using -\helpref{wxDebugReportUpload}{wxdebugreportupload} (setting up the Web server -to accept uploads is your responsibility, of course). Other handlers, for example for -automatically emailing the report, can be defined as well but are not currently -included in wxWidgets. - -\wxheading{Example of use} - -\begin{verbatim} - wxDebugReport report; - wxDebugReportPreviewStd preview; - - report.AddCurrentContext(); // could also use AddAll() - report.AddCurrentDump(); // to do both at once - - if ( preview.Show(report) ) - report.Process(); -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxQa}{librarieslist} - -\wxheading{Data structures} - -This enum is used for functions that report either the current state -or the state during the last (fatal) exception: - -\begin{verbatim} -enum wxDebugReport::Context -{ - Context_Current, - Context_Exception -}; -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDebugReport::wxDebugReport}\label{wxdebugreportwxdebugreport} - -\func{}{wxDebugReport}{\void} - -The constructor creates a temporary directory where the files that will -be included in the report are created. Use -\helpref{IsOk()}{wxdebugreportisok} to check for errors. - - -\membersection{wxDebugReport::\destruct{wxDebugReport}}\label{wxdebugreportdtor} - -\func{}{\destruct{wxDebugReport}}{\void} - -The destructor normally destroys the temporary directory created in the constructor -with all the files it contains. Call \helpref{Reset()}{wxdebugreportreset} to -prevent this from happening. - - -\membersection{wxDebugReport::AddAll}\label{wxdebugreportaddall} - -\func{void}{AddAll}{\param{Context }{context = Context\_Exception}} - -Adds all available information to the report. Currently this includes a -text (XML) file describing the process context and, under Win32, a minidump -file. - - -\membersection{wxDebugReport::AddContext}\label{wxdebugreportaddcontext} - -\func{bool}{AddContext}{\param{Context }{ctx}} - -Add an XML file containing the current or exception context and the -stack trace. - - -\membersection{wxDebugReport::AddCurrentContext}\label{wxdebugreportaddcurrentcontext} - -\func{bool}{AddCurrentContext}{\void} - -The same as \helpref{AddContext(Context\_Current)}{wxdebugreportaddcontext}. - - -\membersection{wxDebugReport::AddCurrentDump}\label{wxdebugreportaddcurrentdump} - -\func{bool}{AddCurrentDump}{\void} - -The same as \helpref{AddDump(Context\_Current)}{wxdebugreportadddump}. - - -\membersection{wxDebugReport::AddDump}\label{wxdebugreportadddump} - -\func{bool}{AddDump}{\param{Context }{ctx}} - -Adds the minidump file to the debug report. - -Minidumps are only available under recent Win32 versions (\texttt{dbghlp32.dll} -can be installed under older systems to make minidumps available). - - -\membersection{wxDebugReport::AddExceptionContext}\label{wxdebugreportaddexceptioncontext} - -\func{bool}{AddExceptionContext}{\void} - -The same as \helpref{AddContext(Context\_Exception)}{wxdebugreportaddcontext}. - - -\membersection{wxDebugReport::AddExceptionDump}\label{wxdebugreportaddexceptiondump} - -\func{bool}{AddExceptionDump}{\void} - -The same as \helpref{AddDump(Context\_Exception)}{wxdebugreportadddump}. - - -\membersection{wxDebugReport::AddFile}\label{wxdebugreportaddfile} - -\func{void}{AddFile}{\param{const wxString\& }{filename}, \param{const wxString\& }{description}} - -Add another file to the report. If \arg{filename} is an absolute path, it is -copied to a file in the debug report directory with the same name. Otherwise -the file should already exist in this directory - -\arg{description} only exists to be displayed to the user in the report summary -shown by \helpref{wxDebugReportPreview}{wxdebugreportpreview}. - -\wxheading{See also } - -\helpref{GetDirectory()}{wxdebugreportgetdirectory},\\ -\helpref{AddText()}{wxdebugreportaddtext} - - -\membersection{wxDebugReport::AddText}\label{wxdebugreportaddtext} - -\func{bool}{AddText}{\param{const wxString\& }{filename}, \param{const wxString\& }{text}, \param{const wxString\& }{description}} - -This is a convenient wrapper around \helpref{AddFile}{wxdebugreportaddfile}. It -creates the file with the given \arg{name} and writes \arg{text} to it, then -adds the file to the report. The \arg{filename} shouldn't contain the path. - -Returns \true if file could be added successfully, \false if an IO error -occurred. - - -\membersection{wxDebugReport::DoAddCustomContext}\label{wxdebugreportdoaddcustomcontext} - -\func{void}{DoAddCustomContext}{\param{wxXmlNode * }{nodeRoot}} - -This function may be overridden to add arbitrary custom context to the XML -context file created by \helpref{AddContext}{wxdebugreportaddcontext}. By -default, it does nothing. - - -\membersection{wxDebugReport::DoAddExceptionInfo}\label{wxdebugreportdoaddexceptioninfo} - -\func{bool}{DoAddExceptionInfo}{\param{wxXmlNode* }{nodeContext}} - -This function may be overridden to modify the contents of the exception tag in -the XML context file. - - -\membersection{wxDebugReport::DoAddLoadedModules}\label{wxdebugreportdoaddloadedmodules} - -\func{bool}{DoAddLoadedModules}{\param{wxXmlNode* }{nodeModules}} - -This function may be overridden to modify the contents of the modules tag in -the XML context file. - - -\membersection{wxDebugReport::DoAddSystemInfo}\label{wxdebugreportdoaddsysteminfo} - -\func{bool}{DoAddSystemInfo}{\param{wxXmlNode* }{nodeSystemInfo}} - -This function may be overridden to modify the contents of the system tag in -the XML context file. - - -\membersection{wxDebugReport::GetDirectory}\label{wxdebugreportgetdirectory} - -\constfunc{const wxString\&}{GetDirectory}{\void} - -Returns the name of the temporary directory used for the files in this report. - -This method should be used to construct the full name of the files which you -wish to add to the report using \helpref{AddFile}{wxdebugreportaddfile}. - - -\membersection{wxDebugReport::GetFile}\label{wxdebugreportgetfile} - -\constfunc{bool}{GetFile}{\param{size\_t }{n}, \param{wxString* }{name}, \param{wxString* }{desc}} - -Retrieves the name (relative to -\helpref{GetDirectory()}{wxdebugreportgetdirectory}) and the description of the -file with the given index. If \arg{n} is greater than or equal to the number of -filse, \false is returned. - - -\membersection{wxDebugReport::GetFilesCount}\label{wxdebugreportgetfilescount} - -\constfunc{size\_t}{GetFilesCount}{\void} - -Gets the current number files in this report. - - -\membersection{wxDebugReport::GetReportName}\label{wxdebugreportgetreportname} - -\constfunc{wxString}{GetReportName}{\void} - -Gets the name used as a base name for various files, by default -\helpref{wxApp::GetAppName()}{wxappgetappname} is used. - - -\membersection{wxDebugReport::IsOk}\label{wxdebugreportisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if the object was successfully initialized. If this method returns -\false the report can't be used. - - -\membersection{wxDebugReport::Process}\label{wxdebugreportprocess} - -\func{bool}{Process}{\void} - -Processes this report: the base class simply notifies the user that the -report has been generated. This is usually not enough -- instead you -should override this method to do something more useful to you. - - -\membersection{wxDebugReport::RemoveFile}\label{wxdebugreportremovefile} - -\func{void}{RemoveFile}{\param{const wxString\& }{name}} - -Removes the file from report: this is used by -\helpref{wxDebugReportPreview}{wxdebugreportpreview} to allow the user to -remove files potentially containing private information from the report. - - -\membersection{wxDebugReport::Reset}\label{wxdebugreportreset} - -\func{void}{Reset}{\void} - -Resets the directory name we use. The object can't be used any more after -this as it becomes uninitialized and invalid. - diff --git a/docs/latex/wx/debugrptpvw.tex b/docs/latex/wx/debugrptpvw.tex deleted file mode 100644 index 786e8e4c2b..0000000000 --- a/docs/latex/wx/debugrptpvw.tex +++ /dev/null @@ -1,63 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: debugrptpvw.tex -%% Purpose: wxDebugReportPreview documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2005-03-21 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin 2005 -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDebugReportPreview}}\label{wxdebugreportpreview} - -This class presents the debug report to the user and allows him to veto report -entirely or remove some parts of it. Although not mandatory, using this class -is strongly recommended as data included in the debug report might contain -sensitive private information and the user should be notified about it as well -as having a possibility to examine the data which had been gathered to check -whether this is effectively the case and discard the debug report if it is. - -wxDebugReportPreview is an abstract base class, currently the only concrete -class deriving from it is -\helpref{wxDebugReportPreviewStd}{wxdebugreportpreviewstd}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxQa}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDebugReportPreview::wxDebugReportPreview}\label{wxdebugreportpreviewwxdebugreportpreview} - -\func{}{wxDebugReportPreview}{\void} - -Trivial default constructor. - - -\membersection{wxDebugReportPreview::\destruct{wxDebugReportPreview}}\label{wxdebugreportpreviewdtor} - -\func{}{\destruct{wxDebugReportPreview}}{\void} - -dtor is trivial as well but should be virtual for a base class - - -\membersection{wxDebugReportPreview::Show}\label{wxdebugreportpreviewshow} - -\constfunc{bool}{Show}{\param{wxDebugReport\& }{dbgrpt}} - -Present the report to the user and allow him to modify it by removing some or -all of the files and, potentially, adding some notes. Return \true if the -report should be processed or \false if the user chose to cancel report -generation or removed all files from it. - diff --git a/docs/latex/wx/debugrptpvwstd.tex b/docs/latex/wx/debugrptpvwstd.tex deleted file mode 100644 index 90e35c55c6..0000000000 --- a/docs/latex/wx/debugrptpvwstd.tex +++ /dev/null @@ -1,50 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: debugrptpvwstd.tex -%% Purpose: wxDebugReportPreviewStd documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2005-03-21 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin 2005 -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDebugReportPreviewStd}}\label{wxdebugreportpreviewstd} - -wxDebugReportPreviewStd is a standard debug report preview window. It displays -a GUIdialog allowing the user to examine the contents of a debug report, remove -files from and add notes to it. - - -\wxheading{Derived from} - -\helpref{wxDebugReportPreview}{wxdebugreportpreview} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxQa}{librarieslist} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDebugReportPreviewStd::wxDebugReportPreviewStd}\label{wxdebugreportpreviewstdwxdebugreportpreviewstd} - -\func{}{wxDebugReportPreviewStd}{\void} - -Trivial default constructor. - - -\membersection{wxDebugReportPreviewStd::Show}\label{wxdebugreportpreviewstdshow} - -\constfunc{bool}{Show}{\param{wxDebugReport\& }{dbgrpt}} - -Show the dialog, see -\helpref{wxDebugReportPreview::Show()}{wxdebugreportpreviewshow} for more -information. - diff --git a/docs/latex/wx/debugrptup.tex b/docs/latex/wx/debugrptup.tex deleted file mode 100644 index 42bc848ad7..0000000000 --- a/docs/latex/wx/debugrptup.tex +++ /dev/null @@ -1,56 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: debugrptup.tex -%% Purpose: wxDebugReportUpload documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2005-03-21 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin 2005 -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDebugReportUpload}}\label{wxdebugreportupload} - -This class is used to upload a compressed file using HTTP POST request. As this -class derives from wxDebugReportCompress, before upload the report is -compressed in a single .ZIP file. - -\wxheading{Derived from} - -\helpref{wxDebugReportCompress}{wxdebugreportcompress}\\ -\helpref{wxDebugReport}{wxdebugreport} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxQa}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDebugReportUpload::wxDebugReportUpload}\label{wxdebugreportuploadwxdebugreportupload} - -\func{}{wxDebugReportUpload}{\param{const wxString\& }{url}, \param{const wxString\& }{input}, \param{const wxString\& }{action}, \param{const wxString\& }{curl = \_T("curl")}} - -This class will upload the compressed file created by its base class to an HTML -multipart/form-data form at the specified address. The \arg{url} is the upload -page address, \arg{input} is the name of the \texttt{"type=file"} control on -the form used for the file name and \arg{action} is the value of the form -action field. The report is uploaded using \texttt{\textit{curl}} program which -should be available, the \arg{curl} parameter may be used to specify the full -path to it. - - -\membersection{wxDebugReportUpload::OnServerReply}\label{wxdebugreportuploadonserverreply} - -\func{bool}{OnServerReply}{\param{const wxArrayString\& }{WXUNUSED(reply)}} - -This function may be overridden in a derived class to show the output from -curl: this may be an HTML page or anything else that the server returned. -Value returned by this function becomes the return value of -\helpref{wxDebugReport::Process()}{wxdebugreportprocess}. - - diff --git a/docs/latex/wx/debugrptz.tex b/docs/latex/wx/debugrptz.tex deleted file mode 100644 index 0429db4556..0000000000 --- a/docs/latex/wx/debugrptz.tex +++ /dev/null @@ -1,44 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: debugrptz.tex -%% Purpose: wxDebugReportCompress documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2005-03-21 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin 2005 -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDebugReportCompress}}\label{wxdebugreportcompress} - -wxDebugReportCompress is a \helpref{wxDebugReport}{wxdebugreport} which -compresses all the files in this debug report into a single .ZIP file in its -\texttt{\textit{Process()}} function. - -\wxheading{Derived from} - -\helpref{wxDebugReport}{wxdebugreport} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxQa}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDebugReportCompress::wxDebugReportCompress}\label{wxdebugreportcompresswxdebugreportcompress} - -\func{}{wxDebugReportCompress}{\void} - -Default constructor does nothing special. - -\membersection{wxDebugReportCompress::GetCompressedFileName}\label{wxdebugreportcompressgetcompressedfilename} - -\constfunc{const wxString\&}{GetCompressedFileName}{\void} - -Returns the full path of the compressed file (empty if creation failed). - diff --git a/docs/latex/wx/delgrend.tex b/docs/latex/wx/delgrend.tex deleted file mode 100644 index d6e497e8d4..0000000000 --- a/docs/latex/wx/delgrend.tex +++ /dev/null @@ -1,74 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: delgrend.tex -%% Purpose: wxDelegateRendererNative documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 11.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDelegateRendererNative}}\label{wxdelegaterenderernative} - -wxDelegateRendererNative allows reuse of renderers code by forwarding all the -\helpref{wxRendererNative}{wxrenderernative} methods to the given object and -thus allowing you to only modify some of its methods -- without having to -reimplement all of them. - -Note that the ``normal'', inheritance-based approach, doesn't work with the -renderers as it is impossible to derive from a class unknown at compile-time -and the renderer is only chosen at run-time. So suppose that you want to only -add something to the drawing of the tree control buttons but leave all the -other methods unchanged -- the only way to do it, considering that the renderer -class which you want to customize might not even be written yet when you write -your code (it could be written later and loaded from a DLL during run-time), is -by using this class. - -Except for the constructor, it has exactly the same methods as -\helpref{wxRendererNative}{wxrenderernative} and their implementation is -trivial: they are simply forwarded to the real renderer. Note that the ``real'' -renderer may, in turn, be a wxDelegateRendererNative as well and that there may -be arbitrarily many levels like this -- but at the end of the chain there must -be a real renderer which does the drawing. - -\wxheading{Derived from} - -\helpref{wxRendererNative}{wxrenderernative} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDelegateRendererNative::wxDelegateRendererNative}\label{wxdelegaterenderernativector} - -\func{}{wxDelegateRendererNative}{\void} - -\func{}{wxDelegateRendererNative}{\param{wxRendererNative\& }{rendererNative}} - -The default constructor does the same thing as the other one except that it -uses the \helpref{generic renderer}{wxrenderernativegetgeneric} instead of the -user-specified \arg{rendererNative}. - -In any case, this sets up the delegate renderer object to follow all calls to -the specified real renderer. - -Note that this object does \emph{not} take ownership of (i.e. won't delete) -\arg{rendererNative}. - - -\membersection{wxDelegateRendererNative::DrawXXX}\label{wxdelegaterenderernativedrawxxx} - -\func{}{DrawXXX}{\param{}{$\ldots$}} - -This class also provides all the virtual methods of -\helpref{wxRendererNative}{wxrenderernative}, please refer to that class -documentation for the details. - diff --git a/docs/latex/wx/descent.bmp b/docs/latex/wx/descent.bmp deleted file mode 100644 index 82f04cf191dc04877c496c553d4c772d78ff32f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16502 zcmeHNQD_{;86Gz^B&HaX;)j$zn1uy3y*}k37}^rTT`nmcO_%%cw!OXHOV0`ffoXJF z1tHW5os?Eq5@Sq|F{u&=Bz-C+rxR=o&cQ(f=gI53d}E=fD3yvGcD3@yaW|5I;TtGx3kV9f;Pao1*sO zf%yH!i{j7r0|9AD8AusO8AusO8AusO8AuuURxn`3%)&`E!t%4?56e}(-+>I3`=2?*mq3jU+*ZxMbFZbOK(K?ytx{OI^IhVkDO;>j@n z@!22oLv$m4I0TQ;{>ZinMkY!^Gh+T%9S7T09LL!*O)h3%0>G-%bhZFWRK`4zvXojZ zQpG>T-&KF72#;X@FWL7Cbtu}c<+E6BVY_`ra6+Y1N zf7;#mj9%{xLKmVN97p0;>?UF~Yc+s;Zhw~AwC7C5M;;>Zp@@v&50i5Jhd*vGWZ)9U zNB=L`EwJ|xKL;kP*?aaa8g_CHl`n#6Z%5)+(f)O62P*sHEnITLN#{QO3;93tk0vkL zOM8Sg-?VddyFE8a_-po3Bz_U?FY%+}ABXsL7#!;~v@c2i8UItnwe6R&Obyx#`-GpL zAsUA44{)#V|0;Yl0zMpnef{f2+svUU&>r~)X~IYNxjUZzAwdbCB6PNc~m(N5Bv7KkWbacj~ytI8zO{Z59CbZ*LZ0a>2>B z%IKO?u<%cN^L7Z|=YP@rAMkP)nuC8m;sMG2?)ppXZ3`+}M6}bwg;=h?CQ2hx3F_@z zELW{RQQm(wJQDFgQmVb)Dsr5_5%514f*KjWXxC|Tz@%FLhV}nI=MMhM$mc(EvVPwk zNTt7f{O&uz`t`0KSe8fL|0_6v^#54@d&pDIsQlk4Z!^`#h>@# zE6%?_>(5ygu#}H#|E-GSY_@n1<@!es7-e(+l#XKmMa`c&n)Y|DXYRPU|E7Bb@t+=& z1_d|&9jwRHCZ1Uzq-$5~H=lp*O%}W{5C=oUp zI+^ed60$7f&Tv~-qWk>@H|P>>)|8a~hxeWpr@Osg&pm{4Yk4s;{@MuTvOSN7bxO+k zr!slDx(z3_H1o_k9x-G5AxKF4_@wK*@sH3|0*7hbBwP#f8b3%0$u+S z15t!dUP<-uD-x&w4FdicfVZOHqo)>hr@?TCDpf9QI&pjTE(ToC&=O5xg^s5#zCwRjXZgT|TS0#=+zT(-gjX6NFF(}&F8%U>iybgv05nQx z1YEC63Gw6gKgTM|6aNjaurGQeK+-kPjJN+TL&~T>=dXA(ND=~r=RsBcZ!n~M1Ntgg z0uBgZ>E29^o-aAhTW&9v|1+ZZ2G+$7J^d$GgJ=Pmm-q_*e>lFOxfVRS_ArI`p8rL! ze=__6{D<@hZS)9u2jHDp|Cf)yvG@rh0H1&2?JwWH1n|ReUm%mf13jy${6E6}Ly!MS zBA|~SZGYI{3CNH;$Ccm_00%IRQU7-tGG_fF{3J_|BtRAauF3)YyB=r#JkcKLj-s-E zV9D8KGWxLnLV_j88$+c({<(*e8>Aall(FD-qg|AKsR#|0jg&RS~xbJ)?{NdT0ubbO)^H zmaZN0d=`rj@EN{K=_y0W=ptSZG-JZ*qVg7MZZ(b1Eu7G$=HYh7nD0M4E!Da4IaqiK zvKG+>i(pyZMbzBtWV%?!lDebs&fqBQ6CSpR`Z9{iQD~V2A{$v<|FvptY|M;O(gp`4lfs}!ifs}z`V8DDUDjfrmV#sCw zNGzM(#((t7777LWvTR(blr3bpx3}>kCqmgvV>nYu1s^y6SjZ*@AP3}1GyUi^y z>96+kuNLE)bh%l}L3_3~J!Lm17fLpMX*Dir#%brO4QMx3W~jX zZ#VEe%6xA8`1W%C9^>OzW%(TOKUV!qb_qXVME)C$KX(1AGnM&LtKF!w{gMCG@#;T0 zvo^on*l(DH>~v*kVb$JuKUx^85f}{lZ=?R>2S&uTTlfv_#!OjTp93R0zklsLfdnqm8+Iqz;-$IOC`!X=4o|4Mho=+>%pr zkR)eY%PkbCBu6aAJt3(>=iS%$^DlgV{l0#9{q%agF3-o~<>v0{;1~)5^FUvJfFKYR zp->=~D}>gxMGuZrIXNb}(qrHRbo9Qissk(-E-ti{mDMS{&EVh=a6B0>a2jlA3M*|#Wfh%L0ef|0BRe7mDR!i-sa{;pjCm#V*w8i&_4w1WqWuqMqUpAu>v40 z0Vt|l$JhX`M*&eWFt;FYZ_CNa?&wgIS~$&3O^)RhcaWVtTxlztHDuagYg>GLLVtg+ zzdsuQzQ^vR0shfIRb$kC+Su4Aka7jkb?Wa>w3D3{Hy7B&0PeN{YpX!J0vMZARox;I zWp~IGsdltQZ_d3-1wd&XkW&m`Y-0D*fZDdf{{;yi**rfiS-!cae*&=f9cb?b{eS%5 z1W5m={I`MGfAi)~fRF&F5J{ldm&wwQTDyX~>LpLo(MBG{^!w#cvvhun8tuA&tMfAP zXA!}@p`ttA)VDUcyP@(~;nvQ^oen~1x)mZOp4a_H^`X3D*lw#CH+AFGeT9MIpH{11 zRx?e!>y@43dXDz+qmHeUBEmt|6OsPAr8zx5VY2vR&y~7&4@@RZeN?J1;SQ#ZOx`d5 zdPi!P^1W?m(y9pO=udq0y~r*1Y6aKGvp;Z1p4aGKAbs0St&x^%6=08?v)z5z@z~wO z(%#lnG_{t?NM{RDH%b;iA)m+!oPAEep8{n=K| z7~^bBxGdCvypbJN^p7p^0$Lt^opS8^n^!m;Rlz8Z8yp%MB?+C8WZ+#Rm6@hhHA<1$ z`VgFC*1`o4lHwN=0iSVSxndR@IO(R z$5;XVU7*`%#lK`N*g18LlY`oEExgK|uJ;>vcIpPVW9M{n!s`>$C5cnFr%RL9W~XoR z;JaqZ1o)`U={ss?%Cmw0NKs_wIK?&ByHxNk6u6MO9(eLdT?XbYA+zu!JXV^Tx!Hv4?|wt)Vzm8MnJ3ZH z7BZgNx!}X8Y9Tgc(;ouTLHq?G@`L;6VTri(~)ZODmnxiRS0Zo1K%Zp(@--h4hyA4D_%GQ>ip z(%=?WmY*rkpuYIurwWqpQ7)SW&tcA8TaX$YHydc8kXy>+jn0;!47CRD_(otGq^ni& zR{^HF5uyE+1|DLYlqM1h_KOak2K))gAmmP~;CVyUV;XKqwPLAnSKS@i=o@bfv0g5+ zB6h3od$U@iI&a|gi`|Fq9bQ`UB?6^SXReiY#%GJx7bB|=CcvkLdS|@`?>?SBs zm>-V?JueR_7yo$RANr~1LC~WZZRZO6#0d)=I%A2yz+l3kXne|j-c=qGk6up>M>695s)~l@#!59Dov@for0epjnH>7`?!7Sm>~kC zO#8OHXmswIj!vtsSP(-D9ot9UN?SsD!z3{Er7=vZSkQc30t04LQ`MVn#kysod`M_v zk`vvbkV#BAK&LM;Oq(u8f>a+XGvTHY?HUcV^H1)ixp;Ivq9`V^BeT;m`@@9Jlu(TG zPAM|q&Up1UMeuNbm4c+J0#~v4M@kZM!WFN}W_W!j(3!E7EpvQFxwaWLO@8 z2v6841bh(6Km`n=oS1;VACi+2q~geOl|ngi>$ppe!vV_$3F6B;Ej2V1?wlNM;lcuK zpPM~+<-4?a%Y=!W4l(sYd&42KE*DjS94qMs1*+aR@gTOkX~lCekuwl9|8})IQ3}mQ z52#Ue2ZcF9f^`~luVXv}+(Ihj6{Y19$%FZ()^U!`8MgL=&$0}nFhR&^YRB0;&yGXa zRnN}&*{?h?^Z)&$8q}&Lz^&3wvvJ8_Q9< zxv3eJD(Mqd%`N7#I%Sck%S6cvxs5$*r)HZD2`D7yOCf|$StA7;P_yryv>pHPY@&p` zBJ0&q0sK>lErSPj8k8B*#c-uZ)As$m`k^agE8`l6C_2yhppIB@$XZn`gC)RnEYmf+ z_*?9Vv1y@s;D3DvK3xZ96$PzY`M!4$C#HU8lDs{$r$ae4B-_?eKeuwf=&gu zqrnhU@)lpygfcB21Zzwgyw=}XWp56?EtA5q$fg=M=Q*z%NiQULiUyeq_IfmdbmKm` z9pN<}^iKE1eKjepM>>CWWBrYE?G)6K2X@Th-`YC2-CUv2FaP{I*m?7NMz(H)Sja4y`j zn2$Qz1;#PN(BzYk-afZ$k!$xa#qQxn>AzTepywU;>x~=8@D~r{nM(o^VH}0ic-RHF z9bLBW+Ia3xZ0ZR(I%io(>}6C*bwPbAOy7|~+vgAa&+L!Vmhz&4kxjSHdMB`|gJ0}D zB=6H=u2${)clIEnG11TkQ8hp{2?*rFhNHs@bsVGIFZFQdH$N?8;sLARiK@Dj->Y&? zz0aeiz?vu%Yj%jb&&*7~subB+I&8eBfAVmLw+X%x1&%gspw7hRJ@Dw0`+h=w_%tNc zn317=tAC=3AN_Kbc}=uDA2@u#C2^lE)sz^SZ?upl?#`c_FS~qRKN)>C+mf|>rh%V) z57cSX#)k!T?C}UO+!#I_Xk2+ui_E)>G#jU==7Caf1T;KS9=;G2^Ce?`9$ zzd9HADZkC9?cX41p72VD&rhxY@h|NCvr5aifX z%+whkhgP#9oaMq&LSS49`YoS?XJVlfh%uU;pA{Nb&L>#wKn8dkiLihPFW+UH zIF1jI5D4Rl-(+B}RG&zK61cFSadfvmhMUeS3pj^ivA@ZVAIwES<8WRi^mURR)Cva$ zqeS(1$b_I;cIvDcORqtCH{e}s^d7Rbwv*Vf$l(2v=ewJDwYCDt1i>j)a1u#`Xc`0; zVq5sSFe|>_Fz##T@n3m{o;7+{YlDYz7Yt=kqa`?y;h>X&PKhx|-pK+T2oRQa{<4k5 zo&s-U@Y9({d<^kok(G7|lN_*|4v)($XQ3llM3GdlW=5O53>y22;}XwrfomyDGDWw} zpD@J+cVY)g2y_fF$vrM4X3pPmnRB1PqjUHIo**t@dMeui8{bQ&e3lK5*T%H$;*?1 z%x+1HEyRS3L&tGBA#XIAFClgvw)rGczuwN%Kk~#GOG`W6)M*yMx zElF`Tsh%&i_vI226QKrYwZ)cNd%BGJWjKT!mm)1_m0ZSWUa`D?o)pJ+x6>5SGIgxH zZI=TL!qA^jrRiXFTe~kbXI>INOut;I_cKi`QCcqbE-NwK1}bb z{YUeepDlrP-gg8l&}5Ye8;T9$N+y~#(fE?V*-Kf<5(C-3h(Jv);>OiL@vLKs-_w1L zvuJL>(F(VlxwL|OMJY}a?tAOz#_Y{{l~O~nYhR{H*h4gyC+>Y!w2g{Pp3TcFFC~KW z*}e!5uC48LFuhD=JiL^kY2mfP!0tlfgD|i%2~r0cOq8(linGGXZHh2 - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -%To process a window destruction event, use this event handler macro to direct input to a member -%function that takes a wxWindowDestroyEvent argument. -% -%\twocolwidtha{7cm} -%\begin{twocollist}\itemsep=0pt -%\twocolitem{{\bf EVT\_WINDOW\_DESTROY(func)}}{Process a wxEVT\_DESTROY event.} -%\end{twocollist}% - -It is not possible to receive this event using an event table macro. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxWindowCreateEvent}{wxwindowcreateevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindowDestroyEvent::wxWindowDestroyEvent}\label{wxwindowdestroyeventctor} - -\func{}{wxWindowDestroyEvent}{\param{wxWindow* }{win = NULL}} - -Constructor. - diff --git a/docs/latex/wx/dgramsocket.tex b/docs/latex/wx/dgramsocket.tex deleted file mode 100644 index 6a6207a684..0000000000 --- a/docs/latex/wx/dgramsocket.tex +++ /dev/null @@ -1,121 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dgramsocket.tex -%% Purpose: wxSocket docs -%% Author: Angel Vidal Veiga (kry@amule.org) -%% Modified by: -%% Created: 2006 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% --------------------------------------------------------------------------- -% CLASS wxDatagramSocket -% --------------------------------------------------------------------------- - -\section{\class{wxDatagramSocket}}\label{wxdatagramsocket} - -\wxheading{Derived from} - -\helpref{wxSocketBase}{wxsocketbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -% -% wxDatagramSocket -% -\membersection{wxDatagramSocket::wxDatagramSocket}\label{wxdatagramsocketctor} - -\func{}{wxDatagramSocket}{\param{wxSocketFlags}{ flags = wxSOCKET\_NONE}} - -Constructor. - -\wxheading{Parameters} - -\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} - -% -% ~wxDatagramSocket -% -\membersection{wxDatagramSocket::\destruct{wxDatagramSocket}}\label{wxdatagramsocketdtor} - -\func{}{\destruct{wxDatagramSocket}}{\void} - -Destructor. Please see \helpref{wxSocketBase::Destroy}{wxsocketbasedestroy}. - -% -% ReceiveFrom -% -\membersection{wxDatagramSocket::ReceiveFrom}\label{wxdatagramsocketreceivefrom} - -\func{wxDatagramSocket\&}{ReceiveFrom}{\param{wxSockAddress\&}{ address}, \param{void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function reads a buffer of {\it nbytes} bytes from the socket. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{address}{Any address - will be overwritten with the address of the peer that sent that data.} - -\docparam{buffer}{Buffer where to put read data.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object, and the address of the peer that sent the data on address param. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}, - -% -% SendTo -% -\membersection{wxDatagramSocket::SendTo}\label{wxdatagramsocketsendto} - -\func{wxDatagramSocket\&}{SendTo}{\param{const wxSockAddress\&}{ address}, \param{const void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function writes a buffer of {\it nbytes} bytes to the socket. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually wrote. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{address}{The address of the destination peer for this data.} - -\docparam{buffer}{Buffer where read data is.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags} - diff --git a/docs/latex/wx/dialevt.tex b/docs/latex/wx/dialevt.tex deleted file mode 100644 index 1cd3249ecf..0000000000 --- a/docs/latex/wx/dialevt.tex +++ /dev/null @@ -1,52 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dialevt.tex -%% Purpose: wxDialUpEvent documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 08.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDialUpEvent}}\label{wxdialupevent} - -This is the event class for the dialup events sent by -\helpref{wxDialUpManager}{wxdialupmanager}. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDialUpEvent::wxDialUpEvent}\label{wxdialupeventwxdialupevent} - -\func{}{wxDialUpEvent}{\param{bool }{isConnected}, \param{bool }{isOwnEvent}} - -Constructor is only used by \helpref{wxDialUpManager}{wxdialupmanager}. - -\membersection{wxDialUpEvent::IsConnectedEvent}\label{wxdialupeventisconnectedevent} - -\constfunc{bool}{IsConnectedEvent}{\void} - -Is this a {\tt CONNECTED} or {\tt DISCONNECTED} event? In other words, does it -notify about transition from offline to online state or vice versa? - -\membersection{wxDialUpEvent::IsOwnEvent}\label{wxdialupeventisownevent} - -\constfunc{bool}{IsOwnEvent}{\void} - -Does this event come from wxDialUpManager::Dial() or from some extrenal -process (i.e. does it result from our own attempt to establish the -connection)? - diff --git a/docs/latex/wx/dialog.tex b/docs/latex/wx/dialog.tex deleted file mode 100644 index f6fa0d8261..0000000000 --- a/docs/latex/wx/dialog.tex +++ /dev/null @@ -1,666 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dialog.tex -%% Purpose: wxDialog documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDialog}}\label{wxdialog} - -A dialog box is a window with a title bar and sometimes a system menu, which -can be moved around the screen. It can contain controls and other windows and -is often used to allow the user to make some choice or to answer a question. - -Dialogs can be made scrollable, automatically: please see \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for further details. - -\wxheading{Dialog Buttons} - -The dialog usually contains either a single button allowing to close the -dialog or two buttons, one accepting the changes and the other one discarding -them (such button, if present, is automatically activated if the user presses -the \texttt{"Esc"} key). By default, buttons with the standard \texttt{wxID\_OK} -and \texttt{wxID\_CANCEL} identifiers behave as expected. Starting with -wxWidgets 2.7 it is also possible to use a button with a different identifier -instead, see \helpref{SetAffirmativeId}{wxdialogsetaffirmativeid} and -\helpref{SetEscapeId}{wxdialogsetescapeid}. - -Also notice that the \helpref{CreateButtonSizer()}{wxdialogcreatebuttonsizer} -should be used to create the buttons appropriate for the current platform and -positioned correctly (including their order which is platform-dependent). - -\wxheading{Derived from} - -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Modal and modeless dialogs} - -There are two kinds of dialog -- {\it modal}\ and {\it modeless}. A modal dialog -blocks program flow and user input on other windows until it is dismissed, -whereas a modeless dialog behaves more like a frame in that program flow -continues, and input in other windows is still possible. To show a modal dialog -you should use the \helpref{ShowModal}{wxdialogshowmodal} method while to show -a dialog modelessly you simply use \helpref{Show}{wxdialogshow}, just as with -frames. - -Note that the modal dialog is one of the very few examples of -wxWindow-derived objects which may be created on the stack and not on the heap. -In other words, although this code snippet: - -\begin{verbatim} - void AskUser() - { - MyAskDialog *dlg = new MyAskDialog(...); - if ( dlg->ShowModal() == wxID_OK ) - ... - //else: dialog was cancelled or some another button pressed - - dlg->Destroy(); - } -\end{verbatim} - -works, you can also achieve the same result by using a simpler code fragment -below: - -\begin{verbatim} - void AskUser() - { - MyAskDialog dlg(...); - if ( dlg.ShowModal() == wxID_OK ) - ... - - // no need to call Destroy() here - } -\end{verbatim} - -An application can define a \helpref{wxCloseEvent}{wxcloseevent} handler for -the dialog to respond to system close events. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the dialog box.} -\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION, wxCLOSE\_BOX and wxSYSTEM\_MENU (the last one is not used under Unix)} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Display a resizeable frame around the window.} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu.} -\twocolitem{\windowstyle{wxCLOSE\_BOX}}{Displays a close box on the frame.} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the dialog.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the dialog.} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window.} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{The dialog stays on top of all other windows.} -\twocolitem{\windowstyle{wxNO\_3D}}{Under Windows, specifies that the child controls -should not have 3D borders unless specified in the control.} -\twocolitem{\windowstyle{wxDIALOG\_NO\_PARENT}}{By default, a dialog created -with a {\tt NULL} parent window will be given the -\helpref{application's top level window}{wxappgettopwindow} as parent. Use this -style to prevent this from happening and create an orphan dialog. This is not recommended for modal dialogs.} -\twocolitem{\windowstyle{wxDIALOG\_EX\_CONTEXTHELP}}{Under Windows, puts a query button on the -caption. When pressed, Windows will go into a context-sensitive help mode and wxWidgets will send -a wxEVT\_HELP event if the user clicked on an application window. {\it Note}\ that this is an extended -style and must be set by calling \helpref{SetExtraStyle}{wxwindowsetextrastyle} before Create is called (two-step construction).} -\twocolitem{\windowstyle{wxDIALOG\_EX\_METAL}}{On Mac OS X, frames with this style will be shown with a metallic look. This is an {\it extra} style.} -\end{twocollist} - -Under Unix or Linux, MWM (the Motif Window Manager) or other window managers -recognizing the MHM hints should be running for any of these styles to have an -effect. - -See also \helpref{Generic window styles}{windowstyles}. - -\wxheading{See also} - -\helpref{wxDialog overview}{wxdialogoverview}, \helpref{wxFrame}{wxframe},\rtfsp -\helpref{Validator overview}{validatoroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDialog::wxDialog}\label{wxdialogctor} - -\func{}{wxDialog}{\void} - -Default constructor. - -\func{}{wxDialog}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{Can be NULL, a frame or another dialog box.} - -\docparam{id}{An identifier for the dialog. A value of -1 is taken to mean a default.} - -\docparam{title}{The title of the dialog.} - -\docparam{pos}{The dialog position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The dialog size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxDialog}{wxdialog}.} - -\docparam{name}{Used to associate a name with the window, -allowing the application user to set Motif resource values for -individual dialog boxes.} - -\wxheading{See also} - -\helpref{wxDialog::Create}{wxdialogcreate} - - -\membersection{wxDialog::\destruct{wxDialog}}\label{wxdialogdtor} - -\func{}{\destruct{wxDialog}}{\void} - -Destructor. Deletes any child windows before deleting the physical window. - -\membersection{wxDialog::AddMainButtonId}\label{wxdialogaddmainbuttonid} - -\func{void}{AddMainButtonId}{\param{wxWindowID}{ id}} - -Adds an identifier to be regarded as a main button for the non-scrolling area of a dialog. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - -\membersection{wxDialog::CanDoLayoutAdaptation}\label{wxdialogcandolayoutadaptation} - -\func{bool}{CanDoLayoutAdapation}{\void} - -Returns \true if this dialog can and should perform layout adaptation using \helpref{DoLayoutAdaptation}{wxdialogdolayoutadaptation}, usually if -the dialog is too large to fit on the display. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - -\membersection{wxDialog::Centre}\label{wxdialogcentre} - -\func{void}{Centre}{\param{int}{ direction = wxBOTH}} - -Centres the dialog box on the display. - -\wxheading{Parameters} - -\docparam{direction}{May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.} - - -\membersection{wxDialog::Create}\label{wxdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Used for two-step dialog box construction. See \helpref{wxDialog::wxDialog}{wxdialogctor}\rtfsp -for details. - - -\membersection{wxDialog::CreateButtonSizer}\label{wxdialogcreatebuttonsizer} - -\func{wxSizer*}{CreateButtonSizer}{\param{long}{ flags}} - -Creates a sizer with standard buttons. {\it flags} is a bit list -of the following flags: wxOK, wxCANCEL, wxYES, wxNO, wxAPPLY, wxCLOSE, -wxHELP, wxNO\_DEFAULT. - -The sizer lays out the buttons in a manner appropriate to the platform. - -This function uses \helpref{CreateStdDialogButtonSizer}{wxdialogcreatestddialogbuttonsizer} -internally for most platforms but doesn't create the sizer at all for the -platforms with hardware buttons (such as smartphones) for which it sets up the -hardware buttons appropriately and returns \NULL, so don't forget to test that -the return value is valid before using it. - - -\membersection{wxDialog::CreateSeparatedButtonSizer}\label{wxdialogcreateseparatedbuttonsizer} - -\func{wxSizer*}{CreateSeparatedButtonSizer}{\param{long}{ flags}} - -Creates a sizer with standard buttons using -\helpref{CreateButtonSizer}{wxdialogcreatebuttonsizer} separated from the rest -of the dialog contents by a horizontal \helpref{wxStaticLine}{wxstaticline}. - -Please notice that just like CreateButtonSizer() this function may return \NULL -if no buttons were created. - - -\membersection{wxDialog::CreateStdDialogButtonSizer}\label{wxdialogcreatestddialogbuttonsizer} - -\func{wxStdDialogButtonSizer*}{CreateStdDialogButtonSizer}{\param{long}{ flags}} - -Creates a \helpref{wxStdDialogButtonSizer}{wxstddialogbuttonsizer} with standard buttons. {\it flags} is a bit list -of the following flags: wxOK, wxCANCEL, wxYES, wxNO, wxAPPLY, wxCLOSE, -wxHELP, wxNO\_DEFAULT. - -The sizer lays out the buttons in a manner appropriate to the platform. - -\membersection{wxDialog::DoLayoutAdaptation}\label{wxdialogdolayoutadaptation} - -\func{bool}{DoLayoutAdapation}{\void} - -Performs layout adaptation, usually if the dialog is too large to fit on the display. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - -\membersection{wxDialog::DoOK}\label{wxdialogdook} - -\func{virtual bool}{DoOK}{\void} - -This function is called when the titlebar OK button is pressed (PocketPC only). -A command event for the identifier returned by GetAffirmativeId is sent by -default. You can override this function. If the function returns false, wxWidgets -will call Close() for the dialog. - -\membersection{wxDialog::EnableLayoutAdaptation}\label{wxdialogenablelayoutadaptation} - -\func{static void}{EnableLayoutAdaptation}{\param{bool}{ enable}} - -A static function enabling or disabling layout adaptation for all dialogs. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::EndModal}\label{wxdialogendmodal} - -\func{void}{EndModal}{\param{int }{retCode}} - -Ends a modal dialog, passing a value to be returned from the \helpref{wxDialog::ShowModal}{wxdialogshowmodal}\rtfsp -invocation. - -\wxheading{Parameters} - -\docparam{retCode}{The value that should be returned by {\bf ShowModal}.} - -\wxheading{See also} - -\helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode},\rtfsp -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode} - - -\membersection{wxDialog::GetAffirmativeId}\label{wxdialoggetaffirmativeid} - -\constfunc{int}{GetAffirmativeId}{\void} - -Gets the identifier of the button which works like standard OK button in this -dialog. - -\wxheading{See also} - -\helpref{wxDialog::SetAffirmativeId}{wxdialogsetaffirmativeid} - -\membersection{wxDialog::GetContentWindow}\label{wxdialoggetcontentwindow} - -\constfunc{wxWindow*}{GetContentWindow}{\void} - -Override this to return a window containing the main content of the dialog. This is -particularly useful when the dialog implements pages, such as wxPropertySheetDialog, -and allows the \helpref{layout adaptation code}{wxdialogoverview} to know that only the pages need to be made scrollable. - -\membersection{wxDialog::GetEscapeId}\label{wxdialoggetescapeid} - -\constfunc{int}{GetEscapeId}{\void} - -Gets the identifier of the button to map presses of \texttt{\textsc{ESC}} -button to. - -\wxheading{See also} - -\helpref{wxDialog::SetEscapeId}{wxdialogsetescapeid} - - -\membersection{wxDialog::GetLayoutAdaptationDone}\label{wxdialoggetlayoutadaptationdone} - -\constfunc{bool}{GetLayoutAdaptationDone}{\void} - -Returns \true if the dialog has been adapted, usually by making it scrollable to work with a small display. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::GetLayoutAdaptationLevel}\label{wxdialoggetlayoutadaptationlevel} - -\func{int}{GetLayoutAdaptationLevel}{\void} - -Gets a value representing the aggressiveness of search for buttons and sizers to be in the non-scrolling part of a layout-adapted dialog. -Zero switches off adaptation, and 3 allows search for standard buttons anywhere in the dialog. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::GetLayoutAdaptationMode}\label{wxdialoggetlayoutadaptationmode} - -\constfunc{wxDialogLayoutAdaptationMode}{GetLayoutAdaptationMode}{\void} - -Gets the adaptation mode, overriding the global adaptation flag. - -See also \helpref{SetLayoutAdaptationMode}{wxdialogsetlayoutadaptationmode} and \helpref{Automatic scrolling dialogs}{autoscrollingdialogs}. - -\membersection{wxDialog::GetLayoutAdapter}\label{wxdialoggetlayoutadapter} - -\func{static wxDialogLayoutAdapter*}{GetLayoutAdapter}{\void} - -A static function getting the current layout adapter object. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::GetMainButtonIds}\label{wxdialoggetmainbuttonids} - -\func{wxArrayInt\&}{GetMainButtonIds}{\void} - -Returns an array of identifiers to be regarded as the main buttons for the non-scrolling area of a dialog. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - -\membersection{wxDialog::GetReturnCode}\label{wxdialoggetreturncode} - -\func{int}{GetReturnCode}{\void} - -Gets the return code for this window. - -\wxheading{Remarks} - -A return code is normally associated with a modal dialog, where \helpref{wxDialog::ShowModal}{wxdialogshowmodal} returns -a code to the application. - -\wxheading{See also} - -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal} - - -\membersection{wxDialog::GetToolBar}\label{wxdialoggettoolbar} - -\constfunc{wxToolBar*}{GetToolBar}{\void} - -On PocketPC, a dialog is automatically provided with an empty toolbar. GetToolBar -allows you to access the toolbar and add tools to it. Removing tools and adding -arbitrary controls are not currently supported. - -This function is not available on any other platform. - - -\membersection{wxDialog::Iconize}\label{wxdialogiconized} - -\func{void}{Iconize}{\param{bool}{ iconize}} - -Iconizes or restores the dialog. Windows only. - -\wxheading{Parameters} - -\docparam{iconize}{If true, iconizes the dialog box; if false, shows and restores it.} - -\wxheading{Remarks} - -Note that in Windows, iconization has no effect since dialog boxes cannot be -iconized. However, applications may need to explicitly restore dialog -boxes under Motif which have user-iconizable frames, and under Windows -calling {\tt Iconize(false)} will bring the window to the front, as does -\rtfsp{\tt Show(true)}. - - -\membersection{wxDialog::IsIconized}\label{wxdialogisiconized} - -\constfunc{bool}{IsIconized}{\void} - -Returns true if the dialog box is iconized. Windows only. - -\wxheading{Remarks} - -Always returns false under Windows since dialogs cannot be iconized. - - -\membersection{wxDialog::IsLayoutAdaptationEnabled}\label{wxdialogislayoutadaptationenabled} - -\func{static bool}{IsLayoutAdaptationEnabled}{\void} - -A static function returning \true if layout adaptation is enabled for all dialogs. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::IsMainButton}\label{wxdialogismainbutton} - -\constfunc{bool}{IsMainButton}{\param{wxWindowID\& }{id}} - -Returns \true if {\it id} is in the array of identifiers to be regarded as the main buttons for the non-scrolling area of a dialog. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::IsModal}\label{wxdialogismodal} - -\constfunc{bool}{IsModal}{\void} - -Returns true if the dialog box is modal, false otherwise. - - - -\membersection{wxDialog::OnSysColourChanged}\label{wxdialogonsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}} - -The default handler for wxEVT\_SYS\_COLOUR\_CHANGED. - -\wxheading{Parameters} - -\docparam{event}{The colour change event.} - -\wxheading{Remarks} - -Changes the dialog's colour to conform to the current settings (Windows only). -Add an event table entry for your dialog class if you wish the behaviour -to be different (such as keeping a user-defined -background colour). If you do override this function, call wxEvent::Skip to -propagate the notification to child windows and controls. - -\wxheading{See also} - -\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} - - -\membersection{wxDialog::SetAffirmativeId}\label{wxdialogsetaffirmativeid} - -\func{void}{SetAffirmativeId}{\param{int }{id}} - -Sets the identifier to be used as OK button. When the button with this -identifier is pressed, the dialog calls \helpref{Validate}{wxwindowvalidate} -and \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow} -and, if they both return \true, closes the dialog with \texttt{wxID\_OK} return -code. - -Also, when the user presses a hardware OK button on the devices having one or -the special OK button in the PocketPC title bar, an event with this id is -generated. - -By default, the affirmative id is wxID\_OK. - -\wxheading{See also} - -\helpref{wxDialog::GetAffirmativeId}{wxdialoggetaffirmativeid}, \helpref{wxDialog::SetEscapeId}{wxdialogsetescapeid} - - -\membersection{wxDialog::SetEscapeId}\label{wxdialogsetescapeid} - -\func{void}{SetEscapeId}{\param{int }{id}} - -Sets the identifier of the button which should work like the standard -\texttt{\textsc{Cancel}} button in this dialog. When the button with this id is -clicked, the dialog is closed. Also, when the user presses \texttt{\textsc{ESC}} -key in the dialog or closes the dialog using the close button in the title bar, -this is mapped to the click of the button with the specified id. - -By default, the escape id is the special value \texttt{wxID\_ANY} meaning that -\texttt{wxID\_CANCEL} button is used if it's present in the dialog and -otherwise the button with \helpref{GetAffirmativeId()}{wxdialoggetaffirmativeid} -is used. Another special value for \arg{id} is \texttt{wxID\_NONE} meaning that -\texttt{\textsc{ESC}} presses should be ignored. If any other value is given, it -is interpreted as the id of the button to map the escape key to. - - -\membersection{wxDialog::SetIcon}\label{wxdialogseticon} - -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} - -Sets the icon for this dialog. - -\wxheading{Parameters} - -\docparam{icon}{The icon to associate with this dialog.} - -See also \helpref{wxIcon}{wxicon}. - - -\membersection{wxDialog::SetIcons}\label{wxdialogseticons} - -\func{void}{SetIcons}{\param{const wxIconBundle\& }{icons}} - -Sets the icons for this dialog. - -\wxheading{Parameters} - -\docparam{icons}{The icons to associate with this dialog.} - -See also \helpref{wxIconBundle}{wxiconbundle}. - - -\membersection{wxDialog::SetLayoutAdaptationDone}\label{wxdialogsetlayoutadaptationdone} - -\func{void}{SetLayoutAdaptationDone}{\param{bool }{done}} - -Marks the dialog as having been adapted, usually by making it scrollable to work with a small display. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::SetLayoutAdaptationLevel}\label{wxdialogsetlayoutadaptationlevel} - -\func{void}{SetLayoutAdaptationLevel}{\param{int }{level}} - -Sets the aggressiveness of search for buttons and sizers to be in the non-scrolling part of a layout-adapted dialog. -Zero switches off adaptation, and 3 allows search for standard buttons anywhere in the dialog. - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::SetLayoutAdaptationMode}\label{wxdialogsetlayoutadaptationmode} - -\func{void}{SetLayoutAdaptationMode}{\param{wxDialogLayoutAdaptationMode }{mode}} - -Sets the adaptation mode, overriding the global adaptation flag. {\it mode} may be one of the following values: - -\begin{verbatim} -enum wxDialogLayoutAdaptationMode -{ - wxDIALOG_ADAPTATION_MODE_DEFAULT = 0, // use global adaptation enabled status - wxDIALOG_ADAPTATION_MODE_ENABLED = 1, // enable this dialog overriding global status - wxDIALOG_ADAPTATION_MODE_DISABLED = 2 // disable this dialog overriding global status -}; -\end{verbatim} - -See also \helpref{Automatic scrolling dialogs}{autoscrollingdialogs} for more on layout adaptation. - - -\membersection{wxDialog::SetLayoutAdapter}\label{wxdialogsetlayoutadapter} - -\func{static wxDialogLayoutAdapter*}{SetLayoutAdapter}{\param{wxDialogLayoutAdapter*}{ adapter}} - -A static function for setting the current layout adapter object, returning the old adapter. If you call this, you should -delete the old adapter object. - -See also \helpref{wxDialogLayoutAdapter}{wxdialoglayoutadapter} and \helpref{Automatic scrolling dialogs}{autoscrollingdialogs}. - - -\membersection{wxDialog::SetModal}\label{wxdialogsetmodal} - -\func{void}{SetModal}{\param{bool}{ flag}} - -{\bf NB:} This function is deprecated and doesn't work for all ports, just use -\helpref{ShowModal}{wxdialogshowmodal} to show a modal dialog instead. - -Allows the programmer to specify whether the dialog box is modal (wxDialog::Show blocks control -until the dialog is hidden) or modeless (control returns immediately). - -\wxheading{Parameters} - -\docparam{flag}{If true, the dialog will be modal, otherwise it will be modeless.} - - -\membersection{wxDialog::SetReturnCode}\label{wxdialogsetreturncode} - -\func{void}{SetReturnCode}{\param{int }{retCode}} - -Sets the return code for this window. - -\wxheading{Parameters} - -\docparam{retCode}{The integer return code, usually a control identifier.} - -\wxheading{Remarks} - -A return code is normally associated with a modal dialog, where \helpref{wxDialog::ShowModal}{wxdialogshowmodal} returns -a code to the application. The function \helpref{wxDialog::EndModal}{wxdialogendmodal} calls {\bf SetReturnCode}. - -\wxheading{See also} - -\helpref{wxDialog::GetReturnCode}{wxdialoggetreturncode}, \helpref{wxDialog::ShowModal}{wxdialogshowmodal},\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal} - - -\membersection{wxDialog::Show}\label{wxdialogshow} - -\func{bool}{Show}{\param{bool}{ show}} - -Hides or shows the dialog. - -\wxheading{Parameters} - -\docparam{show}{If true, the dialog box is shown and brought to the front; -otherwise the box is hidden. If false and the dialog is -modal, control is returned to the calling program.} - -\wxheading{Remarks} - -The preferred way of dismissing a modal dialog is to use \helpref{wxDialog::EndModal}{wxdialogendmodal}. - - -\membersection{wxDialog::ShowModal}\label{wxdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows a modal dialog. Program flow does not return until the dialog has been dismissed with\rtfsp -\helpref{wxDialog::EndModal}{wxdialogendmodal}. - -\wxheading{Return value} - -The return value is the value set with \helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode}. - -\wxheading{See also} - -\helpref{wxDialog::EndModal}{wxdialogendmodal},\rtfsp -\helpref{wxDialog:GetReturnCode}{wxdialoggetreturncode},\rtfsp -\helpref{wxDialog::SetReturnCode}{wxdialogsetreturncode} - diff --git a/docs/latex/wx/dialoglayoutadapter.tex b/docs/latex/wx/dialoglayoutadapter.tex deleted file mode 100644 index f8a607bdd4..0000000000 --- a/docs/latex/wx/dialoglayoutadapter.tex +++ /dev/null @@ -1,48 +0,0 @@ -\section{\class{wxDialogLayoutAdapter}}\label{wxdialoglayoutadapter} - -This abstract class is the base for classes that help wxWidgets peform run-time layout adaptation of dialogs. Principally, -this is to cater for small displays by making part of the dialog scroll, but the application developer may find other -uses for layout adaption. - -By default, there is one instance of wxStandardDialogLayoutAdapter -which can perform adaptation for most custom dialogs and dialogs with book controls -such as \helpref{wxPropertySheetDialog}{wxpropertysheetdialog}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Automatic scrolling dialogs}{autoscrollingdialogs} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDialogLayoutAdapter::wxDialogLayoutAdapter}\label{wxdialoglayoutadapterctor} - -\func{}{wxDialogLayoutAdapter}{\void} - -Default constructor. - -\membersection{wxDialogLayoutAdapter::CanDoLayoutAdaptation}\label{wxdialoglayoutadaptercandolayoutadaptation} - -\func{bool}{CanDoLayoutAdaptation}{\param{wxDialog*}{ dialog}} - -Override this to returns \true if adaptation can and should be done. - -\membersection{wxDialogLayoutAdapter::DoLayoutAdaptation}\label{wxdialoglayoutadapterdolayoutadaptation} - -\func{bool}{DoLayoutAdaptation}{\param{wxDialog*}{ dialog}} - -Override this to perform layout adaptation, such as making parts of the dialog scroll and resizing the dialog to fit the display. -Normally this function will be called just before the dialog is shown. - diff --git a/docs/latex/wx/dialup.tex b/docs/latex/wx/dialup.tex deleted file mode 100644 index fd492047bf..0000000000 --- a/docs/latex/wx/dialup.tex +++ /dev/null @@ -1,219 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dialup.tex -%% Purpose: wxDialUpManager documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 08.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDialUpManager}}\label{wxdialupmanager} - -This class encapsulates functions dealing with verifying the connection status -of the workstation (connected to the Internet via a direct connection, -connected through a modem or not connected at all) and to establish this -connection if possible/required (i.e. in the case of the modem). - -The program may also wish to be notified about the change in the connection -status (for example, to perform some action when the user connects to the -network the next time or, on the contrary, to stop receiving data from the net -when the user hangs up the modem). For this, you need to use one of the event -macros described below. - -This class is different from other wxWidgets classes in that there is at most -one instance of this class in the program accessed via -\helpref{wxDialUpManager::Create()}{wxdialupmanagercreate} and you can't -create the objects of this class directly. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To be notified about the change in the network connection status, use these -event handler macros to direct input to member functions that take a -\helpref{wxDialUpEvent}{wxdialupevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_DIALUP\_CONNECTED(func)}}{A connection with the network was established.} -\twocolitem{{\bf EVT\_DIALUP\_DISCONNECTED(func)}}{The connection with the network was lost.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{dialup sample}{sampledialup}\\ -\helpref{wxDialUpEvent}{wxdialupevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDialUpManager::Create}\label{wxdialupmanagercreate} - -\func{wxDialUpManager*}{Create}{\void} - -This function should create and return the object of the platform-specific -class derived from wxDialUpManager. You should delete the pointer when you are -done with it. - -\membersection{wxDialUpManager::IsOk}\label{wxdialupmanagerisok} - -\constfunc{bool}{IsOk}{\void} - -Returns {\tt true} if the dialup manager was initialized correctly. If this -function returns {\tt false}, no other functions will work neither, so it is a -good idea to call this function and check its result before calling any other -wxDialUpManager methods - -\membersection{wxDialUpManager::\destruct{wxDialUpManager}}\label{wxdialupmanagerdtor} - -\func{}{\destruct{wxDialUpManager}}{\void} - -Destructor. - -\membersection{wxDialUpManager::GetISPNames}\label{wxdialupmanagergetispnames} - -\constfunc{size\_t}{GetISPNames}{\param{wxArrayString\& }{names}} - -This function is only implemented under Windows. - -Fills the array with the names of all possible values for the first -parameter to \helpref{Dial()}{wxdialupmanagerdial} on this machine and returns -their number (may be $0$). - -\membersection{wxDialUpManager::Dial}\label{wxdialupmanagerdial} - -\func{bool}{Dial}{\param{const wxString\& }{nameOfISP = wxEmptyString}, \param{const wxString\& }{username = wxEmptyString}, \param{const wxString\& }{password = wxEmptyString}, \param{bool }{async = true}} - -Dial the given ISP, use {\it username} and {\it password} to authenticate. - -The parameters are only used under Windows currently, for Unix you should use -\helpref{SetConnectCommand}{wxdialupmanagersetconnectcommand} to customize this -functions behaviour. - -If no {\it nameOfISP} is given, the function will select the default one -(proposing the user to choose among all connections defined on this machine) -and if no username and/or password are given, the function will try to do -without them, but will ask the user if really needed. - -If {\it async} parameter is {\tt false}, the function waits until the end of dialing -and returns {\tt true} upon successful completion. - -If {\it async} is {\tt true}, the function only initiates the connection and -returns immediately - the result is reported via events (an event is sent -anyhow, but if dialing failed it will be a DISCONNECTED one). - -\membersection{wxDialUpManager::IsDialing}\label{wxdialupmanagerisdialing} - -\constfunc{bool}{IsDialing}{\void} - -Returns true if (async) dialing is in progress. - -\wxheading{See also} - -\helpref{Dial}{wxdialupmanagerdial} - -\membersection{wxDialUpManager::CancelDialing}\label{wxdialupmanagercanceldialing} - -\func{bool}{CancelDialing}{\void} - -Cancel dialing the number initiated with \helpref{Dial}{wxdialupmanagerdial} -with async parameter equal to {\tt true}. - -Note that this won't result in DISCONNECTED event being sent. - -\wxheading{See also} - -\helpref{IsDialing}{wxdialupmanagerisdialing} - -\membersection{wxDialUpManager::HangUp}\label{wxdialupmanagerhangup} - -\func{bool}{HangUp}{\void} - -Hang up the currently active dial up connection. - -\membersection{wxDialUpManager::IsAlwaysOnline}\label{wxdialupmanagerisalwaysonline} - -\constfunc{bool}{IsAlwaysOnline}{\void} - -Returns {\tt true} if the computer has a permanent network connection (i.e. is -on a LAN) and so there is no need to use Dial() function to go online. - -{\bf NB:} this functions tries to guess the result and it is not always -guaranteed to be correct, so it is better to ask user for -confirmation or give him a possibility to override it. - -\membersection{wxDialUpManager::IsOnline}\label{wxdialupmanagerisonline} - -\constfunc{bool}{IsOnline}{\void} - -Returns {\tt true} if the computer is connected to the network: under Windows, -this just means that a RAS connection exists, under Unix we check that -the "well-known host" (as specified by -\helpref{SetWellKnownHost}{wxdialupmanagersetwellknownhost}) is reachable. - -\membersection{wxDialUpManager::SetOnlineStatus}\label{wxdialupmanagersetonlinestatus} - -\func{void}{SetOnlineStatus}{\param{bool }{isOnline = true}} - -Sometimes the built-in logic for determining the online status may fail, -so, in general, the user should be allowed to override it. This function -allows to forcefully set the online status - whatever our internal -algorithm may think about it. - -\wxheading{See also} - -\helpref{IsOnline}{wxdialupmanagerisonline} - -\membersection{wxDialUpManager::EnableAutoCheckOnlineStatus}\label{wxdialupmanagerenableautocheckonlinestatus} - -\func{bool}{EnableAutoCheckOnlineStatus}{\param{size\_t }{nSeconds = 60}} - -Enable automatic checks for the connection status and sending of -{\tt wxEVT\_DIALUP\_CONNECTED/wxEVT\_DIALUP\_DISCONNECTED} events. The interval -parameter is only for Unix where we do the check manually and specifies how -often should we repeat the check (each minute by default). Under Windows, the -notification about the change of connection status is sent by the system and so -we don't do any polling and this parameter is ignored. - -Returns {\tt false} if couldn't set up automatic check for online status. - -\membersection{wxDialUpManager::DisableAutoCheckOnlineStatus}\label{wxdialupmanagerdisableautocheckonlinestatus} - -\func{void}{DisableAutoCheckOnlineStatus}{\void} - -Disable automatic check for connection status change - notice that the -{\tt wxEVT\_DIALUP\_XXX} events won't be sent any more neither. - -\membersection{wxDialUpManager::SetWellKnownHost}\label{wxdialupmanagersetwellknownhost} - -\func{void}{SetWellKnownHost}{\param{const wxString\& }{hostname}, \param{int }{portno = 80}} - -This method is for Unix only. - -Under Unix, the value of well-known host is used to check whether we're -connected to the internet. It is unused under Windows, but this function -is always safe to call. The default value is {\tt www.yahoo.com:80}. - -\membersection{wxDialUpManager::SetConnectCommand}\label{wxdialupmanagersetconnectcommand} - -\func{void}{SetConnectCommand}{\param{const wxString\& }{commandDial = wxT("/usr/bin/pon")}, \param{const wxString\& }{commandHangup = wxT("/usr/bin/poff")}} - -This method is for Unix only. - -Sets the commands to start up the network and to hang up again. - -\wxheading{See also} - -\helpref{Dial}{wxdialupmanagerdial} - diff --git a/docs/latex/wx/dir.tex b/docs/latex/wx/dir.tex deleted file mode 100644 index 890afeb6e9..0000000000 --- a/docs/latex/wx/dir.tex +++ /dev/null @@ -1,237 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dir.tex -%% Purpose: wxDir documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 04.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDir}}\label{wxdir} - -wxDir is a portable equivalent of Unix {open/read/close}dir functions which -allow enumerating of the files in a directory. wxDir allows to enumerate files -as well as directories. - -wxDir also provides a flexible way to enumerate files recursively using -\helpref{Traverse}{wxdirtraverse} or a simpler -\helpref{GetAllFiles}{wxdirgetallfiles} function. - -Example of use: - -\begin{verbatim} - wxDir dir(wxGetCwd()); - - if ( !dir.IsOpened() ) - { - // deal with the error here - wxDir would already log an error message - // explaining the exact reason of the failure - return; - } - - puts("Enumerating object files in current directory:"); - - wxString filename; - - bool cont = dir.GetFirst(&filename, filespec, flags); - while ( cont ) - { - printf("%s\n", filename.c_str()); - - cont = dir.GetNext(&filename); - } -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Constants} - -These flags define what kind of filename is included in the list of files -enumerated by GetFirst/GetNext. - -{\small -\begin{verbatim} -enum -{ - wxDIR_FILES = 0x0001, // include files - wxDIR_DIRS = 0x0002, // include directories - wxDIR_HIDDEN = 0x0004, // include hidden files - wxDIR_DOTDOT = 0x0008, // include '.' and '..' - - // by default, enumerate everything except '.' and '..' - wxDIR_DEFAULT = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN -} -\end{verbatim} -} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDir::wxDir}\label{wxdirwxdir} - -\func{}{wxDir}{\void} - -Default constructor, use \helpref{Open()}{wxdiropen} afterwards. - -\func{}{wxDir}{\param{const wxString\& }{dir}} - -Opens the directory for enumeration, use \helpref{IsOpened()}{wxdirisopened} -to test for errors. - - -\membersection{wxDir::\destruct{wxDir}}\label{wxdirdtor} - -\func{}{\destruct{wxDir}}{\void} - -Destructor cleans up the associated resources. It is not virtual and so this -class is not meant to be used polymorphically. - - -\membersection{wxDir::Exists}\label{wxdirexists} - -\func{static bool}{Exists}{\param{const wxString\& }{dir}} - -Test for existence of a directory with the given name - - -\membersection{wxDir::GetAllFiles}\label{wxdirgetallfiles} - -\func{static size\_t}{GetAllFiles}{\param{const wxString\& }{dirname}, \param{wxArrayString *}{files}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}} - -The function appends the names of all the files under directory {\it dirname} -to the array {\it files} (note that its old content is preserved). Only files -matching the {\it filespec} are taken, with empty spec matching all the files. - -The {\it flags} parameter should always include {\tt wxDIR\_FILES} or the array -would be unchanged and should include {\tt wxDIR\_DIRS} flag to recurse into -subdirectories (both flags are included in the value by default). - -See also: \helpref{Traverse}{wxdirtraverse} - - -\membersection{wxDir::FindFirst}\label{wxdirfindfirst} - -\func{static wxString}{FindFirst}{\param{const wxString\& }{dirname}, \param{const wxString\& }{filespec}, \param{int }{flags = wxDIR\_DEFAULT}} - -The function returns the path of the first file matching the given \arg{filespec} -or an empty string if there are no files matching it. - -The \arg{flags} parameter may or may not include {\tt wxDIR\_FILES}, the -function always behaves as if it were specified. By default, \arg{flags} -includes {\tt wxDIR\_DIRS} and so the function recurses into the subdirectories -but if this flag is not specified, the function restricts the search only to -the directory \arg{dirname} itself. - -See also: \helpref{Traverse}{wxdirtraverse} - - -\membersection{wxDir::GetFirst}\label{wxdirgetfirst} - -\constfunc{bool}{GetFirst}{\param{wxString* }{filename}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}} - -Start enumerating all files matching {\it filespec} (or all files if it is -empty) and {\it flags}, return \true on success. - - -\membersection{wxDir::GetName}\label{wxdirgetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the name of the directory itself. The returned string does not have the -trailing path separator (slash or backslash). - - -\membersection{wxDir::GetNext}\label{wxdirgetnext} - -\constfunc{bool}{GetNext}{\param{wxString* }{filename}} - -Continue enumerating files which satisfy the criteria specified by the last -call to \helpref{GetFirst}{wxdirgetfirst}. - - -\membersection{wxDir::GetTotalSize}\label{wxdirgettotalsize} - -\func{static wxULongLong}{GetTotalSize}{\param{const wxString\& }{dir}, \param{wxArrayString* }{filesSkipped = NULL}} - -Returns the size (in bytes) of all files recursively found in {\tt dir} or -{\tt wxInvalidSize} in case of error. - -In case it happens that while traversing folders a file's size can not be read, -that file is added to the {\tt filesSkipped} array, if not \NULL, and then -skipped. -This usually happens with some special folders which are locked by the operating system -or by another process. Remember that when {\tt filesSkipped->GetCount()} is not zero, -then the returned value is not 100\% accurate and, if the skipped files were big, it could be -far from real size of the directory. - -See also: \helpref{wxFileName::GetHumanReadableSize}{wxfilenamegethumanreadablesize}, -\helpref{wxGetDiskSpace}{wxgetdiskspace} - - -\membersection{wxDir::HasFiles}\label{wxdirhasfiles} - -\func{bool}{HasFiles}{\param{const wxString\& }{filespec = wxEmptyString}} - -Returns {\tt true} if the directory contains any files matching the given -{\it filespec}. If {\it filespec} is empty, look for any files at all. In any -case, even hidden files are taken into account. - - -\membersection{wxDir::HasSubDirs}\label{wxdirhassubdirs} - -\func{bool}{HasSubDirs}{\param{const wxString\& }{dirspec = wxEmptyString}} - -Returns {\tt true} if the directory contains any subdirectories (if a non -empty {\it filespec} is given, only check for directories matching it). -The hidden subdirectories are taken into account as well. - - -\membersection{wxDir::IsOpened}\label{wxdirisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns true if the directory was successfully opened by a previous call to -\helpref{Open}{wxdiropen}. - - -\membersection{wxDir::Open}\label{wxdiropen} - -\func{bool}{Open}{\param{const wxString\& }{dir}} - -Open the directory for enumerating, returns {\tt true} on success -or {\tt false} if an error occurred. - - -\membersection{wxDir::Traverse}\label{wxdirtraverse} - -\func{size\_t}{Traverse}{\param{wxDirTraverser\& }{sink}, \param{const wxString\& }{filespec = wxEmptyString}, \param{int }{flags = wxDIR\_DEFAULT}} - -Enumerate all files and directories under the given directory recursively -calling the element of the provided \helpref{wxDirTraverser}{wxdirtraverser} -object for each of them. - -More precisely, the function will really recurse into subdirectories if -{\it flags} contains {\tt wxDIR\_DIRS} flag. It will ignore the files (but -still possibly recurse into subdirectories) if {\tt wxDIR\_FILES} flag is -given. - -For each found directory, \helpref{sink.OnDir()}{wxdirtraverserondir} is called -and \helpref{sink.OnFile()}{wxdirtraverseronfile} is called for every file. -Depending on the return value, the enumeration may continue or stop. - -The function returns the total number of files found or {\tt (size\_t)-1} on -error. - -See also: \helpref{GetAllFiles}{wxdirgetallfiles} - diff --git a/docs/latex/wx/dirctrl.tex b/docs/latex/wx/dirctrl.tex deleted file mode 100644 index 190a63cdde..0000000000 --- a/docs/latex/wx/dirctrl.tex +++ /dev/null @@ -1,198 +0,0 @@ -\section{\class{wxGenericDirCtrl}}\label{wxgenericdirctrl} - -This control can be used to place a directory listing (with optional files) on an arbitrary window. - -The control contains a \helpref{wxTreeCtrl}{wxtreectrl} window representing the directory -hierarchy, and optionally, a \helpref{wxChoice}{wxchoice} window containing a list of filters. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{\indexit{wxDIRCTRL\_DIR\_ONLY}}{Only show directories, and not files.} -\twocolitem{\indexit{wxDIRCTRL\_3D\_INTERNAL}}{Use 3D borders for internal controls.} -\twocolitem{\indexit{wxDIRCTRL\_SELECT\_FIRST}}{When setting the default path, select the first file in the directory.} -\twocolitem{\indexit{wxDIRCTRL\_EDIT\_LABELS}}{Allow the folder and file labels to be editable.} -\end{twocollist} - -See also \helpref{Generic window styles}{windowstyles}. - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGenericDirCtrl::wxGenericDirCtrl}\label{wxgenericdirctrlwxgenericdirctrl} - -\func{}{wxGenericDirCtrl}{\void} - -Default constructor. - -\func{}{wxGenericDirCtrl}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id = -1}, - \param{const wxString\& }{dir = wxDirDialogDefaultFolderStr}, \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDIRCTRL\_3D\_INTERNAL|wxBORDER\_SUNKEN}, - \param{const wxString\& }{filter = wxEmptyString}, - \param{int }{defaultFilter = 0}, - \param{const wxString\& }{name = wxTreeCtrlNameStr}} - -Main constructor. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{id}{Window identifier.} - -\docparam{dir}{Initial folder.} - -\docparam{pos}{Position.} - -\docparam{size}{Size.} - -\docparam{style}{Window style. Please see \helpref{wxGenericDirCtrl}{wxgenericdirctrl} for a list of possible styles.} - -\docparam{filter}{A filter string, using the same syntax as that for \helpref{wxFileDialog}{wxfiledialog}. This may be empty if filters -are not being used. - -Example: ``All files (*.*)|*.*|JPEG files (*.jpg)|*.jpg"} - -\docparam{defaultFilter}{The zero-indexed default filter setting.} - -\docparam{name}{The window name.} - -\membersection{wxGenericDirCtrl::\destruct{wxGenericDirCtrl}}\label{wxgenericdirctrldtor} - -\func{}{\destruct{wxGenericDirCtrl}}{\void} - -Destructor. - -\membersection{wxGenericDirCtrl::Create}\label{wxgenericdirctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id = -1}, \param{const wxString\& }{dir = wxDirDialogDefaultFolderStr}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDIRCTRL\_3D\_INTERNAL|wxBORDER\_SUNKEN}, \param{const wxString\& }{filter = wxEmptyString}, \param{int }{defaultFilter = 0}, \param{const wxString\& }{name = wxTreeCtrlNameStr}} - -Create function for two-step construction. See \helpref{wxGenericDirCtrl::wxGenericDirCtrl}{wxgenericdirctrlwxgenericdirctrl} for details. - -\membersection{wxGenericDirCtrl::Init}\label{wxgenericdirctrlinit} - -\func{void}{Init}{\void} - -Initializes variables. - -\membersection{wxGenericDirCtrl::CollapseTree}\label{wxgenericdirctrlcollapsetree} - -\func{void}{CollapseTree}{\void} - -Collapses the entire tree. - -\membersection{wxGenericDirCtrl::ExpandPath}\label{wxgenericdirctrlexpandpath} - -\func{bool}{ExpandPath}{\param{const wxString\& }{path}} - -Tries to expand as much of the given path as possible, so that the filename or directory is visible in the tree control. - -\membersection{wxGenericDirCtrl::CollapsePath}\label{wxgenericdirctrlcollapsepath} - -\func{bool}{CollapsePath}{\param{const wxString\& }{path}} - -Collapse the given path. - -\membersection{wxGenericDirCtrl::GetDefaultPath}\label{wxgenericdirctrlgetdefaultpath} - -\constfunc{wxString}{GetDefaultPath}{\void} - -Gets the default path. - -\membersection{wxGenericDirCtrl::GetPath}\label{wxgenericdirctrlgetpath} - -\constfunc{wxString}{GetPath}{\void} - -Gets the currently-selected directory or filename. - -\membersection{wxGenericDirCtrl::GetFilePath}\label{wxgenericdirctrlgetfilepath} - -\constfunc{wxString}{GetFilePath}{\void} - -Gets selected filename path only (else empty string). - -This function doesn't count a directory as a selection. - -\membersection{wxGenericDirCtrl::GetFilter}\label{wxgenericdirctrlgetfilter} - -\constfunc{wxString}{GetFilter}{\void} - -Returns the filter string. - -\membersection{wxGenericDirCtrl::GetFilterIndex}\label{wxgenericdirctrlgetfilterindex} - -\constfunc{int}{GetFilterIndex}{\void} - -Returns the current filter index (zero-based). - -\membersection{wxGenericDirCtrl::GetFilterListCtrl}\label{wxgenericdirctrlgetfilterlistctrl} - -\constfunc{wxDirFilterListCtrl*}{GetFilterListCtrl}{\void} - -Returns a pointer to the filter list control (if present). - -\membersection{wxGenericDirCtrl::GetRootId}\label{wxgenericdirctrlgetrootid} - -\func{wxTreeItemId}{GetRootId}{\void} - -Returns the root id for the tree control. - -\membersection{wxGenericDirCtrl::GetTreeCtrl}\label{wxgenericdirctrlgettreectrl} - -\constfunc{wxTreeCtrl*}{GetTreeCtrl}{\void} - -Returns a pointer to the tree control. - -\membersection{wxGenericDirCtrl::ReCreateTree}\label{wxgenericdirctrlrecreatetree} - -\func{void}{ReCreateTree}{\void} - -Collapse and expand the tree, thus re-creating it from scratch. -May be used to update the displayed directory content. - -\membersection{wxGenericDirCtrl::SetDefaultPath}\label{wxgenericdirctrlsetdefaultpath} - -\func{void}{SetDefaultPath}{\param{const wxString\& }{path}} - -Sets the default path. - -\membersection{wxGenericDirCtrl::SetFilter}\label{wxgenericdirctrlsetfilter} - -\func{void}{SetFilter}{\param{const wxString\& }{filter}} - -Sets the filter string. - -\membersection{wxGenericDirCtrl::SetFilterIndex}\label{wxgenericdirctrlsetfilterindex} - -\func{void}{SetFilterIndex}{\param{int }{n}} - -Sets the current filter index (zero-based). - -\membersection{wxGenericDirCtrl::SetPath}\label{wxgenericdirctrlsetpath} - -\func{void}{SetPath}{\param{const wxString\& }{path}} - -Sets the current path. - -\membersection{wxGenericDirCtrl::ShowHidden}\label{wxgenericdirctrlShowHidden} - -\func{void}{ShowHidden}{\param{bool }{show}} - -\wxheading{Parameters} - -\docparam{show}{If true, hidden folders and files will be displayed by the -control. If false, they will not be displayed.} - diff --git a/docs/latex/wx/dirdlg.tex b/docs/latex/wx/dirdlg.tex deleted file mode 100644 index 5059e39ec9..0000000000 --- a/docs/latex/wx/dirdlg.tex +++ /dev/null @@ -1,103 +0,0 @@ -\section{\class{wxDirDialog}}\label{wxdirdialog} - -This class represents the directory chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxDD\_DEFAULT\_STYLE}}{Equivalent to a combination of wxDEFAULT\_DIALOG\_STYLE and wxRESIZE\_BORDER (the last one is not used under wxWinCE).} -\twocolitem{\windowstyle{wxDD\_DIR\_MUST\_EXIST}}{The dialog will allow the user to choose only an existing folder. When this style is not given, a "Create new directory" button is added to the dialog (on Windows) or some other way is provided to the user to type the name of a new folder.} -\twocolitem{\windowstyle{wxDD\_CHANGE\_DIR}}{Change the current working directory to the directory chosen by the user.} -\end{twocollist} - -{\bf NB:} on Windows the new directory button is only available with recent versions of the common dialogs. - -See also \helpref{Generic window styles}{windowstyles}. - -\wxheading{See also} - -\helpref{wxDirDialog overview}{wxdirdialogoverview}, \helpref{wxFileDialog}{wxfiledialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDirDialog::wxDirDialog}\label{wxdirdialogctor} - -\func{}{wxDirDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Choose a directory"},\rtfsp -\param{const wxString\& }{defaultPath = ""}, \param{long }{style = wxDD\_DEFAULT\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{const wxString\& }{name = "wxDirCtrl"}} - -Constructor. Use \helpref{wxDirDialog::ShowModal}{wxdirdialogshowmodal} to show -the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultPath}{The default path, or the empty string.} - -\docparam{style}{The dialog style. See \helpref{wxDirDialog}{wxdirdialog}} - -\docparam{pos}{Dialog position. Ignored under Windows.} - -\docparam{size}{Dialog size. Ignored under Windows.} - -\docparam{name}{The dialog name, not used.} - -\membersection{wxDirDialog::\destruct{wxDirDialog}}\label{wxdirdialogdtor} - -\func{}{\destruct{wxDirDialog}}{\void} - -Destructor. - -\membersection{wxDirDialog::GetPath}\label{wxdirdialoggetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the default or user-selected path. - -\membersection{wxDirDialog::GetMessage}\label{wxdirdialoggetmessage} - -\constfunc{wxString}{GetMessage}{\void} - -Returns the message that will be displayed on the dialog. - -\membersection{wxDirDialog::SetMessage}\label{wxdirdialogsetmessage} - -\func{void}{SetMessage}{\param{const wxString\& }{message}} - -Sets the message that will be displayed on the dialog. - -\membersection{wxDirDialog::SetPath}\label{wxdirdialogsetpath} - -\func{void}{SetPath}{\param{const wxString\& }{path}} - -Sets the default path. - -\membersection{wxDirDialog::ShowModal}\label{wxdirdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/dirpicker.tex b/docs/latex/wx/dirpicker.tex deleted file mode 100644 index ca09776d09..0000000000 --- a/docs/latex/wx/dirpicker.tex +++ /dev/null @@ -1,156 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dirpicker.tex -%% Purpose: wxDirPickerCtrl documentation -%% Author: Francesco Montorsi -%% Created: 2006-05-12 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDirPickerCtrl}}\label{wxdirpickerctrl} - -This control allows the user to select a directory. The generic implementation is -a button which brings up a \helpref{wxDirDialog}{wxdirdialog} when clicked. Native implementation -may differ but this is usually a (small) widget which give access to the dir-chooser -dialog. -It is only available if \texttt{wxUSE\_DIRPICKERCTRL} is set to $1$ (the default). - -\wxheading{Derived from} - -\helpref{wxPickerBase}{wxpickerbase}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxDIRP\_DEFAULT\_STYLE}}{The default style: includes -wxDIRP\_DIR\_MUST\_EXIST and, under wxMSW only, wxDIRP\_USE\_TEXTCTRL.} -\twocolitem{\windowstyle{wxDIRP\_USE\_TEXTCTRL}}{Creates a text control to the left of the -picker button which is completely managed by the \helpref{wxDirPickerCtrl}{wxdirpickerctrl} -and which can be used by the user to specify a path (see \helpref{SetPath}{wxdirpickerctrlsetpath}). -The text control is automatically synchronized with button's value. Use functions defined in \helpref{wxPickerBase}{wxpickerbase} to modify the text control.} - -\twocolitem{\windowstyle{wxDIRP\_DIR\_MUST\_EXIST}}{Creates a picker which allows to select only existing directories. wxGTK control always adds this flag internally as it does not support its absence.} -\twocolitem{\windowstyle{wxDIRP\_CHANGE\_DIR}}{Change current working directory on each user directory selection change.} - -\end{twocollist} - -\wxheading{Event handling} - -To process a directory picker event, use these event handler macros to direct input to member -functions that take a \helpref{wxFileDirPickerEvent}{wxfiledirpickerevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_DIRPICKER\_CHANGED(id, func)}}{The user changed the -directory selected in the control either using the button or using text control -(see wxDIRP\_USE\_TEXTCTRL; note that in this case the event is fired only if -the user's input is valid, e.g. an existing directory path).} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxDirDialog}{wxdirdialog},\\ -\helpref{wxFileDirPickerEvent}{wxfiledirpickerevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDirPickerCtrl::wxDirPickerCtrl}\label{wxdirpickerctrlctor} - -\func{}{wxDirPickerCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{path = wxEmptyString},\rtfsp -\param{const wxString\& }{message = ``Select a folder"},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDIRP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``dirpickerctrl"}} - -Initializes the object and calls \helpref{Create}{wxdirpickerctrlcreate} with -all the parameters. - - -\membersection{wxDirPickerCtrl::Create}\label{wxdirpickerctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{path = wxEmptyString},\rtfsp -\param{const wxString\& }{message = ``Select a folder"},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDIRP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``dirpickerctrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{path}{The initial directory shown in the control. Must be a valid path to a directory or the empty string.} - -\docparam{message}{The message shown to the user in the \helpref{wxDirDialog}{wxdirdialog} shown by the control.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxDIRP\_*} flags.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxFilePickerCtrl::GetDirName}\label{wxfilepickerctrlgetdirname} - -\constfunc{wxFileName}{GetDirName}{\void} - -Returns the absolute path of the currently selected directory as a \helpref{wxFileName}{wxfilename} object. -This function is equivalent to \helpref{GetPath}{wxdirpickerctrlgetpath} - - -\membersection{wxDirPickerCtrl::GetPath}\label{wxdirpickerctrlgetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the absolute path of the currently selected directory. - - -\membersection{wxFilePickerCtrl::SetDirName}\label{wxfilepickerctrlsetdirname} - -\func{void}{SetDirName}{\param{const wxFileName \&}{dirname}} - -Just like \helpref{SetPath}{wxdirpickerctrlsetpath} but this function takes a -\helpref{wxFileName}{wxfilename} object. - - -\membersection{wxDirPickerCtrl::SetPath}\label{wxdirpickerctrlsetpath} - -\func{void}{SetPath}{\param{const wxString \&}{dirname}} - -Sets the absolute path of (the default converter uses current locale's -charset)the currently selected directory. This must be a valid directory if -{\tt wxDIRP\_DIR\_MUST\_EXIST} style was given. - - diff --git a/docs/latex/wx/dirtrav.tex b/docs/latex/wx/dirtrav.tex deleted file mode 100644 index eee84ce1c3..0000000000 --- a/docs/latex/wx/dirtrav.tex +++ /dev/null @@ -1,113 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dirtrav.tex -%% Purpose: wxDirTraverser documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.01.02 (extracted from dir.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDirTraverser}}\label{wxdirtraverser} - -wxDirTraverser is an abstract interface which must be implemented by objects -passed to \helpref{Traverse}{wxdirtraverse} function. - -Example of use (this works almost like \helpref{GetAllFiles}{wxdirgetallfiles}): - -\begin{verbatim} - class wxDirTraverserSimple : public wxDirTraverser - { - public: - wxDirTraverserSimple(wxArrayString& files) : m_files(files) { } - - virtual wxDirTraverseResult OnFile(const wxString& filename) - { - m_files.Add(filename); - return wxDIR_CONTINUE; - } - - virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname)) - { - return wxDIR_CONTINUE; - } - - private: - wxArrayString& m_files; - }; - - // get the names of all files in the array - wxArrayString files; - wxDirTraverserSimple traverser(files); - - wxDir dir(dirname); - dir.Traverse(traverser); -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Constants} - -The elements of {\tt wxDirTraverseResult} are the possible return values of the -callback functions: - -{\small -\begin{verbatim} -enum wxDirTraverseResult -{ - wxDIR_IGNORE = -1, // ignore this directory but continue with others - wxDIR_STOP, // stop traversing - wxDIR_CONTINUE // continue into this directory -}; -\end{verbatim} -} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDirTraverser::OnDir}\label{wxdirtraverserondir} - -\func{virtual wxDirTraverseResult}{OnDir}{\param{const wxString\& }{dirname}} - -This function is called for each directory. It may return {\tt wxSIR\_STOP} -to abort traversing completely, {\tt wxDIR\_IGNORE} to skip this directory but -continue with others or {\tt wxDIR\_CONTINUE} to enumerate all files and -subdirectories in this directory. - -This is a pure virtual function and must be implemented in the derived class. - - -\membersection{wxDirTraverser::OnFile}\label{wxdirtraverseronfile} - -\func{virtual wxDirTraverseResult}{OnFile}{\param{const wxString\& }{filename}} - -This function is called for each file. It may return {\tt wxDIR\_STOP} to abort -traversing (for example, if the file being searched is found) or -{\tt wxDIR\_CONTINUE} to proceed. - -This is a pure virtual function and must be implemented in the derived class. - - -\membersection{wxDirTraverser::OnOpenError}\label{wxopenerrortraverseronopenerror} - -\func{virtual wxDirTraverseResult}{OnOpenError}{\param{const wxString\& }{openerrorname}} - -This function is called for each directory which we failed to open for -enumerating. It may return {\tt wxSIR\_STOP} to abort traversing completely, -{\tt wxDIR\_IGNORE} to skip this directory but continue with others or -{\tt wxDIR\_CONTINUE} to retry opening this directory once again. - -The base class version always returns {\tt wxDIR\_IGNORE}. - - diff --git a/docs/latex/wx/display.tex b/docs/latex/wx/display.tex deleted file mode 100644 index e1525547ca..0000000000 --- a/docs/latex/wx/display.tex +++ /dev/null @@ -1,161 +0,0 @@ -\section{\class{wxDisplay}}\label{wxdisplay} - -Determines the sizes and locations of displays connected to the system. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxClientDisplayRect}{wxclientdisplayrect}, \helpref{wxDisplaySize}{wxdisplaysize}, \helpref{wxDisplaySizeMM}{wxdisplaysizemm} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDisplay::wxDisplay}\label{wxdisplayctor} - -\func{}{wxDisplay}{\param{unsigned }{index = 0}} - -Constructor, setting up a wxDisplay instance with the specified display. - -\wxheading{Parameters} - -\docparam{index}{The index of the display to use. This must be non-negative -and lower than the value returned by \helpref{GetCount()}{wxdisplaygetcount}.} - - -\membersection{wxDisplay::\destruct{wxDisplay}}\label{wxdisplaydtor} - -\func{void}{\destruct{wxDisplay}}{\void} - -Destructor. - - -\membersection{wxDisplay::ChangeMode}\label{wxdisplaychangemode} - -\func{bool }{ChangeMode}{\param{const wxVideoMode\& }{mode = wxDefaultVideoMode}} - -Changes the video mode of this display to the mode specified -in the mode parameter. - -If wxDefaultVideoMode is passed in as the mode parameter, -the defined behaviour is that wxDisplay will reset the video -mode to the default mode used by the display. On Windows, -the behavior is normal. However, there are differences on other -platforms. On Unix variations using X11 extensions it should -behave as defined, but some irregularities may occur. - -On wxMac passing in wxDefaultVideoMode as the mode -parameter does nothing. This happens because carbon -no longer has access to DMUseScreenPrefs, an undocumented -function that changed the video mode to the system -default by using the system's 'scrn' resource. - - -\membersection{wxDisplay::GetClientArea}\label{wxdisplaygetclientarea} - -\constfunc{wxRect }{GetClientArea}{\void} - -Returns the client area of the display. The client area is the part of the -display available for the normal (non full screen) windows, usually it is the -same as \helpref{GetGeometry}{wxdisplaygetgeometry} but it could be less if -there is a taskbar (or equivalent) on this display. - -\wxheading{See also:} - -\helpref{wxClientDisplayRect}{wxclientdisplayrect} - - -\membersection{wxDisplay::GetCount}\label{wxdisplaygetcount} - -\func{static unsigned }{GetCount}{\void} - -Returns the number of connected displays. - - -\membersection{wxDisplay::GetCurrentMode}\label{wxdisplaygetcurrentmode} - -\constfunc{wxVideoMode }{GetCurrentMode}{\void} - -Returns the current video mode that this display is in. - - -\membersection{wxDisplay::GetDepth}\label{wxdisplaygetdepth} - -\constfunc{int }{GetDepth}{\void} - -Returns the bit depth of the display whose index was passed to the constructor. - - -\membersection{wxDisplay::GetFromPoint}\label{wxdisplaygetfrompoint} - -\func{static int}{GetFromPoint}{\param{const wxPoint\& }{pt}} - -Returns the index of the display on which the given point lies. Returns -\texttt{wxNOT\_FOUND} if the point is not on any connected display. - -\wxheading{Parameters} - -\docparam{pt}{The point to locate.} - - -\membersection{wxDisplay::GetFromWindow}\label{wxdisplaygetfromwindow} - -\func{static int}{GetFromWindow}{\param{const wxWindow* }{win}} - -Returns the index of the display on which the given window lies. - -If the window is on more than one display it gets the display that overlaps the window the most. - -Returns \texttt{wxNOT\_FOUND} if the window is not on any connected display. - -\wxheading{Parameters} - -\docparam{win}{The window to locate.} - - -\membersection{wxDisplay::GetGeometry}\label{wxdisplaygetgeometry} - -\constfunc{wxRect }{GetGeometry}{\void} - -Returns the bounding rectangle of the display whose index was passed to the -constructor. - -\wxheading{See also:} - -\helpref{GetClientArea}{wxdisplaygetclientarea}, \helpref{wxDisplaySize}{wxdisplaysize} - - -\membersection{wxDisplay::GetModes}\label{wxdisplaygetmodes} - -\constfunc{wxArrayVideoModes }{GetModes}{\param{const wxVideoMode\& }{mode = wxDefaultVideoMode}} - -Fills and returns an array with all the video modes that -are supported by this display, or video modes that are -supported by this display and match the mode parameter -(if mode is not wxDefaultVideoMode). - - -\membersection{wxDisplay::GetName}\label{wxdisplaygetname} - -\constfunc{wxString }{GetName}{\void} - -Returns the display's name. A name is not available on all platforms. - - -\membersection{wxDisplay::IsPrimary}\label{wxdisplayisprimary} - -\func{bool }{IsPrimary}{\void} - -Returns true if the display is the primary display. The primary display is the -one whose index is 0. - diff --git a/docs/latex/wx/dllload.tex b/docs/latex/wx/dllload.tex deleted file mode 100644 index c0f217dfd2..0000000000 --- a/docs/latex/wx/dllload.tex +++ /dev/null @@ -1,152 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dllload.tex -%% Purpose: wxDllLoader documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDllLoader}}\label{wxdllloader} - -\textbf{Deprecation note: } This class is deprecated since version 2.4 and is -not compiled in by default in version 2.6 and will be removed in 2.8. Please -use \helpref{wxDynamicLibrary}{wxdynamiclibrary} instead. - - -wxDllLoader is a class providing an interface similar to Unix's {\tt -dlopen()}. It is used by the wxLibrary framework and manages the actual -loading of shared libraries and the resolving of symbols in them. There are no -instances of this class, it simply serves as a namespace for its static member -functions. - -Please note that class \helpref{wxDynamicLibrary}{wxdynamiclibrary} provides -alternative, friendlier interface to wxDllLoader. - -The terms {\it DLL} and {\it shared library/object} will both be used in the -documentation to refer to the same thing: a {\tt .dll} file under Windows or -{\tt .so} or {\tt .sl} one under Unix. - -Example of using this class to dynamically load the {\tt strlen()} function: - -\begin{verbatim} -#if defined(__WXMSW__) - static const wxChar *LIB_NAME = _T("kernel32"); - static const wxChar *FUNC_NAME = _T("lstrlenA"); -#elif defined(__UNIX__) - static const wxChar *LIB_NAME = _T("/lib/libc-2.0.7.so"); - static const wxChar *FUNC_NAME = _T("strlen"); -#endif - - wxDllType dllHandle = wxDllLoader::LoadLibrary(LIB_NAME); - if ( !dllHandle ) - { - ... error ... - } - else - { - typedef int (*strlenType)(char *); - strlenType pfnStrlen = (strlenType)wxDllLoader::GetSymbol(dllHandle, FUNC_NAME); - if ( !pfnStrlen ) - { - ... error ... - } - else - { - if ( pfnStrlen("foo") != 3 ) - { - ... error ... - } - else - { - ... ok! ... - } - } - - wxDllLoader::UnloadLibrary(dllHandle); - } -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Data structures} - -This header defines a platform-dependent {\tt wxDllType} typedef which stores -a handle to a loaded DLLs on the given platform. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDllLoader::GetDllExt}\label{wxdllloadergetdllext} - -\func{static wxString}{GetDllExt}{\void} - -Returns the string containing the usual extension for shared libraries for the -given systems (including the leading dot if not empty). - -For example, this function will return {\tt ".dll"} under Windows or (usually) -{\tt ".so"} under Unix. - -\membersection{wxDllLoader::GetProgramHandle}\label{wxdllloadergetprogramhandle} - -\func{wxDllType}{GetProgramHandle}{\void} - -This function returns a valid handle for the main program itself. Notice that -the {\tt NULL} return value is valid for some systems (i.e. doesn't mean that -the function failed). - -{\bf NB:} This function is Unix specific. It will always fail under Windows -or OS/2. - -\membersection{wxDllLoader::GetSymbol}\label{wxdllloadergetsymbol} - -\func{void *}{GetSymbol}{\param{wxDllType }{dllHandle}, \param{const wxString\& }{name}} - -This function resolves a symbol in a loaded DLL, such as a variable or -function name. - -Returned value will be {\tt NULL} if the symbol was not found in the DLL or if -an error occurred. - -\wxheading{Parameters} - -\docparam{dllHandle}{Valid handle previously returned by -\helpref{LoadLibrary}{wxdllloaderloadlibrary}} - -\docparam{name}{Name of the symbol.} - -\membersection{wxDllLoader::LoadLibrary}\label{wxdllloaderloadlibrary} - -\func{wxDllType}{LoadLibrary}{\param{const wxString \& }{libname}, \param{bool* }{success = NULL}} - -This function loads a shared library into memory, with {\it libname} being the -name of the library: it may be either the full name including path and -(platform-dependent) extension, just the basename (no path and no extension) -or a basename with extension. In the last two cases, the library will be -searched in all standard locations. - -Returns a handle to the loaded DLL. Use {\it success} parameter to test if it -is valid. If the handle is valid, the library must be unloaded later with -\helpref{UnloadLibrary}{wxdllloaderunloadlibrary}. - -\wxheading{Parameters} - -\docparam{libname}{Name of the shared object to load.} - -\docparam{success}{May point to a bool variable which will be set to true or -false; may also be {\tt NULL}.} - -\membersection{wxDllLoader::UnloadLibrary}\label{wxdllloaderunloadlibrary} - -\func{void}{UnloadLibrary}{\param{wxDllType }{dllhandle}} - -This function unloads the shared library. The handle {\it dllhandle} must have -been returned by \helpref{LoadLibrary}{wxdllloaderloadlibrary} previously. - diff --git a/docs/latex/wx/dobjcomp.tex b/docs/latex/wx/dobjcomp.tex deleted file mode 100644 index 527a36e9b7..0000000000 --- a/docs/latex/wx/dobjcomp.tex +++ /dev/null @@ -1,78 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dobjcomp.tex -%% Purpose: wxDataObjectComposite documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDataObjectComposite}}\label{wxdataobjectcomposite} - -wxDataObjectComposite is the simplest -\helpref{wxDataObject}{wxdataobject} derivation which may be used to support -multiple formats. It contains several -\helpref{wxDataObjectSimple}{wxdataobjectsimple} objects and supports any -format supported by at least one of them. Only one of these data objects is -{\it preferred} (the first one if not explicitly changed by using the second -parameter of \helpref{Add}{wxdataobjectcompositeadd}) and its format determines -the preferred format of the composite data object as well. - -See \helpref{wxDataObject}{wxdataobject} documentation for the reasons why you -might prefer to use wxDataObject directly instead of wxDataObjectComposite for -efficiency reasons. - -\wxheading{Virtual functions to override} - -None, this class should be used directly. - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{wxDataObject}{wxdataobject}, -\helpref{wxDataObjectSimple}{wxdataobjectsimple}, -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataObjectComposite::wxDataObjectComposite}\label{wxdataobjectcompositewxdataobjectcomposite} - -\func{}{wxDataObjectComposite}{\void} - -The default constructor. - -\membersection{wxDataObjectComposite::Add}\label{wxdataobjectcompositeadd} - -\func{void}{Add}{ - \param{wxDataObjectSimple }{*dataObject}, - \param{bool }{preferred = false}} - -Adds the {\it dataObject} to the list of supported objects and it becomes the -preferred object if {\it preferred} is true. - - -\membersection{wxDataObjectComposite::GetReceivedFormat}\label{wxdataobjectcompositegetreceivedformat} - -\constfunc{wxDataFormat}{GetReceivedFormat}{} - -Report the format passed to the SetData method. This should be the -format of the data object within the composite that recieved data from -the clipboard or the DnD operation. You can use this method to find -out what kind of data object was recieved. - diff --git a/docs/latex/wx/dobjsmpl.tex b/docs/latex/wx/dobjsmpl.tex deleted file mode 100644 index 8b81da324c..0000000000 --- a/docs/latex/wx/dobjsmpl.tex +++ /dev/null @@ -1,108 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dobjsmpl.tex -%% Purpose: wxDataObjectSimple documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDataObjectSimple}}\label{wxdataobjectsimple} - -This is the simplest possible implementation of the -\helpref{wxDataObject}{wxdataobject} class. The data object of (a class derived -from) this class only supports one format, so the number of virtual functions -to be implemented is reduced. - -Notice that this is still an abstract base class and cannot be used but should -be derived from. - -\pythonnote{If you wish to create a derived wxDataObjectSimple class in -wxPython you should derive the class from wxPyDataObjectSimple -in order to get Python-aware capabilities for the various virtual -methods.} - -\perlnote{In wxPerl, you need to derive your data object class -from Wx::PlDataObjectSimple.} - -\wxheading{Virtual functions to override} - -The objects supporting rendering the data must override -\helpref{GetDataSize}{wxdataobjectsimplegetdatasize} and -\helpref{GetDataHere}{wxdataobjectsimplegetdatahere} while the objects which -may be set must override \helpref{SetData}{wxdataobjectsimplesetdata}. Of -course, the objects supporting both operations must override all three -methods. - -\wxheading{Derived from} - -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{DnD sample}{samplednd}, -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDataObjectSimple::wxDataObjectSimple}\label{wxdataobjectsimplewxdataobjectsimple} - -\func{}{wxDataObjectSimple}{\param{const wxDataFormat\&}{ format = wxFormatInvalid}} - -Constructor accepts the supported format (none by default) which may also be -set later with \helpref{SetFormat}{wxdataobjectsimplesetformat}. - -\membersection{wxDataObjectSimple::GetFormat}\label{wxdataobjectsimplegetformat} - -\constfunc{const wxDataFormat\&}{GetFormat}{\void} - -Returns the (one and only one) format supported by this object. It is supposed -that the format is supported in both directions. - -\membersection{wxDataObjectSimple::SetFormat}\label{wxdataobjectsimplesetformat} - -\func{void}{SetFormat}{\param{const wxDataFormat\&}{ format}} - -Sets the supported format. - -\membersection{wxDataObjectSimple::GetDataSize}\label{wxdataobjectsimplegetdatasize} - -\constfunc{virtual size\_t}{GetDataSize}{\void} - -Gets the size of our data. Must be implemented in the derived class if the -object supports rendering its data. - -\membersection{wxDataObjectSimple::GetDataHere}\label{wxdataobjectsimplegetdatahere} - -\constfunc{virtual bool}{GetDataHere}{\param{void }{*buf}} - -Copy the data to the buffer, return true on success. Must be implemented in the -derived class if the object supports rendering its data. - -\pythonnote{When implementing this method in wxPython, no additional -parameters are required and the data should be returned from the -method as a string.} - -\membersection{wxDataObjectSimple::SetData}\label{wxdataobjectsimplesetdata} - -\func{virtual bool}{SetData}{\param{size\_t }{len}, \param{const void }{*buf}} - -Copy the data from the buffer, return true on success. Must be implemented in -the derived class if the object supports setting its data. - -\pythonnote{When implementing this method in wxPython, the data comes -as a single string parameter rather than the two shown here.} - diff --git a/docs/latex/wx/docchfrm.tex b/docs/latex/wx/docchfrm.tex deleted file mode 100644 index c9caf38258..0000000000 --- a/docs/latex/wx/docchfrm.tex +++ /dev/null @@ -1,101 +0,0 @@ -\section{\class{wxDocChildFrame}}\label{wxdocchildframe} - -The wxDocChildFrame class provides a default frame for displaying documents -on separate windows. This class can only be used for SDI (not MDI) child frames. - -The class is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxFrame}{wxframe} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocChildFrame::m\_childDocument}\label{wxdocchildframemchilddocument} - -\member{wxDocument*}{m\_childDocument} - -The document associated with the frame. - -\membersection{wxDocChildFrame::m\_childView}\label{wxdocchildframemchildview} - -\member{wxView*}{m\_childView} - -The view associated with the frame. - -\membersection{wxDocChildFrame::wxDocChildFrame}\label{wxdocchildframector} - -\func{}{wxDocChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent}, - \param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. - -\membersection{wxDocChildFrame::\destruct{wxDocChildFrame}}\label{wxdocchildframedtor} - -\func{}{\destruct{wxDocChildFrame}}{\void} - -Destructor. - -\membersection{wxDocChildFrame::GetDocument}\label{wxdocchildframegetdocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Returns the document associated with this frame. - -\membersection{wxDocChildFrame::GetView}\label{wxdocchildframegetview} - -\constfunc{wxView*}{GetView}{\void} - -Returns the view associated with this frame. - -\membersection{wxDocChildFrame::OnActivate}\label{wxdocchildframeonactivate} - -\func{void}{OnActivate}{\param{wxActivateEvent}{ event}} - -Sets the currently active view to be the frame's view. You may need -to override (but still call) this function in order to set the keyboard -focus for your subwindow. - -\membersection{wxDocChildFrame::OnCloseWindow}\label{wxdocchildframeonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Closes and deletes the current view and document. - -\membersection{wxDocChildFrame::SetDocument}\label{wxdocchildframesetdocument} - -\func{void}{SetDocument}{\param{wxDocument *}{doc}} - -Sets the document for this frame. - -\membersection{wxDocChildFrame::SetView}\label{wxdocchildframesetview} - -\func{void}{SetView}{\param{wxView *}{view}} - -Sets the view for this frame. - - diff --git a/docs/latex/wx/docmanag.tex b/docs/latex/wx/docmanag.tex deleted file mode 100644 index a97d6aa9ad..0000000000 --- a/docs/latex/wx/docmanag.tex +++ /dev/null @@ -1,480 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: docmanag.tex -%% Purpose: wxDocManager documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDocManager}}\label{wxdocmanager} - -The wxDocManager class is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp -and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDocManager overview}{wxdocmanageroverview}, \helpref{wxDocument}{wxdocument},\rtfsp -\helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxFileHistory}{wxfilehistory} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxDocManager::m\_currentView}\label{wxdocmanagermcreateview} - -\member{wxView*}{m\_currentView} - -The currently active view. - - -\membersection{wxDocManager::m\_defaultDocumentNameCounter}\label{wxdocmanagermdefaultdocumentnamecounter} - -\member{int}{m\_defaultDocumentNameCounter} - -Stores the integer to be used for the next default document name. - - -\membersection{wxDocManager::m\_fileHistory}\label{wxdocmanagermfilehistory} - -\member{wxFileHistory*}{m\_fileHistory} - -A pointer to an instance of \helpref{wxFileHistory}{wxfilehistory}, -which manages the history of recently-visited files on the File menu. - - -\membersection{wxDocManager::m\_maxDocsOpen}\label{wxdocmanagermmaxdocsopen} - -\member{int}{m\_maxDocsOpen} - -Stores the maximum number of documents that can be opened before -existing documents are closed. By default, this is 10,000. - - -\membersection{wxDocManager::m\_docs}\label{wxdocmanagermdocs} - -\member{wxList}{m\_docs} - -A list of all documents. - - -\membersection{wxDocManager::m\_flags}\label{wxdocmanagermflags} - -\member{long}{m\_flags} - -Stores the flags passed to the constructor. - - -\membersection{wxDocManager::m\_lastDirectory}\label{wxdocmanagermlastdirectory} - -The directory last selected by the user when opening a file. - -\member{wxFileHistory*}{m\_fileHistory} - - -\membersection{wxDocManager::GetTemplates}\label{wxdocmanagergettemplates} - -\func{wxList\&}{Gettemplates}{\void} - -Returns the list of all document templates. - - -\membersection{wxDocManager::wxDocManager}\label{wxdocmanagerctor} - -\func{}{wxDocManager}{\param{long}{ flags = wxDEFAULT\_DOCMAN\_FLAGS}, \param{bool}{ initialize = true}} - -Constructor. Create a document manager instance dynamically near the start of your application -before doing any document or view operations. - -{\it flags} is currently unused. - -If {\it initialize} is true, the \helpref{Initialize}{wxdocmanagerinitialize} function will be called -to create a default history list object. If you derive from wxDocManager, you may wish to call the -base constructor with false, and then call Initialize in your own constructor, to allow -your own Initialize or OnCreateFileHistory functions to be called. - - -\membersection{wxDocManager::\destruct{wxDocManager}}\label{wxdocmanagerdtor} - -\func{void}{\destruct{wxDocManager}}{\void} - -Destructor. - - -\membersection{wxDocManager::ActivateView}\label{wxdocmanageractivateview} - -\func{void}{ActivateView}{\param{wxView* }{doc}, \param{bool}{ activate = true}} - -Sets the current view. - - -\membersection{wxDocManager::AddDocument}\label{wxdocmanageradddocument} - -\func{void}{AddDocument}{\param{wxDocument *}{doc}} - -Adds the document to the list of documents. - - -\membersection{wxDocManager::AddFileToHistory}\label{wxdocmanageraddfiletohistory} - -\func{void}{AddFileToHistory}{\param{const wxString\& }{filename}} - -Adds a file to the file history list, if we have a pointer to an appropriate file menu. - - -\membersection{wxDocManager::AssociateTemplate}\label{wxdocmanagerassociatetemplate} - -\func{void}{AssociateTemplate}{\param{wxDocTemplate *}{temp}} - -Adds the template to the document manager's template list. - - -\membersection{wxDocManager::CloseDocuments}\label{wxdocmanagerclosedocuments} - -\func{bool}{CloseDocuments}{\param{bool }{force = true}} - -Closes all currently opened documents. - - -\membersection{wxDocManager::CreateDocument}\label{wxdocmanagercreatedocument} - -\func{wxDocument*}{CreateDocument}{\param{const wxString\& }{path}, \param{long}{ flags}} - -Creates a new document in a manner determined by the {\it flags} parameter, which can be: - -\begin{itemize}\itemsep=0pt -\item wxDOC\_NEW Creates a fresh document. -\item wxDOC\_SILENT Silently loads the given document file. -\end{itemize} - -If wxDOC\_NEW is present, a new document will be created and returned, possibly after -asking the user for a template to use if there is more than one document template. -If wxDOC\_SILENT is present, a new document will be created and the given file loaded -into it. If neither of these flags is present, the user will be presented with -a file selector for the file to load, and the template to use will be determined by the -extension (Windows) or by popping up a template choice list (other platforms). - -If the maximum number of documents has been reached, this function -will delete the oldest currently loaded document before creating a new one. - - -\membersection{wxDocManager::CreateView}\label{wxdocmanagercreateview} - -\func{wxView*}{CreateView}{\param{wxDocument*}{doc}, \param{long}{ flags}} - -Creates a new view for the given document. If more than one view is allowed for the -document (by virtue of multiple templates mentioning the same document type), a choice -of view is presented to the user. - - -\membersection{wxDocManager::DisassociateTemplate}\label{wxdocmanagerdisassociatetemplate} - -\func{void}{DisassociateTemplate}{\param{wxDocTemplate *}{temp}} - -Removes the template from the list of templates. - - -\membersection{wxDocManager::FileHistoryAddFilesToMenu}\label{wxdocmanagerfilehistoryaddfilestomenu} - -\func{void}{FileHistoryAddFilesToMenu}{\void} - -Appends the files in the history list, to all menus managed by the file history object. - -\func{void}{FileHistoryAddFilesToMenu}{\param{wxMenu*}{ menu}} - -Appends the files in the history list, to the given menu only. - - -\membersection{wxDocManager::FileHistoryLoad}\label{wxdocmanagerfilehistoryload} - -\func{void}{FileHistoryLoad}{\param{wxConfigBase\& }{config}} - -Loads the file history from a config object. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - - -\membersection{wxDocManager::FileHistoryRemoveMenu}\label{wxdocmanagerfilehistoryremovemenu} - -\func{void}{FileHistoryRemoveMenu}{\param{wxMenu*}{ menu}} - -Removes the given menu from the list of menus managed by the file history object. - - -\membersection{wxDocManager::FileHistorySave}\label{wxdocmanagerfilehistorysave} - -\func{void}{FileHistorySave}{\param{wxConfigBase\& }{resourceFile}} - -Saves the file history into a config object. This must be called -explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - - -\membersection{wxDocManager::FileHistoryUseMenu}\label{wxdocmanagerfilehistoryusemenu} - -\func{void}{FileHistoryUseMenu}{\param{wxMenu*}{ menu}} - -Use this menu for appending recently-visited document filenames, for convenient -access. Calling this function with a valid menu pointer enables the history -list functionality. - -Note that you can add multiple menus using this function, to be managed by the -file history object. - - -\membersection{wxDocManager::FindTemplateForPath}\label{wxdocmanagerfindtemplateforpath} - -\func{wxDocTemplate *}{FindTemplateForPath}{\param{const wxString\& }{path}} - -Given a path, try to find template that matches the extension. This is only -an approximate method of finding a template for creating a document. - - -\membersection{wxDocManager::GetCurrentDocument}\label{wxdocmanagergetcurrentdocument} - -\func{wxDocument *}{GetCurrentDocument}{\void} - -Returns the document associated with the currently active view (if any). - - -\membersection{wxDocManager::GetCurrentView}\label{wxdocmanagergetcurrentview} - -\func{wxView *}{GetCurrentView}{\void} - -Returns the currently active view - - -\membersection{wxDocManager::GetDocuments}\label{wxdocmanagergetdocuments} - -\func{wxList\&}{GetDocuments}{\void} - -Returns a reference to the list of documents. - - -\membersection{wxDocManager::GetFileHistory}\label{wxdocmanagergetfilehistory} - -\func{wxFileHistory *}{GetFileHistory}{\void} - -Returns a pointer to file history. - - -\membersection{wxDocManager::GetLastDirectory}\label{wxdocmanagergetlastdirectory} - -\constfunc{wxString}{GetLastDirectory}{\void} - -Returns the directory last selected by the user when opening a file. Initially empty. - - -\membersection{wxDocManager::GetMaxDocsOpen}\label{wxdocmanagergetmaxdocsopen} - -\func{int}{GetMaxDocsOpen}{\void} - -Returns the number of documents that can be open simultaneously. - - -\membersection{wxDocManager::GetHistoryFilesCount}\label{wxdocmanagergethistoryfilescount} - -\func{size\_t}{GetHistoryFilesCount}{\void} - -Returns the number of files currently stored in the file history. - - -\membersection{wxDocManager::GetTemplates}\label{wxdocmanagergettemplates} - -\func{wxList\&}{GetTemplates}{\void} - -Returns a reference to the list of associated templates. - - -\membersection{wxDocManager::Initialize}\label{wxdocmanagerinitialize} - -\func{bool}{Initialize}{\void} - -Initializes data; currently just calls OnCreateFileHistory. Some data cannot -always be initialized in the constructor because the programmer must be given -the opportunity to override functionality. If OnCreateFileHistory was called -from the constructor, an overridden virtual OnCreateFileHistory would not be -called due to C++'s `interesting' constructor semantics. In fact Initialize -\rtfsp{\it is} called from the wxDocManager constructor, but this can be -vetoed by passing false to the second argument, allowing the derived class's -constructor to call Initialize, possibly calling a different OnCreateFileHistory -from the default. - -The bottom line: if you're not deriving from Initialize, forget it and -construct wxDocManager with no arguments. - - -\membersection{wxDocManager::MakeNewDocumentName}\label{wxdocmanagermakenewdocumentname} - -\func{wxString}{MakeNewDocumentName}{\void} - -Return a string containing a suitable default name for a new document. By -default this is implemented by appending an integer counter to the string -{\bf unnamed} but can be overridden in the derived classes to do something more -appropriate. - - -\membersection{wxDocManager::OnCreateFileHistory}\label{wxdocmanageroncreatefilehistory} - -\func{wxFileHistory *}{OnCreateFileHistory}{\void} - -A hook to allow a derived class to create a different type of file history. Called -from \helpref{Initialize}{wxdocmanagerinitialize}. - - -\membersection{wxDocManager::OnFileClose}\label{wxdocmanageronfileclose} - -\func{void}{OnFileClose}{\param{wxCommandEvent\& }{event}} - -Closes and deletes the currently active document. - - -\membersection{wxDocManager::OnFileCloseAll}\label{wxdocmanageronfilecloseall} - -\func{void}{OnFileCloseAll}{\param{wxCommandEvent\& }{event}} - -Closes and deletes all the currently opened documents. - - -\membersection{wxDocManager::OnFileNew}\label{wxdocmanageronfilenew} - -\func{void}{OnFileNew}{\param{wxCommandEvent\& }{event}} - -Creates a document from a list of templates (if more than one template). - - -\membersection{wxDocManager::OnFileOpen}\label{wxdocmanageronfileopen} - -\func{void}{OnFileOpen}{\param{wxCommandEvent\& }{event}} - -Creates a new document and reads in the selected file. - - -\membersection{wxDocManager::OnFileRevert}\label{wxdocmanageronfilerevert} - -\func{void}{OnFileRevert}{\param{wxCommandEvent\& }{event}} - -Reverts the current document by calling wxDocument::Revert for the current document. - - -\membersection{wxDocManager::OnFileSave}\label{wxdocmanageronfilesave} - -\func{void}{OnFileSave}{\param{wxCommandEvent\& }{event}} - -Saves the current document by calling wxDocument::Save for the current document. - - -\membersection{wxDocManager::OnFileSaveAs}\label{wxdocmanageronfilesaveas} - -\func{void}{OnFileSaveAs}{\param{wxCommandEvent\& }{event}} - -Calls wxDocument::SaveAs for the current document. - - -\membersection{wxDocManager::RemoveDocument}\label{wxdocmanagerremovedocument} - -\func{void}{RemoveDocument}{\param{wxDocument *}{doc}} - -Removes the document from the list of documents. - - -\membersection{wxDocManager::SelectDocumentPath}\label{wxdocmanagerselectdocumentpath} - -\func{wxDocTemplate *}{SelectDocumentPath}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}, \param{wxString\& }{path}, - \param{long}{ flags}, \param{bool}{ save}} - -Under Windows, pops up a file selector with a list of filters corresponding to document templates. -The wxDocTemplate corresponding to the selected file's extension is returned. - -On other platforms, if there is more than one document template a choice list is popped up, -followed by a file selector. - -This function is used in wxDocManager::CreateDocument. - -\perlnote{In wxPerl {\tt templates} is a reference to a list of templates. -If you override this method in your document manager it must return -two values, eg:\par - (doctemplate, path) = My::DocManager->SelectDocumentPath( ... ); -} - - -\membersection{wxDocManager::SelectDocumentType}\label{wxdocmanagerselectdocumenttype} - -\func{wxDocTemplate *}{SelectDocumentType}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}, \param{bool}{ sort=false}} - -Returns a document template by asking the user (if there is more than one template). -This function is used in wxDocManager::CreateDocument. - -\wxheading{Parameters} - -\docparam{templates}{Pointer to an array of templates from which to choose a desired template.} -\docparam{noTemplates}{Number of templates being pointed to by the {\it templates} pointer.} -\docparam{sort}{If more than one template is passed in in {\it templates}, -then this parameter indicates whether the list of templates that the user -will have to choose from is sorted or not when shown the choice box dialog. -Default is false.} - -\perlnote{In wxPerl {\tt templates} is a reference to a list of templates.} - - -\membersection{wxDocManager::SelectViewType}\label{wxdocmanagerselectviewtype} - -\func{wxDocTemplate *}{SelectViewType}{\param{wxDocTemplate **}{templates}, - \param{int}{ noTemplates}, \param{bool}{ sort=false}} - -Returns a document template by asking the user (if there is more than one template), -displaying a list of valid views. This function is used in wxDocManager::CreateView. -The dialog normally will not appear because the array of templates only contains -those relevant to the document in question, and often there will only be one such. - -\wxheading{Parameters} - -\docparam{templates}{Pointer to an array of templates from which to choose a desired template.} -\docparam{noTemplates}{Number of templates being pointed to by the {\it templates} pointer.} -\docparam{sort}{If more than one template is passed in in {\it templates}, -then this parameter indicates whether the list of templates that the user -will have to choose from is sorted or not when shown the choice box dialog. -Default is false.} - -\perlnote{In wxPerl {\tt templates} is a reference to a list of templates.} - - -\membersection{wxDocManager::SetLastDirectory}\label{wxdocmanagersetlastdirectory} - -\func{void}{SetLastDirectory}{\param{const wxString\&}{ dir}} - -Sets the directory to be displayed to the user when opening a file. Initially this is empty. - - -\membersection{wxDocManager::SetMaxDocsOpen}\label{wxdocmanagersetmaxdocsopen} - -\func{void}{SetMaxDocsOpen}{\param{int}{ n}} - -Sets the maximum number of documents that can be open at a time. By default, this -is 10,000. If you set it to 1, existing documents will be saved and deleted -when the user tries to open or create a new one (similar to the behaviour -of Windows Write, for example). Allowing multiple documents gives behaviour -more akin to MS Word and other Multiple Document Interface applications. - diff --git a/docs/latex/wx/docmdich.tex b/docs/latex/wx/docmdich.tex deleted file mode 100644 index 9b445aa386..0000000000 --- a/docs/latex/wx/docmdich.tex +++ /dev/null @@ -1,102 +0,0 @@ -\section{\class{wxDocMDIChildFrame}}\label{wxdocmdichildframe} - -The wxDocMDIChildFrame class provides a default frame for displaying documents -on separate windows. This class can only be used for MDI child frames. - -The class is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxMDIChildFrame}{wxmdichildframe}\\ -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIChildFrame}{wxmdichildframe} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocMDIChildFrame::m\_childDocument}\label{wxdocmdichildframemchilddocument} - -\member{wxDocument*}{m\_childDocument} - -The document associated with the frame. - -\membersection{wxDocMDIChildFrame::m\_childView}\label{wxdocmdichildframemchildview} - -\member{wxView*}{m\_childView} - -The view associated with the frame. - -\membersection{wxDocMDIChildFrame::wxDocMDIChildFrame}\label{wxdocmdichildframector} - -\func{}{wxDocMDIChildFrame}{\param{wxDocument* }{doc}, \param{wxView* }{view}, \param{wxFrame* }{parent}, - \param{wxWindowID}{ id}, \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. - -\membersection{wxDocMDIChildFrame::\destruct{wxDocMDIChildFrame}}\label{wxdocmdichildframedtor} - -\func{}{\destruct{wxDocMDIChildFrame}}{\void} - -Destructor. - -\membersection{wxDocMDIChildFrame::GetDocument}\label{wxdocmdichildframegetdocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Returns the document associated with this frame. - -\membersection{wxDocMDIChildFrame::GetView}\label{wxdocmdichildframegetview} - -\constfunc{wxView*}{GetView}{\void} - -Returns the view associated with this frame. - -\membersection{wxDocMDIChildFrame::OnActivate}\label{wxdocmdichildframeonactivate} - -\func{void}{OnActivate}{\param{wxActivateEvent}{ event}} - -Sets the currently active view to be the frame's view. You may need -to override (but still call) this function in order to set the keyboard -focus for your subwindow. - -\membersection{wxDocMDIChildFrame::OnCloseWindow}\label{wxdocmdichildframeonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Closes and deletes the current view and document. - -\membersection{wxDocMDIChildFrame::SetDocument}\label{wxdocmdichildframesetdocument} - -\func{void}{SetDocument}{\param{wxDocument *}{doc}} - -Sets the document for this frame. - -\membersection{wxDocMDIChildFrame::SetView}\label{wxdocmdichildframesetview} - -\func{void}{SetView}{\param{wxView *}{view}} - -Sets the view for this frame. - - diff --git a/docs/latex/wx/docmdipr.tex b/docs/latex/wx/docmdipr.tex deleted file mode 100644 index 7e689ac744..0000000000 --- a/docs/latex/wx/docmdipr.tex +++ /dev/null @@ -1,81 +0,0 @@ -\section{\class{wxDocMDIParentFrame}}\label{wxdocmdiparentframe} - -The wxDocMDIParentFrame class provides a default top-level frame for -applications using the document/view framework. This class can only be used for MDI parent frames. - -It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}\\ -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxMDIParentFrame}{wxmdiparentframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocMDIParentFrame::wxDocMDIParentFrame}\label{wxdocmdiparentframector} - -\func{}{wxDocMDIParentFrame}{\void} - -\func{}{wxDocMDIParentFrame}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Constructor. - -\membersection{wxDocMDIParentFrame::\destruct{wxDocMDIParentFrame}}\label{wxdocmdiparentframedtor} - -\func{}{\destruct{wxDocMDIParentFrame}}{\void} - -Destructor. - -\membersection{wxDocMDIParentFrame::Create}\label{wxdocmdiparentframecreate} - -\func{bool}{Create}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Creates the window. - -\membersection{wxDocMDIParentFrame::OnCloseWindow}\label{wxdocmdiparentframeonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Deletes all views and documents. If no user input cancelled the -operation, the frame will be destroyed and the application will exit. - -Since understanding how document/view clean-up takes place can be difficult, -the implementation of this function is shown below. - -\begin{verbatim} -void wxDocParentFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_docManager->Clear(!event.CanVeto())) - { - this->Destroy(); - } - else - event.Veto(); -} -\end{verbatim} - diff --git a/docs/latex/wx/docprfrm.tex b/docs/latex/wx/docprfrm.tex deleted file mode 100644 index aeae63bb6f..0000000000 --- a/docs/latex/wx/docprfrm.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{\class{wxDocParentFrame}}\label{wxdocparentframe} - -The wxDocParentFrame class provides a default top-level frame for -applications using the document/view framework. This class can only be used for SDI (not MDI) parent frames. - -It cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}, -\rtfsp\helpref{wxDocManager}{wxdocmanager} and \helpref{wxDocTemplates}{wxdoctemplate} classes. - -See the example application in {\tt samples/docview}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Document/view overview}{docviewoverview}, \helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocParentFrame::wxDocParentFrame}\label{wxdocparentframector} - -\func{}{wxDocParentFrame}{\void} - -Default constructor. - -\func{}{wxDocParentFrame}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Constructor. - -\membersection{wxDocParentFrame::\destruct{wxDocParentFrame}}\label{wxdocparentframedtor} - -\func{}{\destruct{wxDocParentFrame}}{\void} - -Destructor. - -\membersection{wxDocParentFrame::Create}\label{wxdocparentframecreate} - -\func{bool}{Create}{\param{wxDocManager*}{ manager}, \param{wxFrame *}{parent}, \param{wxWindowID}{ id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = "frame"}} - -Used in two-step construction. - -\membersection{wxDocParentFrame::GetDocumentManager}\label{wxdocparentframegetdocumentmanager} - -\constfunc{wxDocManager *}{GetDocumentManager}{\void} - -Returns the associated \helpref{document manager object}{wxdocmanager}. - - - -\membersection{wxDocParentFrame::OnCloseWindow}\label{wxdocparentframeonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Deletes all views and documents. If no user input cancelled the -operation, the frame will be destroyed and the application will exit. - -Since understanding how document/view clean-up takes place can be difficult, -the implementation of this function is shown below. - -\begin{verbatim} -void wxDocParentFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_docManager->Clear(!event.CanVeto())) - { - this->Destroy(); - } - else - event.Veto(); -} -\end{verbatim} - diff --git a/docs/latex/wx/doctempl.tex b/docs/latex/wx/doctempl.tex deleted file mode 100644 index 8948cd4a45..0000000000 --- a/docs/latex/wx/doctempl.tex +++ /dev/null @@ -1,269 +0,0 @@ -\section{\class{wxDocTemplate}}\label{wxdoctemplate} - -The wxDocTemplate class is used to model the relationship between a -document class and a view class. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDocTemplate overview}{wxdoctemplateoverview}, \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocTemplate::m\_defaultExt}\label{wxdoctemplatemdefaultext} - -\member{wxString}{m\_defaultExt} - -The default extension for files of this type. - -\membersection{wxDocTemplate::m\_description}\label{wxdoctemplatemdescription} - -\member{wxString}{m\_description} - -A short description of this template. - -\membersection{wxDocTemplate::m\_directory}\label{wxdoctemplatemdirectory} - -\member{wxString}{m\_directory} - -The default directory for files of this type. - -\membersection{wxDocTemplate::m\_docClassInfo}\label{wxdoctemplatemdocclassinfo} - -\member{wxClassInfo* }{m\_docClassInfo} - -Run-time class information that allows document instances to be constructed dynamically. - -\membersection{wxDocTemplate::m\_docTypeName}\label{wxdoctemplatemdoctypename} - -\member{wxString}{m\_docTypeName} - -The named type of the document associated with this template. - -\membersection{wxDocTemplate::m\_documentManager}\label{wxdoctemplatedocumentmanager} - -\member{wxDocTemplate*}{m\_documentManager} - -A pointer to the document manager for which this template was created. - -\membersection{wxDocTemplate::m\_fileFilter}\label{wxdoctemplatemfilefilter} - -\member{wxString}{m\_fileFilter} - -The file filter (such as {\tt *.txt}) to be used in file selector dialogs. - -\membersection{wxDocTemplate::m\_flags}\label{wxdoctemplatemflags} - -\member{long}{m\_flags} - -The flags passed to the constructor. - -\membersection{wxDocTemplate::m\_viewClassInfo}\label{wxdoctemplatemviewclassinfo} - -\member{wxClassInfo*}{m\_viewClassInfo} - -Run-time class information that allows view instances to be constructed dynamically. - -\membersection{wxDocTemplate::m\_viewTypeName}\label{wxdoctemplatemviewtypename} - -\member{wxString}{m\_viewTypeName} - -The named type of the view associated with this template. - -\membersection{wxDocTemplate::wxDocTemplate}\label{wxdoctemplatector} - -\func{}{wxDocTemplate}{\param{wxDocManager* }{manager}, \param{const wxString\& }{descr}, \param{const wxString\& }{filter}, - \param{const wxString\& }{dir}, \param{const wxString\& }{ext}, \param{const wxString\& }{docTypeName}, - \param{const wxString\& }{viewTypeName}, \param{wxClassInfo* }{docClassInfo = NULL}, - \param{wxClassInfo* }{viewClassInfo = NULL}, \param{long}{ flags = wxDEFAULT\_TEMPLATE\_FLAGS}} - -Constructor. Create instances dynamically near the start of your application after creating -a wxDocManager instance, and before doing any document or view operations. - -{\it manager} is the document manager object which manages this template. - -{\it descr} is a short description of what the template is for. This string will be displayed in the -file filter list of Windows file selectors. - -{\it filter} is an appropriate file filter such as {\tt *.txt}. - -{\it dir} is the default directory to use for file selectors. - -{\it ext} is the default file extension (such as txt). - -{\it docTypeName} is a name that should be unique for a given type of document, used for -gathering a list of views relevant to a particular document. - -{\it viewTypeName} is a name that should be unique for a given view. - -{\it docClassInfo} is a pointer to the run-time document class information as returned -by the CLASSINFO macro, e.g. CLASSINFO(MyDocumentClass). If this is not supplied, -you will need to derive a new wxDocTemplate class and override the CreateDocument -member to return a new document instance on demand. - -{\it viewClassInfo} is a pointer to the run-time view class information as returned -by the CLASSINFO macro, e.g. CLASSINFO(MyViewClass). If this is not supplied, -you will need to derive a new wxDocTemplate class and override the CreateView -member to return a new view instance on demand. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxTEMPLATE\_VISIBLE The template may be displayed to the user in dialogs. -\item wxTEMPLATE\_INVISIBLE The template may not be displayed to the user in dialogs. -\item wxDEFAULT\_TEMPLATE\_FLAGS Defined as wxTEMPLATE\_VISIBLE. -\end{itemize} - -\perlnote{In wxPerl {\tt docClassInfo} and {\tt viewClassInfo} can be -either {\tt Wx::ClassInfo} objects or strings which contain the name -of the perl packages which are to be used as {\tt Wx::Document} and -{\tt Wx::View} classes (they must have a constructor named {\tt -new}): - -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Wx::DocTemplate->new( docmgr, descr, filter, dir, -ext, docTypeName, viewTypeName, docClassInfo, viewClassInfo, flags -)}}{ will construct document and view objects from the class information} -\twocolitem{{\bf Wx::DocTemplate->new( docmgr, descr, filter, dir, -ext, docTypeName, viewTypeName, docClassName, viewClassName, flags -)}}{ will construct document and view objects from perl packages} -\twocolitem{{\bf Wx::DocTemplate->new( docmgr, descr, filter, dir, -ext, docTypeName, viewTypeName )}}{ -{\tt Wx::DocTemplate::CreateDocument()} and -{\tt Wx::DocTemplate::CreateView()} must be overridden} -\end{twocollist}}} - -\membersection{wxDocTemplate::\destruct{wxDocTemplate}}\label{wxdoctemplatedtor} - -\func{void}{\destruct{wxDocTemplate}}{\void} - -Destructor. - -\membersection{wxDocTemplate::CreateDocument}\label{wxdoctemplatecreatedocument} - -\func{wxDocument *}{CreateDocument}{\param{const wxString\& }{path}, \param{long}{ flags = 0}} - -Creates a new instance of the associated document class. If you have not supplied -a wxClassInfo parameter to the template constructor, you will need to override this -function to return an appropriate document instance. - -This function calls wxDocTemplate::InitDocument which in turns -calls wxDocument::OnCreate. - -\membersection{wxDocTemplate::CreateView}\label{wxdoctemplatecreateview} - -\func{wxView *}{CreateView}{\param{wxDocument *}{doc}, \param{long}{ flags = 0}} - -Creates a new instance of the associated view class. If you have not supplied -a wxClassInfo parameter to the template constructor, you will need to override this -function to return an appropriate view instance. - -\membersection{wxDocTemplate::GetDefaultExtension}\label{wxdoctemplategetdefaultextension} - -\func{wxString}{GetDefaultExtension}{\void} - -Returns the default file extension for the document data, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDescription}\label{wxdoctemplategetdescription} - -\func{wxString}{GetDescription}{\void} - -Returns the text description of this template, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDirectory}\label{wxdoctemplategetdirectory} - -\func{wxString}{GetDirectory}{\void} - -Returns the default directory, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetDocumentManager}\label{wxdoctemplategetdocumentmanager} - -\func{wxDocManager *}{GetDocumentManager}{\void} - -Returns a pointer to the document manager instance for which this template was created. - -\membersection{wxDocTemplate::GetDocumentName}\label{wxdoctemplategetdocumentname} - -\func{wxString}{GetDocumentName}{\void} - -Returns the document type name, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetFileFilter}\label{wxdoctemplategetfilefilter} - -\func{wxString}{GetFileFilter}{\void} - -Returns the file filter, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetFlags}\label{wxdoctemplategetflags} - -\func{long}{GetFlags}{\void} - -Returns the flags, as passed to the document template constructor. - -\membersection{wxDocTemplate::GetViewName}\label{wxdoctemplategetviewname} - -\func{wxString}{GetViewName}{\void} - -Returns the view type name, as passed to the document template constructor. - -\membersection{wxDocTemplate::InitDocument}\label{wxdoctemplateinitdocument} - -\func{bool}{InitDocument}{\param{wxDocument* }{doc}, \param{const wxString\& }{path}, \param{long}{ flags = 0}} - -Initialises the document, calling wxDocument::OnCreate. This is called from -wxDocTemplate::CreateDocument. - -\membersection{wxDocTemplate::IsVisible}\label{wxdoctemplateisvisible} - -\func{bool}{IsVisible}{\void} - -Returns true if the document template can be shown in user dialogs, false otherwise. - -\membersection{wxDocTemplate::SetDefaultExtension}\label{wxdoctemplatesetdefaultextension} - -\func{void}{SetDefaultExtension}{\param{const wxString\& }{ext}} - -Sets the default file extension. - -\membersection{wxDocTemplate::SetDescription}\label{wxdoctemplatesetdescription} - -\func{void}{SetDescription}{\param{const wxString\& }{descr}} - -Sets the template description. - -\membersection{wxDocTemplate::SetDirectory}\label{wxdoctemplatesetdirectory} - -\func{void}{SetDirectory}{\param{const wxString\& }{dir}} - -Sets the default directory. - -\membersection{wxDocTemplate::SetDocumentManager}\label{wxdoctemplatesetdocumentmanager} - -\func{void}{SetDocumentManager}{\param{wxDocManager *}{manager}} - -Sets the pointer to the document manager instance for which this template was created. -Should not be called by the application. - -\membersection{wxDocTemplate::SetFileFilter}\label{wxdoctemplatesetfilefilter} - -\func{void}{SetFileFilter}{\param{const wxString\& }{filter}} - -Sets the file filter. - -\membersection{wxDocTemplate::SetFlags}\label{wxdoctemplatesetflags} - -\func{void}{SetFlags}{\param{long }{flags}} - -Sets the internal document template flags (see the constructor description for more details). - diff --git a/docs/latex/wx/document.tex b/docs/latex/wx/document.tex deleted file mode 100644 index 7d019d8fb9..0000000000 --- a/docs/latex/wx/document.tex +++ /dev/null @@ -1,364 +0,0 @@ -\section{\class{wxDocument}}\label{wxdocument} - -The document class can be used to model an application's file-based -data. It is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}\rtfsp -and \helpref{wxDocManager}{wxdocmanager} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDocument overview}{wxdocumentoverview}, \helpref{wxView}{wxview},\rtfsp -\helpref{wxDocTemplate}{wxdoctemplate}, \helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDocument::m\_commandProcessor}\label{wxdocumentmcommandprocessor} - -\member{wxCommandProcessor*}{m\_commandProcessor} - -A pointer to the command processor associated with this document. - -\membersection{wxDocument::m\_documentFile}\label{wxdocumentmdocumentfile} - -\member{wxString}{m\_documentFile} - -Filename associated with this document (``" if none). - -\membersection{wxDocument::m\_documentModified}\label{wxdocumentmdocumentmodified} - -\member{bool}{m\_documentModified} - -true if the document has been modified, false otherwise. - -\membersection{wxDocument::m\_documentTemplate}\label{wxdocumentmdocumenttemplate} - -\member{wxDocTemplate *}{m\_documentTemplate} - -A pointer to the template from which this document was created. - -\membersection{wxDocument::m\_documentTitle}\label{wxdocumentmdocumenttitle} - -\member{wxString}{m\_documentTitle} - -Document title. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::m\_documentTypeName}\label{documenttypename} - -\member{wxString}{m\_documentTypeName} - -The document type name given to the wxDocTemplate constructor, copied to this -variable when the document is created. If several document templates are -created that use the same document type, this variable is used in wxDocManager::CreateView -to collate a list of alternative view types that can be used on this kind of -document. Do not change the value of this variable. - -\membersection{wxDocument::m\_documentViews}\label{wxdocumentmdocumentviews} - -\member{wxList}{m\_documentViews} - -List of wxView instances associated with this document. - -\membersection{wxDocument::wxDocument}\label{wxdocumentctor} - -\func{}{wxDocument}{\void} - -Constructor. Define your own default constructor to initialize application-specific -data. - -\membersection{wxDocument::\destruct{wxDocument}}\label{wxdocumentdtor} - -\func{}{\destruct{wxDocument}}{\void} - -Destructor. Removes itself from the document manager. - -\membersection{wxDocument::AddView}\label{wxdocumentaddview} - -\func{virtual bool}{AddView}{\param{wxView *}{view}} - -If the view is not already in the list of views, adds the view and calls OnChangedViewList. - -\membersection{wxDocument::Close}\label{wxdocumentclose} - -\func{virtual bool}{Close}{\void} - -Closes the document, by calling OnSaveModified and then (if this returned true) OnCloseDocument. -This does not normally delete the document object: use DeleteAllViews to do this implicitly. - -\membersection{wxDocument::DeleteAllViews}\label{wxdocumentdeleteviews} - -\func{virtual bool}{DeleteAllViews}{\void} - -Calls wxView::Close and deletes each view. Deleting the final view will implicitly -delete the document itself, because the wxView destructor calls RemoveView. This -in turns calls wxDocument::OnChangedViewList, whose default implemention is to -save and delete the document if no views exist. - -\membersection{wxDocument::GetCommandProcessor}\label{wxdocumentgetcommandprocessor} - -\constfunc{wxCommandProcessor*}{GetCommandProcessor}{\void} - -Returns a pointer to the command processor associated with this document. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::GetDocumentTemplate}\label{wxdocumentgetdocumenttemplate} - -\constfunc{wxDocTemplate*}{GetDocumentTemplate}{\void} - -Gets a pointer to the template that created the document. - -\membersection{wxDocument::GetDocumentManager}\label{wxdocumentgetdocumentmanager} - -\constfunc{wxDocManager*}{GetDocumentManager}{\void} - -Gets a pointer to the associated document manager. - -\membersection{wxDocument::GetDocumentName}\label{wxdocumentgetdocumentname} - -\constfunc{wxString}{GetDocumentName}{\void} - -Gets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}. - -\membersection{wxDocument::GetDocumentWindow}\label{wxdocumentgetdocumentwindow} - -\constfunc{wxWindow*}{GetDocumentWindow}{\void} - -Intended to return a suitable window for using as a parent for document-related -dialog boxes. By default, uses the frame associated with the first view. - -\membersection{wxDocument::GetFilename}\label{wxdocumentgetfilename} - -\constfunc{wxString}{GetFilename}{\void} - -Gets the filename associated with this document, or "" if none is -associated. - -\membersection{wxDocument::GetFirstView}\label{wxdocumentgetfirstview} - -\constfunc{wxView *}{GetFirstView}{\void} - -A convenience function to get the first view for a document, because -in many cases a document will only have a single view. - -See also: \helpref{GetViews}{wxdocumentgetviews} - -\membersection{wxDocument::GetUserReadableName}\label{wxdocumentgetuserreadablentablename} - -\constfunc{virtual wxString}{GetUserReadableName}{\void} - -Return the document name suitable to be shown to the user. The default -implementation uses the document title, if any, of the name part of the -document filename if it was set or, otherwise, the string {\bf unnamed}. - -\membersection{wxDocument::GetTitle}\label{wxdocumentgettitle} - -\constfunc{wxString}{GetTitle}{\void} - -Gets the title for this document. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::GetViews}\label{wxdocumentgetviews} - -\constfunc{wxList \&}{GetViews}{\void} - -Returns the list whose elements are the views on the document. - -See also: \helpref{GetFirstView}{wxdocumentgetfirstview} - -\membersection{wxDocument::IsModified}\label{wxdocumentismodified} - -\constfunc{virtual bool}{IsModified}{\void} - -Returns true if the document has been modified since the last save, false otherwise. -You may need to override this if your document view maintains its own -record of being modified (for example if using wxTextWindow to view and edit the document). - -See also \helpref{Modify}{wxdocumentmodify}. - -\membersection{wxDocument::LoadObject}\label{wxdocumentloadobject} - -\func{virtual istream\&}{LoadObject}{\param{istream\& }{stream}} - -\func{virtual wxInputStream\&}{LoadObject}{\param{wxInputStream\& }{stream}} - -Override this function and call it from your own LoadObject before -streaming your own data. LoadObject is called by the framework -automatically when the document contents need to be loaded. - -Note that only one of these forms exists, depending on how wxWidgets -was configured. - -\membersection{wxDocument::Modify}\label{wxdocumentmodify} - -\func{virtual void}{Modify}{\param{bool}{ modify}} - -Call with true to mark the document as modified since the last save, false otherwise. -You may need to override this if your document view maintains its own -record of being modified (for example if using wxTextWindow to view and edit the document). - -See also \helpref{IsModified}{wxdocumentismodified}. - -\membersection{wxDocument::OnChangedViewList}\label{wxdocumentonchangedviewlist} - -\func{virtual void}{OnChangedViewList}{\void} - -Called when a view is added to or deleted from this document. The default -implementation saves and deletes the document if no views exist (the last -one has just been removed). - -\membersection{wxDocument::OnCloseDocument}\label{wxdocumentonclosedocument} - -\func{virtual bool}{OnCloseDocument}{\void} - -The default implementation calls DeleteContents (an empty implementation) -sets the modified flag to false. Override this to -supply additional behaviour when the document is closed with Close. - -\membersection{wxDocument::OnCreate}\label{wxdocumentoncreate} - -\func{virtual bool}{OnCreate}{\param{const wxString\& }{path}, \param{long}{ flags}} - -Called just after the document object is created to give it a chance -to initialize itself. The default implementation uses the -template associated with the document to create an initial view. -If this function returns false, the document is deleted. - -\membersection{wxDocument::OnCreateCommandProcessor}\label{wxdocumentoncreatecommandprocessor} - -\func{virtual wxCommandProcessor*}{OnCreateCommandProcessor}{\void} - -Override this function if you want a different (or no) command processor -to be created when the document is created. By default, it returns -an instance of wxCommandProcessor. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::OnNewDocument}\label{wxdocumentonnewdocument} - -\func{virtual bool}{OnNewDocument}{\void} - -The default implementation calls OnSaveModified and DeleteContents, makes a default title for the -document, and notifies the views that the filename (in fact, the title) has changed. - -\membersection{wxDocument::OnOpenDocument}\label{wxdocumentonopendocument} - -\func{virtual bool}{OnOpenDocument}{\param{const wxString\& }{filename}} - -Constructs an input file stream for the given filename (which must not be empty), -and calls LoadObject. If LoadObject returns true, the document is set to -unmodified; otherwise, an error message box is displayed. The document's -views are notified that the filename has changed, to give windows an opportunity -to update their titles. All of the document's views are then updated. - -\membersection{wxDocument::OnSaveDocument}\label{wxdocumentonsavedocument} - -\func{virtual bool}{OnSaveDocument}{\param{const wxString\& }{filename}} - -Constructs an output file stream for the given filename (which must not be empty), -and calls SaveObject. If SaveObject returns true, the document is set to -unmodified; otherwise, an error message box is displayed. - -\membersection{wxDocument::OnSaveModified}\label{wxdocumentonsavemodified} - -\func{virtual bool}{OnSaveModified}{\void} - -If the document has been modified, prompts the user to ask if the changes should -be changed. If the user replies Yes, the Save function is called. If No, the -document is marked as unmodified and the function succeeds. If Cancel, the -function fails. - -\membersection{wxDocument::RemoveView}\label{wxdocumentremoveview} - -\func{virtual bool}{RemoveView}{\param{wxView* }{view}} - -Removes the view from the document's list of views, and calls OnChangedViewList. - -\membersection{wxDocument::Save}\label{wxdocumentsave} - -\func{virtual bool}{Save}{\void} - -Saves the document by calling OnSaveDocument if there is an associated filename, -or SaveAs if there is no filename. - -\membersection{wxDocument::SaveAs}\label{wxdocumentsaveas} - -\func{virtual bool}{SaveAs}{\void} - -Prompts the user for a file to save to, and then calls OnSaveDocument. - -\membersection{wxDocument::SaveObject}\label{wxdocumentsaveobject} - -\func{virtual ostream\&}{SaveObject}{\param{ostream\& }{stream}} - -\func{virtual wxOutputStream\&}{SaveObject}{\param{wxOutputStream\& }{stream}} - -Override this function and call it from your own SaveObject before -streaming your own data. SaveObject is called by the framework -automatically when the document contents need to be saved. - -Note that only one of these forms exists, depending on how wxWidgets -was configured. - -\membersection{wxDocument::SetCommandProcessor}\label{wxdocumentsetcommandprocessor} - -\func{virtual void}{SetCommandProcessor}{\param{wxCommandProcessor *}{processor}} - -Sets the command processor to be used for this document. The document will then be responsible -for its deletion. Normally you should not call this; override OnCreateCommandProcessor -instead. - -See \helpref{wxCommandProcessor}{wxcommandprocessor}. - -\membersection{wxDocument::SetDocumentName}\label{wxdocumentsetdocumentname} - -\func{void}{SetDocumentName}{\param{const wxString\& }{name}} - -Sets the document type name for this document. See the comment for \helpref{documentTypeName}{documenttypename}. - -\membersection{wxDocument::SetDocumentTemplate}\label{wxdocumentsetdocumenttemplate} - -\func{void}{SetDocumentTemplate}{\param{wxDocTemplate* }{templ}} - -Sets the pointer to the template that created the document. Should only be called by the -framework. - -\membersection{wxDocument::SetFilename}\label{wxdocumentsetfilename} - -\func{void}{SetFilename}{\param{const wxString\& }{filename}, \param{bool}{ notifyViews = false}} - -Sets the filename for this document. Usually called by the framework. - -If {\it notifyViews} is true, wxView::OnChangeFilename is called for all views. - -\membersection{wxDocument::SetTitle}\label{wxdocumentsettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Sets the title for this document. The document title is used for an associated -frame (if any), and is usually constructed by the framework from -the filename. - -\membersection{wxDocument::UpdateAllViews}\label{wxdocumentupdateallviews} - -\func{void}{UpdateAllViews}{\param{wxView* }{sender = NULL}, \param{wxObject*}{ hint = NULL}} - -Updates all views. If {\it sender} is non-NULL, does not update this view. - -{\it hint} represents optional information to allow a view to optimize its update. - diff --git a/docs/latex/wx/dragimag.tex b/docs/latex/wx/dragimag.tex deleted file mode 100644 index 633e80e68e..0000000000 --- a/docs/latex/wx/dragimag.tex +++ /dev/null @@ -1,226 +0,0 @@ -\section{\class{wxDragImage}}\label{wxdragimage} - -This class is used when you wish to drag an object on the screen, -and a simple cursor is not enough. - -On Windows, the Win32 API is used to achieve smooth dragging. On other platforms, -wxGenericDragImage is used. Applications may also prefer to use -wxGenericDragImage on Windows, too. - -\pythonnote{wxPython uses wxGenericDragImage on all platforms, but -uses the wxDragImage name.} - -To use this class, when you wish to start dragging an image, create a wxDragImage -object and store it somewhere you can access it as the drag progresses. -Call BeginDrag to start, and EndDrag to stop the drag. To move the image, -initially call Show and then Move. If you wish to update the screen contents -during the drag (for example, highlight an item as in the dragimag sample), first call Hide, -update the screen, call Move, and then call Show. - -You can drag within one window, or you can use full-screen dragging -either across the whole screen, or just restricted to one area -of the screen to save resources. If you want the user to drag between -two windows, then you will need to use full-screen dragging. - -If you wish to draw the image yourself, use wxGenericDragImage and -override \helpref{wxDragImage::DoDrawImage}{wxdragimagedodrawimage} and -\helpref{wxDragImage::GetImageRect}{wxdragimagegetimagerect}. - -Please see {\tt samples/dragimag} for an example. - -%\wxheading{Notes} -% -%Using the native Windows implementation, you must supply an image with a mask, or -%the image will not show when dragged. It is not clear if this is a bug -%in Windows or in the wxDragImage implementation. You can add a mask -%with a call to wxImage::SetMaskColour, passing RGB values not likely -%to be in the image. [CURED by creating the ImageList with ILC_MASK] - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -\\ - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDragImage::wxDragImage}\label{wxdragimageconstr} - -\func{}{wxDragImage}{\void} - -Default constructor. - -\func{}{wxDragImage}{\param{const wxBitmap\& }{image}, \param{const wxCursor\& }{cursor = wxNullCursor}, - \param{const wxPoint\& }{cursorHotspot = wxPoint(0, 0)}} - -Constructs a drag image from a bitmap and optional cursor. - -\func{}{wxDragImage}{\param{const wxIcon\& }{image}, \param{const wxCursor\& }{cursor = wxNullCursor}, - \param{const wxPoint\& }{cursorHotspot = wxPoint(0, 0)}} - -Constructs a drag image from an icon and optional cursor. - -\pythonnote{This constructor is called wxDragIcon in wxPython.} - -\func{}{wxDragImage}{\param{const wxString\& }{text}, \param{const wxCursor\& }{cursor = wxNullCursor}, - \param{const wxPoint\& }{cursorHotspot = wxPoint(0, 0)}} - -Constructs a drag image from a text string and optional cursor. - -\pythonnote{This constructor is called wxDragString in wxPython.} - -\func{}{wxDragImage}{\param{const wxTreeCtrl\& }{treeCtrl}, \param{wxTreeItemId\& }{id}} - -Constructs a drag image from the text in the given tree control item, and optional cursor. - -\pythonnote{This constructor is called wxDragTreeItem in wxPython.} - -\func{}{wxDragImage}{\param{const wxListCtrl\& }{treeCtrl}, \param{long }{id}} - -Constructs a drag image from the text in the given tree control item, and optional cursor. - -\pythonnote{This constructor is called wxDragListItem in wxPython.} - -\func{}{wxDragImage}{\param{const wxCursor\& }{cursor = wxNullCursor}, - \param{const wxPoint\& }{cursorHotspot = wxPoint(0, 0)}} - -Constructs a drag image an optional cursor. This constructor is only available for -wxGenericDragImage, and can be used when the application -supplies \helpref{wxDragImage::DoDrawImage}{wxdragimagedodrawimage} and \helpref{wxDragImage::GetImageRect}{wxdragimagegetimagerect}. - -\wxheading{Parameters} - -\docparam{image}{Icon or bitmap to be used as the drag image. The bitmap can -have a mask.} - -\docparam{text}{Text used to construct a drag image.} - -\docparam{cursor}{Optional cursor to combine with the image.} - -\docparam{hotspot}{This parameter is deprecated.} - -\docparam{treeCtrl}{Tree control for constructing a tree drag image.} - -\docparam{listCtrl}{List control for constructing a list drag image.} - -\docparam{id}{Tree or list control item id.} - -\membersection{wxDragImage::BeginDrag}\label{wxdragimagebegindrag} - -\func{bool}{BeginDrag}{\param{const wxPoint\& }{hotspot}, \param{wxWindow* }{window}, \param{bool}{ fullScreen = false}, \param{wxRect*}{ rect = NULL}} - -Start dragging the image, in a window or full screen. - -\func{bool}{BeginDrag}{\param{const wxPoint\& }{hotspot}, \param{wxWindow* }{window}, \param{wxWindow*}{ boundingWindow}} - -Start dragging the image, using the first window to capture the mouse and the second -to specify the bounding area. This form is equivalent to using the first form, -but more convenient than working out the bounding rectangle explicitly. - -You need to then call \helpref{wxDragImage::Show}{wxdragimageshow} -and \helpref{wxDragImage::Move}{wxdragimagemove} to show the image on the screen. - -Call \helpref{wxDragImage::EndDrag}{wxdragimageenddrag} when the drag has finished. - -Note that this call automatically calls CaptureMouse. - -\wxheading{Parameters} - -\docparam{hotspot}{The location of the drag position relative to the upper-left corner -of the image.} - -\docparam{window}{The window that captures the mouse, and within which the dragging -is limited unless {\it fullScreen} is true.} - -\docparam{boundingWindow}{In the second form of the function, specifies the -area within which the drag occurs.} - -\docparam{fullScreen}{If true, specifies that the drag will be visible over the full -screen, or over as much of the screen as is specified by {\it rect}. Note that the mouse will -still be captured in {\it window}.} - -\docparam{rect}{If non-NULL, specifies the rectangle (in screen coordinates) that -bounds the dragging operation. Specifying this can make the operation more efficient -by cutting down on the area under consideration, and it can also make a visual difference -since the drag is clipped to this area.} - -\membersection{wxDragImage::DoDrawImage}\label{wxdragimagedodrawimage} - -\func{virtual bool}{DoDrawImage}{\param{wxDC\&}{ dc}, \param{const wxPoint\&}{ pos}} - -Draws the image on the device context with top-left corner at the given position. - -This function is only available with wxGenericDragImage, to allow applications to -draw their own image instead of using an actual bitmap. If you override this function, -you must also override \helpref{wxDragImage::GetImageRect}{wxdragimagegetimagerect}. - -\membersection{wxDragImage::EndDrag}\label{wxdragimageenddrag} - -\func{bool}{EndDrag}{\void} - -Call this when the drag has finished. - -Note that this call automatically calls ReleaseMouse. - -\membersection{wxDragImage::GetImageRect}\label{wxdragimagegetimagerect} - -\constfunc{virtual wxRect}{GetImageRect}{\param{const wxPoint\&}{ pos}} - -Returns the rectangle enclosing the image, assuming that the image is drawn with its -top-left corner at the given point. - -This function is available in wxGenericDragImage only, and may be overridden (together with -\helpref{wxDragImage::DoDrawImage}{wxdragimagedodrawimage}) to provide a virtual drawing capability. - -\membersection{wxDragImage::Hide}\label{wxdragimagehide} - -\func{bool}{Hide}{\void} - -Hides the image. You may wish to call this before updating the window -contents (perhaps highlighting an item). Then call \helpref{wxDragImage::Move}{wxdragimagemove} -and \helpref{wxDragImage::Show}{wxdragimageshow}. - -\membersection{wxDragImage::Move}\label{wxdragimagemove} - -\func{bool}{Move}{\param{const wxPoint\& }{pt}} - -Call this to move the image to a new position. The image will only be shown if -\helpref{wxDragImage::Show}{wxdragimageshow} has been called previously (for example -at the start of the drag). - -{\it pt} is the position in client coordinates (relative to the window specified in BeginDrag). - -You can move the image either when the image is hidden or shown, but in general dragging -will be smoother if you move the image when it is shown. - -\membersection{wxDragImage::Show}\label{wxdragimageshow} - -\func{bool}{Show}{\void} - -Shows the image. Call this at least once when dragging. - -\membersection{wxDragImage::UpdateBackingFromWindow}\label{wxdragimageupdatebackingfromwindow} - -\constfunc{bool}{UpdateBackingFromWindow}{\param{wxDC\&}{ windowDC}, \param{wxMemoryDC\&}{ destDC}, - \param{const wxRect\&}{ sourceRect}, \param{const wxRect\&}{ destRect}} - -Override this if you wish to draw the window contents to the backing bitmap -yourself. This can be desirable if you wish to avoid flicker by not having to -redraw the updated window itself just before dragging, which can cause a flicker just -as the drag starts. Instead, paint the drag image's backing bitmap to show the appropriate -graphic {\it minus the objects to be dragged}, and leave the window itself to be updated -by the drag image. This can provide eerily smooth, flicker-free drag behaviour. - -The default implementation copies the window contents to the backing bitmap. A new -implementation will normally copy information from another source, such as from its -own backing bitmap if it has one, or directly from internal data structures. - -This function is available in wxGenericDragImage only. - diff --git a/docs/latex/wx/dropevt.tex b/docs/latex/wx/dropevt.tex deleted file mode 100644 index aec547a5f0..0000000000 --- a/docs/latex/wx/dropevt.tex +++ /dev/null @@ -1,86 +0,0 @@ -\section{\class{wxDropFilesEvent}}\label{wxdropfilesevent} - -This class is used for drop files events, that is, when files have been dropped -onto the window. This functionality is currently only available under Windows. -The window must have previously been enabled for dropping by calling -\helpref{wxWindow::DragAcceptFiles}{wxwindowdragacceptfiles}. - -Important note: this is a separate implementation to the more general -drag and drop implementation documented \helpref{here}{wxdndoverview}. It uses the -older, Windows message-based approach of dropping files. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a drop files event, use these event handler macros to direct input to a member -function that takes a wxDropFilesEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_DROP\_FILES(func)}}{Process a wxEVT\_DROP\_FILES event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropFilesEvent::wxDropFilesEvent}\label{wxdropfileseventctor} - -\func{}{wxDropFilesEvent}{\param{WXTYPE }{id = 0}, \param{int }{noFiles = 0},\rtfsp -\param{wxString* }{files = NULL}} - -Constructor. - -\membersection{wxDropFilesEvent::m\_files}\label{wxdropfileseventmfiles} - -\member{wxString*}{m\_files} - -An array of filenames. - -\membersection{wxDropFilesEvent::m\_noFiles}\label{wxdropfileseventmnofiles} - -\member{int}{m\_noFiles} - -The number of files dropped. - -\membersection{wxDropFilesEvent::m\_pos}\label{wxdropfileseventmpos} - -\member{wxPoint}{m\_pos} - -The point at which the drop took place. - -\membersection{wxDropFilesEvent::GetFiles}\label{wxdropfileseventgetfiles} - -\constfunc{wxString*}{GetFiles}{\void} - -Returns an array of filenames. - -\membersection{wxDropFilesEvent::GetNumberOfFiles}\label{wxdropfileseventgetnumberoffiles} - -\constfunc{int}{GetNumberOfFiles}{\void} - -Returns the number of files dropped. - -\membersection{wxDropFilesEvent::GetPosition}\label{wxdropfileseventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the position at which the files were dropped. - -Returns an array of filenames. - - diff --git a/docs/latex/wx/dropsrc.tex b/docs/latex/wx/dropsrc.tex deleted file mode 100644 index 23055438d3..0000000000 --- a/docs/latex/wx/dropsrc.tex +++ /dev/null @@ -1,138 +0,0 @@ -\section{\class{wxDropSource}}\label{wxdropsource} - -This class represents a source for a drag and drop operation. - -See \helpref{Drag and drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview} -for more information. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Types} - -\index{wxDragResult}wxDragResult is defined as follows: - -\begin{verbatim} -enum wxDragResult -{ - wxDragError, // error prevented the d&d operation from completing - wxDragNone, // drag target didn't accept the data - wxDragCopy, // the data was successfully copied - wxDragMove, // the data was successfully moved (MSW only) - wxDragLink, // operation is a drag-link - wxDragCancel // the operation was cancelled by user (not an error) -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropSource::wxDropSource}\label{wxdropsourcewxdropsource} - -\func{}{wxDropSource}{\param{wxWindow*}{ win = NULL},\param{const wxIconOrCursor\& }{iconCopy = wxNullIconOrCursor}, \param{const wxIconOrCursor\& }{iconMove = wxNullIconOrCursor}, \param{const wxIconOrCursor\& }{iconNone = wxNullIconOrCursor}} - -\func{}{wxDropSource}{\param{wxDataObject\&}{ data}, \param{wxWindow*}{ win = NULL},\param{const wxIconOrCursor\& }{iconCopy = wxNullIconOrCursor}, \param{const wxIconOrCursor\& }{iconMove = wxNullIconOrCursor}, \param{const wxIconOrCursor\& }{iconNone = wxNullIconOrCursor}} - -The constructors for wxDataObject. - -If you use the constructor without {\it data} parameter you must call -\helpref{SetData}{wxdropsourcesetdata} later. - -Note that the exact type of {\it iconCopy} and subsequent parameters differs -between wxMSW and wxGTK: these are cursors under Windows but icons for GTK. -You should use the macro \helpref{wxDROP\_ICON}{wxdropicon} in portable -programs instead of directly using either of these types. - -\wxheading{Parameters} - -\docparam{win}{The window which initiates the drag and drop operation.} - -\docparam{iconCopy}{The icon or cursor used for feedback for copy operation.} - -\docparam{iconMove}{The icon or cursor used for feedback for move operation.} - -\docparam{iconNone}{The icon or cursor used for feedback when operation can't be done.} - -{\it win} is the window which initiates the drag and drop operation. - -\membersection{wxDropSource::\destruct{wxDropSource}}\label{wxdropsourcedtor} - -\func{virtual }{\destruct{wxDropSource}}{\void} - -\membersection{wxDropSource::SetData}\label{wxdropsourcesetdata} - -\func{void}{SetData}{\param{wxDataObject\&}{ data}} - -Sets the data \helpref{wxDataObject}{wxdataobject} associated with the -drop source. This will not delete any previously associated data. - -\membersection{wxDropSource::DoDragDrop}\label{wxdropsourcedodragdrop} - -\func{virtual wxDragResult}{DoDragDrop}{\param{int }{flags = {\tt wxDrag\_CopyOnly}}} - -Do it (call this in response to a mouse button press, for example). This starts -the drag-and-drop operation which will terminate when the user releases the -mouse. - -\wxheading{Parameters} - -\docparam{flags}{If {\tt wxDrag\_AllowMove} is included in the flags, data may -be moved and not only copied (default). If {\tt wxDrag\_DefaultMove} is -specified (which includes the previous flag), this is even the default -operation}. - -\wxheading{Return value} - -Returns the operation requested by the user, may be {\tt wxDragCopy}, {\tt -wxDragMove}, {\tt wxDragLink}, {\tt wxDragCancel} or {\tt wxDragNone} if an error occurred. - -\membersection{wxDropSource::GetDataObject}\label{wxdropsourcegetdataobject} - -\func{wxDataObject *}{GetDataObject}{\void} - -Returns the wxDataObject object that has been assigned previously. - -\membersection{wxDropSource::GiveFeedback}\label{wxdropsourcegivefeedback} - -\func{virtual bool}{GiveFeedback}{\param{wxDragResult }{effect}} - -Overridable: you may give some custom UI feedback during the drag and drop operation -in this function. It is called on each mouse move, so your implementation must not be too -slow. - -\wxheading{Parameters} - -\docparam{effect}{The effect to implement. One of {\tt wxDragCopy}, {\tt wxDragMove}, {\tt wxDragLink} and {\tt wxDragNone}. } - -\docparam{scrolling}{true if the window is scrolling. MSW only. } - -\wxheading{Return value} - -Return false if you want default feedback, or true if you implement your own -feedback. The return values is ignored under GTK. - -\membersection{wxDropSource::SetCursor}\label{wxdropsourcesetcursor} - -\func{void}{SetCursor}{\param{wxDragResult }{res}, \param{const wxCursor\& }{cursor}} - -Set the icon to use for a certain drag result. - -\wxheading{Parameters} - -\docparam{res}{The drag result to set the icon for. } - -\docparam{cursor}{The ion to show when this drag result occurs. } - diff --git a/docs/latex/wx/droptrgt.tex b/docs/latex/wx/droptrgt.tex deleted file mode 100644 index f9ab7fc6c4..0000000000 --- a/docs/latex/wx/droptrgt.tex +++ /dev/null @@ -1,149 +0,0 @@ -\section{\class{wxDropTarget}}\label{wxdroptarget} - -This class represents a target for a drag and drop operation. A \helpref{wxDataObject}{wxdataobject} -can be associated with it and by default, this object will be filled with the data from the -drag source, if the data formats supported by the data object match the drag source data -format. - -There are various virtual handler functions defined in this class which may be overridden -to give visual feedback or react in a more fine-tuned way, e.g. by not accepting data on -the whole window area, but only a small portion of it. The normal sequence of calls is -\helpref{OnEnter}{wxdroptargetonenter}, possibly many times \helpref{OnDragOver}{wxdroptargetondragover}, -\helpref{OnDrop}{wxdroptargetondrop} and finally \helpref{OnData}{wxdroptargetondata}. - -See \helpref{Drag and drop overview}{wxdndoverview} and \helpref{wxDataObject overview}{wxdataobjectoverview} -for more information. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Types} - -\index{wxDragResult}wxDragResult is defined as follows: - -\begin{verbatim} -enum wxDragResult -{ - wxDragError, // error prevented the d&d operation from completing - wxDragNone, // drag target didn't accept the data - wxDragCopy, // the data was successfully copied - wxDragMove, // the data was successfully moved (MSW only) - wxDragLink, // operation is a drag-link - wxDragCancel // the operation was cancelled by user (not an error) -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxDropSource}{wxdropsource}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}, -\helpref{wxDataFormat}{wxdataformat}, \helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDropTarget::wxDropTarget}\label{wxdroptargetwxdroptarget} - -\func{}{wxDropTarget}{\param{wxDataObject*}{ data = NULL}} - -Constructor. {\it data} is the data to be associated with the drop target. - -\membersection{wxDropTarget::\destruct{wxDropTarget}}\label{wxdroptargetdtor} - -\func{}{\destruct{wxDropTarget}}{\void} - -Destructor. Deletes the associated data object, if any. - -\membersection{wxDropTarget::GetData}\label{wxdroptargetgetdata} - -\func{virtual void}{GetData}{\void} - -This method may only be called from within \helpref{OnData}{wxdroptargetondata}. -By default, this method copies the data from the drop source to the -\helpref{wxDataObject}{wxdataobject} associated with this drop target, -calling its \helpref{wxDataObject::SetData}{wxdataobjectsetdata} method. - -\membersection{wxDropTarget::OnData}\label{wxdroptargetondata} - -\func{virtual wxDragResult}{OnData}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxDragResult}{ def}} - -Called after \helpref{OnDrop}{wxdroptargetondrop} returns true. By default this -will usually \helpref{GetData}{wxdroptargetgetdata} and will return the suggested -default value {\it def}. - -\membersection{wxDropTarget::OnDrop}\label{wxdroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Called when the user drops a data object on the target. Return false to veto the operation. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\wxheading{Return value} - -Return true to accept the data, false to veto the operation. - -\membersection{wxDropTarget::OnEnter}\label{wxdroptargetonenter} - -\func{virtual wxDragResult}{OnEnter}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxDragResult}{ def}} - -Called when the mouse enters the drop target. By default, this calls \helpref{OnDragOver}{wxdroptargetondragover}. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{def}{Suggested default for return value. Determined by SHIFT or CONTROL key states.} - -\wxheading{Return value} - -Returns the desired operation or {\tt wxDragNone}. This is used for optical feedback -from the side of the drop source, typically in form of changing the icon. - -\membersection{wxDropTarget::OnDragOver}\label{wxdroptargetondragover} - -\func{virtual wxDragResult}{OnDragOver}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxDragResult}{ def}} - -Called when the mouse is being dragged over the drop target. By default, -this calls functions return the suggested return value {\it def}. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{def}{Suggested value for return value. Determined by SHIFT or CONTROL key states.} - -\wxheading{Return value} - -Returns the desired operation or {\tt wxDragNone}. This is used for optical feedback -from the side of the drop source, typically in form of changing the icon. - -\membersection{wxDropTarget::OnLeave}\label{wxdroptargetonleave} - -\func{virtual void}{OnLeave}{\void} - -Called when the mouse leaves the drop target. - -\membersection{wxDropTarget::SetDataObject}\label{wxdroptargetsetdataobject} - -\func{void}{SetDataObject}{\param{wxDataObject*}{ data}} - -Sets the data \helpref{wxDataObject}{wxdataobject} associated with the -drop target and deletes any previously associated data object. - diff --git a/docs/latex/wx/dynlib.tex b/docs/latex/wx/dynlib.tex deleted file mode 100644 index 967416a24c..0000000000 --- a/docs/latex/wx/dynlib.tex +++ /dev/null @@ -1,261 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: dynlib.tex -%% Purpose: wxDynamicLibrary and wxDynamicLibraryDetails documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.01.02 (extracted from dllload.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDynamicLibrary}}\label{wxdynamiclibrary} - -wxDynamicLibrary is a class representing dynamically loadable library -(Windows DLL, shared library under Unix etc.). Just create an object of -this class to load a library and don't worry about unloading it -- it will be -done in the objects destructor automatically. - -\wxheading{Derived from} - -No base class. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -(only available if \texttt{wxUSE\_DYNLIB\_CLASS} is set to $1$) - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDynamicLibrary::wxDynamicLibrary}\label{wxdynamiclibrarywxdynamiclibrary} - -\func{}{wxDynamicLibrary}{\void} - -\func{}{wxDynamicLibrary}{\param{const wxString\& }{name}, \param{int }{flags = wxDL\_DEFAULT}} - -Constructor. Second form calls \helpref{Load}{wxdynamiclibraryload}. - - -\membersection{wxDynamicLibrary::CanonicalizeName}\label{wxdynamiclibrarycanonicalizename} - -\func{static wxString}{CanonicalizeName}{\param{const wxString\& }{name}, \param{wxDynamicLibraryCategory}{ cat = wxDL\_LIBRARY}} - -Returns the platform-specific full name for the library called \arg{name}. E.g. -it adds a {\tt ".dll"} extension under Windows and {\tt "lib"} prefix and -{\tt ".so"}, {\tt ".sl"} or maybe {\tt ".dylib"} extension under Unix. - -The possible values for \arg{cat} are: - -\begin{twocollist} - \twocolitem{wxDL\_LIBRARY}{normal library} - \twocolitem{wxDL\_MODULE}{a loadable module or plugin} -\end{twocollist} - -\wxheading{See also} - -\helpref{CanonicalizePluginName}{wxdynamiclibrarycanonicalizepluginname} - - - -\membersection{wxDynamicLibrary::CanonicalizePluginName}\label{wxdynamiclibrarycanonicalizepluginname} - -\func{static wxString}{CanonicalizePluginName}{\param{const wxString\& }{name}, \param{wxPluginCategory}{ cat = wxDL\_PLUGIN\_GUI}} - -This function does the same thing as -\helpref{CanonicalizeName}{wxdynamiclibrarycanonicalizename} but for wxWidgets -plugins. The only difference is that compiler and version information are added -to the name to ensure that the plugin which is going to be loaded will be -compatible with the main program. - -The possible values for \arg{cat} are: - -\begin{twocollist} - \twocolitem{wxDL\_PLUGIN\_GUI}{plugin which uses GUI classes (default)} - \twocolitem{wxDL\_PLUGIN\_BASE}{plugin which only uses wxBase} -\end{twocollist} - - -\membersection{wxDynamicLibrary::Detach}\label{wxdynamiclibrarydetach} - -\func{wxDllType}{Detach}{\void} - -Detaches this object from its library handle, i.e. the object will not unload -the library any longer in its destructor but it is now the callers -responsibility to do this using \helpref{Unload}{wxdynamiclibraryunload}. - - -\membersection{wxDynamicLibrary::GetSymbol}\label{wxdynamiclibrarygetsymbol} - -\constfunc{void *}{GetSymbol}{\param{const wxString\& }{name}} - -Returns pointer to symbol {\it name} in the library or NULL if the library -contains no such symbol. - -\wxheading{See also} - -\helpref{wxDYNLIB\_FUNCTION}{wxdynlibfunction} - - -\membersection{wxDynamicLibrary::GetSymbolAorW}\label{wxdynamiclibrarygetsymbolaorw} - -\constfunc{void *}{GetSymbolAorW}{\param{const wxString\& }{name}} - -This function is available only under Windows as it is only useful when -dynamically loading symbols from standard Windows DLLs. Such functions have -either \texttt{'A'} (in ANSI build) or \texttt{'W'} (in Unicode, or wide -character build) suffix if they take string parameters. Using this function you -can use just the base name of the function and the correct suffix is appende -automatically depending on the current build. Otherwise, this method is -identical to \helpref{GetSymbol}{wxdynamiclibrarygetsymbol}. - - -\membersection{wxDynamicLibrary::GetProgramHandle}\label{wxdynamiclibrarygetprogramhandle} - -\func{static wxDllType}{GetProgramHandle}{\void} - -Return a valid handle for the main program itself or \texttt{NULL} if symbols -from the main program can't be loaded on this platform. - - -\membersection{wxDynamicLibrary::HasSymbol}\label{wxdynamiclibraryhassymbol} - -\constfunc{bool}{HasSymbol}{\param{const wxString\& }{name}} - -Returns \true if the symbol with the given \arg{name} is present in the dynamic -library, \false otherwise. Unlike \helpref{GetSymbol}{wxdynamiclibrarygetsymbol}, -this function doesn't log an error message if the symbol is not found. - -\newsince{2.5.4} - - -\membersection{wxDynamicLibrary::IsLoaded}\label{wxdynamiclibraryisloaded} - -\constfunc{bool}{IsLoaded}{\void} - -Returns \true if the library was successfully loaded, \false otherwise. - - -\membersection{wxDynamicLibrary::ListLoaded}\label{wxdynamiclibrarylistloaded} - -\func{static wxDynamicLibraryDetailsArray}{ListLoaded}{\void} - -This static method returns an \helpref{array}{wxarray} containing the details -of all modules loaded into the address space of the current project, the array -elements are object of \texttt{wxDynamicLibraryDetails} class. The array will -be empty if an error occurred. - -This method is currently implemented only under Win32 and Linux and is useful -mostly for diagnostics purposes. - - -\membersection{wxDynamicLibrary::Load}\label{wxdynamiclibraryload} - -\func{bool}{Load}{\param{const wxString\& }{name}, \param{int }{flags = wxDL\_DEFAULT}} - -Loads DLL with the given \arg{name} into memory. The \arg{flags} argument can -be a combination of the following bits: - -\begin{twocollist} -\twocolitem{wxDL\_LAZY}{equivalent of RTLD\_LAZY under Unix, ignored elsewhere} -\twocolitem{wxDL\_NOW}{equivalent of RTLD\_NOW under Unix, ignored elsewhere} -\twocolitem{wxDL\_GLOBAL}{equivalent of RTLD\_GLOBAL under Unix, ignored elsewhere} -\twocolitem{wxDL\_VERBATIM}{don't try to append the appropriate extension to -the library name (this is done by default).} -\twocolitem{wxDL\_DEFAULT}{default flags, same as wxDL\_NOW currently} -\twocolitem{wxDL\_QUIET}{don't log an error message if the library couldn't be -loaded.} -\end{twocollist} - -Returns \true if the library was successfully loaded, \false otherwise. - - -\membersection{wxDynamicLibrary::Unload}\label{wxdynamiclibraryunload} - -\func{void}{Unload}{\void} - -\func{static void}{Unload}{\param{wxDllType }{handle}} - -Unloads the library from memory. wxDynamicLibrary object automatically calls -this method from its destructor if it had been successfully loaded. - -The second version is only used if you need to keep the library in memory -during a longer period of time than the scope of the wxDynamicLibrary object. -In this case you may call \helpref{Detach}{wxdynamiclibrarydetach} and store -the handle somewhere and call this static method later to unload it. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxDynamicLibraryDetails}}\label{wxdynamiclibrarydetails} - -This class is used for the objects returned by -\helpref{wxDynamicLibrary::ListLoaded}{wxdynamiclibrarylistloaded} method and -contains the information about a single module loaded into the address space of -the current process. A module in this context may be either a dynamic library -or the main program itself. - -\wxheading{Derived from} - -No base class. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -(only available if \texttt{wxUSE\_DYNLIB\_CLASS} is set to $1$) - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDynamicLibraryDetails::GetName}\label{wxdynamiclibrarygetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the base name of this module, e.g. \texttt{kernel32.dll} or -\texttt{libc-2.3.2.so}. - - -\membersection{wxDynamicLibraryDetails::GetPath}\label{wxdynamiclibrarygetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the full path of this module if available, e.g. -\texttt{c:$\backslash$windows$\backslash$system32$\backslash$kernel32.dll} or -\texttt{/lib/libc-2.3.2.so}. - - -\membersection{wxDynamicLibraryDetails::GetAddress}\label{wxdynamiclibrarygetaddress} - -\constfunc{bool}{GetAddress}{\param{void **}{addr}, \param{size\_t }{*len}} - -Retrieves the load address and the size of this module. - -\wxheading{Parameters} - -\docparam{addr}{the pointer to the location to return load address in, may be -\texttt{NULL}} - -\docparam{len}{pointer to the location to return the size of this module in -memory in, may be \texttt{NULL}} - -\wxheading{Return value} - -\true if the load address and module size were retrieved, \false if this -information is not available. - - -\membersection{wxDynamicLibraryDetails::GetVersion}\label{wxdynamiclibrarygetversion} - -\constfunc{wxString}{GetVersion}{\void} - -Returns the version of this module, e.g. \texttt{5.2.3790.0} or -\texttt{2.3.2}. The returned string is empty if the version information is not -available. - diff --git a/docs/latex/wx/editlistbox.tex b/docs/latex/wx/editlistbox.tex deleted file mode 100644 index 78e34c26d5..0000000000 --- a/docs/latex/wx/editlistbox.tex +++ /dev/null @@ -1,101 +0,0 @@ -\section{\class{wxEditableListBox}}\label{wxeditablelistbox} - -An editable listbox is composite control that lets the -user easily enter, delete and reorder a list of strings. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxEL\_ALLOW\_NEW}}{Allows the user to enter new strings.} -\twocolitem{\windowstyle{wxEL\_ALLOW\_EDIT}}{Allows the user to edit existing strings.} -\twocolitem{\windowstyle{wxEL\_ALLOW\_DELETE}}{Allows the user to delete existing strings.} -\twocolitem{\windowstyle{wxEL\_NO\_REORDER}}{Does not allow the user to reorder the strings.} -\twocolitem{\windowstyle{wxEL\_DEFAULT\_STYLE}}{wxEL\_ALLOW\_NEW|wxEL\_ALLOW\_EDIT|wxEL\_ALLOW\_DELETE} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxListBox}{wxlistbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEditableListBox::wxEditableListBox}\label{wxeditablelistboxctor} - -\func{}{wxEditableListBox}{\void} - -Default constructor. - -\func{}{wxEditableListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\&}{ label},\param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxEL\_DEFAULT\_STYLE}, \param{const wxString\& }{name = ``editableListBox"}} - -Constructor, creating and showing a list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{The text shown just before the list control.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxEditableListBox}{wxeditablelistbox}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxEditableListBox::Create}{wxeditablelistboxcreate} - -\membersection{wxEditableListBox::\destruct{wxEditableListBox}}\label{wxeditablelistboxdtor} - -\func{void}{\destruct{wxEditableListBox}}{\void} - -Destructor, destroying the list box. - -\membersection{wxEditableListBox::Create}\label{wxeditablelistboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\&}{ label},\param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxEL\_DEFAULT\_STYLE}, \param{const wxString\& }{name = ``editableListBox"}} - -Creates the editable listbox for two-step construction. See \helpref{wxEditableListBox::wxEditableListBox}{wxeditablelistboxctor}\rtfsp -for further details. - -\membersection{wxEditableListBox::SetStrings}\label{wxeditablelistboxsetstrings} - -\func{void}{SetStrings}{\param{const wxArrayString\&}{ strings}} - -Replaces current contents with given strings. - -\membersection{wxEditableListBox::GetStrings}\label{wxeditablelistboxgetstrings} - -\constfunc{void}{GetSelections}{\param{wxArrayString\& }{strings}} - -Returns in the given array the current contents of the control -(the array will be erased before control's contents are appended). diff --git a/docs/latex/wx/encconv.tex b/docs/latex/wx/encconv.tex deleted file mode 100644 index daa9c3dd95..0000000000 --- a/docs/latex/wx/encconv.tex +++ /dev/null @@ -1,203 +0,0 @@ -% -% automatically generated by HelpGen from -% encconv.h at 30/Dec/99 18:45:16 -% - -\section{\class{wxEncodingConverter}}\label{wxencodingconverter} - -This class is capable of converting strings between two -8-bit encodings/charsets. It can also convert from/to Unicode (but only -if you compiled wxWidgets with wxUSE\_WCHAR\_T set to 1). Only a limited subset -of encodings is supported by wxEncodingConverter: -{\tt wxFONTENCODING\_ISO8859\_1..15}, {\tt wxFONTENCODING\_CP1250..1257} and -{\tt wxFONTENCODING\_KOI8}. - -\wxheading{Note} - -Please use \helpref{wxMBConv classes}{mbconvclasses} instead -if possible. \helpref{wxCSConv}{wxcsconv} has much better support for various -encodings than wxEncodingConverter. wxEncodingConverter is useful only -if you rely on {\tt wxCONVERT\_SUBSTITUTE} mode of operation (see -\helpref{Init}{wxencodingconverterinit}). - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxFontMapper}{wxfontmapper}, -\helpref{wxMBConv}{wxmbconv}, -\helpref{Writing non-English applications}{nonenglishoverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxEncodingConverter::wxEncodingConverter}\label{wxencodingconverterwxencodingconverter} - -\func{}{wxEncodingConverter}{\void} - -Constructor. - - -\membersection{wxEncodingConverter::Init}\label{wxencodingconverterinit} - -\func{bool}{Init}{\param{wxFontEncoding }{input\_enc}, \param{wxFontEncoding }{output\_enc}, \param{int }{method = wxCONVERT\_STRICT}} - -Initialize conversion. Both output or input encoding may -be wxFONTENCODING\_UNICODE, but only if wxUSE\_ENCODING is set to 1. -All subsequent calls to \helpref{Convert()}{wxencodingconverterconvert} -will interpret its argument -as a string in {\it input\_enc} encoding and will output string in -{\it output\_enc} encoding. -You must call this method before calling Convert. You may call -it more than once in order to switch to another conversion. -{\it Method} affects behaviour of Convert() in case input character -cannot be converted because it does not exist in output encoding: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxCONVERT\_STRICT}}{follow behaviour of GNU Recode - -just copy unconvertible characters to output and don't change them -(its integer value will stay the same)} -\twocolitem{{\bf wxCONVERT\_SUBSTITUTE}}{try some (lossy) substitutions -- e.g. replace unconvertible latin capitals with acute by ordinary -capitals, replace en-dash or em-dash by '-' etc.} -\end{twocollist} - -Both modes guarantee that output string will have same length -as input string. - -\wxheading{Return value} - -false if given conversion is impossible, true otherwise -(conversion may be impossible either if you try to convert -to Unicode with non-Unicode build of wxWidgets or if input -or output encoding is not supported.) - - -\membersection{wxEncodingConverter::CanConvert}\label{wxencodingconvertercanconvert} - -\func{static bool}{CanConvert}{\param{wxFontEncoding }{encIn}, \param{wxFontEncoding }{encOut}} - -Return true if (any text in) multibyte encoding \arg{encIn} can be converted to -another one ({\it encOut}) losslessly. - -Do not call this method with \texttt{wxFONTENCODING\_UNICODE} as either -parameter, it doesn't make sense (always works in one sense and always depends -on the text to convert in the other). - - -\membersection{wxEncodingConverter::Convert}\label{wxencodingconverterconvert} - -\constfunc{bool}{Convert}{\param{const char* }{input}, \param{char* }{output}} - -\constfunc{bool}{Convert}{\param{const wchar\_t* }{input}, \param{wchar\_t* }{output}} - -\constfunc{bool}{Convert}{\param{const char* }{input}, \param{wchar\_t* }{output}} - -\constfunc{bool}{Convert}{\param{const wchar\_t* }{input}, \param{char* }{output}} - -Convert input string according to settings passed to -\helpref{Init}{wxencodingconverterinit} and writes the result to {\it output}. - -\constfunc{bool}{Convert}{\param{char* }{str}} - -\constfunc{bool}{Convert}{\param{wchar\_t* }{str}} - -Convert input string according to settings passed to -\helpref{Init}{wxencodingconverterinit} in-place, i.e. write the result to the -same memory area. - -All of the versions above return \true if the conversion was lossless and -\false if at least one of the characters couldn't be converted and was replaced -with {\tt '?'} in the output. Note that if {\tt wxCONVERT\_SUBSTITUTE} was -passed to \helpref{Init}{wxencodingconverterinit}, substitution is considered -lossless operation. - -\constfunc{wxString}{Convert}{\param{const wxString\& }{input}} - -Convert wxString and return new wxString object. - -\wxheading{Notes} - -You must call \helpref{Init}{wxencodingconverterinit} before using this method! - -{\tt wchar\_t} versions of the method are not available if wxWidgets was compiled -with {\tt wxUSE\_WCHAR\_T} set to 0. - - -\membersection{wxEncodingConverter::GetPlatformEquivalents}\label{wxencodingconvertergetplatformequivalents} - -\func{static wxFontEncodingArray}{GetPlatformEquivalents}{\param{wxFontEncoding }{enc}, \param{int }{platform = wxPLATFORM\_CURRENT}} - -Return equivalents for given font that are used -under given platform. Supported platforms: - -\begin{itemize}\itemsep=0pt -\item wxPLATFORM\_UNIX -\item wxPLATFORM\_WINDOWS -\item wxPLATFORM\_OS2 -\item wxPLATFORM\_MAC -\item wxPLATFORM\_CURRENT -\end{itemize} - -wxPLATFORM\_CURRENT means the platform this binary was compiled for. - -Examples: - -\begin{verbatim} -current platform enc returned value ----------------------------------------------- -unix CP1250 {ISO8859_2} -unix ISO8859_2 {ISO8859_2} -windows ISO8859_2 {CP1250} -unix CP1252 {ISO8859_1,ISO8859_15} -\end{verbatim} - -Equivalence is defined in terms of convertibility: -two encodings are equivalent if you can convert text between -then without losing information (it may - and will - happen -that you lose special chars like quotation marks or em-dashes -but you shouldn't lose any diacritics and language-specific -characters when converting between equivalent encodings). - -Remember that this function does {\bf NOT} check for presence of -fonts in system. It only tells you what are most suitable -encodings. (It usually returns only one encoding.) - -\wxheading{Notes} - -\begin{itemize}\itemsep=0pt -\item Note that argument {\it enc} itself may be present in the returned array, -so that you can, as a side-effect, detect whether the -encoding is native for this platform or not. -\item \helpref{Convert}{wxencodingconverterconvert} is not limited to -converting between equivalent encodings, it can convert between two arbitrary -encodings. -\item If {\it enc} is present in the returned array, then it is {\bf always} the first -item of it. -\item Please note that the returned array may contain no items at all. -\end{itemize} - - -\membersection{wxEncodingConverter::GetAllEquivalents}\label{wxencodingconvertergetallequivalents} - -\func{static wxFontEncodingArray}{GetAllEquivalents}{\param{wxFontEncoding }{enc}} - -Similar to -\helpref{GetPlatformEquivalents}{wxencodingconvertergetplatformequivalents}, -but this one will return ALL -equivalent encodings, regardless of the platform, and including itself. - -This platform's encodings are before others in the array. And again, if {\it enc} is in the array, -it is the very first item in it. - diff --git a/docs/latex/wx/eraseevt.tex b/docs/latex/wx/eraseevt.tex deleted file mode 100644 index cd42e18681..0000000000 --- a/docs/latex/wx/eraseevt.tex +++ /dev/null @@ -1,61 +0,0 @@ -\section{\class{wxEraseEvent}}\label{wxeraseevent} - -An erase event is sent when a window's background needs to be repainted. - -On some platforms, such as GTK+, this event is simulated (simply generated just before the -paint event) and may cause flicker. It is therefore recommended that -you set the text background colour explicitly in order to prevent flicker. -The default background colour under GTK+ is grey. - -To intercept this event, use the EVT\_ERASE\_BACKGROUND macro in an event table definition. - -You must call wxEraseEvent::GetDC and use the returned device context if it is non-NULL. -If it is NULL, create your own temporary wxClientDC object. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an erase event, use this event handler macro to direct input to a member -function that takes a wxEraseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ERASE\_BACKGROUND(func)}}{Process a wxEVT\_ERASE\_BACKGROUND event.} -\end{twocollist}% - -\wxheading{Remarks} - -Use the device context returned by \helpref{GetDC}{wxeraseeventgetdc} to draw on, -don't create a wxPaintDC in the event handler. - -\wxheading{See also} - -%\helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground}, -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEraseEvent::wxEraseEvent}\label{wxeraseeventctor} - -\func{}{wxEraseEvent}{\param{int }{id = 0}, \param{wxDC* }{dc = NULL}} - -Constructor. - -\membersection{wxEraseEvent::GetDC}\label{wxeraseeventgetdc} - -\constfunc{wxDC*}{GetDC}{\void} - -Returns the device context associated with the erase event to draw on. - diff --git a/docs/latex/wx/event.tex b/docs/latex/wx/event.tex deleted file mode 100644 index 84c54107ca..0000000000 --- a/docs/latex/wx/event.tex +++ /dev/null @@ -1,201 +0,0 @@ -\section{\class{wxEvent}}\label{wxevent} - -An event is a structure holding information about an event passed to a -callback or member function. {\bf wxEvent} used to be a multipurpose -event object, and is an abstract base class for other event classes (see below). - -For more information about events, see the \helpref{Event handling overview}{eventhandlingoverview}. - -\perlnote{In wxPerl custom event classes should be derived from -\texttt{Wx::PlEvent} and \texttt{Wx::PlCommandEvent}.} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxCommandEvent}{wxcommandevent},\rtfsp -\helpref{wxMouseEvent}{wxmouseevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxEvent::wxEvent}\label{wxeventctor} - -\func{}{wxEvent}{\param{int }{id = 0}, \param{wxEventType }{eventType = {\tt wxEVT\_NULL}}} - -Constructor. Should not need to be used directly by an application. - - -\membersection{wxEvent::m\_propagationLevel}\label{wxeventmpropagationlevel} - - -\member{int}{m\_propagationLevel} - -Indicates how many levels the event can propagate. This member is protected and -should typically only be set in the constructors of the derived classes. It -may be temporarily changed by \helpref{StopPropagation}{wxeventstoppropagation} -and \helpref{ResumePropagation}{wxeventresumepropagation} and tested with -\helpref{ShouldPropagate}{wxeventshouldpropagate}. - -The initial value is set to either {\tt wxEVENT\_PROPAGATE\_NONE} (by -default) meaning that the event shouldn't be propagated at all or to -{\tt wxEVENT\_PROPAGATE\_MAX} (for command events) meaning that it should be -propagated as much as necessary. - -Any positive number means that the event should be propagated but no more than -the given number of times. E.g. the propagation level may be set to $1$ to -propagate the event to its parent only, but not to its grandparent. - - -\membersection{wxEvent::Clone}\label{wxeventclone} - -\constfunc{virtual wxEvent*}{Clone}{\void} - -Returns a copy of the event. - -Any event that is posted to the wxWidgets event system for later action (via -\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent} or -\helpref{wxPostEvent}{wxpostevent}) must implement this method. All wxWidgets -events fully implement this method, but any derived events implemented by the -user should also implement this method just in case they (or some event -derived from them) are ever posted. - -All wxWidgets events implement a copy constructor, so the easiest way of -implementing the Clone function is to implement a copy constructor for -a new event (call it MyEvent) and then define the Clone function like this: - -\begin{verbatim} - wxEvent *Clone(void) const { return new MyEvent(*this); } -\end{verbatim} - - -\membersection{wxEvent::GetEventObject}\label{wxeventgeteventobject} - -\func{wxObject*}{GetEventObject}{\void} - -Returns the object (usually a window) associated with the -event, if any. - - -\membersection{wxEvent::GetEventType}\label{wxeventgeteventtype} - -\func{wxEventType}{GetEventType}{\void} - -Returns the identifier of the given event type, -such as \texttt{wxEVT\_COMMAND\_BUTTON\_CLICKED}. - - -\membersection{wxEvent::GetId}\label{wxeventgetid} - -\constfunc{int}{GetId}{\void} - -Returns the identifier associated with this event, such as a button command id. - - -\membersection{wxEvent::GetSkipped}\label{wxeventgetskipped} - -\constfunc{bool}{GetSkipped}{\void} - -Returns true if the event handler should be skipped, false otherwise. - - -\membersection{wxEvent::GetTimestamp}\label{wxeventgettimestamp} - -\func{long}{GetTimestamp}{\void} - -Gets the timestamp for the event. The timestamp is the time in milliseconds -since some fixed moment (\emph{not} necessarily the standard Unix Epoch, so -only differences between the timestamps and not their absolute values usually -make sense). - - -\membersection{wxEvent::IsCommandEvent}\label{wxeventiscommandevent} - -\constfunc{bool}{IsCommandEvent}{\void} - -Returns true if the event is or is derived from -\helpref{wxCommandEvent}{wxcommandevent} else it returns false. -Note: Exists only for optimization purposes. - - -\membersection{wxEvent::ResumePropagation}\label{wxeventresumepropagation} - -\func{void}{ResumePropagation}{\param{int }{propagationLevel}} - -Sets the propagation level to the given value (for example returned from an -earlier call to \helpref{StopPropagation}{wxeventstoppropagation}). - - -\membersection{wxEvent::SetEventObject}\label{wxeventseteventobject} - -\func{void}{SetEventObject}{\param{wxObject* }{object}} - -Sets the originating object. - - -\membersection{wxEvent::SetEventType}\label{wxeventseteventtype} - -\func{void}{SetEventType}{\param{wxEventType }{type}} - -Sets the event type. - - -\membersection{wxEvent::SetId}\label{wxeventsetid} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the identifier associated with this event, such as a button command id. - - -\membersection{wxEvent::SetTimestamp}\label{wxeventsettimestamp} - -\func{void}{SetTimestamp}{\param{long }{timeStamp}} - -Sets the timestamp for the event. - - -\membersection{wxEvent::ShouldPropagate}\label{wxeventshouldpropagate} - -\constfunc{bool}{ShouldPropagate}{\void} - -Test if this event should be propagated or not, i.e. if the propagation level -is currently greater than $0$. - - -\membersection{wxEvent::Skip}\label{wxeventskip} - -\func{void}{Skip}{\param{bool}{ skip = true}} - -This method can be used inside an event handler to control whether further -event handlers bound to this event will be called after the current one -returns. Without Skip() (or equivalently if Skip(false) is used), -the event will not be processed any more. If Skip(true) is called, the event -processing system continues searching for a further handler function for this -event, even though it has been processed already in the current handler. - -In general, it is recommended to skip all non-command events to allow the -default handling to take place. The command events are, however, normally not -skipped as usually a single command such as a button click or menu item -selection must only be processed by one handler. - - -\membersection{wxEvent::StopPropagation}\label{wxeventstoppropagation} - -\func{int}{StopPropagation}{\void} - -Stop the event from propagating to its parent window. - -Returns the old propagation level value which may be later passed to -\helpref{ResumePropagation}{wxeventresumepropagation} to allow propagating the -event again. - diff --git a/docs/latex/wx/evtblocker.tex b/docs/latex/wx/evtblocker.tex deleted file mode 100644 index 3d21f5c4b9..0000000000 --- a/docs/latex/wx/evtblocker.tex +++ /dev/null @@ -1,73 +0,0 @@ -\section{\class{wxEventBlocker}}\label{wxeventblocker} - -This class is a special event handler which allows to discard -any event (or a set of event types) directed to a specific window. - -Example: - -\begin{verbatim} - - { - // block all events directed to this window while - // we do the 1000 FuncWhichSendsEvents() calls - wxEventBlocker blocker(this); - - for ( int i = 0; i < 1000; i++ ) - FuncWhichSendsEvents(i); - - } // ~wxEventBlocker called, old event handler is restored - - // the event generated by this call will be processed - FuncWhichSendsEvents(0) -\end{verbatim} - - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\overview{Event handling overview}{eventhandlingoverview}, -\helpref{wxEvtHandler}{wxevthandler} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEventBlocker::wxEventBlocker}\label{wxeventblockerctor} - -\func{}{wxEventBlocker}{\param{wxWindow* }{win}, \param{wxEventType}{type = wxEVT\_ANY}} - -Constructs the blocker for the given window and for the given event type. -If \arg{type} is \texttt{wxEVT\_ANY}, then all events for that window are -blocked. You can call \helpref{Block}{wxeventblockerblock} after creation to -add other event types to the list of events to block. - -Note that the \arg{win} window \textbf{must} remain alive until the -wxEventBlocker object destruction. - - -\membersection{wxEventBlocker::\destruct{wxEventBlocker}}\label{wxeventblockerdtor} - -\func{}{\destruct{wxEventBlocker}}{\void} - -Destructor. The blocker will remove itself from the chain of event handlers for -the window provided in the constructor, thus restoring normal processing of -events. - - -\membersection{wxEventBlocker::Block}\label{wxeventblockerblock} - -\func{void}{Block}{\param{wxEventType }{eventType}} - -Adds to the list of event types which should be blocked the given \arg{eventType}. - diff --git a/docs/latex/wx/evthand.tex b/docs/latex/wx/evthand.tex deleted file mode 100644 index a5e0a0949a..0000000000 --- a/docs/latex/wx/evthand.tex +++ /dev/null @@ -1,426 +0,0 @@ -\section{\class{wxEvtHandler}}\label{wxevthandler} - -A class that can handle events from the windowing system. -wxWindow (and therefore all window classes) are derived from -this class. - -When events are received, wxEvtHandler invokes the method listed in the -event table using itself as the object. When using multiple inheritance -it is imperative that the wxEvtHandler(-derived) class be the first -class inherited such that the "this" pointer for the overall object -will be identical to the "this" pointer for the wxEvtHandler portion. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\overview{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEvtHandler::wxEvtHandler}\label{wxevthandlerctor} - -\func{}{wxEvtHandler}{\void} - -Constructor. - -\membersection{wxEvtHandler::\destruct{wxEvtHandler}}\label{wxevthandlerdtor} - -\func{}{\destruct{wxEvtHandler}}{\void} - -Destructor. If the handler is part of a chain, the destructor will -unlink itself and restore the previous and next handlers so that they point to -each other. - -\membersection{wxEvtHandler::AddPendingEvent}\label{wxevthandleraddpendingevent} - -\func{virtual void}{AddPendingEvent}{\param{const wxEvent\& }{event}} - -This function posts an event to be processed later. - -\wxheading{Parameters} - -\docparam{event}{Event to add to process queue.} - -\wxheading{Remarks} - -The difference between sending an event (using the -\helpref{ProcessEvent}{wxevthandlerprocessevent} method) and posting it is -that in the first case the event is processed before the function returns, -while in the second case, the function returns immediately and the event will -be processed sometime later (usually during the next event loop iteration). - -A copy of {\it event} is made by the function, so the original can be deleted -as soon as function returns (it is common that the original is created on the -stack). This requires that the \helpref{wxEvent::Clone}{wxeventclone} method -be implemented by {\it event} so that it can be duplicated and stored until -it gets processed. - -This is also the method to call for inter-thread communication---it will -post events safely between different threads which means that this method is -thread-safe by using critical sections where needed. In a multi-threaded -program, you often need to inform the main GUI thread about the status of -other working threads and such notification should be done using this method. - -This method automatically wakes up idle handling if the underlying window -system is currently idle and thus would not send any idle events. (Waking -up idle handling is done calling \helpref{::wxWakeUpIdle}{wxwakeupidle}.) - -\membersection{wxEvtHandler::Connect}\label{wxevthandlerconnect} - -\func{void}{Connect}{\param{int}{ id}, \param{int}{ lastId}, - \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -\func{void}{Connect}{\param{int}{ id}, - \param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -\func{void}{Connect}{\param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -Connects the given function dynamically with the event handler, id and event type. This -is an alternative to the use of static event tables. See the 'event' or the old 'dynamic' sample for usage. - -\wxheading{Parameters} - -\docparam{id}{The identifier (or first of the identifier range) to be -associated with the event handler function. For the version not taking this -argument, it defaults to \texttt{wxID\_ANY}.} - -\docparam{lastId}{The second part of the identifier range to be associated with the event handler function.} - -\docparam{eventType}{The event type to be associated with this event handler.} - -\docparam{function}{The event handler function. Note that this function should -be explicitly converted to the correct type which can be done using a macro -called \texttt{wxFooEventHandler} for the handler for any \texttt{wxFooEvent}.} - -\docparam{userData}{Data to be associated with the event table entry.} - -\docparam{eventSink}{Object whose member function should be called. If this is NULL, -\textit{this} will be used.} - -\wxheading{Example} - -\begin{verbatim} - frame->Connect( wxID_EXIT, - wxEVT_COMMAND_MENU_SELECTED, - wxCommandEventHandler(MyFrame::OnQuit) ); -\end{verbatim} - -\perlnote{In wxPerl this function takes 4 arguments: \texttt{id, -lastid, type, method}; if \texttt{method} is \texttt{undef}, the -handler is disconnected.} - -\membersection{wxEvtHandler::Disconnect}\label{wxevthandlerdisconnect} - -\func{bool}{Disconnect}{\param{wxEventType }{eventType = wxEVT\_NULL}, \param{wxObjectEventFunction}{ function = NULL}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -\func{bool}{Disconnect}{\param{int}{ id = \texttt{wxID\_ANY}}, - \param{wxEventType }{eventType = wxEVT\_NULL}, \param{wxObjectEventFunction}{ function = NULL}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -\func{bool}{Disconnect}{\param{int}{ id}, \param{int}{ lastId = \texttt{wxID\_ANY}}, - \param{wxEventType }{eventType = wxEVT\_NULL}, \param{wxObjectEventFunction}{ function = NULL}, - \param{wxObject*}{ userData = NULL}, \param{wxEvtHandler*}{ eventSink = NULL}} - -Disconnects the given function dynamically from the event handler, using the specified -parameters as search criteria and returning true if a matching function has been -found and removed. This method can only disconnect functions which have been added -using the \helpref{wxEvtHandler::Connect}{wxevthandlerconnect} method. There is no way -to disconnect functions connected using the (static) event tables. - -\wxheading{Parameters} - -\docparam{id}{The identifier (or first of the identifier range) associated with the event handler function.} - -\docparam{lastId}{The second part of the identifier range associated with the event handler function.} - -\docparam{eventType}{The event type associated with this event handler.} - -\docparam{function}{The event handler function.} - -\docparam{userData}{Data associated with the event table entry.} - -\docparam{eventSink}{Object whose member function should be called.} - -\perlnote{In wxPerl this function takes 3 arguments: \texttt{id, -lastid, type}.} - -\membersection{wxEvtHandler::GetClientData}\label{wxevthandlergetclientdata} - -\func{void* }{GetClientData}{\void} - -Gets user-supplied client data. - -\wxheading{Remarks} - -Normally, any extra data the programmer wishes to associate with the object -should be made available by deriving a new class with new data members. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetClientData}{wxevthandlersetclientdata} - -\membersection{wxEvtHandler::GetClientObject}\label{wxevthandlergetclientobject} - -\constfunc{wxClientData*}{GetClientObject}{\void} - -Get a pointer to the user-supplied client data object. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetClientObject}{wxevthandlersetclientobject}, -\helpref{wxClientData}{wxclientdata} - -\membersection{wxEvtHandler::GetEvtHandlerEnabled}\label{wxevthandlergetevthandlerenabled} - -\func{bool}{GetEvtHandlerEnabled}{\void} - -Returns true if the event handler is enabled, false otherwise. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled} - -\membersection{wxEvtHandler::GetNextHandler}\label{wxevthandlergetnexthandler} - -\func{wxEvtHandler*}{GetNextHandler}{\void} - -Gets the pointer to the next handler in the chain. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::GetPreviousHandler}\label{wxevthandlergetprevioushandler} - -\func{wxEvtHandler*}{GetPreviousHandler}{\void} - -Gets the pointer to the previous handler in the chain. - -\wxheading{See also} - -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp -\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::ProcessEvent}\label{wxevthandlerprocessevent} - -\func{virtual bool}{ProcessEvent}{\param{wxEvent\& }{event}} - -Processes an event, searching event tables and calling zero or more suitable event handler function(s). - -\wxheading{Parameters} - -\docparam{event}{Event to process.} - -\wxheading{Return value} - -true if a suitable event handler function was found and executed, and the function did not -call \helpref{wxEvent::Skip}{wxeventskip}. - -\wxheading{Remarks} - -Normally, your application would not call this function: it is called in the wxWidgets -implementation to dispatch incoming user interface events to the framework (and application). - -However, you might need to call it if implementing new functionality (such as a new control) where -you define new event types, as opposed to allowing the user to override virtual functions. - -An instance where you might actually override the {\bf ProcessEvent} function is where you want -to direct event processing to event handlers not normally noticed by wxWidgets. For example, -in the document/view architecture, documents and views are potential event handlers. -When an event reaches a frame, {\bf ProcessEvent} will need to be called on the associated -document and view in case event handler functions are associated with these objects. -The property classes library (wxProperty) also overrides {\bf ProcessEvent} for similar reasons. - -The normal order of event table searching is as follows: - -\begin{enumerate}\itemsep=0pt -\item If the object is disabled (via a call to \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled}) -the function skips to step (6). -\item If the object is a wxWindow, {\bf ProcessEvent} is recursively called on the window's\rtfsp -\helpref{wxValidator}{wxvalidator}. If this returns true, the function exits. -\item {\bf SearchEventTable} is called for this event handler. If this fails, the base -class table is tried, and so on until no more tables exist or an appropriate function was found, -in which case the function exits. -\item The search is applied down the entire chain of event handlers (usually the chain has a length -of one). If this succeeds, the function exits. -\item If the object is a wxWindow and the event is a wxCommandEvent, {\bf ProcessEvent} is -recursively applied to the parent window's event handler. If this returns true, the function exits. -\item Finally, {\bf ProcessEvent} is called on the wxApp object. -\end{enumerate} - -\wxheading{See also} - -\helpref{wxEvtHandler::SearchEventTable}{wxevthandlersearcheventtable} - - -\membersection{wxEvtHandler::SafelyProcessEvent}\label{wxevthandlersafelyprocessevent} - -\func{bool}{SafelyProcessEvent}{\param{wxEvent\& }{event}} - -Processes an event by calling \helpref{ProcessEvent}{wxevthandlerprocessevent} -and handles any exceptions that occur in the process. If an exception is -thrown in event handler, \helpref{wxApp::OnExceptionInMainLoop}{wxapponexceptioninmainloop} -is called. - -\wxheading{Parameters} - -\docparam{event}{Event to process.} - -\wxheading{Return value} - -\true if the event was processed, \false if no handler was found or an -exception was thrown. - -\wxheading{See also} - -\helpref{wxWindow::HandleWindowEvent}{wxwindowhandlewindowevent} - - -\membersection{wxEvtHandler::SearchEventTable}\label{wxevthandlersearcheventtable} - -\func{virtual bool}{SearchEventTable}{\param{wxEventTable\& }{table}, \param{wxEvent\& }{event}} - -Searches the event table, executing an event handler function if an appropriate one -is found. - -\wxheading{Parameters} - -\docparam{table}{Event table to be searched.} - -\docparam{event}{Event to be matched against an event table entry.} - -\wxheading{Return value} - -true if a suitable event handler function was found and executed, and the function did not -call \helpref{wxEvent::Skip}{wxeventskip}. - -\wxheading{Remarks} - -This function looks through the object's event table and tries to find an entry -that will match the event. - -An entry will match if: - -\begin{enumerate}\itemsep=0pt -\item The event type matches, and -\item the identifier or identifier range matches, or the event table entry's identifier is zero. -\end{enumerate} - -If a suitable function is called but calls \helpref{wxEvent::Skip}{wxeventskip}, this function will -fail, and searching will continue. - -\wxheading{See also} - -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent} - -\membersection{wxEvtHandler::SetClientData}\label{wxevthandlersetclientdata} - -\func{void}{SetClientData}{\param{void* }{data}} - -Sets user-supplied client data. - -\wxheading{Parameters} - -\docparam{data}{Data to be associated with the event handler.} - -\wxheading{Remarks} - -Normally, any extra data the programmer wishes to associate with -the object should be made available by deriving a new class -with new data members. You must not call this method and -\helpref{SetClientObject}{wxevthandlersetclientobject} on the -same class - only one of them. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetClientData}{wxevthandlergetclientdata} - -\membersection{wxEvtHandler::SetClientObject}\label{wxevthandlersetclientobject} - -\func{void}{SetClientObject}{\param{wxClientData* }{data}} - -Set the client data object. Any previous object will be deleted. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetClientObject}{wxevthandlergetclientobject}, -\helpref{wxClientData}{wxclientdata} - -\membersection{wxEvtHandler::SetEvtHandlerEnabled}\label{wxevthandlersetevthandlerenabled} - -\func{void}{SetEvtHandlerEnabled}{\param{bool }{enabled}} - -Enables or disables the event handler. - -\wxheading{Parameters} - -\docparam{enabled}{true if the event handler is to be enabled, false if it is to be disabled.} - -\wxheading{Remarks} - -You can use this function to avoid having to remove the event handler from the chain, for example -when implementing a dialog editor and changing from edit to test mode. - -\wxheading{See also} - -\helpref{wxEvtHandler::GetEvtHandlerEnabled}{wxevthandlergetevthandlerenabled} - -\membersection{wxEvtHandler::SetNextHandler}\label{wxevthandlersetnexthandler} - -\func{void}{SetNextHandler}{\param{wxEvtHandler* }{handler}} - -Sets the pointer to the next handler. - -\wxheading{Parameters} - -\docparam{handler}{Event handler to be set as the next handler.} - -\wxheading{See also} - -\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp -\helpref{wxEvtHandler::SetPreviousHandler}{wxevthandlersetprevioushandler},\rtfsp -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - -\membersection{wxEvtHandler::SetPreviousHandler}\label{wxevthandlersetprevioushandler} - -\func{void}{SetPreviousHandler}{\param{wxEvtHandler* }{handler}} - -Sets the pointer to the previous handler. - -\wxheading{Parameters} - -\docparam{handler}{Event handler to be set as the previous handler.} - -\wxheading{See also} - -\helpref{wxEvtHandler::GetPreviousHandler}{wxevthandlergetprevioushandler},\rtfsp -\helpref{wxEvtHandler::SetNextHandler}{wxevthandlersetnexthandler},\rtfsp -\helpref{wxEvtHandler::GetNextHandler}{wxevthandlergetnexthandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} - - diff --git a/docs/latex/wx/fdrepdlg.tex b/docs/latex/wx/fdrepdlg.tex deleted file mode 100644 index 2b6fe614da..0000000000 --- a/docs/latex/wx/fdrepdlg.tex +++ /dev/null @@ -1,257 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: fdrepdlg.tex -%% Purpose: wxFindReplaceDialog documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 01.08.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFindDialogEvent}}\label{wxfinddialogevent} - -wxFindReplaceDialog events - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a command event from -\helpref{wxFindReplaceDialog}{wxfindreplacedialog}, use these event handler -macros to direct input to member functions that take a wxFindDialogEvent -argument. The {\it id} parameter is the identifier of the find dialog and you -may usually specify $-1$ for it unless you plan to have several find dialogs -sending events to the same owner window simultaneously. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_FIND(id, func)}}{Find button was pressed in the dialog.} -\twocolitem{{\bf EVT\_FIND\_NEXT(id, func)}}{Find next button was pressed in the dialog.} -\twocolitem{{\bf EVT\_FIND\_REPLACE(id, func)}}{Replace button was pressed in the dialog.} -\twocolitem{{\bf EVT\_FIND\_REPLACE\_ALL(id, func)}}{Replace all button was pressed in the dialog.} -\twocolitem{{\bf EVT\_FIND\_CLOSE(id, func)}}{The dialog is being destroyed, -any pointers to it cannot be used any longer.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFindDialogEvent::wxFindDialogEvent}\label{wxfinddialogeventwxfinddialogevent} - -\func{}{wxFindDialogEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{id = 0}} - -Constuctor used by wxWidgets only. - -\membersection{wxFindDialogEvent::GetFlags}\label{wxfinddialogeventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Get the currently selected flags: this is the combination of {\tt wxFR\_DOWN}, -{\tt wxFR\_WHOLEWORD} and {\tt wxFR\_MATCHCASE} flags. - -\membersection{wxFindDialogEvent::GetFindString}\label{wxfinddialogeventgetfindstring} - -\constfunc{wxString}{GetFindString}{\void} - -Return the string to find (never empty). - -\membersection{wxFindDialogEvent::GetReplaceString}\label{wxfinddialogeventgetreplacestring} - -\constfunc{const wxString\&}{GetReplaceString}{\void} - -Return the string to replace the search string with (only for replace and -replace all events). - -\membersection{wxFindDialogEvent::GetDialog}\label{wxfinddialogeventgetdialog} - -\constfunc{wxFindReplaceDialog*}{GetDialog}{\void} - -Return the pointer to the dialog which generated this event. - -\section{\class{wxFindReplaceData}}\label{wxfindreplacedata} - -wxFindReplaceData holds the data for -\helpref{wxFindReplaceDialog}{wxfindreplacedialog}. It is used to initialize -the dialog with the default values and will keep the last values from the -dialog when it is closed. It is also updated each time a -\helpref{wxFindDialogEvent}{wxfinddialogevent} is generated so instead of -using the wxFindDialogEvent methods you can also directly query this object. - -Note that all {\tt SetXXX()} methods may only be called before showing the -dialog and calling them has no effect later. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Data structures} - -Flags used by -\helpref{wxFindReplaceData::GetFlags()}{wxfindreplacedatagetflags} and -\helpref{wxFindDialogEvent::GetFlags()}{wxfinddialogeventgetflags}: - -\begin{verbatim} -enum wxFindReplaceFlags -{ - // downward search/replace selected (otherwise - upwards) - wxFR_DOWN = 1, - - // whole word search/replace selected - wxFR_WHOLEWORD = 2, - - // case sensitive search/replace selected (otherwise - case insensitive) - wxFR_MATCHCASE = 4 -} -\end{verbatim} - -These flags can be specified in -\helpref{wxFindReplaceDialog ctor}{wxfindreplacedialogctor} or -\helpref{Create()}{wxfindreplacedialogcreate}: - -\begin{verbatim} -enum wxFindReplaceDialogStyles -{ - // replace dialog (otherwise find dialog) - wxFR_REPLACEDIALOG = 1, - - // don't allow changing the search direction - wxFR_NOUPDOWN = 2, - - // don't allow case sensitive searching - wxFR_NOMATCHCASE = 4, - - // don't allow whole word searching - wxFR_NOWHOLEWORD = 8 -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFindReplaceData::wxFindReplaceData}\label{wxfindreplacedatactor} - -\func{}{wxFindReplaceData}{\param{wxUint32 }{flags = 0}} - -Constuctor initializes the flags to default value ($0$). - -\membersection{wxFindReplaceData::GetFindString}\label{wxfindreplacedatagetfindstring} - -\func{const wxString\&}{GetFindString}{\void} - -Get the string to find. - -\membersection{wxFindReplaceData::GetReplaceString}\label{wxfindreplacedatagetreplacestring} - -\func{const wxString\&}{GetReplaceString}{\void} - -Get the replacement string. - -\membersection{wxFindReplaceData::GetFlags}\label{wxfindreplacedatagetflags} - -\constfunc{int}{GetFlags}{\void} - -Get the combination of {\tt wxFindReplaceFlags} values. - -\membersection{wxFindReplaceData::SetFlags}\label{wxfindreplacedatasetflags} - -\func{void}{SetFlags}{\param{wxUint32 }{flags}} - -Set the flags to use to initialize the controls of the dialog. - -\membersection{wxFindReplaceData::SetFindString}\label{wxfindreplacedatasetfindstring} - -\func{void}{SetFindString}{\param{const wxString\& }{str}} - -Set the string to find (used as initial value by the dialog). - -\membersection{wxFindReplaceData::SetReplaceString}\label{wxfindreplacedatasetreplacestring} - -\func{void}{SetReplaceString}{\param{const wxString\& }{str}} - -Set the replacement string (used as initial value by the dialog). - - - - -\section{\class{wxFindReplaceDialog}}\label{wxfindreplacedialog} - -wxFindReplaceDialog is a standard modeless dialog which is used to allow the -user to search for some text (and possibly replace it with something else). -The actual searching is supposed to be done in the owner window which is the -parent of this dialog. Note that it means that unlike for the other standard -dialogs this one {\bf must} have a parent window. Also note that there is no -way to use this dialog in a modal way; it is always, by design and -implementation, modeless. - -Please see the dialogs sample for an example of using it. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFindReplaceDialog::wxFindReplaceDialog}\label{wxfindreplacedialogctor} - -\func{}{wxFindReplaceDialog}{\void} - -\func{}{wxFindReplaceDialog}{\param{wxWindow * }{parent}, \param{wxFindReplaceData* }{data}, \param{const wxString\& }{title}, \param{int }{style = 0}} - -After using default constructor \helpref{Create()}{wxfindreplacedialogcreate} -must be called. - -The {\it parent} and {\it data} parameters must be non-{\tt NULL}. - -\membersection{wxFindReplaceDialog::\destruct{wxFindReplaceDialog}}\label{wxfindreplacedialogdtor} - -\func{}{\destruct{wxFindReplaceDialog}}{\void} - -Destructor. - -\membersection{wxFindReplaceDialog::Create}\label{wxfindreplacedialogcreate} - -\func{bool}{Create}{\param{wxWindow * }{parent}, \param{wxFindReplaceData* }{data}, \param{const wxString\& }{title}, \param{int }{style = 0}} - -Creates the dialog; use \helpref{Show}{wxwindowshow} to show it on screen. - -The {\it parent} and {\it data} parameters must be non-{\tt NULL}. -\membersection{wxFindReplaceDialog::GetData}\label{wxfindreplacedialoggetdata} - -\constfunc{const wxFindReplaceData*}{GetData}{\void} - -Get the \helpref{wxFindReplaceData}{wxfindreplacedata} object used by this -dialog. - diff --git a/docs/latex/wx/ffile.tex b/docs/latex/wx/ffile.tex deleted file mode 100644 index 611569f1f9..0000000000 --- a/docs/latex/wx/ffile.tex +++ /dev/null @@ -1,291 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: ffile.tex -%% Purpose: wxFFile documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.01.02 (extracted from file.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFFile}}\label{wxffile} - -wxFFile implements buffered file I/O. This is a very small class designed to -minimize the overhead of using it - in fact, there is hardly any overhead at -all, but using it brings you automatic error checking and hides differences -between platforms and compilers. It wraps inside it a {\tt FILE *} handle used -by standard C IO library (also known as {\tt stdio}). - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxFromStart}}{Count offset from the start of the file} -\twocolitem{{\bf wxFromCurrent}}{Count offset from the current position of the file pointer} -\twocolitem{{\bf wxFromEnd}}{Count offset from the end of the file (backwards)} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFFile::wxFFile}\label{wxffilector} - -\func{}{wxFFile}{\void} - -Default constructor. - -\func{}{wxFFile}{\param{const wxString\&}{ filename}, \param{const wxString\&}{ mode = "r"}} - -Opens a file with the given mode. As there is no way to return whether the -operation was successful or not from the constructor you should test the -return value of \helpref{IsOpened}{wxffileisopened} to check that it didn't -fail. - -\func{}{wxFFile}{\param{FILE*}{ fp}} - -Opens a file with the given file pointer, which has already been opened. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file using standard C strings. -Note that you should use {\tt "b"} flag if you use binary files under Windows -or the results might be unexpected due to automatic newline conversion done -for the text files.} - -\docparam{fp}{An existing file descriptor, such as stderr.} - - -\membersection{wxFFile::\destruct{wxFFile}}\label{wxffiledtor} - -\func{}{\destruct{wxFFile}}{\void} - -Destructor will close the file. - -NB: it is not virtual so you should {\it not} derive from wxFFile! - - -\membersection{wxFFile::Attach}\label{wxffileattach} - -\func{void}{Attach}{\param{FILE*}{ fp}} - -Attaches an existing file pointer to the wxFFile object. - -The descriptor should be already opened and it will be closed by wxFFile -object. - - -\membersection{wxFFile::Close}\label{wxffileclose} - -\func{bool}{Close}{\void} - -Closes the file and returns \true on success. - - -\membersection{wxFFile::Detach}\label{wxffiledetach} - -\func{void}{Detach}{\void} - -Get back a file pointer from wxFFile object -- the caller is responsible for closing the file if this -descriptor is opened. \helpref{IsOpened()}{wxffileisopened} will return \false after call to Detach(). - - -\membersection{wxFFile::fp}\label{wxffilefp} - -\constfunc{FILE *}{fp}{\void} - -Returns the file pointer associated with the file. - - -\membersection{wxFFile::Eof}\label{wxffileeof} - -\constfunc{bool}{Eof}{\void} - -Returns \true if the an attempt has been made to read {\it past} -the end of the file. - -Note that the behaviour of the file descriptor based class -\helpref{wxFile}{wxfile} is different as \helpref{wxFile::Eof}{wxfileeof} -will return \true here as soon as the last byte of the file has been -read. - -Also note that this method may only be called for opened files and may crash if -the file is not opened. - -\wxheading{See also} - -\helpref{IsOpened}{wxffileisopened} - - -\membersection{wxFFile::Error}\label{wxffileerror} - -Returns \true if an error has occurred on this file, similar to the standard -\texttt{ferror()} function. - -Please note that this method may only be called for opened files and may crash -if the file is not opened. - -\wxheading{See also} - -\helpref{IsOpened}{wxffileisopened} - - -\membersection{wxFFile::Flush}\label{wxffileflush} - -\func{bool}{Flush}{\void} - -Flushes the file and returns \true on success. - - -\membersection{wxFFile::GetKind}\label{wxffilegetfilekind} - -\constfunc{wxFileKind}{GetKind}{\void} - -Returns the type of the file. Possible return values are: - -\begin{verbatim} -enum wxFileKind -{ - wxFILE_KIND_UNKNOWN, - wxFILE_KIND_DISK, // a file supporting seeking to arbitrary offsets - wxFILE_KIND_TERMINAL, // a tty - wxFILE_KIND_PIPE // a pipe -}; - -\end{verbatim} - - -\membersection{wxFFile::IsOpened}\label{wxffileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns \true if the file is opened. Most of the methods of this class may only -be used for an opened file. - - -\membersection{wxFFile::Length}\label{wxffilelength} - -\constfunc{wxFileOffset}{Length}{\void} - -Returns the length of the file. - - -\membersection{wxFFile::Open}\label{wxffileopen} - -\func{bool}{Open}{\param{const wxString\&}{ filename}, \param{const wxString\&}{ mode = "r"}} - -Opens the file, returning \true if successful. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file.} - - -\membersection{wxFFile::Read}\label{wxffileread} - -\func{size\_t}{Read}{\param{void*}{ buffer}, \param{size\_t}{ count}} - -Reads the specified number of bytes into a buffer, returning the actual number read. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer to receive the data.} - -\docparam{count}{The number of bytes to read.} - -\wxheading{Return value} - -The number of bytes read. - - -\membersection{wxFFile::ReadAll}\label{wxffilereadall} - -\func{bool}{ReadAll}{\param{wxString *}{ str}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Reads the entire contents of the file into a string. - -\wxheading{Parameters} - -\docparam{str}{String to read data into.} - -\docparam{conv}{Conversion object to use in Unicode build; by default supposes -that file contents is encoded in UTF-8.} - -\wxheading{Return value} - -\true if file was read successfully, \false otherwise. - - -\membersection{wxFFile::Seek}\label{wxffileseek} - -\func{bool}{Seek}{\param{wxFileOffset }{ofs}, \param{wxSeekMode }{mode = wxFromStart}} - -Seeks to the specified position and returns \true on success. - -\wxheading{Parameters} - -\docparam{ofs}{Offset to seek to.} - -\docparam{mode}{One of {\bf wxFromStart}, {\bf wxFromEnd}, {\bf wxFromCurrent}.} - - -\membersection{wxFFile::SeekEnd}\label{wxffileseekend} - -\func{bool}{SeekEnd}{\param{wxFileOffset }{ofs = 0}} - -Moves the file pointer to the specified number of bytes before the end of the file -and returns \true on success. - -\wxheading{Parameters} - -\docparam{ofs}{Number of bytes before the end of the file.} - - -\membersection{wxFFile::Tell}\label{wxffiletell} - -\constfunc{wxFileOffset}{Tell}{\void} - -Returns the current position. - - -\membersection{wxFFile::Write}\label{wxffilewrite} - -\func{size\_t}{Write}{\param{const void*}{ buffer}, \param{size\_t}{ count}} - -Writes the specified number of bytes from a buffer. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer containing the data.} - -\docparam{count}{The number of bytes to write.} - -\wxheading{Return value} - -Number of bytes written. - - -\membersection{wxFFile::Write}\label{wxffilewrites} - -\func{bool}{Write}{\param{const wxString\& }{s}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Writes the contents of the string to the file, returns \true on success. - -The second argument is only meaningful in Unicode build of wxWidgets when -{\it conv} is used to convert {\it s} to multibyte representation. - - diff --git a/docs/latex/wx/ffilestr.tex b/docs/latex/wx/ffilestr.tex deleted file mode 100644 index 7dc8029ce2..0000000000 --- a/docs/latex/wx/ffilestr.tex +++ /dev/null @@ -1,157 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFFileInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFFileInputStream}}\label{wxffileinputstream} - -This class represents data read in from a file. There are actually -two such groups of classes: this one is based on \helpref{wxFFile}{wxffile} -whereas \helpref{wxFileInputStream}{wxfileinputstream} is based in -the \helpref{wxFile}{wxfile} class. - -Note that \helpref{SeekI()}{wxinputstreamseeki} -can seek beyond the end of the stream (file) and will thus not return -{\it wxInvalidOffset} for that. - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxBufferedInputStream}{wxbufferedinputstream}, \helpref{wxFFileOutputStream}{wxffileoutputstream}, \helpref{wxFileOutputStream}{wxfileoutputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFFileInputStream::wxFFileInputStream}\label{wxffileinputstreamctor} - -\func{}{wxFFileInputStream}{\param{const wxString\&}{ filename}, \param{const wxString\&}{ mode = "rb"}} - -Opens the specified file using its {\it filename} name using the specified mode. - -\func{}{wxFFileInputStream}{\param{wxFFile\&}{ file}} - -Initializes a file stream in read-only mode using the file I/O object {\it file}. - -\func{}{wxFFileInputStream}{\param{FILE *}{ fp}} - -Initializes a file stream in read-only mode using the specified file pointer {\it fp}. - -\membersection{wxFFileInputStream::\destruct{wxFFileInputStream}}\label{wxffileinputstreamdtor} - -\func{}{\destruct{wxFFileInputStream}}{\void} - -Destructor. - -\membersection{wxFFileInputStream::IsOk}\label{wxffileinputstreamisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the stream is initialized and ready. - -% ----------------------------------------------------------------------------- -% wxFFileOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFFileOutputStream}}\label{wxffileoutputstream} - -This class represents data written to a file. There are actually -two such groups of classes: this one is based on \helpref{wxFFile}{wxffile} -whereas \helpref{wxFileInputStream}{wxffileinputstream} is based in -the \helpref{wxFile}{wxfile} class. - -Note that \helpref{SeekO()}{wxoutputstreamseeko} -can seek beyond the end of the stream (file) and will thus not return -{\it wxInvalidOffset} for that. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxBufferedOutputStream}{wxbufferedoutputstream}, \helpref{wxFFileInputStream}{wxffileinputstream}, \helpref{wxFileInputStream}{wxfileinputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFFileOutputStream::wxFFileOutputStream}\label{wxffileoutputstreamctor} - -\func{}{wxFFileOutputStream}{\param{const wxString\&}{ filename}, \param{const wxString\&}{ mode="w+b"}} - -Opens the file with the given {\it filename} name in the specified mode. - -\func{}{wxFFileOutputStream}{\param{wxFFile\&}{ file}} - -Initializes a file stream in write-only mode using the file I/O object {\it file}. - -\func{}{wxFFileOutputStream}{\param{FILE *}{ fp}} - -Initializes a file stream in write-only mode using the file descriptor {\it fp}. - -\membersection{wxFFileOutputStream::\destruct{wxFFileOutputStream}}\label{wxffileoutputstreamdtor} - -\func{}{\destruct{wxFFileOutputStream}}{\void} - -Destructor. - -\membersection{wxFFileOutputStream::IsOk}\label{wxffileoutputstreamisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the stream is initialized and ready. - -% ----------------------------------------------------------------------------- -% wxFFileStream -% ----------------------------------------------------------------------------- -\section{\class{wxFFileStream}}\label{wxffilestream} - -\wxheading{Derived from} - -\helpref{wxFFileOutputStream}{wxffileoutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFFileStream::wxFFileStream}\label{wxffilestreamctor} - -\func{}{wxFFileStream}{\param{const wxString\&}{ iofileName}} - -Initializes a new file stream in read-write mode using the specified -{\it iofilename} name. - - diff --git a/docs/latex/wx/fildatob.tex b/docs/latex/wx/fildatob.tex deleted file mode 100644 index 94866cd560..0000000000 --- a/docs/latex/wx/fildatob.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{\class{wxFileDataObject}}\label{wxfiledataobject} - -wxFileDataObject is a specialization of \helpref{wxDataObject}{wxdataobject} -for file names. The program works with it just as if it were a list of absolute file -names, but internally it uses the same format as -Explorer and other compatible programs under Windows or GNOME/KDE filemanager -under Unix which makes it possible to receive files from them using this -class. - -{\bf Warning:} Under all non-Windows platforms this class is currently -"input-only", i.e. you can receive the files from another application, but -copying (or dragging) file(s) from a wxWidgets application is not currently -supported. PS: GTK2 should work as well. - -\wxheading{Virtual functions to override} - -None. - -\wxheading{Derived from} - -\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDataObject}{wxdataobject}, -\helpref{wxDataObjectSimple}{wxdataobjectsimple}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject}, -\helpref{wxDataObject}{wxdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDataObject}\label{wxfiledataobjectwxfiledataobject} - -\func{}{wxFileDataObject}{\void} - -Constructor. - -\membersection{wxFileDataObject::AddFile}\label{wxfiledataobjectaddfile} - -\func{virtual void}{AddFile}{\param{const wxString\& }{file}} - -{\bf MSW only:} adds a file to the file list represented by this data object. - -\membersection{wxFileDataObject::GetFilenames}\label{wxfiledataobjectgetfilenames} - -\constfunc{const wxArrayString\& }{GetFilenames}{\void} - -Returns the \helpref{array}{wxarraystring} of file names. - diff --git a/docs/latex/wx/fildrptg.tex b/docs/latex/wx/fildrptg.tex deleted file mode 100644 index 3d866c1947..0000000000 --- a/docs/latex/wx/fildrptg.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{\class{wxFileDropTarget}}\label{wxfiledroptarget} - -This is a \helpref{drop target}{wxdroptarget} which accepts files (dragged -from File Manager or Explorer). - -\wxheading{Derived from} - -\helpref{wxDropTarget}{wxdroptarget} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxTextDropTarget}{wxtextdroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDropTarget::wxFileDropTarget}\label{wxfiledroptargetwxfiledroptarget} - -\func{}{wxFileDropTarget}{\void} - -Constructor. - -\membersection{wxFileDropTarget::OnDrop}\label{wxfiledroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}} - -See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented -appropriately for files, and calls \helpref{wxFileDropTarget::OnDropFiles}{wxfiledroptargetondropfiles}. - -\membersection{wxFileDropTarget::OnDropFiles}\label{wxfiledroptargetondropfiles} - -\func{virtual bool}{OnDropFiles}{\param{wxCoord }{x}, \param{wxCoord }{y}, \param{const wxArrayString\& }{filenames}} - -Override this function to receive dropped files. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{filenames}{An array of filenames.} - -\wxheading{Return value} - -Return true to accept the data, false to veto the operation. - -% VZ: this clarification is probably not needed any longer? -%\perlnote{In wxPerl there is just an array reference in place of {\tt nFiles} -%and {\tt files}.} - diff --git a/docs/latex/wx/file.tex b/docs/latex/wx/file.tex deleted file mode 100644 index 316ecf7efc..0000000000 --- a/docs/latex/wx/file.tex +++ /dev/null @@ -1,352 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: file.tex -%% Purpose: wxFile documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.01.02 (extracted from file.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFile}}\label{wxfile} - -A wxFile performs raw file I/O. This is a very small class designed to -minimize the overhead of using it - in fact, there is hardly any overhead at -all, but using it brings you automatic error checking and hides differences -between platforms and compilers. wxFile also automatically closes the file in -its destructor making it unnecessary to worry about forgetting to do it. -wxFile is a wrapper around {\tt file descriptor.} - see also -\helpref{wxFFile}{wxffile} for a wrapper around {\tt FILE} structure. - -{\tt wxFileOffset} is used by the wxFile functions which require offsets as -parameter or return them. If the platform supports it, wxFileOffset is a typedef -for a native 64 bit integer, otherwise a 32 bit integer is used for wxFileOffset. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Constants} - -wx/file.h defines the following constants: - -\begin{verbatim} -#define wxS_IRUSR 00400 -#define wxS_IWUSR 00200 -#define wxS_IXUSR 00100 - -#define wxS_IRGRP 00040 -#define wxS_IWGRP 00020 -#define wxS_IXGRP 00010 - -#define wxS_IROTH 00004 -#define wxS_IWOTH 00002 -#define wxS_IXOTH 00001 - -// default mode for the new files: corresponds to umask 022 -#define wxS_DEFAULT (wxS_IRUSR | wxS_IWUSR | wxS_IRGRP | wxS_IWGRP | wxS_IROTH | wxS_IWOTH) -\end{verbatim} - -These constants define the file access rights and are used with -\helpref{wxFile::Create}{wxfilecreate} and \helpref{wxFile::Open}{wxfileopen}. - -The {\it OpenMode} enumeration defines the different modes for opening a file, -it is defined inside wxFile class so its members should be specified with {\it wxFile::} scope -resolution prefix. It is also used with \helpref{wxFile::Access}{wxfileaccess} function. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxFile::read}}{Open file for reading or test if it can be opened for reading with Access()} -\twocolitem{{\bf wxFile::write}}{Open file for writing deleting the contents of the file if it already exists -or test if it can be opened for writing with Access()} -\twocolitem{{\bf wxFile::read\_write}}{Open file for reading and writing; can not be used with Access()} -\twocolitem{{\bf wxFile::write\_append}}{Open file for appending: the file is opened for writing, but the old -contents of the file is not erased and the file pointer is initially placed at the end of the file; -can not be used with Access(). This is the same as {\bf wxFile::write} if the -file doesn't exist.} -\twocolitem{{\bf wxFile::write\_excl}}{Open the file securely for writing (Uses O\_EXCL | O\_CREAT). -Will fail if the file already exists, else create and open it atomically. Useful for opening temporary files without being vulnerable to race exploits.} -\end{twocollist} - -Other constants defined elsewhere but used by wxFile functions are wxInvalidOffset which represents an -invalid value of type {\it wxFileOffset} and is returned by functions returning {\it wxFileOffset} on error and the seek -mode constants used with \helpref{Seek()}{wxfileseek}: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxFromStart}}{Count offset from the start of the file} -\twocolitem{{\bf wxFromCurrent}}{Count offset from the current position of the file pointer} -\twocolitem{{\bf wxFromEnd}}{Count offset from the end of the file (backwards)} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFile::wxFile}\label{wxfilector} - -\func{}{wxFile}{\void} - -Default constructor. - -\func{}{wxFile}{\param{const wxString\&}{ filename}, \param{wxFile::OpenMode}{ mode = wxFile::read}} - -Opens a file with the given mode. As there is no way to return whether the -operation was successful or not from the constructor you should test the -return value of \helpref{IsOpened}{wxfileisopened} to check that it didn't -fail. - -\func{}{wxFile}{\param{int}{ fd}} - -Associates the file with the given file descriptor, which has already been opened. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file. May be one of {\bf wxFile::read}, {\bf wxFile::write} and {\bf wxFile::read\_write}.} - -\docparam{fd}{An existing file descriptor (see \helpref{Attach()}{wxfileattach} for the list of predefined descriptors)} - - -\membersection{wxFile::\destruct{wxFile}}\label{wxfiledtor} - -\func{}{\destruct{wxFile}}{\void} - -Destructor will close the file. - -{\bf NB:} it is not virtual so you should not use wxFile polymorphically. - - -\membersection{wxFile::Access}\label{wxfileaccess} - -\func{static bool}{Access}{\param{const wxString\&}{ name}, \param{OpenMode}{ mode}} - -This function verifies if we may access the given file in specified mode. Only -values of wxFile::read or wxFile::write really make sense here. - - -\membersection{wxFile::Attach}\label{wxfileattach} - -\func{void}{Attach}{\param{int}{ fd}} - -Attaches an existing file descriptor to the wxFile object. Example of predefined -file descriptors are 0, 1 and 2 which correspond to stdin, stdout and stderr (and -have symbolic names of {\bf wxFile::fd\_stdin}, {\bf wxFile::fd\_stdout} and {\bf wxFile::fd\_stderr}). - -The descriptor should be already opened and it will be closed by wxFile -object. - - -\membersection{wxFile::Close}\label{wxfileclose} - -\func{void}{Close}{\void} - -Closes the file. - - -\membersection{wxFile::Create}\label{wxfilecreate} - -\func{bool}{Create}{\param{const wxString\&}{ filename}, \param{bool}{ overwrite = false}, \param{int }{access = wxS\_DEFAULT}} - -Creates a file for writing. If the file already exists, setting {\bf overwrite} to true -will ensure it is overwritten. - - -\membersection{wxFile::Detach}\label{wxfiledetach} - -\func{void}{Detach}{\void} - -Get back a file descriptor from wxFile object - the caller is responsible for closing the file if this -descriptor is opened. \helpref{IsOpened()}{wxfileisopened} will return false after call to Detach(). - - -\membersection{wxFile::fd}\label{wxfilefd} - -\constfunc{int}{fd}{\void} - -Returns the file descriptor associated with the file. - - -\membersection{wxFile::Eof}\label{wxfileeof} - -\constfunc{bool}{Eof}{\void} - -Returns true if the end of the file has been reached. - -Note that the behaviour of the file pointer based class -\helpref{wxFFile}{wxffile} is different as \helpref{wxFFile::Eof}{wxffileeof} -will return true here only if an attempt has been made to read -{\it past} the last byte of the file, while wxFile::Eof() will return true -even before such attempt is made if the file pointer is at the last position -in the file. - -Note also that this function doesn't work on unseekable file descriptors -(examples include pipes, terminals and sockets under Unix) and an attempt to -use it will result in an error message in such case. So, to read the entire -file into memory, you should write a loop which uses -\helpref{Read}{wxfileread} repeatedly and tests its return condition instead -of using Eof() as this will not work for special files under Unix. - - -\membersection{wxFile::Exists}\label{wxfileexists} - -\func{static bool}{Exists}{\param{const wxString\&}{ filename}} - -Returns true if the given name specifies an existing regular file (not a -directory or a link) - - -\membersection{wxFile::Flush}\label{wxfileflush} - -\func{bool}{Flush}{\void} - -Flushes the file descriptor. - -Note that wxFile::Flush is not implemented on some Windows compilers -due to a missing fsync function, which reduces the usefulness of this function -(it can still be called but it will do nothing on unsupported compilers). - - -\membersection{wxFile::GetKind}\label{wxfilegetfilekind} - -\constfunc{wxFileKind}{GetKind}{\void} - -Returns the type of the file. Possible return values are: - -\begin{verbatim} -enum wxFileKind -{ - wxFILE_KIND_UNKNOWN, - wxFILE_KIND_DISK, // a file supporting seeking to arbitrary offsets - wxFILE_KIND_TERMINAL, // a tty - wxFILE_KIND_PIPE // a pipe -}; - -\end{verbatim} - - -\membersection{wxFile::IsOpened}\label{wxfileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns true if the file has been opened. - - -\membersection{wxFile::Length}\label{wxfilelength} - -\constfunc{wxFileOffset}{Length}{\void} - -Returns the length of the file. - - -\membersection{wxFile::Open}\label{wxfileopen} - -\func{bool}{Open}{\param{const wxString\&}{ filename}, \param{wxFile::OpenMode}{ mode = wxFile::read}} - -Opens the file, returning true if successful. - -\wxheading{Parameters} - -\docparam{filename}{The filename.} - -\docparam{mode}{The mode in which to open the file. May be one of {\bf wxFile::read}, {\bf wxFile::write} and {\bf wxFile::read\_write}.} - - -\membersection{wxFile::Read}\label{wxfileread} - -\func{size\_t}{Read}{\param{void*}{ buffer}, \param{size\_t}{ count}} - -Reads the specified number of bytes into a buffer, returning the actual number read. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer to receive the data.} - -\docparam{count}{The number of bytes to read.} - -\wxheading{Return value} - -The number of bytes read, or the symbol {\bf wxInvalidOffset} (-1) if there was an error. - - -\membersection{wxFile::Seek}\label{wxfileseek} - -\func{wxFileOffset}{Seek}{\param{wxFileOffset }{ofs}, \param{wxSeekMode }{mode = wxFromStart}} - -Seeks to the specified position. - -\wxheading{Parameters} - -\docparam{ofs}{Offset to seek to.} - -\docparam{mode}{One of {\bf wxFromStart}, {\bf wxFromEnd}, {\bf wxFromCurrent}.} - -\wxheading{Return value} - -The actual offset position achieved, or wxInvalidOffset on failure. - - -\membersection{wxFile::SeekEnd}\label{wxfileseekend} - -\func{wxFileOffset}{SeekEnd}{\param{wxFileOffset }{ofs = 0}} - -Moves the file pointer to the specified number of bytes relative to the end of -the file. For example, \texttt{SeekEnd($-5$)} would position the pointer $5$ -bytes before the end. - -\wxheading{Parameters} - -\docparam{ofs}{Number of bytes before the end of the file.} - -\wxheading{Return value} - -The actual offset position achieved, or wxInvalidOffset on failure. - - -\membersection{wxFile::Tell}\label{wxfiletell} - -\constfunc{wxFileOffset}{Tell}{\void} - -Returns the current position or wxInvalidOffset if file is not opened or if another -error occurred. - - -\membersection{wxFile::Write}\label{wxfilewrite} - -\func{size\_t}{Write}{\param{const void*}{ buffer}, \param{size\_t}{ count}} - -Writes the specified number of bytes from a buffer. - -\wxheading{Parameters} - -\docparam{buffer}{A buffer containing the data.} - -\docparam{count}{The number of bytes to write.} - -\wxheading{Return value} - -the number of bytes actually written - - -\membersection{wxFile::Write}\label{wxfilewrites} - -\func{bool}{Write}{\param{const wxString\& }{s}, \param{const wxMBConv\&}{ conv = wxConvUTF8}} - -Writes the contents of the string to the file, returns true on success. - -The second argument is only meaningful in Unicode build of wxWidgets when -{\it conv} is used to convert {\it s} to multibyte representation. - -Note that this method only works with {\tt NUL}-terminated strings, if you want -to write data with embedded {\tt NUL}s to the file you should use the other -\helpref{Write() overload}{wxfilewrite}. - diff --git a/docs/latex/wx/fileconf.tex b/docs/latex/wx/fileconf.tex deleted file mode 100644 index 9351ab41c7..0000000000 --- a/docs/latex/wx/fileconf.tex +++ /dev/null @@ -1,112 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: fileconf.tex -%% Purpose: wxFileConfig documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2004-10-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFileConfig}}\label{wxfileconfig} - -wxFileConfig implements \helpref{wxConfigBase}{wxconfigbase} interface for -storing and retrieving configuration information using plain text files. The -files have a simple format reminiscent of Windows INI files with lines of the -form \texttt{key = value} defining the keys and lines of special form -\texttt{$[$group$]$} indicating the start of each group. - -This class is used by default for wxConfig on Unix platforms but may also be -used explicitly if you want to use files and not the registry even under -Windows. - -\wxheading{Derived from} - -\helpref{wxConfigBase}{wxconfigbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\helponly{\insertatlevel{2}{\wxheading{Members}}} - -\membersection{wxFileConfig::wxFileConfig}\label{wxfileconfigctor} - -\func{}{wxFileConfig}{\param{wxInputStream\& }{is}, \param{const wxMBConv\& }{conv = wxConvAuto()}} - -Read the config data from the specified stream instead of the associated file, -as usual. - -\wxheading{See also} - -\helpref{Save}{wxfileconfigsave} - - -\membersection{wxFileName::GetGlobalFile}\label{wxfilenamegetglobalfile} - -\func{static wxFileName}{GetGlobalFile}{\param{const wxString\& }{basename}} - -Return the full path to the file which would be used by wxFileConfig as global, -system-wide, file if it were constructed with \arg{basename} as ``global -filename'' parameter in the constructor. Notice that this function cannot be -used if \arg{basename} is already a full path name. - - -\membersection{wxFileName::GetLocalFile}\label{wxfilenamegetlocalfile} - -\func{static wxFileName}{GetLocalFile}{\param{const wxString\& }{basename}, \param{int }{style = $0$}} - -Return the full path to the file which would be used by wxFileConfig as local, -user-specific, file if it were constructed with \arg{basename} as ``local -filename'' parameter in the constructor. - -\arg{style} has the same meaning as in \helpref{constructor}{wxconfigbasector} -and can contain any combination of styles but only wxCONFIG\_USE\_SUBDIR bit is -examined by this function. - -Notice that this function cannot be used if \arg{basename} is already a full -path name. - - -\membersection{wxFileConfig::Save}\label{wxfileconfigsave} - -\func{bool}{Save}{\param{wxOutputStream\& }{os}, \param{const wxMBConv\& }{conv = wxConvAuto()}} - -Saves all config data to the given stream, returns \true if data was saved -successfully or \false on error. - -Note the interaction of this function with the internal ``dirty flag'': the -data is saved unconditionally, i.e. even if the object is not dirty. However -after saving it successfully, the dirty flag is reset so no changes will be -written back to the file this object is associated with until you change its -contents again. - -\wxheading{See also} - -\helpref{Flush}{wxconfigbaseflush} - - -\membersection{wxFileConfig::SetUmask}\label{wxfileconfigsetumask} - -\func{void}{SetUmask}{\param{int }{mode}} - -Allows to set the mode to be used for the config file creation. For example, to -create a config file which is not readable by other users (useful if it stores -some sensitive information, such as passwords), you could use -{\tt SetUmask(0077)}. - -This function doesn't do anything on non-Unix platforms. - -\wxheading{See also} - -\helpref{wxCHANGE\_UMASK}{wxchangeumask} - - - diff --git a/docs/latex/wx/filectrl.tex b/docs/latex/wx/filectrl.tex deleted file mode 100644 index 0a392619f2..0000000000 --- a/docs/latex/wx/filectrl.tex +++ /dev/null @@ -1,223 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: filectrl.tex -%% Purpose: wxFilerCtrl documentation -%% Author: Diaa M. Sami -%% Created: 2007-07-25 -%% RCS-ID: $Id: $ -%% Copyright: (c) 2007 Diaa M. Sami -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFileCtrl}}\label{wxfilectrl} - -This control allows the user to select a file. two implemetations exist, one -for Gtk and another generic one for anything other than Gtk. -It is only available if \texttt{wxUSE\_FILECTRL} is set to $1$. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxFC\_DEFAULT\_STYLE}}{The default style: wxFC\_OPEN} -\twocolitem{\windowstyle{wxFC\_OPEN}}{Creates an file control suitable for opening files. -Cannot be combined with wxFC\_SAVE.} -\twocolitem{\windowstyle{wxFC\_SAVE}}{Creates an file control suitable for saving files. Cannot be combined with wxFC\_OPEN.} -\twocolitem{\windowstyle{wxFC\_MULTIPLE}}{For open control only, Allows selecting multiple files. Cannot be combined with wxFC\_SAVE} -\twocolitem{\windowstyle{wxFC\_NOSHOWHIDDEN}}{Hides the ``Show Hidden Files" checkbox (Generic only)} -\end{twocollist} - -\wxheading{Event handling} - -To process a file control event, use these event handler macros to direct -input to member functions that take a \helpref{wxFileCtrlEvent}{wxfilectrlevent} -argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_FILECTRL\_FILEACTIVATED(id, func)}}{The user activated a file(by double-clicking or pressing Enter)} -\twocolitem{{\bf EVT\_FILECTRL\_SELECTIONCHANGED(id, func)}}{The user changed the current selection(by selecting or deselecting a file)} -\twocolitem{{\bf EVT\_FILECTRL\_FOLDERCHANGED(id, func)}}{The current folder of the file control has been changed} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxGenericDirCtrl}{wxgenericdirctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileCtrl::wxFileCtrl}\label{wxfilectrlctor} - -\func{}{wxFileCtrl}{\void} - -Default constructor. - -\func{}{wxFileCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{defaultDirectory = wxEmptyString},\rtfsp -\param{const wxString\& }{defaultFilename = wxEmptyString},\rtfsp -\param{const wxPoint\& }{wildCard = wxFileSelectorDefaultWildcardStr},\rtfsp -\param{long}{ style = wxFC\_DEFAULT\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, -\param{const wxSize\& }{size = wxDefaultSize}, -\param{const wxString\& }{name = ``filectrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{defaultDirectory}{The initial directory shown in the control. Must be -a valid path to a directory or the empty string. -In case it is the empty string, the current working directory is used.} - -\docparam{defaultFilename}{The default filename, or the empty string.} - -\docparam{wildcard}{A wildcard specifying which files can be selected, -such as ``*.*" or ``BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif".} - -\docparam{style}{The window style, see {\tt wxFC\_*} flags.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - -\membersection{wxFileCtrl::Create}\label{wxfilectrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{defaultDirectory = wxEmptyString},\rtfsp -\param{const wxString\& }{defaultFilename = wxEmptyString},\rtfsp -\param{const wxPoint\& }{wildCard = wxFileSelectorDefaultWildcardStr},\rtfsp -\param{long}{ style = wxFC\_DEFAULT\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, -\param{const wxSize\& }{size = wxDefaultSize}, -\param{const wxString\& }{name = ``filectrl"}} - -Create function for two-step construction. See \helpref{wxFileCtrl::wxFileCtrl}{wxfilectrlctor} for details. - -\membersection{wxFileDialog::GetFilename}\label{wxfilectrlgetfilename} - -\constfunc{wxString}{GetFilename}{\void} - -Returns the currently selected filename. -For the controls having the {\tt wxFC\_MULTIPLE} style, use \helpref{GetFilenames}{wxfilectrlgetfilenames} -instead - -\membersection{wxFileCtrl::GetDirectory}\label{wxfilectrlgetdirectory} - -\constfunc{wxString}{GetDirectory}{\void} - -Returns the current directory of the file control (i.e. the directory shown by -it). - -\membersection{wxFileCtrl::GetWildcard}\label{wxfilectrlgetwildcard} - -\constfunc{wxString}{GetWildcard}{\void} - -Returns the current wildcard. - -\membersection{wxFileCtrl::GetPath}\label{wxfilectrlgetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the full path (directory and filename) of the currently selected file. -For the controls having the {\tt wxFC\_MULTIPLE} style, use \helpref{GetPaths}{wxfilectrlgetpaths} -instead - -\membersection{wxFileCtrl::GetPaths}\label{wxfilectrlgetpaths} - -\constfunc{void}{GetPaths}{\param{wxArrayString\& }{paths}} - -Fills the array {\it paths} with the full paths of the files chosen. This -function should be used with the controls having the {\tt wxFC\_MULTIPLE} style, -use \helpref{GetPath}{wxfilectrlgetpath} otherwise. - -\wxheading{Remarks} - -{\it paths} is emptied first. - -\membersection{wxFileCtrl::GetFilenames}\label{wxfilectrlgetfilenames} - -\constfunc{void}{GetFilenames}{\param{wxArrayString\& }{filenames}} - -Fills the array {\it filenames} with the filenames only of selected items. This -function should only be used with the controls having the {\tt wxFC\_MULTIPLE} style, -use \helpref{GetFilename}{wxfilectrlgetfilename} for the others. - -\wxheading{Remarks} - -{\it filenames} is emptied first. - -\membersection{wxFileCtrl::GetFilterIndex}\label{wxfilectrlgetfilterindex} - -\constfunc{int}{GetFilterIndex}{\void} - -Returns the zero-based index of the currently selected filter. - -\membersection{wxFileCtrl::ShowHidden}\label{wxfilectrlshowhidden} - -\func{void}{ShowHidden}{\param{const bool }{show}} - -Sets whether hidden files and folders are shown or not. - -\membersection{wxFileCtrl::SetWildcard}\label{wxfilectrlsetwildcard} - -\func{void}{SetWildcard}{\param{const wxString\& }{wildCard}} - -Sets the wildcard, which can contain multiple file types, for example: - -``BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" - -\membersection{wxFileCtrl::SetFilterIndex}\label{wxfilectrlsetfilterindex} - -\func{void}{SetFilterIndex}{\param{int }{filterIndex}} - -Sets the current filter index, starting from zero. - -\membersection{wxFileCtrl::SetDirectory}\label{wxfilectrlsetdirectory} - -\func{bool}{SetDirectory}{\param{const wxString\& }{directory}} - -Sets(changes) the current directory displayed in the control. - -\wxheading{Return value} - -Returns \true on success, \false otherwise. - -\membersection{wxFileCtrl::SetFilename}\label{wxfilectrlsetfilename} - -\func{bool}{SetFilename}{\param{const wxString\& }{filename}} - -Selects a certain file. - -\wxheading{Return value} - -Returns \true on success, \false otherwise - -\membersection{wxFileCtrl::SetPath}\label{wxfilectrlsetpath} - -\func{bool}{SetPath}{\param{const wxString\& }{path}} - -Selects a certain file using its path (the combined directory and filename). -Equivalent to \helpref{SetPath}{wxfilectrlsetpath} then \helpref{SetFilename}{wxfilectrlsetfilename}. - -\wxheading{Return value} - -Returns \true on success, \false otherwise. diff --git a/docs/latex/wx/filedlg.tex b/docs/latex/wx/filedlg.tex deleted file mode 100644 index 2b7a75f71c..0000000000 --- a/docs/latex/wx/filedlg.tex +++ /dev/null @@ -1,249 +0,0 @@ -\section{\class{wxFileDialog}}\label{wxfiledialog} - -This class represents the file chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxFD\_DEFAULT\_STYLE}}{Equivalent to wxFD\_OPEN.} -\twocolitem{\windowstyle{wxFD\_OPEN}}{This is an open dialog; usually this means that the default button's label of the dialog is "Open". Cannot be combined with wxFD\_SAVE.} -\twocolitem{\windowstyle{wxFD\_SAVE}}{This is a save dialog; usually this means that the default button's label of the dialog is "Save". Cannot be combined with wxFD\_OPEN.} -\twocolitem{{\windowstyle wxFD\_OVERWRITE\_PROMPT}}{For save dialog only: prompt for a confirmation if a file will be overwritten.} -\twocolitem{{\windowstyle wxFD\_FILE\_MUST\_EXIST}}{For open dialog only: the user may only select files that actually exist.} -\twocolitem{{\windowstyle wxFD\_MULTIPLE}}{For open dialog only: allows selecting multiple files.} -\twocolitem{{\windowstyle wxFD\_CHANGE\_DIR}}{Change the current working directory to the directory where the file(s) chosen by the user are.} -\twocolitem{{\windowstyle wxFD\_PREVIEW}}{Show the preview of the selected files (currently only supported by wxGTK using GTK+ 2.4 or later).} -\end{twocollist} - -{\bf NB:} Previous versions of wxWidgets used {\tt wxFD\_CHANGE\_DIR} by default -under MS Windows which allowed the program to simply remember the last -directory where user selected the files to open/save. This (desired) -functionality must be implemented in the program itself now (manually remember -the last path used and pass it to the dialog the next time it is called) or -by using this flag. - - -\wxheading{See also} - -\helpref{wxFileDialog overview}{wxfiledialogoverview}, \helpref{wxFileSelector}{wxfileselector} - -\wxheading{Remarks} - -Pops up a file selector box. In Windows and GTK2.4+, this is the common -file selector dialog. In X, this is a file selector box with somewhat less -functionality. The path and filename are distinct elements of a full file pathname. -If path is ``", the current directory will be used. If filename is ``", -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. - -Both the X and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. The wildcard may be a specification for multiple -types of file with a description for each, such as: - -\begin{verbatim} - "BMP and GIF files (*.bmp;*.gif)|*.bmp;*.gif|PNG files (*.png)|*.png" -\end{verbatim} - -It must be noted that wildcard support in the native Motif file -dialog is quite limited: only one alternative is supported, -and it is displayed without the descriptive test; ``BMP files (*.bmp)|*.bmp'' -is displayed as ``*.bmp'', and both -``BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif'' and -``Image files|*.bmp;*.gif'' are errors. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDialog::wxFileDialog}\label{wxfiledialogctor} - -\func{}{wxFileDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message = "Choose a file"},\rtfsp -\param{const wxString\& }{defaultDir = ""}, \param{const wxString\& }{defaultFile = ``"},\rtfsp -\param{const wxString\& }{wildcard = ``*.*"}, \param{long }{style = wxFD\_DEFAULT\_STYLE}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{sz = wxDefaultSize}, \param{const wxString\& }{name = "filedlg"}} - -Constructor. Use \helpref{wxFileDialog::ShowModal}{wxfiledialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultDir}{The default directory, or the empty string.} - -\docparam{defaultFile}{The default filename, or the empty string.} - -\docparam{wildcard}{A wildcard, such as ``*.*" or ``BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif". - -Note that the native Motif dialog has some limitations with respect to -wildcards; see the Remarks section above.} - -\docparam{style}{A dialog style. See wxFD\_* styles for more info.} - -\docparam{pos}{Dialog position. Not implemented.} - -\docparam{size}{Dialog size. Not implemented.} - -\docparam{name}{Dialog name. Not implemented.} - - -\membersection{wxFileDialog::\destruct{wxFileDialog}}\label{wxfiledialogdtor} - -\func{}{\destruct{wxFileDialog}}{\void} - -Destructor. - -\membersection{wxFileDialog::GetDirectory}\label{wxfiledialoggetdirectory} - -\constfunc{wxString}{GetDirectory}{\void} - -Returns the default directory. - -\membersection{wxFileDialog::GetExtraControl}\label{wxfiledialoggetextracontrol} - -\constfunc{wxWindow* }{GetExtraControl}{\void} - -If functions -\helpref{SetExtraControlCreator}{wxfiledialogsetextracontrolcreator} -and \helpref{ShowModal}{wxfiledialogshowmodal} were called, -returns the extra window. Otherwise returns \NULL. - -\membersection{wxFileDialog::GetFilename}\label{wxfiledialoggetfilename} - -\constfunc{wxString}{GetFilename}{\void} - -Returns the default filename. - -\membersection{wxFileDialog::GetFilenames}\label{wxfiledialoggetfilenames} - -\constfunc{void}{GetFilenames}{\param{wxArrayString\& }{filenames}} - -Fills the array {\it filenames} with the names of the files chosen. This -function should only be used with the dialogs which have {\tt wxFD\_MULTIPLE} style, -use \helpref{GetFilename}{wxfiledialoggetfilename} for the others. - -Note that under Windows, if the user selects shortcuts, the filenames -include paths, since the application cannot determine the full path -of each referenced file by appending the directory containing the shortcuts -to the filename. - -\membersection{wxFileDialog::GetFilterIndex}\label{wxfiledialoggetfilterindex} - -\constfunc{int}{GetFilterIndex}{\void} - -Returns the index into the list of filters supplied, optionally, in the wildcard parameter. -Before the dialog is shown, this is the index which will be used when the dialog is first displayed. -After the dialog is shown, this is the index selected by the user. - -\membersection{wxFileDialog::GetMessage}\label{wxfiledialoggetmessage} - -\constfunc{wxString}{GetMessage}{\void} - -Returns the message that will be displayed on the dialog. - -\membersection{wxFileDialog::GetPath}\label{wxfiledialoggetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the full path (directory and filename) of the selected file. - -\membersection{wxFileDialog::GetPaths}\label{wxfiledialoggetpaths} - -\constfunc{void}{GetPaths}{\param{wxArrayString\& }{paths}} - -Fills the array {\it paths} with the full paths of the files chosen. This -function should only be used with the dialogs which have {\tt wxFD\_MULTIPLE} style, -use \helpref{GetPath}{wxfiledialoggetpath} for the others. - -\membersection{wxFileDialog::GetWildcard}\label{wxfiledialoggetwildcard} - -\constfunc{wxString}{GetWildcard}{\void} - -Returns the file dialog wildcard. - -\membersection{wxFileDialog::SetDirectory}\label{wxfiledialogsetdirectory} - -\func{void}{SetDirectory}{\param{const wxString\& }{directory}} - -Sets the default directory. - -\membersection{wxFileDialog::SetExtraControlCreator}\label{wxfiledialogsetextracontrolcreator} - -\begin{verbatim} -typedef wxWindow* (*ExtraControlCreatorFunction)(wxWindow*); -\end{verbatim} -\func{bool}{SetExtraControlCreator}{\param{t\_extraControlCreator }{creator}} - -Customize file dialog by adding extra window, which is typically placed -below the list of files and above the buttons. - -SetExtraControlCreator can be called only once, before calling -\helpref{ShowModal}{wxfiledialogshowmodal}. -The {\tt creator} function should take pointer to parent window (file dialog) -and should return a window allocated with operator new. - -Supported platforms: wxGTK, wxUniv. - -\wxheading{Return value} -{\tt true} if adding extra controls is supported, {\tt false} otherwise. - -\membersection{wxFileDialog::SetFilename}\label{wxfiledialogsetfilename} - -\func{void}{SetFilename}{\param{const wxString\& }{setfilename}} - -Sets the default filename. - -\membersection{wxFileDialog::SetFilterIndex}\label{wxfiledialogsetfilterindex} - -\func{void}{SetFilterIndex}{\param{int }{filterIndex}} - -Sets the default filter index, starting from zero. - -\membersection{wxFileDialog::SetMessage}\label{wxfiledialogsetmessage} - -\func{void}{SetMessage}{\param{const wxString\& }{message}} - -Sets the message that will be displayed on the dialog. - -\membersection{wxFileDialog::SetPath}\label{wxfiledialogsetpath} - -\func{void}{SetPath}{\param{const wxString\& }{path}} - -Sets the path (the combined directory and filename that will be returned when the dialog is dismissed). - -\membersection{wxFileDialog::SetWildcard}\label{wxfiledialogsetwildcard} - -\func{void}{SetWildcard}{\param{const wxString\& }{wildCard}} - -Sets the wildcard, which can contain multiple file types, for example: - -``BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" - -Note that the native Motif dialog has some limitations with respect to -wildcards; see the Remarks section above. - -\membersection{wxFileDialog::ShowModal}\label{wxfiledialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/fileevt.tex b/docs/latex/wx/fileevt.tex deleted file mode 100644 index 289a343a6b..0000000000 --- a/docs/latex/wx/fileevt.tex +++ /dev/null @@ -1,77 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: fileevt.tex -%% Purpose: wxFileCtrlEvent documentation -%% Author: Diaa M. Sami -%% Created: 2007-07-25 -%% RCS-ID: $Id: $ -%% Copyright: (c) 2007 Diaa M. Sami -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFileCtrlEvent}}\label{wxfilectrlevent} - -A file control event holds information about events associated with -\helpref{wxFileCtrl}{wxfilectrl} objects. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Event table macros} - -To process input from a file control, use these event handler macros to direct input to member -functions that take a wxFileCtrlEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_FILECTRL\_FILEACTIVATED(id, func)}}{The user activated a file(by double-clicking or pressing Enter)} -\twocolitem{{\bf EVT\_FILECTRL\_SELECTIONCHANGED(id, func)}}{The user changed the current selection(by selecting or deselecting a file)} -\twocolitem{{\bf EVT\_FILECTRL\_FOLDERCHANGED(id, func)}}{The current folder of the file control has been changed} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileCtrlEvent::wxFileCtrlEvent}\label{wxfilectrleventctor} - -\func{}{wxFileCtrlEvent}{\param{wxEventType }{type}, \param{wxObject }{evtObject}, \param{int }{id}} - -Constructor. - -\membersection{wxFileCtrlEvent::GetFiles}\label{wxfilectrleventgetfiles} - -\constfunc{wxArrayString}{GetFiles}{\void} - -Returns the files selected. -In case of a {\bf EVT\_FILECTRL\_SELECTIONCHANGED}, this method returns the -files selected after the event. - -\membersection{wxFileCtrlEvent::GetDirectory}\label{wxfilectrleventgetdirectory} - -\constfunc{wxString}{GetDirectory}{\void} - -Returns the current directory. -In case of a {\bf EVT\_FILECTRL\_FOLDERCHANGED}, this method returns the new directory. - -\membersection{wxFileCtrlEvent::GetFile}\label{wxfilectrleventgetfile} - -\constfunc{wxString}{GetFile}{\void} - -Returns the file selected(assuming it is only one file). - -\membersection{wxFileCtrlEvent::SetFiles}\label{wxfilectrleventsetfiles} - -\func{}{wxFileCtrlEvent::SetFiles}{\param{const wxArrayString &}{files}} - -Sets the files changed by this event. - -\membersection{wxFileCtrlEvent::SetDirectory}\label{wxfilectrleventsetdirectory} - -\func{}{wxFileCtrlEvent::SetDirectory}{\param{const wxString &}{directory}} - -Sets the current directory of this event. diff --git a/docs/latex/wx/filehist.tex b/docs/latex/wx/filehist.tex deleted file mode 100644 index af48e1b4e7..0000000000 --- a/docs/latex/wx/filehist.tex +++ /dev/null @@ -1,186 +0,0 @@ -\section{\class{wxFileHistory}}\label{wxfilehistory} - -The wxFileHistory encapsulates a user interface convenience, the -list of most recently visited files as shown on a menu (usually the File menu). - -wxFileHistory can manage one or more file menus. More than one menu may be required -in an MDI application, where the file history should appear on each MDI child menu -as well as the MDI parent frame. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxFileHistory overview}{wxfilehistoryoverview}, \helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFileHistory::m\_fileHistory}\label{wxfilehistorymfilehistory} - -\member{char**}{m\_fileHistory} - -A character array of strings corresponding to the most recently opened -files. - - -\membersection{wxFileHistory::m\_fileHistoryN}\label{wxfilehistorymfilehistoryn} - -\member{size\_t}{m\_fileHistoryN} - -The number of files stored in the history array. - - -\membersection{wxFileHistory::m\_fileMaxFiles}\label{wxfilehistorymfilemaxfiles} - -\member{size\_t}{m\_fileMaxFiles} - -The maximum number of files to be stored and displayed on the menu. - - -\membersection{wxFileHistory::m\_fileMenu}\label{wxfilehistorymfilemenu} - -\member{wxMenu*}{m\_fileMenu} - -The file menu used to display the file history list (if enabled). - - -\membersection{wxFileHistory::wxFileHistory}\label{wxfilehistoryctor} - -\func{}{wxFileHistory}{\param{size\_t}{ maxFiles = 9}, \param{wxWindowID}{ idBase = wxID\_FILE1}} - -Constructor. Pass the maximum number of files that should be stored and -displayed. - -{\it idBase} defaults to wxID\_FILE1 and represents the id given to the first -history menu item. Since menu items can't share the same ID you should change -idBase (To one of your own defined IDs) when using more than one wxFileHistory -in your application. - - -\membersection{wxFileHistory::\destruct{wxFileHistory}}\label{wxfilehistorydtor} - -\func{}{\destruct{wxFileHistory}}{\void} - -Destructor. - - -\membersection{wxFileHistory::AddFileToHistory}\label{wxfilehistoryaddfiletohistory} - -\func{void}{AddFileToHistory}{\param{const wxString\& }{filename}} - -Adds a file to the file history list, if the object has a pointer to an appropriate file menu. - - -\membersection{wxFileHistory::AddFilesToMenu}\label{wxfilehistoryaddfilestomenu} - -\func{void}{AddFilesToMenu}{\void}\label{wxfilehistoryaddfilestomenu} - -Appends the files in the history list, to all menus managed by the file history object. - -\func{void}{AddFilesToMenu}{\param{wxMenu*}{ menu}} - -Appends the files in the history list, to the given menu only. - - -\membersection{wxFileHistory::GetBaseId}\label{wxfilehistorygetbaseid} - -\constfunc{wxWindowID}{GetBaseId}{\void} - -Returns the base identifier for the range used for appending items. - - -\membersection{wxFileHistory::GetCount}\label{wxfilehistorygetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of files currently stored in the file history. - - -\membersection{wxFileHistory::GetHistoryFile}\label{wxfilehistorygethistoryfile} - -\constfunc{wxString}{GetHistoryFile}{\param{size\_t}{ index}} - -Returns the file at this index (zero-based). - - -\membersection{wxFileHistory::GetMaxFiles}\label{wxfilehistorygetmaxfiles} - -\constfunc{int}{GetMaxFiles}{\void} - -Returns the maximum number of files that can be stored. - - -\membersection{wxFileHistory::GetMenus}\label{wxfilehistorygetmenus} - -\constfunc{const wxList\&}{GetMenus}{\void} - -Returns the list of menus that are managed by this file history object. - -\wxheading{See also} - -\helpref{wxFileHistory::UseMenu}{wxfilehistoryusemenu} - - -\membersection{wxFileHistory::Load}\label{wxfilehistoryload} - -\func{void}{Load}{\param{wxConfigBase\& }{config}} - -Loads the file history from the given config object. This function should be called explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - - -\membersection{wxFileHistory::RemoveFileFromHistory}\label{wxfilehistoryfromfilefromhistory} - -\func{void}{RemoveFileFromHistory}{\param{size\_t }{i}} - -Removes the specified file from the history. - -\membersection{wxFileHistory::RemoveMenu}\label{wxfilehistoryremovemenu} - -\func{void}{RemoveMenu}{\param{wxMenu* }{menu}} - -Removes this menu from the list of those managed by this object. - - -\membersection{wxFileHistory::Save}\label{wxfilehistorysave} - -\func{void}{Save}{\param{wxConfigBase\& }{config}} - -Saves the file history into the given config object. This must be called -explicitly by the application. - -\wxheading{See also} - -\helpref{wxConfig}{wxconfigbase} - - -\membersection{wxFileHistory::SetBaseId}\label{wxfilehistorysetbaseid} - -\func{void}{SetBaseId}{\param{wxWindowID}{ baseId}} - -Sets the base identifier for the range used for appending items. - - -\membersection{wxFileHistory::UseMenu}\label{wxfilehistoryusemenu} - -\func{void}{UseMenu}{\param{wxMenu* }{menu}} - -Adds this menu to the list of those menus that are managed by this file history object. -Also see \helpref{AddFilesToMenu()}{wxfilehistoryaddfilestomenu} for -initializing the menu with filenames that are already in the history when this -function is called, as this is not done automatically. - diff --git a/docs/latex/wx/fileistr.tex b/docs/latex/wx/fileistr.tex deleted file mode 100644 index 7e64110f18..0000000000 --- a/docs/latex/wx/fileistr.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{\class{wxFileInputStream}}\label{wxfileinputstream} - -This class represents data read in from a file. There are actually -two such groups of classes: this one is based on \helpref{wxFile}{wxfile} -whereas \helpref{wxFFileInputStream}{wxffileinputstream} is based in -the \helpref{wxFFile}{wxffile} class. - -Note that \helpref{SeekI()}{wxinputstreamseeki} -can seek beyond the end of the stream (file) and will thus not return -{\it wxInvalidOffset} for that. - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxBufferedInputStream}{wxbufferedinputstream}, \helpref{wxFileOutputStream}{wxfileoutputstream}, \helpref{wxFFileOutputStream}{wxffileoutputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileInputStream::wxFileInputStream}\label{wxfileinputstreamctor} - -\func{}{wxFileInputStream}{\param{const wxString\&}{ ifileName}} - -Opens the specified file using its {\it ifilename} name in read-only mode. - -\func{}{wxFileInputStream}{\param{wxFile\&}{ file}} - -Initializes a file stream in read-only mode using the file I/O object {\it file}. - -\func{}{wxFileInputStream}{\param{int}{ fd}} - -Initializes a file stream in read-only mode using the specified file descriptor. - -\membersection{wxFileInputStream::\destruct{wxFileInputStream}}\label{wxfileinputstreamdtor} - -\func{}{\destruct{wxFileInputStream}}{\void} - -Destructor. - -\membersection{wxFileInputStream::IsOk}\label{wxfileinputstreamisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the stream is initialized and ready. - diff --git a/docs/latex/wx/filename.tex b/docs/latex/wx/filename.tex deleted file mode 100644 index 870e8a53d8..0000000000 --- a/docs/latex/wx/filename.tex +++ /dev/null @@ -1,1074 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: filename.tex -%% Purpose: wxFileName documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 30.11.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFileName}}\label{wxfilename} - -wxFileName encapsulates a file name. This class serves two purposes: first, it -provides the functions to split the file names into components and to recombine -these components in the full file name which can then be passed to the OS file -functions (and \helpref{wxWidgets functions}{filefunctions} wrapping them). -Second, it includes the functions for working with the files itself. Note that -to change the file data you should use \helpref{wxFile}{wxfile} class instead. -wxFileName provides functions for working with the file attributes. - -When working with directory names (i.e. without filename and extension) -make sure not to misuse the file name part of this class with the last -directory. Instead initialize the wxFileName instance like this: - -\begin{verbatim} -wxFileName dirname( "C:\mydir", "" ); -MyMethod( dirname.GetPath() ); -\end{verbatim} - -The same can be done using the static method \helpref{wxFileName::DirName}{wxfilenamedirname}: - -\begin{verbatim} -wxFileName dirname = wxFileName::DirName( "C:\mydir" ); -MyMethod( dirname.GetPath() ); -\end{verbatim} - -Accordingly, methods dealing with directories or directory names -like \helpref{IsDirReadable}{wxfilenameisdirreadable} use -\helpref{GetPath}{wxfilenamegetpath} whereas methods dealing -with file names like \helpref{IsFileReadable}{wxfilenameisfilereadable} -use \helpref{GetFullPath}{wxfilenamegetfullpath}. - -If it is not known wether a string contains a directory name or -a complete file name (such as when interpreting user input) you need to use -the static function \helpref{wxFileName::DirExists}{wxfilenamedirexists} -(or its identical variants \helpref{wxDir::Exists}{wxdirexists} and -\helpref{wxDirExists}{functionwxdirexists}) and construct the wxFileName -instance accordingly. This will only work if the directory actually exists, -of course: - -\begin{verbatim} -wxString user_input; -// get input from user - -wxFileName fname; -if (wxDirExists(user_input)) - fname.AssignDir( user_input ); -else - fname.Assign( user_input ); -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -Many wxFileName methods accept the path format argument which is by\rtfsp -{\tt wxPATH\_NATIVE} by default meaning to use the path format native for the -current platform. - -The path format affects the operation of wxFileName functions in several ways: -first and foremost, it defines the path separator character to use, but it also -affects other things such as whether the path has the drive part or not. - -\begin{verbatim} -enum wxPathFormat -{ - wxPATH_NATIVE = 0, // the path format for the current platform - wxPATH_UNIX, - wxPATH_BEOS = wxPATH_UNIX, - wxPATH_MAC, // the old HFS format, deprecated - wxPATH_DOS, - wxPATH_WIN = wxPATH_DOS, - wxPATH_OS2 = wxPATH_DOS, - wxPATH_VMS, - - wxPATH_MAX // Not a valid value for specifying path format -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{File name format}\label{filenameformat} - -wxFileName currently supports the file names in the Unix, DOS/Windows, Mac OS -and VMS formats. Although these formats are quite different, wxFileName tries -to treat them all in the same generic way. It supposes that all file names -consist of the following parts: the volume (also known as drive under Windows -or device under VMS), the path which is a sequence of directory names separated -by the \helpref{path separators}{wxfilenamegetpathseparators} and the full -filename itself which, in turn, is composed from the base file name and the -extension. All of the individual components of the file name may be empty and, -for example, the volume name is always empty under Unix, but if they are all -empty simultaneously, the filename object is considered to be in an invalid -state and \helpref{IsOk}{wxfilenameisok} returns {\tt false} for it. - -File names can be case-sensitive or not, the function\rtfsp -\helpref{IsCaseSensitive}{wxfilenameiscasesensitive} allows to determine this. - -The rules for determining whether the file name is absolute or relative also -depend on the file name format and the only portable way to answer this -question is to use \helpref{IsAbsolute}{wxfilenameisabsolute} or\rtfsp -\helpref{IsRelative}{wxfilenameisrelative} method. Note that on Windows, "X:" -refers to the current working directory on drive X. Therefore, a wxFileName -instance constructed from for example "X:dir/file.ext" treats the portion -beyond drive separator as being relative to that directory. - -To ensure that the filename is absolute, you may use\rtfsp -\helpref{MakeAbsolute}{wxfilenamemakeabsolute}. There is also an inverse -function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto} which undoes -what \helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize} does. - -Other functions returning information about the file format provided by this -class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp -\helpref{IsPathSeparator}{wxfilenameispathseparator}. - - -\membersection{File name construction}\label{filenameconstruction} - -You can initialize a wxFileName instance using one of the following functions: - -\helpref{wxFileName constructors}{wxfilenamewxfilename}\\ -\helpref{Assign}{wxfilenameassign}\\ -\helpref{AssignCwd}{wxfilenameassigncwd}\\ -\helpref{AssignDir}{wxfilenameassigndir}\\ -\helpref{AssignHomeDir}{wxfilenameassignhomedir}\\ -\helpref{AssignHomeTempFileName}{wxfilenameassigntempfilename}\\ -\helpref{DirName}{wxfilenamedirname}\\ -\helpref{FileName}{wxfilenamefilename}\\ -\helpref{operator $=$}{wxfilenameoperatorassign} - - -\membersection{File tests}\label{filetests} - -Before doing other tests, you should use \helpref{IsOk}{wxfilenameisok} to -verify that the filename is well defined. If it is,\rtfsp -\helpref{FileExists}{wxfilenamefileexists} can be used to test whether a file -with such name exists and \helpref{DirExists}{wxfilenamedirexists} can be used -to test for directory existence. - -File names should be compared using \helpref{SameAs}{wxfilenamesameas} method -or \helpref{operator $==$}{wxfilenameoperatorequal}. - -For testing basic access modes, you can use: - -\helpref{IsDirWritable}{wxfilenameisdirwritable}\\ -\helpref{IsDirReadable}{wxfilenameisdirreadable}\\ -\helpref{IsFileWritable}{wxfilenameisfilewritable}\\ -\helpref{IsFileReadable}{wxfilenameisfilereadable}\\ -\helpref{IsFileExecutable}{wxfilenameisfileexecutable} - - -\membersection{File name components}\label{filenamecomponents} - -These functions allow to examine and modify the individual directories of the -path: - -\helpref{AppendDir}{wxfilenameappenddir}\\ -\helpref{InsertDir}{wxfilenameinsertdir}\\ -\helpref{GetDirCount}{wxfilenamegetdircount} -\helpref{PrependDir}{wxfilenameprependdir}\\ -\helpref{RemoveDir}{wxfilenameremovedir}\\ -\helpref{RemoveLastDir}{wxfilenameremovelastdir} - -To change the components of the file name individually you can use the -following functions: - -\helpref{GetExt}{wxfilenamegetext}\\ -\helpref{GetName}{wxfilenamegetname}\\ -\helpref{GetVolume}{wxfilenamegetvolume}\\ -\helpref{HasExt}{wxfilenamehasext}\\ -\helpref{HasName}{wxfilenamehasname}\\ -\helpref{HasVolume}{wxfilenamehasvolume}\\ -\helpref{SetExt}{wxfilenamesetext}\\ -\helpref{ClearExt}{wxfilenameclearext}\\ -\helpref{SetEmptyExt}{wxfilenamesetemptyext}\\ -\helpref{SetName}{wxfilenamesetname}\\ -\helpref{SetVolume}{wxfilenamesetvolume}\\ - - -\membersection{Operations}\label{filenameoperations} - -These methods allow to work with the file creation, access and modification -times. Note that not all filesystems under all platforms implement these times -in the same way. For example, the access time under Windows has a resolution of -one day (so it is really the access date and not time). The access time may be -updated when the file is executed or not depending on the platform. - -\helpref{GetModificationTime}{wxfilenamegetmodificationtime}\\ -\helpref{GetTimes}{wxfilenamegettimes}\\ -\helpref{SetTimes}{wxfilenamesettimes}\\ -\helpref{Touch}{wxfilenametouch} - -Other file system operations functions are: - -\helpref{Mkdir}{wxfilenamemkdir}\\ -\helpref{Rmdir}{wxfilenamermdir} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFileName::wxFileName}\label{wxfilenamewxfilename} - -\func{}{wxFileName}{\void} - -Default constructor. - -\func{}{wxFileName}{\param{const wxFileName\& }{filename}} - -Copy constructor. - -\func{}{wxFileName}{\param{const wxString\& }{fullpath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Constructor taking a full filename. If it terminates with a '/', a directory path -is constructed (the name will be empty), otherwise a file name and -extension are extracted from it. - -\func{}{wxFileName}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Constructor from a directory name and a file name. - -\func{}{wxFileName}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Constructor from a directory name, base file name and extension. - -\func{}{wxFileName}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Constructor from a volume name, a directory name, base file name and extension. - - -\membersection{wxFileName::AppendDir}\label{wxfilenameappenddir} - -\func{void}{AppendDir}{\param{const wxString\& }{dir}} - -Appends a directory component to the path. This component should contain a -single directory name level, i.e. not contain any path or volume separators nor -should it be empty, otherwise the function does nothing (and generates an -assert failure in debug build). - - -\membersection{wxFileName::Assign}\label{wxfilenameassign} - -\func{void}{Assign}{\param{const wxFileName\& }{filepath}} - -\func{void}{Assign}{\param{const wxString\& }{fullpath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{void}{Assign}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{bool }{hasExt}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{void}{Assign}{\param{const wxString\& }{volume}, \param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{void}{Assign}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{void}{Assign}{\param{const wxString\& }{path}, \param{const wxString\& }{name}, \param{const wxString\& }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Creates the file name from various combinations of data. - - -\membersection{wxFileName::AssignCwd}\label{wxfilenameassigncwd} - -\func{static void}{AssignCwd}{\param{const wxString\& }{volume = wxEmptyString}} - -Makes this object refer to the current working directory on the specified -volume (or current volume if {\it volume} is empty). - -\wxheading{See also} - -\helpref{GetCwd}{wxfilenamegetcwd} - - -\membersection{wxFileName::AssignDir}\label{wxfilenameassigndir} - -\func{void}{AssignDir}{\param{const wxString\& }{dir}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Sets this file name object to the given directory name. The name and extension -will be empty. - - -\membersection{wxFileName::AssignHomeDir}\label{wxfilenameassignhomedir} - -\func{void}{AssignHomeDir}{\void} - -Sets this file name object to the home directory. - - -\membersection{wxFileName::AssignTempFileName}\label{wxfilenameassigntempfilename} - -\func{void}{AssignTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}} - -The function calls \helpref{CreateTempFileName}{wxfilenamecreatetempfilename} to -create a temporary file and sets this object to the name of the file. If a -temporary file couldn't be created, the object is put into the\rtfsp -\helpref{invalid}{wxfilenameisok} state. - - -\membersection{wxFileName::Clear}\label{wxfilenameclear} - -\func{void}{Clear}{\void} - -Reset all components to default, uninitialized state. - - -\membersection{wxFileName::ClearExt}\label{wxfilenameclearext} - -\func{void}{SetClearExt}{\void} - -Removes the extension from the file name resulting in a -file name with no trailing dot. - -\wxheading{See also} - -\helpref{SetExt}{wxfilenamesetext} -\helpref{SetEmptyExt}{wxfilenamesetemptyext} - -\membersection{wxFileName::CreateTempFileName}\label{wxfilenamecreatetempfilename} - -\func{static wxString}{CreateTempFileName}{\param{const wxString\& }{prefix}, \param{wxFile *}{fileTemp = {\tt NULL}}} - -Returns a temporary file name starting with the given {\it prefix}. If -the {\it prefix} is an absolute path, the temporary file is created in this -directory, otherwise it is created in the default system directory for the -temporary files or in the current directory. - -If the function succeeds, the temporary file is actually created. If\rtfsp -{\it fileTemp} is not {\tt NULL}, this file will be opened using the name of -the temporary file. When possible, this is done in an atomic way ensuring that -no race condition occurs between the temporary file name generation and opening -it which could often lead to security compromise on the multiuser systems. -If {\it fileTemp} is {\tt NULL}, the file is only created, but not opened. - -Under Unix, the temporary file will have read and write permissions for the -owner only to minimize the security problems. - -\wxheading{Parameters} - -\docparam{prefix}{Prefix to use for the temporary file name construction} - -\docparam{fileTemp}{The file to open or {\tt NULL} to just get the name} - -\wxheading{Return value} - -The full temporary file name or an empty string on error. - - -\membersection{wxFileName::DirExists}\label{wxfilenamedirexists} - -\constfunc{bool}{DirExists}{\void} - -\func{static bool}{DirExists}{\param{const wxString\& }{dir}} - -Returns {\tt true} if the directory with this name exists. - - -\membersection{wxFileName::DirName}\label{wxfilenamedirname} - -\func{static wxFileName}{DirName}{\param{const wxString\& }{dir}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the object corresponding to the directory with the given name. -The {\it dir} parameter may have trailing path separator or not. - - - -\membersection{wxFileName::FileExists}\label{wxfilenamefileexists} - -\constfunc{bool}{FileExists}{\void} - -\func{static bool}{FileExists}{\param{const wxString\& }{file}} - -Returns {\tt true} if the file with this name exists. - -\wxheading{See also} - -\helpref{DirExists}{wxfilenamedirexists} - - - -\membersection{wxFileName::FileName}\label{wxfilenamefilename} - -\func{static wxFileName}{FileName}{\param{const wxString\& }{file}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the file name object corresponding to the given {\it file}. This -function exists mainly for symmetry with \helpref{DirName}{wxfilenamedirname}. - - - -\membersection{wxFileName::GetCwd}\label{wxfilenamegetcwd} - -\func{static wxString}{GetCwd}{\param{const wxString\& }{volume = ""}} - -Retrieves the value of the current working directory on the specified volume. If -the volume is empty, the program's current working directory is returned for the -current volume. - -\wxheading{Return value} - -The string containing the current working directory or an empty string on -error. - -\wxheading{See also} - -\helpref{AssignCwd}{wxfilenameassigncwd} - - -\membersection{wxFileName::GetDirCount}\label{wxfilenamegetdircount} - -\constfunc{size\_t}{GetDirCount}{\void} - -Returns the number of directories in the file name. - - -\membersection{wxFileName::GetDirs}\label{wxfilenamegetdirs} - -\constfunc{const wxArrayString\&}{GetDirs}{\void} - -Returns the directories in string array form. - - -\membersection{wxFileName::GetExt}\label{wxfilenamegetext} - -\constfunc{wxString}{GetExt}{\void} - -Returns the file name extension. - - -\membersection{wxFileName::GetForbiddenChars}\label{wxfilenamegetforbiddenchars} - -\func{static wxString}{GetForbiddenChars}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the characters that can't be used in filenames and directory names for the specified format. - - -\membersection{wxFileName::GetFormat}\label{wxfilenamegetformat} - -\func{static wxPathFormat}{GetFormat}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the canonical path format for this platform. - - -\membersection{wxFileName::GetFullName}\label{wxfilenamegetfullname} - -\constfunc{wxString}{GetFullName}{\void} - -Returns the full name (including extension but excluding directories). - - -\membersection{wxFileName::GetFullPath}\label{wxfilenamegetfullpath} - -\constfunc{wxString}{GetFullPath}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the full path with name and extension. - - -\membersection{wxFileName::GetHomeDir}\label{wxfilenamegethomedir} - -\func{static wxString}{GetHomeDir}{\void} - -Returns the home directory. - - -\membersection{wxFileName::GetLongPath}\label{wxfilenamegetlongpath} - -\constfunc{wxString}{GetLongPath}{\void} - -Return the long form of the path (returns identity on non-Windows platforms) - - -\membersection{wxFileName::GetModificationTime}\label{wxfilenamegetmodificationtime} - -\constfunc{wxDateTime}{GetModificationTime}{\void} - -Returns the last time the file was last modified. - - -\membersection{wxFileName::GetName}\label{wxfilenamegetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the name part of the filename (without extension). - -\wxheading{See also} - -\helpref{GetFullName}{wxfilenamegetfullname} - - - -\membersection{wxFileName::GetPath}\label{wxfilenamegetpath} - -\constfunc{wxString}{GetPath}{\param{int }{flags = {\tt wxPATH\_GET\_VOLUME}}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the path part of the filename (without the name or extension). The -possible flags values are: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxPATH\_GET\_VOLUME}}{Return the path with the volume (does -nothing for the filename formats without volumes), otherwise the path without -volume part is returned.} -\twocolitem{{\bf wxPATH\_GET\_SEPARATOR}}{Return the path with the trailing -separator, if this flag is not given there will be no separator at the end of -the path.} -\end{twocollist} - - -\membersection{wxFileName::GetPathSeparator}\label{wxfilenamegetpathseparator} - -\func{static wxChar}{GetPathSeparator}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the usually used path separator for this format. For all formats but -{\tt wxPATH\_DOS} there is only one path separator anyhow, but for DOS there -are two of them and the native one, i.e. the backslash is returned by this -method. - -\wxheading{See also} - -\helpref{GetPathSeparators}{wxfilenamegetpathseparators} - - -\membersection{wxFileName::GetPathSeparators}\label{wxfilenamegetpathseparators} - -\func{static wxString}{GetPathSeparators}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the string containing all the path separators for this format. For all -formats but {\tt wxPATH\_DOS} this string contains only one character but for -DOS and Windows both {\tt '/'} and {\tt '\textbackslash'} may be used as -separators. - -\wxheading{See also} - -\helpref{GetPathSeparator}{wxfilenamegetpathseparator} - - -\membersection{wxFileName::GetPathTerminators}\label{wxfilenamegetpathterminators} - -\func{static wxString}{GetPathTerminators}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the string of characters which may terminate the path part. This is the -same as \helpref{GetPathSeparators}{wxfilenamegetpathseparators} except for VMS -path format where $]$ is used at the end of the path part. - - -\membersection{wxFileName::GetPathWithSep}\label{wxfilenamegetpathwithsep} - -\constfunc{wxString}{GetPathWithSep}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the path with the trailing separator, useful for appending the name to -the given path. - -This is the same as calling \helpref{GetPath}{wxfilenamegetpath} -\texttt{(wxPATH\_GET\_VOLUME | wxPATH\_GET\_SEPARATOR, format)}. - - -\membersection{wxFileName::GetShortPath}\label{wxfilenamegetshortpath} - -\constfunc{wxString}{GetShortPath}{\void} - -Return the short form of the path (returns identity on non-Windows platforms). - - -\membersection{wxFileName::GetSize}\label{wxfilenamegetsize} - -\constfunc{wxULongLong}{GetSize}{\void} - -\func{static wxULongLong}{GetSize}{\param{const wxString\& }{filename}} - -Returns the size of this file (first form) or the size of the given file (second form). -If the file does not exist or its size could not be read (because e.g. the file is locked -by another process) the returned value is {\tt wxInvalidSize}. - - -\membersection{wxFileName::GetHumanReadableSize}\label{wxfilenamegethumanreadablesize} - -\constfunc{wxString}{GetHumanReadableSize}{\param{const wxString\& }{failmsg = "Not available"}, \param{int }{precision = 1}} - -\func{static wxString}{GetHumanReadableSize}{\param{const wxULongLong\& }{bytes}, \param{const wxString\& }{nullsize = "Not available"}, \param{int }{precision = 1}} - -Returns the size of this file (first form) or the given number of bytes (second form) -in a human-readable form. - -If the size could not be retrieved the {\tt failmsg} string is returned (first form). -If {\tt bytes} is {\tt wxInvalidSize} or zero, then {\tt nullsize} is returned (second form). - -In case of success, the returned string is a floating-point number with {\tt precision} decimal digits -followed by the size unit (B, kB, MB, GB, TB: respectively bytes, kilobytes, megabytes, gigabytes, terabytes). - - -\membersection{wxFileName::GetTempDir}\label{wxfilenamegettempdir} - -\func{static wxString}{GetTempDir}{\void} - -Returns the directory used for temporary files. - - -\membersection{wxFileName::GetTimes}\label{wxfilenamegettimes} - -\constfunc{bool}{GetTimes}{\param{wxDateTime* }{dtAccess}, \param{wxDateTime* }{dtMod}, \param{wxDateTime* }{dtCreate}} - -Returns the last access, last modification and creation times. The last access -time is updated whenever the file is read or written (or executed in the case -of Windows), last modification time is only changed when the file is written -to. Finally, the creation time is indeed the time when the file was created -under Windows and the inode change time under Unix (as it is impossible to -retrieve the real file creation time there anyhow) which can also be changed -by many operations after the file creation. - -If no filename or extension is specified in this instance of wxFileName -(and therefore \helpref{IsDir}{wxfilenameisdir} returns {\tt true}) then -this function will return the directory times of the path specified by -\helpref{GetPath}{wxfilenamegetpath}, otherwise the file times of the -file specified by \helpref{GetFullPath}{wxfilenamegetfullpath}. - -Any of the pointers may be {\tt NULL} if the corresponding time is not -needed. - -\wxheading{Return value} - -{\tt true} on success, {\tt false} if we failed to retrieve the times. - - -\membersection{wxFileName::GetVolume}\label{wxfilenamegetvolume} - -\constfunc{wxString}{GetVolume}{\void} - -Returns the string containing the volume for this file name, empty if it -doesn't have one or if the file system doesn't support volumes at all (for -example, Unix). - - -\membersection{wxFileName::GetVolumeSeparator}\label{wxfilenamegetvolumeseparator} - -\func{static wxString}{GetVolumeSeparator}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns the string separating the volume from the path for this format. - - -\membersection{wxFileName::HasExt}\label{wxfilenamehasext} - -\constfunc{bool}{HasExt}{\void} - -Returns {\tt true} if an extension is present. - - -\membersection{wxFileName::HasName}\label{wxfilenamehasname} - -\constfunc{bool}{HasName}{\void} - -Returns {\tt true} if a name is present. - - -\membersection{wxFileName::HasVolume}\label{wxfilenamehasvolume} - -\constfunc{bool}{HasVolume}{\void} - -Returns {\tt true} if a volume specifier is present. - - -\membersection{wxFileName::InsertDir}\label{wxfilenameinsertdir} - -\func{void}{InsertDir}{\param{size\_t }{before}, \param{const wxString\& }{dir}} - -Inserts a directory component before the zero-based position in the directory -list. Please see \helpref{AppendDir}{wxfilenameappenddir} for important notes. - - -\membersection{wxFileName::IsAbsolute}\label{wxfilenameisabsolute} - -\func{bool}{IsAbsolute}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns {\tt true} if this filename is absolute. - - -\membersection{wxFileName::IsCaseSensitive}\label{wxfilenameiscasesensitive} - -\func{static bool}{IsCaseSensitive}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns {\tt true} if the file names of this type are case-sensitive. - - -\membersection{wxFileName::IsDirReadable}\label{wxfilenameisdirreadable} - -\constfunc{bool}{IsDirReadable}{\void} - -\func{static bool}{IsDirReadable}{\param{const wxString\& }{dir}} - -Returns {\tt true} if the directory component of this instance (or given \arg{dir}) -is an existing directory and this process has read permissions on it. -Read permissions on a directory mean that you can list the directory contents but it -doesn't imply that you have read permissions on the files contained. - - -\membersection{wxFileName::IsDirWritable}\label{wxfilenameisdirwritable} - -\constfunc{bool}{IsDirWritable}{\void} - -\func{static bool}{IsDirWritable}{\param{const wxString\& }{dir}} - -Returns {\tt true} if the directory component of this instance (or given \arg{dir}) -is an existing directory and this process has write permissions on it. -Write permissions on a directory mean that you can create new files in the directory. - - -\membersection{wxFileName::IsFileExecutable}\label{wxfilenameisfileexecutable} - -\constfunc{bool}{IsFileExecutable}{\void} - -\func{static bool}{IsFileExecutable}{\param{const wxString\& }{file}} - -Returns {\tt true} if a file with this name exists and if this process has execute permissions on it. - - -\membersection{wxFileName::IsFileReadable}\label{wxfilenameisfilereadable} - -\constfunc{bool}{IsFileReadable}{\void} - -\func{static bool}{IsFileReadable}{\param{const wxString\& }{file}} - -Returns {\tt true} if a file with this name exists and if this process has read permissions on it. - - -\membersection{wxFileName::IsFileWritable}\label{wxfilenameisfilewritable} - -\constfunc{bool}{IsFileWritable}{\void} - -\func{static bool}{IsFileWritable}{\param{const wxString\& }{file}} - -Returns {\tt true} if a file with this name exists and if this process has write permissions on it. - - -\membersection{wxFileName::IsOk}\label{wxfilenameisok} - -\constfunc{bool}{IsOk}{\void} - -Returns {\tt true} if the filename is valid, {\tt false} if it is not -initialized yet. The assignment functions and -\helpref{Clear}{wxfilenameclear} may reset the object to the uninitialized, -invalid state (the former only do it on failure). - - -\membersection{wxFileName::IsPathSeparator}\label{wxfilenameispathseparator} - -\func{static bool}{IsPathSeparator}{\param{wxChar }{ch}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns {\tt true} if the char is a path separator for this format. - - -\membersection{wxFileName::IsRelative}\label{wxfilenameisrelative} - -\func{bool}{IsRelative}{\param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Returns {\tt true} if this filename is not absolute. - - -\membersection{wxFileName::IsDir}\label{wxfilenameisdir} - -\constfunc{bool}{IsDir}{\void} - -Returns {\tt true} if this object represents a directory, {\tt false} otherwise -(i.e. if it is a file). Note that this method doesn't test whether the -directory or file really exists, you should use -\helpref{DirExists}{wxfilenamedirexists} or -\helpref{FileExists}{wxfilenamefileexists} for this. - -\membersection{wxFileName::MacFindDefaultTypeAndCreator}\label{wxfilenamemacfinddefaulttypeandcreator} - -\func{static bool}{MacFindDefaultTypeAndCreator}{\param{const wxString\& }{ext}, \param{wxUint32* }{type}, \param{wxUint32* }{creator}} - -On Mac OS, gets the common type and creator for the given extension. - -\membersection{wxFileName::MacRegisterDefaultTypeAndCreator}\label{wxfilenamemacregisterdefaulttypeandcreator} - -\func{static void}{MacRegisterDefaultTypeAndCreator}{\param{const wxString\& }{ext}, \param{wxUint32 }{type}, \param{wxUint32 }{creator}} - -On Mac OS, registers application defined extensions and their default type and creator. - -\membersection{wxFileName::MacSetDefaultTypeAndCreator}\label{wxfilenamemacsetdefaulttypeandcreator} - -\func{bool}{MacSetDefaultTypeAndCreator}{\void} - -On Mac OS, looks up the appropriate type and creator from the registration and then sets it. - -\membersection{wxFileName::MakeAbsolute}\label{wxfilenamemakeabsolute} - -\func{bool}{MakeAbsolute}{\param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Make the file name absolute. This is a shortcut for -{\tt \helpref{Normalize}{wxfilenamenormalize}(wxPATH\_NORM\_DOTS | wxPATH\_NORM\_ABSOLUTE | wxPATH\_NORM\_TILDE, cwd, format)}. - -\wxheading{See also} - -\helpref{MakeRelativeTo}{wxfilenamemakerelativeto}, -\helpref{Normalize}{wxfilenamenormalize}, -\helpref{IsAbsolute}{wxfilenameisabsolute} - - -\membersection{wxFileName::MakeRelativeTo}\label{wxfilenamemakerelativeto} - -\func{bool}{MakeRelativeTo}{\param{const wxString\& }{pathBase = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -This function tries to put this file name in a form relative to {\it pathBase}. -In other words, it returns the file name which should be used to access this -file if the current directory were {\it pathBase}. - -\docparam{pathBase}{the directory to use as root, current directory is used by -default} - -\docparam{format}{the file name format, native by default} - -\wxheading{Return value} - -{\tt true} if the file name has been changed, {\tt false} if we failed to do -anything with it (currently this only happens if the file name is on a volume -different from the volume specified by {\it pathBase}). - -\wxheading{See also} - -\helpref{Normalize}{wxfilenamenormalize} - - -\membersection{wxFileName::Mkdir}\label{wxfilenamemkdir} - -\func{bool}{Mkdir}{\param{int }{perm = 0777}, \param{int }{flags = $0$}} - -\func{static bool}{Mkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}, \param{int }{flags = $0$}} - -\docparam{dir}{the directory to create} - -\docparam{parm}{the permissions for the newly created directory} - -\docparam{flags}{if the flags contain {\tt wxPATH\_MKDIR\_FULL} flag, -try to create each directory in the path and also don't return an error -if the target directory already exists.} - -\wxheading{Return value} - -Returns {\tt true} if the directory was successfully created, {\tt false} -otherwise. - - -\membersection{wxFileName::Normalize}\label{wxfilenamenormalize} - -\func{bool}{Normalize}{\param{int }{flags = wxPATH\_NORM\_ALL}, \param{const wxString\& }{cwd = wxEmptyString}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Normalize the path. With the default flags value, the path will be -made absolute, without any ".." and "." and all environment -variables will be expanded in it. - -\docparam{flags}{The kind of normalization to do with the file name. It can be -any or-combination of the following constants: - -\begin{twocollist} -\twocolitem{{\bf wxPATH\_NORM\_ENV\_VARS}}{replace env vars with their values} -\twocolitem{{\bf wxPATH\_NORM\_DOTS}}{squeeze all .. and . when possible; if there are too many .. and thus they cannot be all removed, \false will be returned} -\twocolitem{{\bf wxPATH\_NORM\_CASE}}{if filesystem is case insensitive, transform to lower case} -\twocolitem{{\bf wxPATH\_NORM\_ABSOLUTE}}{make the path absolute prepending \arg{cwd}} -\twocolitem{{\bf wxPATH\_NORM\_LONG}}{make the path the long form} -\twocolitem{{\bf wxPATH\_NORM\_SHORTCUT}}{resolve if it is a shortcut (Windows only)} -\twocolitem{{\bf wxPATH\_NORM\_TILDE}}{replace ~ and ~user (Unix only)} -\twocolitem{{\bf wxPATH\_NORM\_ALL}}{all of previous flags except \texttt{wxPATH\_NORM\_CASE}} -\end{twocollist} -}% - -\docparam{cwd}{If not empty, this directory will be used instead of current -working directory in normalization (see wxPATH\_NORM\_ABSOLUTE).} - -\docparam{format}{The file name format to use when processing the paths, native by default.} - - -\wxheading{Return value} - -\true if normalization was successfully or \false otherwise. - - -\membersection{wxFileName::PrependDir}\label{wxfilenameprependdir} - -\func{void}{PrependDir}{\param{const wxString\& }{dir}} - -Prepends a directory to the file path. Please see -\helpref{AppendDir}{wxfilenameappenddir} for important notes. - - - -\membersection{wxFileName::RemoveDir}\label{wxfilenameremovedir} - -\func{void}{RemoveDir}{\param{size\_t }{pos}} - -Removes the specified directory component from the path. - -\wxheading{See also} - -\helpref{GetDirCount}{wxfilenamegetdircount} - - -\membersection{wxFileName::RemoveLastDir}\label{wxfilenameremovelastdir} - -\func{void}{RemoveLastDir}{\void} - -Removes last directory component from the path. - - -\membersection{wxFileName::Rmdir}\label{wxfilenamermdir} - -\func{bool}{Rmdir}{\void} - -\func{static bool}{Rmdir}{\param{const wxString\& }{dir}} - -Deletes the specified directory from the file system. - - -\membersection{wxFileName::SameAs}\label{wxfilenamesameas} - -\constfunc{bool}{SameAs}{\param{const wxFileName\& }{filepath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Compares the filename using the rules of this platform. - - -\membersection{wxFileName::SetCwd}\label{wxfilenamesetcwd} - -\func{bool}{SetCwd}{\void} - -\func{static bool}{SetCwd}{\param{const wxString\& }{cwd}} - -Changes the current working directory. - - -\membersection{wxFileName::SetExt}\label{wxfilenamesetext} - -\func{void}{SetExt}{\param{const wxString\& }{ext}} - -Sets the extension of the file name. Setting an empty string -as the extension will remove the extension resulting in a file -name without a trailing dot, unlike a call to -\helpref{SetEmptyExt}{wxfilenamesetemptyext}. - -\wxheading{See also} - -\helpref{SetEmptyExt}{wxfilenamesetemptyext} -\helpref{ClearExt}{wxfilenameclearext} - -\membersection{wxFileName::SetEmptyExt}\label{wxfilenamesetemptyext} - -\func{void}{SetEmptyExt}{\void} - -Sets the extension of the file name to be an empty extension. -This is different from having no extension at all as the file -name will have a trailing dot after a call to this method. - -\wxheading{See also} - -\helpref{SetExt}{wxfilenamesetext} -\helpref{ClearExt}{wxfilenameclearext} - -\membersection{wxFileName::SetFullName}\label{wxfilenamesetfullname} - -\func{void}{SetFullName}{\param{const wxString\& }{fullname}} - -The full name is the file name and extension (but without the path). - - -\membersection{wxFileName::SetName}\label{wxfilenamesetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name part (without extension). - -\wxheading{See also} - -\helpref{SetFullName}{wxfilenamesetfullname} - - -\membersection{wxFileName::SetTimes}\label{wxfilenamesettimes} - -\func{bool}{SetTimes}{\param{const wxDateTime* }{dtAccess}, \param{const wxDateTime* }{dtMod}, \param{const wxDateTime* }{dtCreate}} - -Sets the file creation and last access/modification times (any of the pointers may be NULL). - - -\membersection{wxFileName::SetVolume}\label{wxfilenamesetvolume} - -\func{void}{SetVolume}{\param{const wxString\& }{volume}} - -Sets the volume specifier. - - -\membersection{wxFileName::SplitPath}\label{wxfilenamesplitpath} - -\func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{bool }{*hasExt = \texttt{NULL}}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -\func{static void}{SplitPath}{\param{const wxString\& }{fullpath}, \param{wxString* }{path}, \param{wxString* }{name}, \param{wxString* }{ext}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -This function splits a full file name into components: the volume (with the -first version) path (including the volume in the second version), the base name -and the extension. Any of the output parameters ({\it volume}, {\it path}, -{\it name} or {\it ext}) may be {\tt NULL} if you are not interested in the -value of a particular component. Also, {\it fullpath} may be empty on entry. - -On return, {\it path} contains the file path (without the trailing separator), -{\it name} contains the file name and {\it ext} contains the file extension -without leading dot. All three of them may be empty if the corresponding -component is. The old contents of the strings pointed to by these parameters -will be overwritten in any case (if the pointers are not {\tt NULL}). - -Note that for a filename ``foo.'' the extension is present, as indicated by the -trailing dot, but empty. If you need to cope with such cases, you should use -\arg{hasExt} instead of relying on testing whether \arg{ext} is empty or not. - - -\membersection{wxFileName::SplitVolume}\label{wxfilenamesplitvolume} - -\func{static void}{SplitVolume}{\param{const wxString\& }{fullpath}, \param{wxString* }{volume}, \param{wxString* }{path}, \param{wxPathFormat }{format = wxPATH\_NATIVE}} - -Splits the given \arg{fullpath} into the volume part (which may be empty) and -the pure path part, not containing any volume. - -\wxheading{See also} - -\helpref{SplitPath}{wxfilenamesplitpath} - - -\membersection{wxFileName::Touch}\label{wxfilenametouch} - -\func{bool}{Touch}{\void} - -Sets the access and modification times to the current moment. - - -\membersection{wxFileName::operator=}\label{wxfilenameoperatorassign} - -\func{wxFileName\& operator}{operator=}{\param{const wxFileName\& }{filename}} - -\func{wxFileName\& operator}{operator=}{\param{const wxString\& }{filename}} - -Assigns the new value to this filename object. - - -\membersection{wxFileName::operator==}\label{wxfilenameoperatorequal} - -\constfunc{bool operator}{operator==}{\param{const wxFileName\& }{filename}} - -\constfunc{bool operator}{operator==}{\param{const wxString\& }{filename}} - -Returns {\tt true} if the filenames are equal. The string {\it filenames} is -interpreted as a path in the native filename format. - - -\membersection{wxFileName::operator!=}\label{wxfilenameoperatornotequal} - -\constfunc{bool operator}{operator!=}{\param{const wxFileName\& }{filename}} - -\constfunc{bool operator}{operator!=}{\param{const wxString\& }{filename}} - -Returns {\tt true} if the filenames are different. The string {\it filenames} -is interpreted as a path in the native filename format. - diff --git a/docs/latex/wx/fileostr.tex b/docs/latex/wx/fileostr.tex deleted file mode 100644 index 062e680265..0000000000 --- a/docs/latex/wx/fileostr.tex +++ /dev/null @@ -1,63 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFileOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFileOutputStream}}\label{wxfileoutputstream} - -This class represents data written to a file. There are actually -two such groups of classes: this one is based on \helpref{wxFile}{wxfile} -whereas \helpref{wxFFileInputStream}{wxffileinputstream} is based in -the \helpref{wxFFile}{wxffile} class. - -Note that \helpref{SeekO()}{wxoutputstreamseeko} -can seek beyond the end of the stream (file) and will thus not return -{\it wxInvalidOffset} for that. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxBufferedOutputStream}{wxbufferedoutputstream}, \helpref{wxFileInputStream}{wxfileinputstream}, \helpref{wxFFileInputStream}{wxffileinputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileOutputStream::wxFileOutputStream}\label{wxfileoutputstreamctor} - -\func{}{wxFileOutputStream}{\param{const wxString\&}{ ofileName}} - -Creates a new file with {\it ofilename} name and initializes the stream in -write-only mode. - -\func{}{wxFileOutputStream}{\param{wxFile\&}{ file}} - -Initializes a file stream in write-only mode using the file I/O object {\it file}. - -\func{}{wxFileOutputStream}{\param{int}{ fd}} - -Initializes a file stream in write-only mode using the file descriptor {\it fd}. - -\membersection{wxFileOutputStream::\destruct{wxFileOutputStream}}\label{wxfileoutputstreamdtor} - -\func{}{\destruct{wxFileOutputStream}}{\void} - -Destructor. - -\membersection{wxFileOutputStream::IsOk}\label{wxfileoutputstreamisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the stream is initialized and ready. - diff --git a/docs/latex/wx/filepicker.tex b/docs/latex/wx/filepicker.tex deleted file mode 100644 index 687439b6ed..0000000000 --- a/docs/latex/wx/filepicker.tex +++ /dev/null @@ -1,225 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: filepicker.tex -%% Purpose: wxFilePickerCtrl and wxFileDirPickerEvent documentation -%% Author: Francesco Montorsi -%% Created: 2006-05-12 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFilePickerCtrl}}\label{wxfilepickerctrl} - -This control allows the user to select a file. The generic implementation is -a button which brings up a \helpref{wxFileDialog}{wxfiledialog} when clicked. Native implementation -may differ but this is usually a (small) widget which give access to the file-chooser -dialog. -It is only available if \texttt{wxUSE\_FILEPICKERCTRL} is set to $1$ (the default). - -\wxheading{Derived from} - -\helpref{wxPickerBase}{wxpickerbase}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxFLP\_DEFAULT\_STYLE}}{The default style: includes -wxFLP\_OPEN | wxFLP\_FILE\_MUST\_EXIST and, under wxMSW only, -wxFLP\_USE\_TEXTCTRL.} -\twocolitem{\windowstyle{wxFLP\_USE\_TEXTCTRL}}{Creates a text control to the left of the -picker button which is completely managed by the \helpref{wxFilePickerCtrl}{wxfilepickerctrl} -and which can be used by the user to specify a path (see \helpref{SetPath}{wxfilepickerctrlsetpath}). -The text control is automatically synchronized with button's value. Use functions defined in \helpref{wxPickerBase}{wxpickerbase} to modify the text control.} -\twocolitem{\windowstyle{wxFLP\_OPEN}}{Creates a picker which allows the user to select a file to open.} -\twocolitem{\windowstyle{wxFLP\_SAVE}}{Creates a picker which allows the user to select a file to save.} -\twocolitem{\windowstyle{wxFLP\_OVERWRITE\_PROMPT}}{Can be combined with wxFLP\_SAVE only: ask confirmation to the user before selecting a file.} -\twocolitem{\windowstyle{wxFLP\_FILE\_MUST\_EXIST}}{Can be combined with wxFLP\_OPEN only: the selected file must be an existing file.} -\twocolitem{\windowstyle{wxFLP\_CHANGE\_DIR}}{Change current working directory on each user file selection change.} - -NB: the wxFD\_MULTIPLE style of wxFileDialog is not supported! - -\end{twocollist} - -\wxheading{Event handling} - -To process a file picker event, use these event handler macros to direct input to member -functions that take a \helpref{wxFileDirPickerEvent}{wxfiledirpickerevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_FILEPICKER\_CHANGED(id, func)}}{The user changed the file -selected in the control either using the button or using text control (see -wxFLP\_USE\_TEXTCTRL; note that in this case the event is fired only if the -user's input is valid, e.g. an existing file path if wxFLP\_FILE\_MUST\_EXIST -was given).} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxFileDialog}{wxfiledialog},\\ -\helpref{wxFileDirPickerEvent}{wxfiledirpickerevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFilePickerCtrl::wxFilePickerCtrl}\label{wxfilepickerctrlctor} - -\func{}{wxFilePickerCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{path = wxEmptyString},\rtfsp -\param{const wxString\& }{message = ``Select a file"},\rtfsp -\param{const wxString\& }{wildcard = ``*.*"},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxFLP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``filepickerctrl"}} - -Initializes the object and calls \helpref{Create}{wxfilepickerctrlcreate} with -all the parameters. - - -\membersection{wxFilePickerCtrl::Create}\label{wxfilepickerctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{path = wxEmptyString},\rtfsp -\param{const wxString\& }{message = ``Select a file"},\rtfsp -\param{const wxString\& }{wildcard = ``*.*"},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxFLP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``filepickerctrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{path}{The initial file shown in the control. Must be a valid path to a file or the empty string.} - -\docparam{message}{The message shown to the user in the \helpref{wxFileDialog}{wxfiledialog} shown by the control.} - -\docparam{wildcard}{A wildcard which defines user-selectable files (use the same syntax as for \helpref{wxFileDialog}{wxfiledialog}'s wildcards).} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxFLP\_*} flags.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxFilePickerCtrl::GetFileName}\label{wxfilepickerctrlgetfilename} - -\constfunc{wxFileName}{GetFileName}{\void} - -Similar to \helpref{GetPath}{wxfilepickerctrlgetpath} but returns the path of -the currently selected file as a \helpref{wxFileName}{wxfilename} object. - - -\membersection{wxFilePickerCtrl::GetPath}\label{wxfilepickerctrlgetpath} - -\constfunc{wxString}{GetPath}{\void} - -Returns the absolute path of the currently selected file. - - -\membersection{wxFilePickerCtrl::SetFileName}\label{wxfilepickerctrlsetfilename} - -\func{void}{SetFileName}{\param{const wxFileName \&}{filename}} - -This method does the same thing as \helpref{SetPath}{wxfilepickerctrlsetpath} but -takes a \helpref{wxFileName}{wxfilename} object instead of a string. - - -\membersection{wxFilePickerCtrl::SetPath}\label{wxfilepickerctrlsetpath} - -\func{void}{SetPath}{\param{const wxString \&}{filename}} - -Sets the absolute path of the currently selected file. This must be a valid file if -the {\tt wxFLP\_FILE\_MUST\_EXIST} style was given. - - - -%% wxFileDirPickerEvent documentation - -\section{\class{wxFileDirPickerEvent}}\label{wxfiledirpickerevent} - -This event class is used for the events generated by -\helpref{wxFilePickerCtrl}{wxfilepickerctrl} and by \helpref{wxDirPickerCtrl}{wxdirpickerctrl}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxFilePickerCtrl or from a wxDirPickerCtrl, use one of these event handler macros to -direct input to member function that take a \helpref{wxFileDirPickerEvent}{wxfiledirpickerevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_FILEPICKER\_CHANGED(id, func)}}{Generated whenever the selected file changes.} -\twocolitem{{\bf EVT\_DIRPICKER\_CHANGED(id, func)}}{Generated whenever the selected directory changes.} -\end{twocollist}% - - -\wxheading{See also} - -\helpref{wxfilepickerctrl}{wxfilepickerctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileDirPickerEvent::wxFileDirPickerEvent}\label{wxfiledirpickereventctor} - -\func{}{wxFileDirPickerEvent}{\param{wxEventType}{ type}, \param{wxObject *}{ generator}, \param{int}{ id}, \param{const wxString&}{ path}} - -The constructor is not normally used by the user code. - - -\membersection{wxFileDirPickerEvent::GetPath}\label{wxfiledirpickereventgetpath} - -\constfunc{wxString}{GetPath}{\void} - -Retrieve the absolute path of the file/directory the user has just selected. - - -\membersection{wxFileDirPickerEvent::SetPath}\label{wxfiledirpickereventsetpath} - -\func{void}{SetPath}{\param{const wxString \&}{path}} - -Set the absolute path of the file/directory associated with the event. - diff --git a/docs/latex/wx/filestrm.tex b/docs/latex/wx/filestrm.tex deleted file mode 100644 index e197a4191e..0000000000 --- a/docs/latex/wx/filestrm.tex +++ /dev/null @@ -1,30 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFileStream -% ----------------------------------------------------------------------------- -\section{\class{wxFileStream}}\label{wxfilestream} - -\wxheading{Derived from} - -\helpref{wxFileOutputStream}{wxfileoutputstream}, \helpref{wxFileInputStream}{wxfileinputstream} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFileStream::wxFileStream}\label{wxfilestreamctor} - -\func{}{wxFileStream}{\param{const wxString\&}{ iofileName}} - -Initializes a new file stream in read-write mode using the specified -{\it iofilename} name. - diff --git a/docs/latex/wx/filesys.tex b/docs/latex/wx/filesys.tex deleted file mode 100644 index cc590f5d52..0000000000 --- a/docs/latex/wx/filesys.tex +++ /dev/null @@ -1,196 +0,0 @@ -% -% automatically generated by HelpGen from -% filesystem.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFileSystem}}\label{wxfilesystem} - -This class provides an interface for opening files on different -file systems. It can handle absolute and/or local filenames. -It uses a system of \helpref{handlers}{wxfilesystemhandler} to -provide access to user-defined virtual file systems. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See Also} - -\helpref{wxFileSystemHandler}{wxfilesystemhandler}, -\helpref{wxFSFile}{wxfsfile}, -\helpref{Overview}{fs} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFileSystem::wxFileSystem}\label{wxfilesystemwxfilesystem} - -\func{}{wxFileSystem}{\void} - -Constructor. - - -\membersection{wxFileSystem::AddHandler}\label{wxfilesystemaddhandler} - -\func{static void}{AddHandler}{\param{wxFileSystemHandler }{*handler}} - -This static function adds new handler into the list of -\helpref{handlers}{wxfilesystemhandler} which provide access to virtual FS. -Note that if two handlers for the same protocol are added, the last one added -takes precedence. - -\wxheading{Note} - -You can call: - -\begin{verbatim} -wxFileSystem::AddHandler(new My_FS_Handler); -\end{verbatim} - -This is because (a) AddHandler is a static method, and (b) the handlers -are deleted in wxFileSystem's destructor so that you don't have to -care about it. - - -\membersection{wxFileSystem::HasHandlerForPath}\label{wxfilesystemhashandlerforpath} - -\func{static bool}{HasHandlerForPath}{\param{const wxString \&}{ location}} - -This static function returns \true if there is a registered handler which can open the given -location. - - -\membersection{wxFileSystem::ChangePathTo}\label{wxfilesystemchangepathto} - -\func{void}{ChangePathTo}{\param{const wxString\& }{location}, \param{bool }{is\_dir = false}} - -Sets the current location. {\it location} parameter passed to -\helpref{OpenFile}{wxfilesystemopenfile} is relative to this path. - -{\bf Caution! } Unless {\it is\_dir} is true the {\it location} parameter -is not the directory name but the name of the file in this directory. All these -commands change the path to "dir/subdir/": - -\begin{verbatim} - ChangePathTo("dir/subdir/xh.htm"); - ChangePathTo("dir/subdir", true); - ChangePathTo("dir/subdir/", true); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{location}{the new location. Its meaning depends on the value of {\it is\_dir}} - -\docparam{is\_dir}{if true {\it location} is new directory. If false (default) -{\it location} is {\bf file in} the new directory.} - -\wxheading{Example} - -\begin{verbatim} - f = fs -> OpenFile("hello.htm"); // opens file 'hello.htm' - fs -> ChangePathTo("subdir/folder", true); - f = fs -> OpenFile("hello.htm"); // opens file 'subdir/folder/hello.htm' !! -\end{verbatim} - - -\membersection{wxFileSystem::GetPath}\label{wxfilesystemgetpath} - -\func{wxString}{GetPath}{\void} - -Returns actual path (set by \helpref{ChangePathTo}{wxfilesystemchangepathto}). - - -\membersection{wxFileSystem::FileNameToURL}\label{wxfilesystemfilenametourl} - -\func{static wxString}{FileNameToURL}{\param{wxFileName }{filename}} - -Converts filename into URL. - -\wxheading{See also} - -\helpref{wxFileSystem::URLToFileName}{wxfilesystemurltofilename}, -\helpref{wxFileName}{wxfilename} - - -\membersection{wxFileSystem::FindFileInPath}\label{wxfilesystemfindfileinpath} - -\func{bool}{FindFileInPath}{\param{wxString }{*str}, \param{const wxString\& }{path}, \param{const wxString\& }{file}} - -Looks for the file with the given name \arg{file} in a colon or semi-colon -(depending on the current platform) separated list of directories in -\arg{path}. If the file is found in any directory, returns \true and the full -path of the file in \arg{str}, otherwise returns \false and doesn't modify -\arg{str}. - -\wxheading{Parameters} - -\docparam{str}{Receives the full path of the file, must not be \NULL} - -\docparam{path}{\texttt{wxPATH\_SEP}-separated list of directories} - -\docparam{file}{the name of the file to look for} - - -\membersection{wxFileSystem::FindFirst}\label{wxfilesystemfindfirst} - -\func{wxString}{FindFirst}{\param{const wxString\& }{wildcard}, \param{int }{flags = 0}} - -Works like \helpref{wxFindFirstFile}{wxfindfirstfile}. Returns name of the first -filename (within filesystem's current path) that matches {\it wildcard}. {\it flags} may be one of -wxFILE (only files), wxDIR (only directories) or 0 (both). - - -\membersection{wxFileSystem::FindNext}\label{wxfilesystemfindnext} - -\func{wxString}{FindNext}{\void} - -Returns the next filename that matches parameters passed to \helpref{FindFirst}{wxfilesystemfindfirst}. - - -\membersection{wxFileSystem::OpenFile}\label{wxfilesystemopenfile} - -\func{wxFSFile*}{OpenFile}{\param{const wxString\& }{location}, \param{int }{flags = wxFS\_READ}} - -Opens the file and returns a pointer to a \helpref{wxFSFile}{wxfsfile} object -or NULL if failed. It first tries to open the file in relative scope -(based on value passed to ChangePathTo() method) and then as an -absolute path. Note that the user is responsible for deleting the returned -wxFSFile. - -{\it flags} can be one or more of the following bit values ored together: - -\begin{verbatim} -// Open Bit Flags -enum { - wxFS_READ = 1, // Open for reading - wxFS_SEEKABLE = 4 // Returned stream will be seekable -}; -\end{verbatim} - -A stream opened with just the default {\it wxFS\_READ} flag may -or may not be seekable depending on the underlying source. -Passing {\it wxFS\_READ | wxFS\_SEEKABLE} for {\it flags} will -back a stream that is not natively seekable with memory or a file -and return a stream that is always seekable. - - -\membersection{wxFileSystem::URLToFileName}\label{wxfilesystemurltofilename} - -\func{static wxFileName}{URLToFileName}{\param{const wxString\& }{url}} - -Converts URL into a well-formed filename. The URL must use the {\tt file} -protocol. - -\wxheading{See also} - -\helpref{wxFileSystem::FileNameToURL}{wxfilesystemfilenametourl}, -\helpref{wxFileName}{wxfilename} - diff --git a/docs/latex/wx/filesysh.tex b/docs/latex/wx/filesysh.tex deleted file mode 100644 index 5e5dde0980..0000000000 --- a/docs/latex/wx/filesysh.tex +++ /dev/null @@ -1,154 +0,0 @@ -% -% automatically generated by HelpGen from -% filesystemhandler.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFileSystemHandler}}\label{wxfilesystemhandler} - -Classes derived from wxFileSystemHandler are used -to access virtual file systems. Its public interface consists -of two methods: \helpref{CanOpen}{wxfilesystemhandlercanopen} -and \helpref{OpenFile}{wxfilesystemhandleropenfile}. -It provides additional protected methods to simplify the process -of opening the file: GetProtocol, GetLeftLocation, GetRightLocation, -GetAnchor, GetMimeTypeFromExt. - -Please have a look at \helpref{overview}{fs} if you don't know how locations -are constructed. - -Also consult \helpref{list of available handlers}{fs}. - -\perlnote{In wxPerl, you need to derive your file system handler class -from Wx::PlFileSystemHandler.} - -\wxheading{Notes} - -\begin{itemize}\itemsep=0pt -\item The handlers are shared by all instances of wxFileSystem. -\item wxHTML library provides handlers for local files and HTTP or FTP protocol -\item The {\it location} parameter passed to OpenFile or CanOpen methods -is always an {\bf absolute} path. You don't need to check the FS's current path. -\end{itemize} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxFileSystem}{wxfilesystem}, -\helpref{wxFSFile}{wxfsfile}, -\helpref{Overview}{fs} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFileSystemHandler::wxFileSystemHandler}\label{wxfilesystemhandlerwxfilesystemhandler} - -\func{}{wxFileSystemHandler}{\void} - -Constructor. - -\membersection{wxFileSystemHandler::CanOpen}\label{wxfilesystemhandlercanopen} - -\func{virtual bool}{CanOpen}{\param{const wxString\& }{location}} - -Returns true if the handler is able to open this file. This function doesn't -check whether the file exists or not, it only checks if it knows the protocol. -Example: - -\begin{verbatim} -bool MyHand::CanOpen(const wxString& location) -{ - return (GetProtocol(location) == "http"); -} -\end{verbatim} - -Must be overridden in derived handlers. - -\membersection{wxFileSystemHandler::GetAnchor}\label{wxfilesystemhandlergetanchor} - -\constfunc{wxString}{GetAnchor}{\param{const wxString\& }{location}} - -Returns the anchor if present in the location. -See \helpref{wxFSFile}{wxfsfilegetanchor} for details. - -Example: GetAnchor("index.htm\#chapter2") == "chapter2" - -{\bf Note:} the anchor is NOT part of the left location. - -\membersection{wxFileSystemHandler::GetLeftLocation}\label{wxfilesystemhandlergetleftlocation} - -\constfunc{wxString}{GetLeftLocation}{\param{const wxString\& }{location}} - -Returns the left location string extracted from {\it location}. - -Example: GetLeftLocation("file:myzipfile.zip\#zip:index.htm") == "file:myzipfile.zip" - -\membersection{wxFileSystemHandler::GetMimeTypeFromExt}\label{wxfilesystemhandlergetmimetypefromext} - -\func{wxString}{GetMimeTypeFromExt}{\param{const wxString\& }{location}} - -Returns the MIME type based on {\bf extension} of {\it location}. (While wxFSFile::GetMimeType -returns real MIME type - either extension-based or queried from HTTP.) - -Example : GetMimeTypeFromExt("index.htm") == "text/html" - -\membersection{wxFileSystemHandler::GetProtocol}\label{wxfilesystemhandlergetprotocol} - -\constfunc{wxString}{GetProtocol}{\param{const wxString\& }{location}} - -Returns the protocol string extracted from {\it location}. - -Example: GetProtocol("file:myzipfile.zip\#zip:index.htm") == "zip" - -\membersection{wxFileSystemHandler::GetRightLocation}\label{wxfilesystemhandlergetrightlocation} - -\constfunc{wxString}{GetRightLocation}{\param{const wxString\& }{location}} - -Returns the right location string extracted from {\it location}. - -Example : GetRightLocation("file:myzipfile.zip\#zip:index.htm") == "index.htm" - -\membersection{wxFileSystemHandler::FindFirst}\label{wxfilesystemhandlerfindfirst} - -\func{virtual wxString}{FindFirst}{\param{const wxString\& }{wildcard}, \param{int }{flags = 0}} - -Works like \helpref{wxFindFirstFile}{wxfindfirstfile}. Returns name of the first -filename (within filesystem's current path) that matches {\it wildcard}. {\it flags} may be one of -wxFILE (only files), wxDIR (only directories) or 0 (both). - -This method is only called if \helpref{CanOpen}{wxfilesystemhandlercanopen} returns true. - -\membersection{wxFileSystemHandler::FindNext}\label{wxfilesystemhandlerfindnext} - -\func{virtual wxString}{FindNext}{\void} - -Returns next filename that matches parameters passed to \helpref{FindFirst}{wxfilesystemfindfirst}. - -This method is only called if \helpref{CanOpen}{wxfilesystemhandlercanopen} returns true and FindFirst -returned a non-empty string. - -\membersection{wxFileSystemHandler::OpenFile}\label{wxfilesystemhandleropenfile} - -\func{virtual wxFSFile*}{OpenFile}{\param{wxFileSystem\& }{fs}, \param{const wxString\& }{location}} - -Opens the file and returns wxFSFile pointer or NULL if failed. - -Must be overridden in derived handlers. - -\wxheading{Parameters} - -\docparam{fs}{Parent FS (the FS from that OpenFile was called). See ZIP handler -for details of how to use it.} - -\docparam{location}{The {\bf absolute} location of file.} - diff --git a/docs/latex/wx/filetype.tex b/docs/latex/wx/filetype.tex deleted file mode 100644 index 58cc65b403..0000000000 --- a/docs/latex/wx/filetype.tex +++ /dev/null @@ -1,235 +0,0 @@ -\section{\class{wxFileType}}\label{wxfiletype} - -This class holds information about a given {\it file type}. File type is the same as -MIME type under Unix, but under Windows it corresponds more to an extension than -to MIME type (in fact, several extensions may correspond to a file type). This -object may be created in several different ways: the program might know the file -extension and wish to find out the corresponding MIME type or, conversely, it -might want to find the right extension for the file to which it writes the -contents of given MIME type. Depending on how it was created some fields may be -unknown so the return value of all the accessors {\bf must} be checked: {\tt false} -will be returned if the corresponding information couldn't be found. - -The objects of this class are never created by the application code but are -returned by \helpref{wxMimeTypesManager::GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype} and -\helpref{wxMimeTypesManager::GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} methods. -But it is your responsibility to delete the returned pointer when you're done -with it! - -% TODO describe MIME types better than this... -A brief reminder about what the MIME types are (see the RFC 1341 for more -information): basically, it is just a pair category/type (for example, -"text/plain") where the category is a basic indication of what a file is. -Examples of categories are "application", "image", "text", "binary", and -type is a precise definition of the document format: "plain" in the example -above means just ASCII text without any formatting, while "text/html" is the -HTML document source. - -A MIME type may have one or more associated extensions: "text/plain" will -typically correspond to the extension ".txt", but may as well be associated with -".ini" or ".conf". - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMimeTypesManager}{wxmimetypesmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{MessageParameters class}\label{wxfiletypemessageparameters} - -One of the most common usages of MIME is to encode an e-mail message. The MIME -type of the encoded message is an example of a {\it message parameter}. These -parameters are found in the message headers ("Content-XXX"). At the very least, -they must specify the MIME type and the version of MIME used, but almost always -they provide additional information about the message such as the original file -name or the charset (for the text documents). - -These parameters may be useful to the program used to open, edit, view or print -the message, so, for example, an e-mail client program will have to pass them to -this program. Because wxFileType itself can not know about these parameters, -it uses MessageParameters class to query them. The default implementation only -requires the caller to provide the file name (always used by the program to be -called - it must know which file to open) and the MIME type and supposes that -there are no other parameters. If you wish to supply additional parameters, you -must derive your own class from MessageParameters and override GetParamValue() -function, for example: - -\begin{verbatim} -// provide the message parameters for the MIME type manager -class MailMessageParameters : public wxFileType::MessageParameters -{ -public: - MailMessageParameters(const wxString& filename, - const wxString& mimetype) - : wxFileType::MessageParameters(filename, mimetype) - { - } - - virtual wxString GetParamValue(const wxString& name) const - { - // parameter names are not case-sensitive - if ( name.CmpNoCase("charset") == 0 ) - return "US-ASCII"; - else - return wxFileType::MessageParameters::GetParamValue(name); - } -}; -\end{verbatim} - -Now you only need to create an object of this class and pass it to, for example, -\rtfsp\helpref{GetOpenCommand}{wxfiletypegetopencommand} like this: - -\begin{verbatim} -wxString command; -if ( filetype->GetOpenCommand(&command, - MailMessageParameters("foo.txt", "text/plain")) ) -{ - // the full command for opening the text documents is in 'command' - // (it might be "notepad foo.txt" under Windows or "cat foo.txt" under Unix) -} -else -{ - // we don't know how to handle such files... -} -\end{verbatim} - -{\bf Windows:} As only the file name is used by the program associated with the -given extension anyhow (but no other message parameters), there is no need to -ever derive from MessageParameters class for a Windows-only program. - -\membersection{wxFileType::wxFileType}\label{wxfiletypewxfiletype} - -\func{}{wxFileType}{\void} - -The default constructor is private because you should never create objects of -this type: they are only returned by \helpref{wxMimeTypesManager}{wxmimetypesmanager} methods. - -\membersection{wxFileType::\destruct{wxFileType}}\label{wxfiletypedtor} - -\func{}{\destruct{wxFileType}}{\void} - -The destructor of this class is not virtual, so it should not be derived from. - -\membersection{wxFileType::GetMimeType}\label{wxfiletypegetmimetype} - -\func{bool}{GetMimeType}{\param{wxString*}{ mimeType}} - -If the function returns {\tt true}, the string pointed to by {\it mimeType} is filled -with full MIME type specification for this file type: for example, "text/plain". - -\membersection{wxFileType::GetMimeTypes}\label{wxfiletypegetmimetypes} - -\func{bool}{GetMimeType}{\param{wxArrayString\&}{ mimeTypes}} - -Same as \helpref{GetMimeType}{wxfiletypegetmimetype} but returns array of MIME -types. This array will contain only one item in most cases but sometimes, -notably under Unix with KDE, may contain more MIME types. This happens when -one file extension is mapped to different MIME types by KDE, mailcap and -mime.types. - -\membersection{wxFileType::GetExtensions}\label{wxfiletypegetextensions} - -\func{bool}{GetExtensions}{\param{wxArrayString\&}{ extensions}} - -If the function returns {\tt true}, the array {\it extensions} is filled -with all extensions associated with this file type: for example, it may -contain the following two elements for the MIME type "text/html" (notice the -absence of the leading dot): "html" and "htm". - -{\bf Windows:} This function is currently not implemented: there is no -(efficient) way to retrieve associated extensions from the given MIME type on -this platform, so it will only return {\tt true} if the wxFileType object was created -by \helpref{GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} -function in the first place. - -\membersection{wxFileType::GetIcon}\label{wxfiletypegeticon} - -\func{bool}{GetIcon}{\param{wxIconLocation *}{ iconLoc}} - -If the function returns {\tt true}, the {\tt iconLoc} is filled with the -location of the icon for this MIME type. A \helpref{wxIcon}{wxicon} may be -created from {\it iconLoc} later. - -{\bf Windows:} The function returns the icon shown by Explorer for the files of -the specified type. - -{\bf Mac:} This function is not implemented and always returns {\tt false}. - -{\bf Unix:} MIME manager gathers information about icons from GNOME -and KDE settings and thus GetIcon's success depends on availability -of these desktop environments. - -\membersection{wxFileType::GetDescription}\label{wxfiletypegetdescription} - -\func{bool}{GetDescription}{\param{wxString*}{ desc}} - -If the function returns {\tt true}, the string pointed to by {\it desc} is filled -with a brief description for this file type: for example, "text document" for -the "text/plain" MIME type. - -\membersection{wxFileType::GetOpenCommand}\label{wxfiletypegetopencommand} - -\func{bool}{GetOpenCommand}{\param{wxString*}{ command}, \param{MessageParameters\&}{ params}} - -\func{wxString}{GetOpenCommand}{\param{const wxString\&}{ filename}} - -With the first version of this method, if the {\tt true} is returned, the -string pointed to by {\it command} is filled with the command which must be -executed (see \helpref{wxExecute}{wxexecute}) in order to open the file of the -given type. In this case, the name of the file as well as any other parameters -is retrieved from \helpref{MessageParameters}{wxfiletypemessageparameters} -class. - -In the second case, only the filename is specified and the command to be used -to open this kind of file is returned directly. An empty string is returned to -indicate that an error occurred (typically meaning that there is no standard way -to open this kind of files). - -\membersection{wxFileType::GetPrintCommand}\label{wxfiletypegetprintcommand} - -\func{bool}{GetPrintCommand}{\param{wxString*}{ command},\param{MessageParameters\&}{ params}} - -If the function returns {\tt true}, the string pointed to by {\it command} is filled -with the command which must be executed (see \helpref{wxExecute}{wxexecute}) in -order to print the file of the given type. The name of the file is -retrieved from \helpref{MessageParameters}{wxfiletypemessageparameters} class. - -\membersection{wxFileType::ExpandCommand}\label{wxfiletypeexpandcommand} - -\func{static wxString}{ExpandCommand}{\param{const wxString\&}{ command}, \param{MessageParameters\&}{ params}} - -This function is primarily intended for GetOpenCommand and GetPrintCommand -usage but may be also used by the application directly if, for example, you want -to use some non-default command to open the file. - -The function replaces all occurrences of - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{format specification}{with} -\twocolitem{\%s}{the full file name} -\twocolitem{\%t}{the MIME type} -\twocolitem{\%\{param\}}{the value of the parameter {\it param}} -\end{twocollist} - -using the MessageParameters object you pass to it. - -If there is no '\%s' in the command string (and the string is not empty), it is -assumed that the command reads the data on stdin and so the effect is the same -as "< \%s" were appended to the string. - -Unlike all other functions of this class, there is no error return for this -function. - diff --git a/docs/latex/wx/flexsizr.tex b/docs/latex/wx/flexsizr.tex deleted file mode 100644 index 797360da0e..0000000000 --- a/docs/latex/wx/flexsizr.tex +++ /dev/null @@ -1,173 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: flexsizr.tex -%% Purpose: wxFlexGridSizer -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFlexGridSizer}}\label{wxflexgridsizer} - -A flex grid sizer is a sizer which lays out its children in a two-dimensional -table with all table fields in one row having the same -height and all fields in one column having the same width, but all -rows or all columns are not necessarily the same height or width as in -the \helpref{wxGridSizer}{wxgridsizer}. - -Since wxWidgets 2.5.0, wxFlexGridSizer can also size items equally in one -direction but unequally ("flexibly") in the other. If the sizer is only -flexible in one direction (this can be changed using -\helpref{SetFlexibleDirection}{wxflexgridsizersetflexibledirection}), -it needs to be decided how the sizer should grow in the other ("non-flexible") -direction in order to fill the available space. The -\helpref{SetNonFlexibleGrowMode}{wxflexgridsizersetnonflexiblegrowmode} method -serves this purpose. - -\wxheading{Derived from} - -\helpref{wxGridSizer}{wxgridsizer}\\ -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFlexGridSizer::wxFlexGridSizer}\label{wxflexgridsizerwxflexgridsizer} - -\func{}{wxFlexGridSizer}{\param{int }{rows}, \param{int }{cols}, \param{int }{vgap}, \param{int }{hgap}} - -\func{}{wxFlexGridSizer}{\param{int }{cols}, \param{int }{vgap = 0}, \param{int }{hgap = 0}} - -Constructor for a wxGridSizer. {\it rows} and {\it cols} determine the number of -columns and rows in the sizer - if either of the parameters is zero, it will be -calculated to form the total number of children in the sizer, thus making the -sizer grow dynamically. {\it vgap} and {\it hgap} define extra space between -all children. - - -\membersection{wxFlexGridSizer::AddGrowableCol}\label{wxflexgridsizeraddgrowablecol} - -\func{void}{AddGrowableCol}{\param{size\_t }{idx}, \param{int }{proportion = $0$}} - -Specifies that column {\it idx} (starting from zero) should be grown if -there is extra space available to the sizer. - -The {\it proportion} parameter has the same meaning as the stretch factor for -the \helpref{sizers}{sizeroverview} except that if all proportions are $0$, -then all columns are resized equally (instead of not being resized at all). - -\membersection{wxFlexGridSizer::AddGrowableRow}\label{wxflexgridsizeraddgrowablerow} - -\func{void}{AddGrowableRow}{\param{size\_t }{idx}, \param{int }{proportion = $0$}} - -Specifies that row idx (starting from zero) should be grown if there -is extra space available to the sizer. - -See \helpref{AddGrowableCol}{wxflexgridsizeraddgrowablecol} for the description -of {\it proportion} parameter. - -\membersection{wxFlexGridSizer::GetFlexibleDirection}\label{wxflexgridsizergetflexibledrection} - -\constfunc{int}{GetFlexibleDirection}{\void} - -Returns a wxOrientation value that specifies whether the sizer flexibly -resizes its columns, rows, or both (default). - -\wxheading{Return value} - -One of the following values: - -\begin{twocollist} -\twocolitem{wxVERTICAL}{Rows are flexibly sized.} -\twocolitem{wxHORIZONTAL}{Columns are flexibly sized.} -\twocolitem{wxBOTH}{Both rows and columns are flexibly sized (this is the default value).} -\end{twocollist} - -\wxheading{See also} - -\helpref{SetFlexibleDirection}{wxflexgridsizersetflexibledirection} - - -\membersection{wxFlexGridSizer::GetNonFlexibleGrowMode}\label{wxflexgridsizergetnonflexiblegrowmode} - -\constfunc{int}{GetNonFlexibleGrowMode}{\void} - -Returns the value that specifies how the sizer grows in the "non-flexible" -direction if there is one. - -\wxheading{Return value} - -One of the following values: - -\begin{twocollist} -\twocolitem{wxFLEX\_GROWMODE\_NONE}{Sizer doesn't grow in the non-flexible direction.} -\twocolitem{wxFLEX\_GROWMODE\_SPECIFIED}{Sizer honors growable columns/rows set with -\helpref{AddGrowableCol}{wxflexgridsizeraddgrowablecol} and -\helpref{AddGrowableRow}{wxflexgridsizeraddgrowablerow}. -In this case equal sizing applies to minimum sizes of columns or -rows (this is the default value).} -\twocolitem{wxFLEX\_GROWMODE\_ALL}{Sizer equally stretches all columns or rows -in the non-flexible direction, whether they are growable or not in the flexible -direction.} -\end{twocollist} - -\wxheading{See also} - -\helpref{SetFlexibleDirection}{wxflexgridsizersetflexibledirection}, -\helpref{SetNonFlexibleGrowMode}{wxflexgridsizersetnonflexiblegrowmode} - - -\membersection{wxFlexGridSizer::RemoveGrowableCol}\label{wxflexgridsizerremovegrowablecol} - -\func{void}{RemoveGrowableCol}{\param{size\_t }{idx}} - -Specifies that column idx is no longer growable. - - -\membersection{wxFlexGridSizer::RemoveGrowableRow}\label{wxflexgridsizerremovegrowablerow} - -\func{void}{RemoveGrowableRow}{\param{size\_t }{idx}} - -Specifies that row idx is no longer growable. - - -\membersection{wxFlexGridSizer::SetFlexibleDirection}\label{wxflexgridsizersetflexibledirection} - -\func{void}{SetFlexibleDirection}{\param{int }{direction}} - -Specifies whether the sizer should flexibly resize its columns, rows, or -both. Argument {\tt direction} can be {\tt wxVERTICAL}, {\tt wxHORIZONTAL} -or {\tt wxBOTH} (which is the default value). Any other value is ignored. See -\helpref{GetFlexibleDirection()}{wxflexgridsizergetflexibledrection} for the -explanation of these values. - -Note that this method does not trigger relayout. - - -\membersection{wxFlexGridSizer::SetNonFlexibleGrowMode}\label{wxflexgridsizersetnonflexiblegrowmode} - -\func{void}{SetNonFlexibleGrowMode}{\param{wxFlexSizerGrowMode }{mode}} - -Specifies how the sizer should grow in the non-flexible direction if -there is one (so -\helpref{SetFlexibleDirection()}{wxflexgridsizersetflexibledirection} must have -been called previously). Argument {\it mode} can be one of those documented in -\helpref{GetNonFlexibleGrowMode}{wxflexgridsizergetnonflexiblegrowmode}, please -see there for their explanation. - -Note that this method does not trigger relayout. - diff --git a/docs/latex/wx/fltfactory.tex b/docs/latex/wx/fltfactory.tex deleted file mode 100644 index 5f35203b98..0000000000 --- a/docs/latex/wx/fltfactory.tex +++ /dev/null @@ -1,190 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% include/wx/stream.h at 28/Oct/06 18:49:10 -% - -\section{\class{wxFilterClassFactory}}\label{wxfilterclassfactory} - -Allows the creation of filter streams to handle compression formats such -as gzip and bzip2. - -For example, given a filename you can search for a factory that will -handle it and create a stream to decompress it: - -\begin{verbatim} - factory = wxFilterClassFactory::Find(filename, wxSTREAM_FILEEXT); - if (factory) - stream = factory->NewStream(new wxFFileInputStream(filename)); -\end{verbatim} - -\helpref{Find()}{wxfilterclassfactoryfind} can also search -for a factory by MIME type, HTTP encoding or by wxFileSystem protocol. -The available factories can be enumerated -using \helpref{GetFirst() and GetNext()}{wxfilterclassfactorygetfirst}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -\begin{verbatim} -enum wxStreamProtocolType -{ - wxSTREAM_PROTOCOL, // wxFileSystem protocol (should be only one) - wxSTREAM_MIMETYPE, // MIME types the stream handles - wxSTREAM_ENCODING, // The HTTP Content-Encodings the stream handles - wxSTREAM_FILEEXT // File extensions the stream handles -}; - -\end{verbatim} - -\wxheading{See also} - -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxArchiveClassFactory}{wxarchiveclassfactory}\\ -\helpref{Archive formats such as zip}{wxarc} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFilterClassFactory::CanHandle}\label{wxfilterclassfactorycanhandle} - -\constfunc{bool}{CanHandle}{\param{const wxString\& }{protocol}, \param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -Returns true if this factory can handle the given protocol, MIME type, HTTP -encoding or file extension. - -When using wxSTREAM\_FILEEXT for the second parameter, the first parameter -can be a complete filename rather than just an extension. - - -\membersection{wxFilterClassFactory::Find}\label{wxfilterclassfactoryfind} - -\func{static const wxFilterClassFactory*}{Find}{\param{const wxString\& }{protocol}, \param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -A static member that finds a factory that can handle a given protocol, MIME -type, HTTP encoding or file extension. Returns a pointer to the class -factory if found, or NULL otherwise. It does not give away ownership of the -factory. - -When using wxSTREAM\_FILEEXT for the second parameter, the first parameter -can be a complete filename rather than just an extension. - - -\membersection{wxFilterClassFactory::GetFirst/GetNext}\label{wxfilterclassfactorygetfirst} - -\func{static const wxFilterClassFactory*}{GetFirst}{\void} - -\constfunc{const wxFilterClassFactory*}{GetNext}{\void} - -GetFirst and GetNext can be used to enumerate the available factories. - -For example, to list them: - -\begin{verbatim} - wxString list; - const wxFilterClassFactory *factory = wxFilterClassFactory::GetFirst(); - - while (factory) { - list << factory->GetProtocol() << _T("\n"); - factory = factory->GetNext(); - } - -\end{verbatim} - -GetFirst()/GetNext() return a pointer to a factory or NULL if no more -are available. They do not give away ownership of the factory. - - -\membersection{wxFilterClassFactory::GetProtocol}\label{wxfilterclassfactorygetprotocol} - -\constfunc{wxString}{GetProtocol}{\void} - -Returns the wxFileSystem protocol supported by this factory. Equivalent -to wxString(*GetProtcols()). - - -\membersection{wxFilterClassFactory::GetProtocols}\label{wxfilterclassfactorygetprotocols} - -\constfunc{const wxChar * const*}{GetProtocols}{\param{wxStreamProtocolType }{type = wxSTREAM\_PROTOCOL}} - -Returns the protocols, MIME types, HTTP encodings or file extensions -supported by this factory, as an array of null terminated strings. It does -not give away ownership of the array or strings. - -For example, to list the file extensions a factory supports: - -\begin{verbatim} - wxString list; - const wxChar *const *p; - - for (p = factory->GetProtocols(wxSTREAM_FILEEXT); *p; p++) - list << *p << _T("\n"); - -\end{verbatim} - - -\membersection{wxFilterClassFactory::NewStream}\label{wxfilterclassfactorynewstream} - -\constfunc{wxFilterInputStream*}{NewStream}{\param{wxInputStream\& }{stream}} - -\constfunc{wxFilterOutputStream*}{NewStream}{\param{wxOutputStream\& }{stream}} - -\constfunc{wxFilterInputStream*}{NewStream}{\param{wxInputStream* }{stream}} - -\constfunc{wxFilterOutputStream*}{NewStream}{\param{wxOutputStream* }{stream}} - -Create a new input or output stream to decompress or compress a given stream. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - - -\membersection{wxFilterClassFactory::PopExtension}\label{wxfilterclassfactorypopextension} - -\constfunc{wxString}{PopExtension}{\param{const wxString\& }{location}} - -Remove the file extension of {\it location} if it is one of the file -extensions handled by this factory. - - -\membersection{wxFilterClassFactory::PushFront}\label{wxfilterclassfactorypushfront} - -\func{void}{PushFront}{\void} - -Adds this class factory to the list returned -by \helpref{GetFirst()/GetNext()}{wxfilterclassfactorygetfirst}. - -It is not necessary to do this to use the filter streams. It is usually -used when implementing streams, typically the implementation will -add a static instance of its factory class. - -It can also be used to change the order of a factory already in the list, -bringing it to the front. This isn't a thread safe operation -so can't be done when other threads are running that will be using the list. - -The list does not take ownership of the factory. - - -\membersection{wxFilterClassFactory::Remove}\label{wxfilterclassfactoryremove} - -\func{void}{Remove}{\void} - -Removes this class factory from the list returned -by \helpref{GetFirst()/GetNext()}{wxfilterclassfactorygetfirst}. - -Removing from the list isn't a thread safe operation -so can't be done when other threads are running that will be using the list. - -The list does not own the factories, so removing a factory does not delete it. - diff --git a/docs/latex/wx/fltinstr.tex b/docs/latex/wx/fltinstr.tex deleted file mode 100644 index f20a3659c9..0000000000 --- a/docs/latex/wx/fltinstr.tex +++ /dev/null @@ -1,48 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFilterInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFilterInputStream}}\label{wxfilterinputstream} - -A filter stream has the capability of a normal stream but it can be placed on top -of another stream. So, for example, it can uncompress or decrypt the data which are read -from another stream and pass it to the requester. - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Note} - -The interface of this class is the same as that of wxInputStream. Only a constructor -differs and it is documented below. - -\wxheading{See also} - -\helpref{wxFilterClassFactory}{wxfilterclassfactory}\\ -\helpref{wxFilterOutputStream}{wxfilteroutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxFilterInputStream::wxFilterInputStream}\label{wxfilterinputstreamctor} - -\func{}{wxFilterInputStream}{\param{wxInputStream\&}{ stream}} - -\func{}{wxFilterInputStream}{\param{wxInputStream*}{ stream}} - -Initializes a "filter" stream. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - diff --git a/docs/latex/wx/fltoutst.tex b/docs/latex/wx/fltoutst.tex deleted file mode 100644 index eb4f76fe03..0000000000 --- a/docs/latex/wx/fltoutst.tex +++ /dev/null @@ -1,49 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxFilterOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxFilterOutputStream}}\label{wxfilteroutputstream} - -A filter stream has the capability of a normal -stream but it can be placed on top of another stream. So, for example, it -can compress, encrypt the data which are passed to it and write them to another -stream. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Note} - -The use of this class is exactly the same as of wxOutputStream. Only a constructor -differs and it is documented below. - -\wxheading{See also} - -\helpref{wxFilterClassFactory}{wxfilterclassfactory}\\ -\helpref{wxFilterInputStream}{wxfilterinputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxFilterOutputStream::wxFilterOutputStream}\label{wxfilteroutputstreamctor} - -\func{}{wxFilterOutputStream}{\param{wxOutputStream\&}{ stream}} - -\func{}{wxFilterOutputStream}{\param{wxOutputStream*}{ stream}} - -Initializes a "filter" stream. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - diff --git a/docs/latex/wx/focusevt.tex b/docs/latex/wx/focusevt.tex deleted file mode 100644 index f14592b976..0000000000 --- a/docs/latex/wx/focusevt.tex +++ /dev/null @@ -1,56 +0,0 @@ -\section{\class{wxFocusEvent}}\label{wxfocusevent} - -A focus event is sent when a window's focus changes. The window losing focus -receives a ``kill focus'' event while the window gaining it gets a ``set -focus'' one. - -Notice that the set focus event happens both when the user gives focus to the -window (whether using the mouse or keyboard) and when it is done from the -program itself using \helpref{SetFocus}{wxwindowsetfocus}. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a focus event, use these event handler macros to direct input to a member -function that takes a wxFocusEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SET\_FOCUS(func)}}{Process a wxEVT\_SET\_FOCUS event.} -\twocolitem{{\bf EVT\_KILL\_FOCUS(func)}}{Process a wxEVT\_KILL\_FOCUS event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFocusEvent::wxFocusEvent}\label{wxfocuseventctor} - -\func{}{wxFocusEvent}{\param{WXTYPE }{eventType = 0}, \param{int }{id = 0}} - -Constructor. - - -\membersection{wxFocusEvent::GetWindow}\label{wxfocuseventgetwindow} - -Returns the window associated with this event, that is the window which had the -focus before for the \texttt{wxEVT\_SET\_FOCUS} event and the window which is -going to receive focus for the \texttt{wxEVT\_KILL\_FOCUS} one. - -Warning: the window pointer may be \texttt{NULL}! - diff --git a/docs/latex/wx/font.tex b/docs/latex/wx/font.tex deleted file mode 100644 index f456343766..0000000000 --- a/docs/latex/wx/font.tex +++ /dev/null @@ -1,611 +0,0 @@ -\section{\class{wxFont}}\label{wxfont} - -A font is an object which determines the appearance of text. Fonts are -used for drawing text to a device context, and setting the appearance of -a window's text. - -This class uses \helpref{reference counting and copy-on-write}{trefcount} -internally so that assignments between two instances of this class are very -cheap. You can therefore use actual objects instead of pointers without -efficiency problems. If an instance of this class is changed it will create -its own data internally so that other instances, which previously shared the -data using the reference counting, are not affected. - -You can retrieve the current system font settings with \helpref{wxSystemSettings}{wxsystemsettings}. - -\helpref{wxSystemSettings}{wxsystemsettings} - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Constants} - -The possible values for the \arg{family} parameter of \helpref{wxFont -constructor}{wxfontctor} are (the old names are for compatibility only): - -\begin{verbatim} -enum wxFontFamily -{ - wxFONTFAMILY_DEFAULT = wxDEFAULT, - wxFONTFAMILY_DECORATIVE = wxDECORATIVE, - wxFONTFAMILY_ROMAN = wxROMAN, - wxFONTFAMILY_SCRIPT = wxSCRIPT, - wxFONTFAMILY_SWISS = wxSWISS, - wxFONTFAMILY_MODERN = wxMODERN, - wxFONTFAMILY_TELETYPE = wxTELETYPE, - wxFONTFAMILY_MAX -}; -\end{verbatim} - -The possible values for the \arg{weight} parameter are (the old names -are for compatibility only): - -\begin{verbatim} -enum wxFontWeight -{ - wxFONTWEIGHT_NORMAL = wxNORMAL, - wxFONTWEIGHT_LIGHT = wxLIGHT, - wxFONTWEIGHT_BOLD = wxBOLD, - wxFONTWEIGHT_MAX -}; -\end{verbatim} - -The font flags which can be used during the font creation are: - -\begin{verbatim} -enum -{ - // no special flags: font with default weight/slant/anti-aliasing - wxFONTFLAG_DEFAULT = 0, - - // slant flags (default: no slant) - wxFONTFLAG_ITALIC = 1 << 0, - wxFONTFLAG_SLANT = 1 << 1, - - // weight flags (default: medium) - wxFONTFLAG_LIGHT = 1 << 2, - wxFONTFLAG_BOLD = 1 << 3, - - // anti-aliasing flag: force on or off (default: the current system default) - wxFONTFLAG_ANTIALIASED = 1 << 4, - wxFONTFLAG_NOT_ANTIALIASED = 1 << 5, - - // underlined/strikethrough flags (default: no lines) - wxFONTFLAG_UNDERLINED = 1 << 6, - wxFONTFLAG_STRIKETHROUGH = 1 << 7, -}; -\end{verbatim} - -The known font encodings are: - -\begin{verbatim} -enum wxFontEncoding -{ - wxFONTENCODING_SYSTEM = -1, // system default - wxFONTENCODING_DEFAULT, // current default encoding - - // ISO8859 standard defines a number of single-byte charsets - wxFONTENCODING_ISO8859_1, // West European (Latin1) - wxFONTENCODING_ISO8859_2, // Central and East European (Latin2) - wxFONTENCODING_ISO8859_3, // Esperanto (Latin3) - wxFONTENCODING_ISO8859_4, // Baltic (old) (Latin4) - wxFONTENCODING_ISO8859_5, // Cyrillic - wxFONTENCODING_ISO8859_6, // Arabic - wxFONTENCODING_ISO8859_7, // Greek - wxFONTENCODING_ISO8859_8, // Hebrew - wxFONTENCODING_ISO8859_9, // Turkish (Latin5) - wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6) - wxFONTENCODING_ISO8859_11, // Thai - wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it - // here anyhow to make all ISO8859 - // consecutive numbers - wxFONTENCODING_ISO8859_13, // Baltic (Latin7) - wxFONTENCODING_ISO8859_14, // Latin8 - wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro) - wxFONTENCODING_ISO8859_MAX, - - // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html) - wxFONTENCODING_KOI8, // we don't support any of KOI8 variants - wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866 - wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria - - // what would we do without Microsoft? They have their own encodings - // for DOS - wxFONTENCODING_CP437, // original MS-DOS codepage - wxFONTENCODING_CP850, // CP437 merged with Latin1 - wxFONTENCODING_CP852, // CP437 merged with Latin2 - wxFONTENCODING_CP855, // another cyrillic encoding - wxFONTENCODING_CP866, // and another one - // and for Windows - wxFONTENCODING_CP874, // WinThai - wxFONTENCODING_CP1250, // WinLatin2 - wxFONTENCODING_CP1251, // WinCyrillic - wxFONTENCODING_CP1252, // WinLatin1 - wxFONTENCODING_CP1253, // WinGreek (8859-7) - wxFONTENCODING_CP1254, // WinTurkish - wxFONTENCODING_CP1255, // WinHebrew - wxFONTENCODING_CP1256, // WinArabic - wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7) - wxFONTENCODING_CP12_MAX, - - wxFONTENCODING_UTF7, // UTF-7 Unicode encoding - wxFONTENCODING_UTF8, // UTF-8 Unicode encoding - - wxFONTENCODING_UNICODE, // Unicode - currently used only by - // wxEncodingConverter class - - wxFONTENCODING_MAX -}; -\end{verbatim} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullFont} - -Pointers: - -{\bf wxNORMAL\_FONT\\ -wxSMALL\_FONT\\ -wxITALIC\_FONT\\ -wxSWISS\_FONT} - -\wxheading{See also} - -\helpref{wxFont overview}{wxfontoverview}, \helpref{wxDC::SetFont}{wxdcsetfont},\rtfsp -\helpref{wxDC::DrawText}{wxdcdrawtext}, \helpref{wxDC::GetTextExtent}{wxdcgettextextent},\rtfsp -\helpref{wxFontDialog}{wxfontdialog}, \helpref{wxSystemSettings}{wxsystemsettings} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFont::wxFont}\label{wxfontctor} - -\func{}{wxFont}{\void} - -Default constructor. - -\func{}{wxFont}{\param{const wxFont\&}{ font}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxFont}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight}, - \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -\func{}{wxFont}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight}, - \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -Creates a font object with the specified attributes. - -\wxheading{Parameters} - -\docparam{pointSize}{Size in points.} - -\docparam{pixelSize}{Size in pixels: this is directly supported only under MSW -currently where this constructor can be used directly, under other platforms a -font with the closest size to the given one is found using binary search and -the static \helpref{New}{wxfontnew} method must be used.} - -\docparam{family}{Font family, a generic way of referring to fonts without specifying actual facename. One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFONTFAMILY\_DEFAULT}}{Chooses a default font.} -\twocolitem{{\bf wxFONTFAMILY\_DECORATIVE}}{A decorative font.} -\twocolitem{{\bf wxFONTFAMILY\_ROMAN}}{A formal, serif font.} -\twocolitem{{\bf wxFONTFAMILY\_SCRIPT}}{A handwriting font.} -\twocolitem{{\bf wxFONTFAMILY\_SWISS}}{A sans-serif font.} -\twocolitem{{\bf wxFONTFAMILY\_MODERN}}{A fixed pitch font.} -\twocolitem{{\bf wxFONTFAMILY\_TELETYPE}}{A teletype font.} -\end{twocollist}} - -\docparam{style}{One of {\bf wxFONTSTYLE\_NORMAL}, {\bf wxFONTSTYLE\_SLANT} and {\bf wxFONTSTYLE\_ITALIC}.} - -\docparam{weight}{Font weight, sometimes also referred to as font boldness. One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFONTWEIGHT\_NORMAL}}{Normal font.} -\twocolitem{{\bf wxFONTWEIGHT\_LIGHT}}{Light font.} -\twocolitem{{\bf wxFONTWEIGHT\_BOLD}}{Bold font.} -\end{twocollist}} - -\docparam{underline}{The value can be true or false. At present this has an effect on Windows and Motif 2.x only.} - -\docparam{faceName}{An optional string specifying the actual typeface to be used. If it is an empty string, -a default typeface will be chosen based on the family.} - -\docparam{encoding}{An encoding which may be one of -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFONTENCODING\_SYSTEM}}{Default system encoding.} -\twocolitem{{\bf wxFONTENCODING\_DEFAULT}}{Default application encoding: this -is the encoding set by calls to -\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} and which may be set to, -say, KOI8 to create all fonts by default with KOI8 encoding. Initially, the -default application encoding is the same as default system encoding.} -\twocolitem{{\bf wxFONTENCODING\_ISO8859\_1...15}}{ISO8859 encodings.} -\twocolitem{{\bf wxFONTENCODING\_KOI8}}{The standard Russian encoding for Internet.} -\twocolitem{{\bf wxFONTENCODING\_CP1250...1252}}{Windows encodings similar to ISO8859 (but not identical).} -\end{twocollist} -If the specified encoding isn't available, no font is created -(see also \helpref{font encoding overview}{wxfontencodingoverview}). -} - -\wxheading{Remarks} - -If the desired font does not exist, the closest match will be chosen. -Under Windows, only scalable TrueType fonts are used. - -See also \helpref{wxDC::SetFont}{wxdcsetfont}, \helpref{wxDC::DrawText}{wxdcdrawtext} -and \helpref{wxDC::GetTextExtent}{wxdcgettextextent}. - - -\membersection{wxFont::\destruct{wxFont}}\label{wxfontdtor} - -\func{}{\destruct{wxFont}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\wxheading{Remarks} - -Although all remaining fonts are deleted when the application exits, -the application should try to clean up all fonts itself. This is because -wxWidgets cannot know if a pointer to the font object is stored in an -application data structure, and there is a risk of double deletion. - - -\membersection{wxFont::IsFixedWidth}\label{wxfontisfixedwidth} - -\constfunc{bool}{IsFixedWidth}{\void} - -Returns {\tt true} if the font is a fixed width (or monospaced) font, -{\tt false} if it is a proportional one or font is invalid. - - -\membersection{wxFont::GetDefaultEncoding}\label{wxfontgetdefaultencoding} - -\func{static wxFontEncoding}{GetDefaultEncoding}{\void} - -Returns the current application's default encoding. - -\wxheading{See also} - -\helpref{Font encoding overview}{wxfontencodingoverview}, -\helpref{SetDefaultEncoding}{wxfontsetdefaultencoding} - - -\membersection{wxFont::GetFaceName}\label{wxfontgetfacename} - -\constfunc{wxString}{GetFaceName}{\void} - -Returns the typeface name associated with the font, or the empty string if there is no -typeface information. - -\wxheading{See also} - -\helpref{wxFont::SetFaceName}{wxfontsetfacename} - - -\membersection{wxFont::GetFamily}\label{wxfontgetfamily} - -\constfunc{wxFontFamily}{GetFamily}{\void} - -Gets the font family. See \helpref{wxFont::SetFamily}{wxfontsetfamily} for a list of valid -family identifiers. - -\wxheading{See also} - -\helpref{wxFont::SetFamily}{wxfontsetfamily} - - -\membersection{wxFont::GetNativeFontInfoDesc}\label{wxfontgetnativefontinfodesc} - -\constfunc{wxString}{GetNativeFontInfoDesc}{\void} - -Returns the platform-dependent string completely describing this font. -Returned string is always non-empty. -Note that the returned string is not meant to be shown or edited by the user: a typical -use of this function is for serializing in string-form a wxFont object. - -\wxheading{See also} - -\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo},\helpref{wxFont::GetNativeFontInfoUserDesc}{wxfontgetnativefontinfouserdesc} - - -\membersection{wxFont::GetNativeFontInfoUserDesc}\label{wxfontgetnativefontinfouserdesc} - -\func{wxString}{GetNativeFontInfoUserDesc}{\void} - -Returns a user-friendly string for this font object. Returned string is always non-empty. -Some examples of the formats of returned strings (which are platform-dependent) are in \helpref{SetNativeFontInfoUserDesc}{wxfontsetnativefontinfouserdesc}. - -\wxheading{See also} - -\helpref{wxFont::GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc} - - -\membersection{wxFont::GetPointSize}\label{wxfontgetpointsize} - -\constfunc{int}{GetPointSize}{\void} - -Gets the point size. - -\wxheading{See also} - -\helpref{wxFont::SetPointSize}{wxfontsetpointsize} - - -\membersection{wxFont::GetStyle}\label{wxfontgetstyle} - -\constfunc{int}{GetStyle}{\void} - -Gets the font style. See \helpref{wxFont::wxFont}{wxfontctor} for a list of valid -styles. - -\wxheading{See also} - -\helpref{wxFont::SetStyle}{wxfontsetstyle} - - -\membersection{wxFont::GetUnderlined}\label{wxfontgetunderlined} - -\constfunc{bool}{GetUnderlined}{\void} - -Returns true if the font is underlined, false otherwise. - -\wxheading{See also} - -\helpref{wxFont::SetUnderlined}{wxfontsetunderlined} - - -\membersection{wxFont::GetWeight}\label{wxfontgetweight} - -\constfunc{wxFontWeight}{GetWeight}{\void} - -Gets the font weight. See \helpref{wxFont::wxFont}{wxfontctor} for a list of valid -weight identifiers. - -\wxheading{See also} - -\helpref{wxFont::SetWeight}{wxfontsetweight} - - -\membersection{wxFont::New}\label{wxfontnew} - -\func{static wxFont *}{New}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight}, - \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -\func{static wxFont *}{New}{\param{int}{ pointSize}, \param{wxFontFamily}{ family}, - \param{int}{ flags = \texttt{wxFONTFLAG\_DEFAULT}}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -\func{static wxFont *}{New}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family}, \param{int}{ style}, \param{wxFontWeight}{ weight}, - \param{const bool}{ underline = false}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -\func{static wxFont *}{New}{\param{const wxSize\&}{ pixelSize}, \param{wxFontFamily}{ family}, - \param{int}{ flags = \texttt{wxFONTFLAG\_DEFAULT}}, \param{const wxString\& }{faceName = ""}, - \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -These functions take the same parameters as \helpref{wxFont -constructor}{wxfontctor} and return a new font object allocated on the heap. - -Using \texttt{New()} is currently the only way to directly create a font with -the given size in pixels on platforms other than wxMSW. - - -\membersection{wxFont::IsOk}\label{wxfontisok} - -\constfunc{bool}{IsOk}{\void} - -Returns {\tt true} if this object is a valid font, {\tt false} otherwise. - - -\membersection{wxFont::SetDefaultEncoding}\label{wxfontsetdefaultencoding} - -\func{static void}{SetDefaultEncoding}{\param{wxFontEncoding }{encoding}} - -Sets the default font encoding. - -\wxheading{See also} - -\helpref{Font encoding overview}{wxfontencodingoverview}, -\helpref{GetDefaultEncoding}{wxfontgetdefaultencoding} - - -\membersection{wxFont::SetFaceName}\label{wxfontsetfacename} - -\func{bool}{SetFaceName}{\param{const wxString\& }{faceName}} - -Sets the facename for the font. -Returns \true if the given face name exists; \false otherwise. - -\wxheading{Parameters} - -\docparam{faceName}{A valid facename, which should be on the end-user's system.} - -\wxheading{Remarks} - -To avoid portability problems, don't rely on a specific face, but specify the font family -instead or as well. A suitable font will be found on the end-user's system. If both the -family and the facename are specified, wxWidgets will first search for the specific face, -and then for a font belonging to the same family. - -\wxheading{See also} - -\helpref{wxFont::GetFaceName}{wxfontgetfacename}, \helpref{wxFont::SetFamily}{wxfontsetfamily} - - -\membersection{wxFont::SetFamily}\label{wxfontsetfamily} - -\func{void}{SetFamily}{\param{wxFontFamily}{ family}} - -Sets the font family. - -\wxheading{Parameters} - -\docparam{family}{One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFONTFAMILY\_DEFAULT}}{Chooses a default font.} -\twocolitem{{\bf wxFONTFAMILY\_DECORATIVE}}{A decorative font.} -\twocolitem{{\bf wxFONTFAMILY\_ROMAN}}{A formal, serif font.} -\twocolitem{{\bf wxFONTFAMILY\_SCRIPT}}{A handwriting font.} -\twocolitem{{\bf wxFONTFAMILY\_SWISS}}{A sans-serif font.} -\twocolitem{{\bf wxFONTFAMILY\_MODERN}}{A fixed pitch font.} -\twocolitem{{\bf wxFONTFAMILY\_TELETYPE}}{A teletype font.} -\end{twocollist}} - -\wxheading{See also} - -\helpref{wxFont::GetFamily}{wxfontgetfamily}, \helpref{wxFont::SetFaceName}{wxfontsetfacename} - - -\membersection{wxFont::SetNativeFontInfo}\label{wxfontsetnativefontinfo} - -\func{bool}{SetNativeFontInfo}{\param{const wxString\& }{info}} - -Creates the font corresponding to the given native font description string and returns \true if -the creation was successful. -which must have been previously returned by -\helpref{GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc}. If the string is -invalid, font is unchanged. This function is typically used for de-serializing a wxFont -object previously saved in a string-form. - -\wxheading{See also} - -\helpref{wxFont::SetNativeFontInfoUserDesc}{wxfontsetnativefontinfouserdesc} - - -\membersection{wxFont::SetNativeFontInfoUserDesc}\label{wxfontsetnativefontinfouserdesc} - -\func{bool}{SetNativeFontInfoUserDesc}{\param{const wxString\& }{info}} - -Creates the font corresponding to the given native font description string and returns \true if -the creation was successful. -Unlike \helpref{SetNativeFontInfo}{wxfontsetnativefontinfo}, this function accepts -strings which are user-friendly. -Examples of accepted string formats are: - -\twocolwidtha{15cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{Generic syntax}{Example} -\twocolitem{on {\bf wxGTK2}: {\tt $[FACE-NAME]$ $[bold]$ $[oblique|italic]$ $[POINTSIZE]$}}{Monospace bold 10} -\twocolitem{on {\bf wxMSW}: {\tt $[light|bold]$ $[italic]$ $[FACE-NAME]$ $[POINTSIZE]$ $[ENCODING]$}}{Tahoma 10 WINDOWS-1252} -\twocolitem{on {\bf wxMac}: FIXME}{FIXME} -\end{twocollist} - -For more detailed information about the allowed syntaxes you can look at the documentation of the native API used for font-rendering (e.g. \urlref{pango\_font\_description\_from\_string}{http://developer.gnome.org/doc/API/2.0/pango/pango-Fonts.html\#pango-font-description-from-string}). - -\wxheading{See also} - -\helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo} - - - -\membersection{wxFont::SetPointSize}\label{wxfontsetpointsize} - -\func{void}{SetPointSize}{\param{int}{ pointSize}} - -Sets the point size. - -\wxheading{Parameters} - -\docparam{pointSize}{Size in points.} - -\wxheading{See also} - -\helpref{wxFont::GetPointSize}{wxfontgetpointsize} - - -\membersection{wxFont::SetStyle}\label{wxfontsetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Sets the font style. - -\wxheading{Parameters} - -\docparam{style}{One of {\bf wxFONTSTYLE\_NORMAL}, {\bf wxFONTSTYLE\_SLANT} and {\bf wxFONTSTYLE\_ITALIC}.} - -\wxheading{See also} - -\helpref{wxFont::GetStyle}{wxfontgetstyle} - - -\membersection{wxFont::SetUnderlined}\label{wxfontsetunderlined} - -\func{void}{SetUnderlined}{\param{const bool}{ underlined}} - -Sets underlining. - -\wxheading{Parameters} - -\docparam{underlining}{true to underline, false otherwise.} - -\wxheading{See also} - -\helpref{wxFont::GetUnderlined}{wxfontgetunderlined} - - -\membersection{wxFont::SetWeight}\label{wxfontsetweight} - -\func{void}{SetWeight}{\param{wxFontWeight}{ weight}} - -Sets the font weight. - -\wxheading{Parameters} - -\docparam{weight}{One of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFONTWEIGHT\_NORMAL}}{Normal font.} -\twocolitem{{\bf wxFONTWEIGHT\_LIGHT}}{Light font.} -\twocolitem{{\bf wxFONTWEIGHT\_BOLD}}{Bold font.} -\end{twocollist}} - -\wxheading{See also} - -\helpref{wxFont::GetWeight}{wxfontgetweight} - - -\membersection{wxFont::operator $=$}\label{wxfontassignment} - -\func{wxFont\&}{operator $=$}{\param{const wxFont\& }{font}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - - -\membersection{wxFont::operator $==$}\label{wxfontequals} - -\func{bool}{operator $==$}{\param{const wxFont\& }{font}} - -Equality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - - -\membersection{wxFont::operator $!=$}\label{wxfontnotequals} - -\func{bool}{operator $!=$}{\param{const wxFont\& }{font}} - -Inequality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - diff --git a/docs/latex/wx/fontdlg.tex b/docs/latex/wx/fontdlg.tex deleted file mode 100644 index 2dd8be45c1..0000000000 --- a/docs/latex/wx/fontdlg.tex +++ /dev/null @@ -1,210 +0,0 @@ -\section{\class{wxFontData}}\label{wxfontdata} - -\overview{wxFontDialog overview}{wxfontdialogoverview} - -This class holds a variety of information related to font dialogs. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Overview}{wxfontdialogoverview}, \helpref{wxFont}{wxfont}, \helpref{wxFontDialog}{wxfontdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontData::wxFontData}\label{wxfontdatactor} - -\func{}{wxFontData}{\void} - -Constructor. Initializes {\it fontColour} to black, {\it showHelp} to black, -\rtfsp{\it allowSymbols} to true, {\it enableEffects} to true, -\rtfsp{\it minSize} to 0 and {\it maxSize} to 0. - -\membersection{wxFontData::EnableEffects}\label{wxfontdataenableeffects} - -\func{void}{EnableEffects}{\param{bool}{ enable}} - -Enables or disables `effects' under MS Windows or generic only. This refers to the -controls for manipulating colour, strikeout and underline properties. - -The default value is true. - -\membersection{wxFontData::GetAllowSymbols}\label{wxfontdatagetallowsymbols} - -\func{bool}{GetAllowSymbols}{\void} - -Under MS Windows, returns a flag determining whether symbol fonts can be selected. Has no -effect on other platforms. - -The default value is true. - -\membersection{wxFontData::GetColour}\label{wxfontdatagetcolour} - -\func{wxColour\&}{GetColour}{\void} - -Gets the colour associated with the font dialog. - -The default value is black. - -\membersection{wxFontData::GetChosenFont}\label{wxfontdatagetchosenfont} - -\func{wxFont}{GetChosenFont}{\void} - -Gets the font chosen by the user if the user pressed OK (wxFontDialog::ShowModal returned wxID\_OK). - -\membersection{wxFontData::GetEnableEffects}\label{wxfontdatagetenableeffects} - -\func{bool}{GetEnableEffects}{\void} - -Determines whether `effects' are enabled under Windows. This refers to the -controls for manipulating colour, strikeout and underline properties. - -The default value is true. - -\membersection{wxFontData::GetInitialFont}\label{wxfontdatagetinitialfont} - -\func{wxFont}{GetInitialFont}{\void} - -Gets the font that will be initially used by the font dialog. This should have -previously been set by the application. - -\membersection{wxFontData::GetShowHelp}\label{wxfontdatagetshowhelp} - -\func{bool}{GetShowHelp}{\void} - -Returns true if the Help button will be shown (Windows only). - -The default value is false. - -\membersection{wxFontData::SetAllowSymbols}\label{wxfontdatasetallowsymbols} - -\func{void}{SetAllowSymbols}{\param{bool}{ allowSymbols}} - -Under MS Windows, determines whether symbol fonts can be selected. Has no -effect on other platforms. - -The default value is true. - -\membersection{wxFontData::SetChosenFont}\label{wxfontdatasetchosenfont} - -\func{void}{SetChosenFont}{\param{const wxFont\& }{font}} - -Sets the font that will be returned to the user (for internal use only). - -\membersection{wxFontData::SetColour}\label{wxfontdatasetcolour} - -\func{void}{SetColour}{\param{const wxColour\&}{ colour}} - -Sets the colour that will be used for the font foreground colour. - -The default colour is black. - -\membersection{wxFontData::SetInitialFont}\label{wxfontdatasetinitialfont} - -\func{void}{SetInitialFont}{\param{const wxFont\&}{font}} - -Sets the font that will be initially used by the font dialog. - -\membersection{wxFontData::SetRange}\label{wxfontdatasetrange} - -\func{void}{SetRange}{\param{int}{ min}, \param{int}{ max}} - -Sets the valid range for the font point size (Windows only). - -The default is 0, 0 (unrestricted range). - -\membersection{wxFontData::SetShowHelp}\label{wxfontdatasetshowhelp} - -\func{void}{SetShowHelp}{\param{bool}{ showHelp}} - -Determines whether the Help button will be displayed in the font dialog (Windows only). - -The default value is false. - -\membersection{wxFontData::operator $=$}\label{wxfontdataassign} - -\func{void}{operator $=$}{\param{const wxFontData\&}{ data}} - -Assignment operator for the font data. - -\section{\class{wxFontDialog}}\label{wxfontdialog} - -This class represents the font chooser dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Overview}{wxfontdialogoverview},\\ -\helpref{wxFontData}{wxfontdata},\\ -\helpref{wxGetFontFromUser}{wxgetfontfromuser} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontDialog::wxFontDialog}\label{wxfontdialogctor} - -\func{}{wxFontDialog}{\void} - -\func{}{wxFontDialog}{\param{wxWindow* }{parent}} - -\func{}{wxFontDialog}{\param{wxWindow* }{parent}, \param{const wxFontData\& }{data}} - -Constructor. Pass a parent window, and optionally the -\helpref{font data}{wxfontdata} object to be used to initialize the dialog -controls. If the default constructor is used, -\helpref{Create()}{wxfontdialogcreate} must be called before the dialog can be -shown. - -\membersection{wxFontDialog::Create}\label{wxfontdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxFontData\& }{data}} - -Creates the dialog if it the wxFontDialog object had been initialized using the -default constructor. Returns \true on success and \false if an error -occurred. - -\membersection{wxFontDialog::GetFontData}\label{wxfontdialoggetfontdata} - -\constfunc{const wxFontData\&}{GetFontData}{\void} - -\func{wxFontData\&}{GetFontData}{\void} - -Returns the \helpref{font data}{wxfontdata} associated with the font dialog. - -\membersection{wxFontDialog::ShowModal}\label{wxfontdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning {\tt wxID\_OK} if the user pressed Ok, and -{\tt wxID\_CANCEL} otherwise. - -If the user cancels the dialog (ShowModal returns {\tt wxID\_CANCEL}), no font -will be created. If the user presses OK, a new wxFont will be created and -stored in the font dialog's wxFontData structure. - diff --git a/docs/latex/wx/fontenum.tex b/docs/latex/wx/fontenum.tex deleted file mode 100644 index 3605bf7e7c..0000000000 --- a/docs/latex/wx/fontenum.tex +++ /dev/null @@ -1,120 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: fontenum.tex -%% Purpose: wxFontEnumerator documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 03.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFontEnumerator}}\label{wxfontenumerator} - -wxFontEnumerator enumerates either all available fonts on the system or only -the ones with given attributes - either only fixed-width (suited for use in -programs such as terminal emulators and the like) or the fonts available in -the given \helpref{encoding}{wxfontencodingoverview}. - -To do this, you just have to call one of EnumerateXXX() functions - either -\helpref{EnumerateFacenames}{wxfontenumeratorenumeratefacenames} or -\helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings} and the -corresponding callback (\helpref{OnFacename}{wxfontenumeratoronfacename} or -\helpref{OnFontEncoding}{wxfontenumeratoronfontencoding}) will be called -repeatedly until either all fonts satisfying the specified criteria are -exhausted or the callback returns false. - -\wxheading{Virtual functions to override} - -Either \helpref{OnFacename}{wxfontenumeratoronfacename} or -\helpref{OnFontEncoding}{wxfontenumeratoronfontencoding} should be overridden -depending on whether you plan to call -\helpref{EnumerateFacenames}{wxfontenumeratorenumeratefacenames} or -\helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings}. Of course, -if you call both of them, you should override both functions. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Font encoding overview}{wxfontencodingoverview}, -\helpref{Font sample}{samplefont}, -\helpref{wxFont}{wxfont}, -\helpref{wxFontMapper}{wxfontmapper} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontEnumerator::EnumerateFacenames}\label{wxfontenumeratorenumeratefacenames} - -\func{virtual bool}{EnumerateFacenames}{ - \param{wxFontEncoding }{encoding = wxFONTENCODING\_SYSTEM}, - \param{bool }{fixedWidthOnly = false}} - -Call \helpref{OnFacename}{wxfontenumeratoronfacename} for each font which -supports given encoding (only if it is not wxFONTENCODING\_SYSTEM) and is of -fixed width (if \arg{fixedWidthOnly} is true). - -Calling this function with default arguments will result in enumerating all -fonts available on the system. - - -\membersection{wxFontEnumerator::EnumerateEncodings}\label{wxfontenumeratorenumerateencodings} - -\func{virtual bool}{EnumerateEncodings}{\param{const wxString\& }{font = ""}} - -Call \helpref{OnFontEncoding}{wxfontenumeratoronfontencoding} for each -encoding supported by the given font - or for each encoding supported by at -least some font if {\it font} is not specified. - - -\membersection{wxFontEnumerator::GetEncodings}\label{wxfontenumeratorgetencodings} - -\func{static wxArrayString}{GetEncodings}{\param{const wxString\&}{ facename = ""}} - -Return array of strings containing all encodings found by -\helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings}. - - -\membersection{wxFontEnumerator::GetFacenames}\label{wxfontenumeratorgetfacenames} - -\func{static wxArrayString}{GetFacenames}{\param{wxFontEncoding }{encoding = wxFONTENCODING\_SYSTEM}, \param{bool }{fixedWidthOnly = false}} - -Return array of strings containing all facenames found by -\helpref{EnumerateFacenames}{wxfontenumeratorenumeratefacenames}. - - -\membersection{wxFontEnumerator::IsValidFacename}\label{wxfontenumeratorisvalidfacename} - -\func{static bool}{IsValidFacename}{\param{const wxString \&}{ facename}} - -Returns \true if the given string is valid face name, i.e. it's the face name of an installed -font and it can safely be used with \helpref{wxFont::SetFaceName}{wxfontsetfacename}. - - -\membersection{wxFontEnumerator::OnFacename}\label{wxfontenumeratoronfacename} - -\func{virtual bool}{OnFacename}{\param{const wxString\& }{font}} - -Called by \helpref{EnumerateFacenames}{wxfontenumeratorenumeratefacenames} for -each match. Return true to continue enumeration or false to stop it. - - -\membersection{wxFontEnumerator::OnFontEncoding}\label{wxfontenumeratoronfontencoding} - -\func{virtual bool}{OnFontEncoding}{\param{const wxString\& }{font}, \param{const wxString\& }{encoding}} - -Called by \helpref{EnumerateEncodings}{wxfontenumeratorenumerateencodings} for -each match. Return true to continue enumeration or false to stop it. - diff --git a/docs/latex/wx/fontlist.tex b/docs/latex/wx/fontlist.tex deleted file mode 100644 index 48c7d127f9..0000000000 --- a/docs/latex/wx/fontlist.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxFontList}}\label{wxfontlist} - -A font list is a list containing all fonts which have been created. There -is only one instance of this class: {\bf wxTheFontList}. Use this object to search -for a previously created font of the desired type and create it if not already found. -In some windowing systems, the font may be a scarce resource, so it is best to -reuse old resources if possible. When an application finishes, all fonts will be -deleted and their resources freed, eliminating the possibility of `memory leaks'. - -\wxheading{Derived from} - -\helpref{wxList}{wxlist} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxFont}{wxfont} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontList::wxFontList}\label{wxfontlistctor} - -\func{}{wxFontList}{\void} - -Constructor. The application should not construct its own font list: -use the object pointer {\bf wxTheFontList}. - -\membersection{wxFontList::FindOrCreateFont}\label{findorcreatefont} - -\func{wxFont *}{FindOrCreateFont}{\param{int}{ point\_size}, \param{int}{ family}, \param{int}{ style}, \param{int}{ weight}, \param{bool}{ underline = false}, - \param{const wxString\& }{facename = NULL}, \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}{}} - -Finds a font of the given specification, or creates one and adds it to the list. See the \helpref{wxFont constructor}{wxfontctor} for -details of the arguments. - diff --git a/docs/latex/wx/fontmap.tex b/docs/latex/wx/fontmap.tex deleted file mode 100644 index 1ab2f60666..0000000000 --- a/docs/latex/wx/fontmap.tex +++ /dev/null @@ -1,248 +0,0 @@ -% -% automatically generated by HelpGen from -% fontmap.h at 10/Mar/00 23:54:16 -% - -\section{\class{wxFontMapper}}\label{wxfontmapper} - -wxFontMapper manages user-definable correspondence between logical font -names and the fonts present on the machine. - -The default implementations of all functions will ask the user if they are -not capable of finding the answer themselves and store the answer in a -config file (configurable via SetConfigXXX functions). This behaviour may -be disabled by giving the value of false to "interactive" parameter. - -However, the functions will always consult the config file to allow the -user-defined values override the default logic and there is no way to -disable this - which shouldn't be ever needed because if "interactive" was -never true, the config file is never created anyhow. - -In case everything else fails (i.e. there is no record in config file -and "interactive" is false or user denied to choose any replacement), -the class queries \helpref{wxEncodingConverter}{wxencodingconverter} -for "equivalent" encodings (e.g. iso8859-2 and cp1250) and tries them. - -\wxheading{Using wxFontMapper in conjunction with wxMBConv classes} - -If you need to display text in encoding which is not available at -host system (see \helpref{IsEncodingAvailable}{wxfontmapperisencodingavailable}), -you may use these two classes to find font in some similar encoding -(see \helpref{GetAltForEncoding}{wxfontmappergetaltforencoding}) -and convert the text to this encoding -(\helpref{wxMBConv classes}{mbconvclasses}). - -Following code snippet demonstrates it: - -\begin{verbatim} -if (!wxFontMapper::Get()->IsEncodingAvailable(enc, facename)) -{ - wxFontEncoding alternative; - if (wxFontMapper::Get()->GetAltForEncoding(enc, &alternative, - facename, false)) - { - wxCSConv convFrom(wxFontMapper::Get()->GetEncodingName(enc)); - wxCSConv convTo(wxFontMapper::Get()->GetEncodingName(alternative)); - text = wxString(text.mb_str(convFrom), convTo); - } - else - ...failure (or we may try iso8859-1/7bit ASCII)... -} -...display text... -\end{verbatim} - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxEncodingConverter}{wxencodingconverter}, -\helpref{Writing non-English applications}{nonenglishoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFontMapper::wxFontMapper}\label{wxfontmapperwxfontmapper} - -\func{}{wxFontMapper}{\void} - -Default ctor. - -\wxheading{Note} - -The preferred way of creating a wxFontMapper instance is to call -\helpref{wxFontMapper::Get}{wxfontmapperget}. - - -\membersection{wxFontMapper::\destruct{wxFontMapper}}\label{wxfontmapperdtor} - -\func{}{\destruct{wxFontMapper}}{\void} - -Virtual dtor for a base class. - - -\membersection{wxFontMapper::CharsetToEncoding}\label{wxfontmappercharsettoencoding} - -\func{wxFontEncoding}{CharsetToEncoding}{\param{const wxString\& }{charset}, \param{bool }{interactive = true}} - -Returns the encoding for the given charset (in the form of RFC 2046) or -\texttt{wxFONTENCODING\_SYSTEM} if couldn't decode it. - -Be careful when using this function with \arg{interactive} set to \true -(default value) as the function then may show a dialog box to the user which -may lead to unexpected reentrancies and may also take a significantly longer -time than a simple function call. For these reasons, it is almost always a bad -idea to call this function from the event handlers for repeatedly generated -events such as \texttt{EVT\_PAINT}. - - -\membersection{wxFontMapper::Get}\label{wxfontmapperget} - -\func{static wxFontMapper *}{Get}{\void} - -Get the current font mapper object. If there is no current object, creates -one. - -\wxheading{See also} - -\helpref{wxFontMapper::Set}{wxfontmapperset} - - -\membersection{wxFontMapper::GetAllEncodingNames}\label{wxfontmappergetallencodingnames} - -\func{static const wxChar**}{GetAllEncodingNames}{\param{wxFontEncoding }{encoding}} - -Returns the array of all possible names for the given encoding. The array is -\NULL-terminated. IF it isn't empty, the first name in it is the canonical -encoding name, i.e. the same string as returned by -\helpref{GetEncodingName()}{wxfontmappergetencodingname}. - - -\membersection{wxFontMapper::GetAltForEncoding}\label{wxfontmappergetaltforencoding} - -\func{bool}{GetAltForEncoding}{\param{wxFontEncoding }{encoding}, \param{wxNativeEncodingInfo* }{info}, \param{const wxString\& }{facename = wxEmptyString}, \param{bool }{interactive = true}} - -\func{bool}{GetAltForEncoding}{\param{wxFontEncoding }{encoding}, \param{wxFontEncoding* }{alt\_encoding}, \param{const wxString\& }{facename = wxEmptyString}, \param{bool }{interactive = true}} - -Find an alternative for the given encoding (which is supposed to not be -available on this system). If successful, return true and fill info -structure with the parameters required to create the font, otherwise -return false. - -The first form is for wxWidgets' internal use while the second one -is better suitable for general use -- it returns wxFontEncoding which -can consequently be passed to wxFont constructor. - - -\membersection{wxFontMapper::GetEncoding}\label{wxfontmappergetencoding} - -\func{static wxFontEncoding}{GetEncoding}{\param{size\_t }{n}} - -Returns the {\it n}-th supported encoding. Together with -\helpref{GetSupportedEncodingsCount()}{wxfontmappergetsupportedencodingscount} -this method may be used to get all supported encodings. - - -\membersection{wxFontMapper::GetEncodingDescription}\label{wxfontmappergetencodingdescription} - -\func{static wxString}{GetEncodingDescription}{\param{wxFontEncoding }{encoding}} - -Return user-readable string describing the given encoding. - - -\membersection{wxFontMapper::GetEncodingFromName}\label{wxfontmappergetencodingfromname} - -\func{static wxFontEncoding}{GetEncodingFromName}{\param{const wxString\& }{encoding}} - -Return the encoding corresponding to the given internal name. This function is -the inverse of \helpref{GetEncodingName}{wxfontmappergetencodingname} and is -intentionally less general than -\helpref{CharsetToEncoding}{wxfontmappercharsettoencoding}, i.e. it doesn't -try to make any guesses nor ever asks the user. It is meant just as a way of -restoring objects previously serialized using -\helpref{GetEncodingName}{wxfontmappergetencodingname}. - - -\membersection{wxFontMapper::GetEncodingName}\label{wxfontmappergetencodingname} - -\func{static wxString}{GetEncodingName}{\param{wxFontEncoding }{encoding}} - -Return internal string identifier for the encoding (see also -\helpref{GetEncodingDescription()}{wxfontmappergetencodingdescription}) - -\wxheading{See also} - -\helpref{GetEncodingFromName}{wxfontmappergetencodingfromname} - - -\membersection{wxFontMapper::GetSupportedEncodingsCount}\label{wxfontmappergetsupportedencodingscount} - -\func{static size\_t}{GetSupportedEncodingsCount}{\void} - -Returns the number of the font encodings supported by this class. Together with -\helpref{GetEncoding}{wxfontmappergetencoding} this method may be used to get -all supported encodings. - - -\membersection{wxFontMapper::IsEncodingAvailable}\label{wxfontmapperisencodingavailable} - -\func{bool}{IsEncodingAvailable}{\param{wxFontEncoding }{encoding}, \param{const wxString\& }{facename = wxEmptyString}} - -Check whether given encoding is available in given face or not. -If no facename is given, find {\it any} font in this encoding. - - -\membersection{wxFontMapper::SetDialogParent}\label{wxfontmappersetdialogparent} - -\func{void}{SetDialogParent}{\param{wxWindow* }{parent}} - -The parent window for modal dialogs. - - -\membersection{wxFontMapper::SetDialogTitle}\label{wxfontmappersetdialogtitle} - -\func{void}{SetDialogTitle}{\param{const wxString\& }{title}} - -The title for the dialogs (note that default is quite reasonable). - - -\membersection{wxFontMapper::Set}\label{wxfontmapperset} - -\func{static wxFontMapper *}{Set}{\param{wxFontMapper *}{mapper}} - -Set the current font mapper object and return previous one (may be NULL). -This method is only useful if you want to plug-in an alternative font mapper -into wxWidgets. - -\wxheading{See also} - -\helpref{wxFontMapper::Get}{wxfontmapperget} - - -\membersection{wxFontMapper::SetConfig}\label{wxfontmappersetconfig} - -\func{void}{SetConfig}{\param{wxConfigBase* }{config}} - -Set the config object to use (may be NULL to use default). - -By default, the global one (from wxConfigBase::Get() will be used) -and the default root path for the config settings is the string returned by -GetDefaultConfigPath(). - - -\membersection{wxFontMapper::SetConfigPath}\label{wxfontmappersetconfigpath} - -\func{void}{SetConfigPath}{\param{const wxString\& }{prefix}} - -Set the root config path to use (should be an absolute path). - diff --git a/docs/latex/wx/fontpicker.tex b/docs/latex/wx/fontpicker.tex deleted file mode 100644 index 60549ad2eb..0000000000 --- a/docs/latex/wx/fontpicker.tex +++ /dev/null @@ -1,214 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: fontpicker.tex -%% Purpose: wxFontPickerCtrl and wxFontPickerEvent documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-17 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFontPickerCtrl}}\label{wxfontpickerctrl} - -This control allows the user to select a font. The generic implementation is -a button which brings up a \helpref{wxFontDialog}{wxfontdialog} when clicked. Native implementation -may differ but this is usually a (small) widget which give access to the font-chooser -dialog. -It is only available if \texttt{wxUSE\_FONTPICKERCTRL} is set to $1$ (the default). - -\wxheading{Derived from} - -\helpref{wxPickerBase}{wxpickerbase}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxFNTP\_DEFAULT\_STYLE}}{The default style: -wxFNTP\_FONTDESC\_AS\_LABEL | wxFNTP\_USEFONT\_FOR\_LABEL.} -\twocolitem{\windowstyle{wxFNTP\_USE\_TEXTCTRL}}{Creates a text control to the left of the -picker button which is completely managed by the \helpref{wxFontPickerCtrl}{wxfontpickerctrl} -and which can be used by the user to specify a font (see \helpref{SetSelectedFont}{wxfontpickerctrlsetselectedfont}). -The text control is automatically synchronized with button's value. Use functions defined in \helpref{wxPickerBase}{wxpickerbase} to modify the text control.} -\twocolitem{\windowstyle{wxFNTP\_FONTDESC\_AS\_LABEL}}{Keeps the label of the button updated with the fontface name and the font size. E.g. choosing "Times New Roman bold, italic with size 10" from the fontdialog, will update the label (overwriting any previous label) with the "Times New Roman, 10" text.} -\twocolitem{\windowstyle{wxFNTP\_USEFONT\_FOR\_LABEL}}{Uses the currently selected font to draw the label of the button.} -\end{twocollist} - -\wxheading{Event handling} - -To process a font picker event, use these event handler macros to direct input to member -functions that take a \helpref{wxFontPickerEvent}{wxfontpickerevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_FONTPICKER\_CHANGED(id, func)}}{The user changed the font -selected in the control either using the button or using text control (see -wxFNTP\_USE\_TEXTCTRL; note that in this case the event is fired only if the -user's input is valid, i.e. recognizable). } -\end{twocollist} - -\wxheading{See also} - -\helpref{wxFontDialog}{wxfontdialog},\\ -\helpref{wxFontPickerEvent}{wxfontpickerevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontPickerCtrl::wxFontPickerCtrl}\label{wxfontpickerctrlctor} - -\func{}{wxFontPickerCtrl}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxFont\& }{font = wxNullFont},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxFNTP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``fontpickerctrl"}} - -Initializes the object and calls \helpref{Create}{wxfontpickerctrlcreate} with -all the parameters. - - -\membersection{wxFontPickerCtrl::Create}\label{wxfontpickerctrlcreate} - -\func{bool}{Create}{\param{wxWindow *}{parent},\rtfsp -\param{wxWindowID}{ id},\rtfsp -\param{const wxFont\& }{font = wxNullFont},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxFNTP\_DEFAULT\_STYLE},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator}, -\param{const wxString\& }{name = ``fontpickerctrl"}} - -\wxheading{Parameters} - -\docparam{parent}{Parent window, must not be non-\texttt{NULL}.} - -\docparam{id}{The identifier for the control.} - -\docparam{font}{The initial font shown in the control. If \texttt{wxNullFont} -is given, the default font is used.} - -\docparam{pos}{Initial position.} - -\docparam{size}{Initial size.} - -\docparam{style}{The window style, see {\tt wxFNTP\_*} flags.} - -\docparam{validator}{Validator which can be used for additional date checks.} - -\docparam{name}{Control name.} - -\wxheading{Return value} - -\true if the control was successfully created or \false if creation failed. - - -\membersection{wxFontPickerCtrl::GetSelectedFont}\label{wxfontpickerctrlgetselectedfont} - -\constfunc{wxFont}{GetSelectedFont}{\void} - -Returns the currently selected font. -Note that this function is completely different from \helpref{wxWindow::GetFont}{wxwindowgetfont}. - - -\membersection{wxFontPickerCtrl::SetSelectedFont}\label{wxfontpickerctrlsetselectedfont} - -\func{void}{SetSelectedFont}{\param{const wxFont \&}{font}} - -Sets the currently selected font. -Note that this function is completely different from \helpref{wxWindow::SetFont}{wxwindowsetfont}. - - -\membersection{wxFontPickerCtrl::GetMaxPointSize}\label{wxfontpickerctrlgetmaxpointsize} - -\constfunc{unsigned int}{GetMaxPointSize}{\void} - -Returns the maximum point size value allowed for the user-chosen font. - - -\membersection{wxFontPickerCtrl::SetMaxPointSize}\label{wxfontpickerctrlsetmaxpointsize} - -\func{void}{GetMaxPointSize}{\param{unsigned int}{ max}} - -Sets the maximum point size value allowed for the user-chosen font. -The default value is 100. Note that big fonts can require a lot of memory and CPU time -both for creation and for rendering; thus, specially because the user has the option to specify -the fontsize through a text control (see wxFNTP\_USE\_TEXTCTRL), it's a good idea to put a limit -to the maximum font size when huge fonts do not make much sense. - - - - -%% wxFontPickerEvent documentation - -\section{\class{wxFontPickerEvent}}\label{wxfontpickerevent} - -This event class is used for the events generated by -\helpref{wxFontPickerCtrl}{wxfontpickerctrl}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxFontPickerCtrl, use one of these event handler macros to -direct input to member function that take a -\helpref{wxFontPickerEvent}{wxfontpickerevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_FONTPICKER\_CHANGED(id, func)}}{Generated whenever the selected font changes.} -\end{twocollist}% - - -\wxheading{See also} - -\helpref{wxFontPickerCtrl}{wxfontpickerctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFontPickerEvent::wxFontPickerEvent}\label{wxfontpickereventctor} - -\func{}{wxFontPickerEvent}{\param{wxObject *}{ generator}, \param{int}{ id}, \param{const wxFont\&}{ font}} - -The constructor is not normally used by the user code. - - -\membersection{wxFontPickerEvent::GetFont}\label{wxfontpickereventgetfont} - -\constfunc{wxFont}{GetFont}{\void} - -Retrieve the font the user has just selected. - - -\membersection{wxFontPickerEvent::SetFont}\label{wxfontpickereventsetfont} - -\func{void}{SetFont}{\param{const wxFont \&}{ f}} - -Set the font associated with the event. - diff --git a/docs/latex/wx/forward.gif b/docs/latex/wx/forward.gif deleted file mode 100644 index d8862174ed264064e4092accd3b9cef539651ad1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 959 zcmZ?wbhEHbbYM_m_|5NZ; wbH-jL-q~hvBDNIFUuAn+=ylY_lIO=twXW(!Y|OjPCFiqa!^6Y8%uEc{09+_1fB*mh diff --git a/docs/latex/wx/frame.tex b/docs/latex/wx/frame.tex deleted file mode 100644 index b7e00593e3..0000000000 --- a/docs/latex/wx/frame.tex +++ /dev/null @@ -1,523 +0,0 @@ -\section{\class{wxFrame}}\label{wxframe} - -A frame is a window whose size and position can (usually) be changed by the -user. It usually has thick borders and a title bar, and can optionally contain -a menu bar, toolbar and status bar. A frame can contain any window that is not -a frame or dialog. - -A frame that has a status bar and toolbar created via the -CreateStatusBar/CreateToolBar functions manages these windows, and adjusts the -value returned by GetClientSize to reflect the remaining size available to -application windows. - -\wxheading{Derived from} - -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxRESIZE\_BORDER \pipe wxSYSTEM\_MENU \pipe wxCAPTION \pipe wxCLOSE\_BOX \pipe wxCLIP\_CHILDREN}.} -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized). Windows only. } -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}. Windows only.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame.} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized. Windows only.} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame.} -\twocolitem{\windowstyle{wxCLOSE\_BOX}}{Displays a close box on the frame.} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of all other windows, -see also wxFRAME\_FLOAT\_ON\_PARENT.} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu.} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window.} -\twocolitem{\windowstyle{wxFRAME\_TOOL\_WINDOW}}{Causes a frame with a small -titlebar to be created; the frame does not appear in the taskbar under Windows or GTK+.} -\twocolitem{\windowstyle{wxFRAME\_NO\_TASKBAR}}{Creates an otherwise normal -frame but it does not appear in the taskbar under Windows or GTK+ (note that it -will minimize to the desktop window under Windows which may seem strange to the -users and thus it might be better to use this style only without -wxMINIMIZE\_BOX style). In wxGTK, the flag is respected only if GTK+ is at -least version 2.2 and the window manager supports -\urlref{\_NET\_WM\_STATE\_SKIP\_TASKBAR}{http://freedesktop.org/Standards/wm-spec/1.3/ar01s05.html} hint. -Has no effect under other platforms.} -\twocolitem{\windowstyle{wxFRAME\_FLOAT\_ON\_PARENT}}{The frame will always be -on top of its parent (unlike wxSTAY\_ON\_TOP). A frame created with this style -must have a non-NULL parent.} -\twocolitem{\windowstyle{wxFRAME\_EX\_CONTEXTHELP}}{Under Windows, puts a query button on the -caption. When pressed, Windows will go into a context-sensitive help mode and wxWidgets will send -a wxEVT\_HELP event if the user clicked on an application window. {\it Note} that this is an extended -style and must be set by calling \helpref{SetExtraStyle}{wxwindowsetextrastyle} before Create is called (two-step construction). -You cannot use this style together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so -you should use\rtfsp -{\tt wxDEFAULT\_FRAME\_STYLE \& ~ (wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the -frames having this style (the dialogs don't have a minimize or a maximize box by -default)} -\twocolitem{\windowstyle{wxFRAME\_SHAPED}}{Windows with this style are - allowed to have their shape changed with the \helpref{SetShape}{wxtoplevelwindowsetshape} method.} -\twocolitem{\windowstyle{wxFRAME\_EX\_METAL}}{On Mac OS X, frames with this style will be shown with a metallic look. This is an {\it extra} style.} -\end{twocollist} - -The default frame style is for normal, resizeable frames. To create a frame -which can not be resized by user, you may use the following combination of -styles: {\tt wxDEFAULT\_FRAME\_STYLE \& ~ (wxRESIZE\_BORDER \pipe wxRESIZE\_BOX \pipe wxMAXIMIZE\_BOX)}. -% Note: the space after the tilde is necessary or Tex2RTF complains. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Default event processing} - -wxFrame processes the following events: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxEVT\_SIZE}{wxsizeevent}}{If the frame has exactly one -child window, not counting the status and toolbar, this child is resized to -take the entire frame client area. If two or more windows are present, they -should be laid out explicitly either by manually handling wxEVT\_SIZE or using -\helpref{sizers}{sizeroverview}} - -\twocolitem{\helpref{wxEVT\_MENU\_HIGHLIGHT}{wxmenuevent}}{The default -implementation displays the \helpref{help string}{wxmenuitemgethelp} associated -with the selected item in the first pane of the status bar, if there is one.} -\end{twocollist} - -\wxheading{Remarks} - -An application should normally define an \helpref{wxCloseEvent}{wxcloseevent} handler for the -frame to respond to system close events, for example so that related data and subwindows can be cleaned up. - -\wxheading{See also} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}, \helpref{wxMDIChildFrame}{wxmdichildframe},\rtfsp -\helpref{wxMiniFrame}{wxminiframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFrame::wxFrame}\label{wxframector} - -\func{}{wxFrame}{\void} - -Default constructor. - -\func{}{wxFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This may be NULL. If it is non-NULL, the frame will -always be displayed on top of the parent window on Windows.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxFrame}{wxframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -For Motif, MWM (the Motif Window Manager) should be running for any window styles to work -(otherwise all styles take effect). - -\wxheading{See also} - -\helpref{wxFrame::Create}{wxframecreate} - -\membersection{wxFrame::\destruct{wxFrame}}\label{wxframedtor} - -\func{void}{\destruct{wxFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxFrame::Centre}\label{wxframecentre} - -\func{void}{Centre}{\param{int}{ direction = wxBOTH}} - -Centres the frame on the display. - -\wxheading{Parameters} - -\docparam{direction}{The parameter may be {\tt wxHORIZONTAL}, {\tt wxVERTICAL} or {\tt wxBOTH}.} - -\membersection{wxFrame::Create}\label{wxframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxFrame::wxFrame}{wxframector}\rtfsp -for further details. - -\membersection{wxFrame::CreateStatusBar}\label{wxframecreatestatusbar} - -\func{virtual wxStatusBar*}{CreateStatusBar}{\param{int}{ number = 1}, - \param{long}{ style = 0}, - \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "statusBar"}} - -Creates a status bar at the bottom of the frame. - -\wxheading{Parameters} - -\docparam{number}{The number of fields to create. Specify a -value greater than 1 to create a multi-field status bar.} - -\docparam{style}{The status bar style. See \helpref{wxStatusBar}{wxstatusbar} for a list -of valid styles.} - -\docparam{id}{The status bar window identifier. If -1, an identifier will be chosen by -wxWidgets.} - -\docparam{name}{The status bar window name.} - -\wxheading{Return value} - -A pointer to the status bar if it was created successfully, NULL otherwise. - -\wxheading{Remarks} - -The width of the status bar is the whole width of the frame (adjusted automatically when -resizing), and the height and text size are chosen by the host windowing system. - -By default, the status bar is an instance of wxStatusBar. To use a different class, -override \helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar}. - -Note that you can put controls and other windows on the status bar if you wish. - -\wxheading{See also} - -\helpref{wxFrame::SetStatusText}{wxframesetstatustext},\rtfsp -\helpref{wxFrame::OnCreateStatusBar}{wxframeoncreatestatusbar},\rtfsp -\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar} - -\membersection{wxFrame::CreateToolBar}\label{wxframecreatetoolbar} - -\func{virtual wxToolBar*}{CreateToolBar}{\param{long}{ style = wxBORDER\_NONE \pipe wxTB\_HORIZONTAL}, - \param{wxWindowID}{ id = -1}, \param{const wxString\&}{ name = "toolBar"}} - -Creates a toolbar at the top or left of the frame. - -\wxheading{Parameters} - -\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list -of valid styles.} - -\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by -wxWidgets.} - -\docparam{name}{The toolbar window name.} - -\wxheading{Return value} - -A pointer to the toolbar if it was created successfully, NULL otherwise. - -\wxheading{Remarks} - -By default, the toolbar is an instance of wxToolBar (which is defined to be -a suitable toolbar class on each platform, such as wxToolBar95). To use a different class, -override \helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar}. - -When a toolbar has been created with this function, or made known to the frame -with \helpref{wxFrame::SetToolBar}{wxframesettoolbar}, the frame will manage the toolbar -position and adjust the return value from \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} to -reflect the available space for application windows. - -Under Pocket PC, you should {\it always} use this function for creating the toolbar -to be managed by the frame, so that wxWidgets can use a combined -menubar and toolbar. Where you manage your own toolbars, create a wxToolBar -as usual. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar},\rtfsp -\helpref{wxFrame::OnCreateToolBar}{wxframeoncreatetoolbar},\rtfsp -\helpref{wxFrame::SetToolBar}{wxframesettoolbar},\rtfsp -\helpref{wxFrame::GetToolBar}{wxframegettoolbar} - -\membersection{wxFrame::GetClientAreaOrigin}\label{wxframegetclientareaorigin} - -\constfunc{wxPoint}{GetClientAreaOrigin}{\void} - -Returns the origin of the frame client area (in client coordinates). It may be -different from (0, 0) if the frame has a toolbar. - -\membersection{wxFrame::GetMenuBar}\label{wxframegetmenubar} - -\constfunc{wxMenuBar*}{GetMenuBar}{\void} - -Returns a pointer to the menubar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::SetMenuBar}{wxframesetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} - -\membersection{wxFrame::GetStatusBar}\label{wxframegetstatusbar} - -\constfunc{wxStatusBar*}{GetStatusBar}{\void} - -Returns a pointer to the status bar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} - -\membersection{wxFrame::GetStatusBarPane}\label{wxframegetstatusbarpane} - -\func{int}{GetStatusBarPane}{\void} - -Returns the status bar pane used to display menu and toolbar help. - -\wxheading{See also} - -\helpref{wxFrame::SetStatusBarPane}{wxframesetstatusbarpane} - -\membersection{wxFrame::GetToolBar}\label{wxframegettoolbar} - -\constfunc{wxToolBar*}{GetToolBar}{\void} - -Returns a pointer to the toolbar currently associated with the frame (if any). - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp -\helpref{wxFrame::SetToolBar}{wxframesettoolbar} - -\membersection{wxFrame::OnCreateStatusBar}\label{wxframeoncreatestatusbar} - -\func{virtual wxStatusBar*}{OnCreateStatusBar}{\param{int }{number}, - \param{long}{ style}, - \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} - -Virtual function called when a status bar is requested by \helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}. - -\wxheading{Parameters} - -\docparam{number}{The number of fields to create.} - -\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar} for a list -of valid styles.} - -\docparam{id}{The window identifier. If -1, an identifier will be chosen by -wxWidgets.} - -\docparam{name}{The window name.} - -\wxheading{Return value} - -A status bar object. - -\wxheading{Remarks} - -An application can override this function to return a different kind of status bar. The default -implementation returns an instance of \helpref{wxStatusBar}{wxstatusbar}. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar}. - -\membersection{wxFrame::OnCreateToolBar}\label{wxframeoncreatetoolbar} - -\func{virtual wxToolBar*}{OnCreateToolBar}{\param{long}{ style}, - \param{wxWindowID}{ id}, \param{const wxString\&}{ name}} - -Virtual function called when a toolbar is requested by \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. - -\wxheading{Parameters} - -\docparam{style}{The toolbar style. See \helpref{wxToolBar}{wxtoolbar} for a list -of valid styles.} - -\docparam{id}{The toolbar window identifier. If -1, an identifier will be chosen by -wxWidgets.} - -\docparam{name}{The toolbar window name.} - -\wxheading{Return value} - -A toolbar object. - -\wxheading{Remarks} - -An application can override this function to return a different kind of toolbar. The default -implementation returns an instance of \helpref{wxToolBar}{wxtoolbar}. - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar}. - - -\membersection{wxFrame::ProcessCommand}\label{wxframeprocesscommand} - -\func{void}{ProcessCommand}{\param{int }{id}} - -Simulate a menu command. - -\wxheading{Parameters} - -\docparam{id}{The identifier for a menu item.} - - -\membersection{wxFrame::SendSizeEvent}\label{wxframesendsizeevent} - -\func{void}{SendSizeEvent}{\void} - -This function sends a dummy \helpref{size event}{wxsizeevent} to the frame -forcing it to reevaluate its children positions. It is sometimes useful to call -this function after adding or deleting a children after the frame creation or -if a child size changes. - -Note that if the frame is using either sizers or constraints for the children -layout, it is enough to call \helpref{Layout()}{wxwindowlayout} directly and -this function should not be used in this case. - -% VZ: we don't have all this any more (18.08.00) -% -%Under Windows, instead of using {\bf SetIcon}, you can add the -%following lines to your MS Windows resource file: -% -%\begin{verbatim} -%wxSTD_MDIPARENTFRAME ICON icon1.ico -%wxSTD_MDICHILDFRAME ICON icon2.ico -%wxSTD_FRAME ICON icon3.ico -%\end{verbatim} -% -%where icon1.ico will be used for the MDI parent frame, icon2.ico -%will be used for MDI child frames, and icon3.ico will be used for -%non-MDI frames. -% -%If these icons are not supplied, and {\bf SetIcon} is not called either, -%then the following defaults apply if you have included wx.rc. -% -%\begin{verbatim} -%wxDEFAULT_FRAME ICON std.ico -%wxDEFAULT_MDIPARENTFRAME ICON mdi.ico -%wxDEFAULT_MDICHILDFRAME ICON child.ico -%\end{verbatim} -% -%You can replace std.ico, mdi.ico and child.ico with your own defaults -%for all your wxWidgets application. Currently they show the same icon. - -\membersection{wxFrame::SetMenuBar}\label{wxframesetmenubar} - -\func{void}{SetMenuBar}{\param{wxMenuBar* }{menuBar}} - -Tells the frame to show the given menu bar. - -\wxheading{Parameters} - -\docparam{menuBar}{The menu bar to associate with the frame.} - -\wxheading{Remarks} - -If the frame is destroyed, the -menu bar and its menus will be destroyed also, so do not delete the menu -bar explicitly (except by resetting the frame's menu bar to another -frame or NULL). - -Under Windows, a size event is generated, so be sure to initialize -data members properly before calling {\bf SetMenuBar}. - -Note that on some platforms, it is not possible to call this function twice for the same frame object. - -\wxheading{See also} - -\helpref{wxFrame::GetMenuBar}{wxframegetmenubar}, \helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu}. - -\membersection{wxFrame::SetStatusBar}\label{wxframesetstatusbar} - -\func{void}{SetStatusBar}{\param{wxStatusBar*}{ statusBar}} - -Associates a status bar with the frame. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar},\rtfsp -\helpref{wxFrame::GetStatusBar}{wxframegetstatusbar} - -\membersection{wxFrame::SetStatusBarPane}\label{wxframesetstatusbarpane} - -\func{void}{SetStatusBarPane}{\param{int}{ n}} - -Set the status bar pane used to display menu and toolbar help. -Using -1 disables help display. - -\membersection{wxFrame::SetStatusText}\label{wxframesetstatustext} - -\func{virtual void}{SetStatusText}{\param{const wxString\& }{ text}, \param{int}{ number = 0}} - -Sets the status bar text and redraws the status bar. - -\wxheading{Parameters} - -\docparam{text}{The text for the status field.} - -\docparam{number}{The status field (starting from zero).} - -\wxheading{Remarks} - -Use an empty string to clear the status bar. - -\wxheading{See also} - -\helpref{wxFrame::CreateStatusBar}{wxframecreatestatusbar}, \helpref{wxStatusBar}{wxstatusbar} - -\membersection{wxFrame::SetStatusWidths}\label{wxframesetstatuswidths} - -\func{virtual void}{SetStatusWidths}{\param{int}{ n}, \param{int *}{widths}} - -Sets the widths of the fields in the status bar. - -\wxheading{Parameters} - -\docparam{n}{The number of fields in the status bar. It must be the -same used in \helpref{CreateStatusBar}{wxframecreatestatusbar}.} - -\docparam{widths}{Must contain an array of {\it n} integers, each of which is a status field width -in pixels. A value of -1 indicates that the field is variable width; at least one -field must be -1. You should delete this array after calling {\bf SetStatusWidths}.} - -\wxheading{Remarks} - -The widths of the variable fields are calculated from the total width of all fields, -minus the sum of widths of the non-variable fields, divided by the number of -variable fields. - -\pythonnote{Only a single parameter is required, a Python list of -integers.} - -\perlnote{In wxPerl this method takes the field widths as parameters.} - -\membersection{wxFrame::SetToolBar}\label{wxframesettoolbar} - -\func{void}{SetToolBar}{\param{wxToolBar*}{ toolBar}} - -Associates a toolbar with the frame. - -\wxheading{See also} - -\helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}, \helpref{wxToolBar}{wxtoolbar},\rtfsp -\helpref{wxFrame::GetToolBar}{wxframegettoolbar} - diff --git a/docs/latex/wx/fs.tex b/docs/latex/wx/fs.tex deleted file mode 100644 index 5182260814..0000000000 --- a/docs/latex/wx/fs.tex +++ /dev/null @@ -1,95 +0,0 @@ -\section{wxFileSystem}\label{fs} - -The wxHTML library uses a {\bf virtual file systems} mechanism -similar to the one used in Midnight Commander, Dos Navigator, -FAR or almost any modern file manager. It allows the user to access -data stored in archives as if they were ordinary files. On-the-fly -generated files that exist only in memory are also supported. - -\wxheading{Classes} - -Three classes are used in order to provide virtual file systems mechanism: - -\begin{itemize}\itemsep=0pt -\item The \helpref{wxFSFile}{wxfsfile} class provides information -about opened file (name, input stream, mime type and anchor). -\item The \helpref{wxFileSystem}{wxfilesystem} class is the interface. -Its main methods are ChangePathTo() and OpenFile(). This class -is most often used by the end user. -\item The \helpref{wxFileSystemHandler}{wxfilesystemhandler} is the core -of virtual file systems mechanism. You can derive your own handler and pass it to -the VFS mechanism. You can derive your own handler and pass it to -wxFileSystem's AddHandler() method. In the new handler you only need to -override the OpenFile() and CanOpen() methods. -\end{itemize} - -\wxheading{Locations} - -Locations (aka filenames aka addresses) are constructed from four parts: - -\begin{itemize}\itemsep=0pt -\item {\bf protocol} - handler can recognize if it is able to open a -file by checking its protocol. Examples are "http", "file" or "ftp". -\item {\bf right location} - is the name of file within the protocol. -In "http://www.wxwidgets.org/index.html" the right location is "//www.wxwidgets.org/index.html". -\item {\bf anchor} - an anchor is optional and is usually not present. -In "index.htm\#chapter2" the anchor is "chapter2". -\item {\bf left location} - this is usually an empty string. -It is used by 'local' protocols such as ZIP. -See Combined Protocols paragraph for details. -\end{itemize} - -\wxheading{Combined Protocols} - -The left location precedes the protocol in the URL string. -It is not used by global protocols like HTTP but it becomes handy when nesting -protocols - for example you may want to access files in a ZIP archive: - -file:archives/cpp\_doc.zip\#zip:reference/fopen.htm\#syntax - -In this example, the protocol is "zip", right location is -"reference/fopen.htm", anchor is "syntax" and left location -is "file:archives/cpp\_doc.zip". - -There are {\bf two} protocols used in this example: "zip" and "file". - -\wxheading{File Systems Included in wxHTML} - -The following virtual file system handlers are part of wxWidgets so far: - -\begin{twocollist} -\twocolitem{{\bf wxArchiveFSHandler}}{A handler for archives such as zip -and tar. Include file is . URLs examples: -"archive.zip\#zip:filename", "archive.tar.gz\#gzip:\#tar:filename".} -\twocolitem{{\bf wxFilterFSHandler}}{A handler for compression schemes such -as gzip. Header is . URLs are in the form, e.g.: -"document.ps.gz\#gzip:".} -\twocolitem{{\bf wxInternetFSHandler}}{A handler for accessing documents -via HTTP or FTP protocols. Include file is .} -\twocolitem{{\bf wxMemoryFSHandler}}{This handler allows you to access -data stored in memory (such as bitmaps) as if they were regular files. -See \helpref{wxMemoryFSHandler documentation}{wxmemoryfshandler} for details. -Include file is . URL is prefixed with memory:, e.g. -"memory:myfile.htm"} -\end{twocollist} - -In addition, wxFileSystem itself can access local files. - - -\wxheading{Initializing file system handlers} - -Use \helpref{wxFileSystem::AddHandler}{wxfilesystemaddhandler} to initialize -a handler, for example: - -\begin{verbatim} -#include - -... - -bool MyApp::OnInit() -{ - wxFileSystem::AddHandler(new wxMemoryFSHandler); -... -} -\end{verbatim} - diff --git a/docs/latex/wx/fs_mem.tex b/docs/latex/wx/fs_mem.tex deleted file mode 100644 index 288929a427..0000000000 --- a/docs/latex/wx/fs_mem.tex +++ /dev/null @@ -1,122 +0,0 @@ -% -% automatically generated by HelpGen from -% /home/vasek/fs\_mem.h at 27/Feb/00 19:23:10 -% - -\section{\class{wxMemoryFSHandler}}\label{wxmemoryfshandler} - -This \helpref{wxFileSystem}{wxfilesystem} handler can store arbitrary -data in memory stream and make them accessible via URL. It is particularly -suitable for storing bitmaps from resources or included XPM files so that -they can be used with wxHTML. - -Filenames are prefixed with "memory:", e.g. "memory:myfile.html". - -Example: - -\begin{verbatim} -#ifndef __WXMSW__ -#include "logo.xpm" -#endif - -void MyFrame::OnAbout(wxCommandEvent&) -{ - wxBusyCursor bcur; - wxFileSystem::AddHandler(new wxMemoryFSHandler); - wxMemoryFSHandler::AddFile("logo.pcx", wxBITMAP(logo), wxBITMAP_TYPE_PCX); - wxMemoryFSHandler::AddFile("about.htm", - "About: " - ""); - - wxDialog dlg(this, -1, wxString(_("About"))); - wxBoxSizer *topsizer; - wxHtmlWindow *html; - topsizer = new wxBoxSizer(wxVERTICAL); - html = new wxHtmlWindow(&dlg, -1, wxDefaultPosition, - wxSize(380, 160), wxHW_SCROLLBAR_NEVER); - html->SetBorders(0); - html->LoadPage("memory:about.htm"); - html->SetSize(html->GetInternalRepresentation()->GetWidth(), - html->GetInternalRepresentation()->GetHeight()); - topsizer->Add(html, 1, wxALL, 10); - topsizer->Add(new wxStaticLine(&dlg, -1), 0, wxEXPAND | wxLEFT | wxRIGHT, 10); - topsizer->Add(new wxButton(&dlg, wxID_OK, "Ok"), - 0, wxALL | wxALIGN_RIGHT, 15); - dlg.SetAutoLayout(true); - dlg.SetSizer(topsizer); - topsizer->Fit(&dlg); - dlg.Centre(); - dlg.ShowModal(); - - wxMemoryFSHandler::RemoveFile("logo.pcx"); - wxMemoryFSHandler::RemoveFile("about.htm"); -} -\end{verbatim} - - -\wxheading{Derived from} - -\helpref{wxFileSystemHandler}{wxfilesystemhandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMemoryFSHandler::wxMemoryFSHandler}\label{wxmemoryfshandlerwxmemoryfshandler} - -\func{}{wxMemoryFSHandler}{\void} - -Constructor. - -\membersection{wxMemoryFSHandler::AddFile}\label{wxmemoryfshandleraddfile} - -\func{static void}{AddFile}{\param{const wxString\& }{filename}, \param{wxImage\& }{image}, \param{long }{type}} - -\func{static void}{AddFile}{\param{const wxString\& }{filename}, \param{const wxBitmap\& }{bitmap}, \param{long }{type}} - -Add file to list of files stored in memory. Stored -data (bitmap, text or raw data) -will be copied into private memory stream and available under -name "memory:" + \arg{filename}. - -The \arg{type} argument is one of {\tt wxBITMAP\_TYPE\_XXX} constants. -Note that you must use a \arg{type} value (aka image format) -that wxWidgets can save (e.g. JPG, PNG, see \helpref{wxImage -documentation}{wximage})! - -\wxheading{See also} - -\helpref{AddFileWithMimeType}{wxmemoryfshandleraddfilewithmimetype} - - -\membersection{wxMemoryFSHandler::AddFileWithMimeType}\label{wxmemoryfshandleraddfilewithmimetype} - -\func{static void}{AddFileWithMimeType}{\param{const wxString\& }{filename}, \param{const wxString\& }{textdata}, \param{const wxString\& }{mimetype}} - -\func{static void}{AddFileWithMimeType}{\param{const wxString\& }{filename}, \param{const void* }{binarydata}, \param{size\_t }{size}, \param{const wxString\& }{mimetype}} - -Like \helpref{AddFile}{wxmemoryfshandleraddfile}, but lets you explicitly -specify added file's MIME type. This version should be used whenever you know -the MIME type, because it makes accessing the files faster. - -\newsince{2.8.5} - -\wxheading{See also} - -\helpref{AddFile}{wxmemoryfshandleraddfile} - -\membersection{wxMemoryFSHandler::RemoveFile}\label{wxmemoryfshandlerremovefile} - -\func{static void}{RemoveFile}{\param{const wxString\& }{filename}} - -Remove file from memory FS and free occupied memory. - diff --git a/docs/latex/wx/fsfile.tex b/docs/latex/wx/fsfile.tex deleted file mode 100644 index d45bcfb726..0000000000 --- a/docs/latex/wx/fsfile.tex +++ /dev/null @@ -1,146 +0,0 @@ -% -% automatically generated by HelpGen from -% fsfile.tex at 21/Mar/99 23:00:52 -% - -\section{\class{wxFSFile}}\label{wxfsfile} - -This class represents a single file opened by \helpref{wxFileSystem}{wxfilesystem}. -It provides more information than wxWindow's input stream -(stream, filename, mime type, anchor). - -{\bf Note:} Any pointer returned by a method of wxFSFile is valid -only as long as the wxFSFile object exists. For example a call to GetStream() -doesn't {\it create} the stream but only returns the pointer to it. In -other words after 10 calls to GetStream() you will have obtained ten identical -pointers. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See Also} - -\helpref{wxFileSystemHandler}{wxfilesystemhandler}, -\helpref{wxFileSystem}{wxfilesystem}, -\helpref{Overview}{fs} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxFSFile::wxFSFile}\label{wxfsfilewxfsfile} - -\func{}{wxFSFile}{\param{wxInputStream }{*stream}, \param{const wxString\& }{loc}, \param{const wxString\& }{mimetype}, \param{const wxString\& }{anchor}, \param{wxDateTime }{modif}} - -Constructor. You probably won't use it. See Notes for details. - -\wxheading{Parameters} - -\docparam{stream}{The input stream that will be used to access data} - -\docparam{location}{The full location (aka filename) of the file} - -\docparam{mimetype}{MIME type of this file. It may be left empty, in which -case the type will be determined from file's extension (\arg{location} must -not be empty in this case).} - -\docparam{anchor}{Anchor. See \helpref{GetAnchor()}{wxfsfilegetanchor} for details.} - -If you are not sure of the meaning of these params, see the description of the GetXXXX() -functions. - -\wxheading{Notes} - -It is seldom used by the application programmer but you will need it if -you are writing your own virtual FS. For example you may need something -similar to wxMemoryInputStream, but because wxMemoryInputStream -doesn't free the memory when destroyed and thus passing a memory stream -pointer into wxFSFile constructor would lead to memory leaks, you -can write your own class derived from wxFSFile: - -\begin{verbatim} -class wxMyFSFile : public wxFSFile -{ - private: - void *m_Mem; - public: - wxMyFSFile(.....) - ~wxMyFSFile() {free(m_Mem);} - // of course dtor is virtual ;-) -}; -\end{verbatim} - -\membersection{wxFSFile::DetachStream}\label{wxfsfiledetachstream} - -\func{void}{DetachStream}{\void} - -Detaches the stream from the wxFSFile object. That is, the -stream obtained with {\tt GetStream()} will continue its existance -after the wxFSFile object is deleted. You will have to delete -the stream yourself. - -\membersection{wxFSFile::GetAnchor}\label{wxfsfilegetanchor} - -\constfunc{const wxString\&}{GetAnchor}{\void} - -Returns anchor (if present). The term of {\bf anchor} can be easily -explained using few examples: - -\begin{verbatim} -index.htm#anchor /* 'anchor' is anchor */ -index/wx001.htm /* NO anchor here! */ -archive/main.zip#zip:index.htm#global /* 'global' */ -archive/main.zip#zip:index.htm /* NO anchor here! */ -\end{verbatim} - -Usually an anchor is presented only if the MIME type is 'text/html'. -But it may have some meaning with other files; -for example myanim.avi\#200 may refer to position in animation -or reality.wrl\#MyView may refer to a predefined view in VRML. - -\membersection{wxFSFile::GetLocation}\label{wxfsfilegetlocation} - -\constfunc{const wxString\&}{GetLocation}{\void} - -Returns full location of the file, including path and protocol. -Examples : - -\begin{verbatim} -http://www.wxwidgets.org -http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/archive.zip#zip:info.txt -file:/home/vasek/index.htm -relative-file.htm -\end{verbatim} - -\membersection{wxFSFile::GetMimeType}\label{wxfsfilegetmimetype} - -\constfunc{const wxString\&}{GetMimeType}{\void} - -Returns the MIME type of the content of this file. It is either -extension-based (see wxMimeTypesManager) or extracted from -HTTP protocol Content-Type header. - -\membersection{wxFSFile::GetModificationTime}\label{wxfsfilegetmodificationtime} - -\constfunc{wxDateTime}{GetModificationTime}{\void} - -Returns time when this file was modified. - -\membersection{wxFSFile::GetStream}\label{wxfsfilegetstream} - -\constfunc{wxInputStream*}{GetStream}{\void} - -Returns pointer to the stream. You can use the returned -stream to directly access data. You may suppose -that the stream provide Seek and GetSize functionality -(even in the case of the HTTP protocol which doesn't provide -this by default. wxHtml uses local cache to work around -this and to speed up the connection). - diff --git a/docs/latex/wx/ftp.tex b/docs/latex/wx/ftp.tex deleted file mode 100644 index d0559837ce..0000000000 --- a/docs/latex/wx/ftp.tex +++ /dev/null @@ -1,423 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: ftp.tex -%% Purpose: wxFTP documentation -%% Author: Guilhem Lavaux, Vadim Zeitlin -%% Modified by: -%% Created: ~1997 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxFTP}}\label{wxftp} - -wxFTP can be used to establish a connection to an FTP server and perform all the -usual operations. Please consult the RFC 959 for more details about the FTP -protocol. - -To use a commands which doesn't involve file transfer (i.e. directory oriented -commands) you just need to call a corresponding member function or use the -generic \helpref{SendCommand}{wxftpsendcommand} method. However to actually -transfer files you just get or give a stream to or from this class and the -actual data are read or written using the usual stream methods. - -Example of using wxFTP for file downloading: - -\begin{verbatim} - wxFTP ftp; - - // if you don't use these lines anonymous login will be used - ftp.SetUser("user"); - ftp.SetPassword("password"); - - if ( !ftp.Connect("ftp.wxwindows.org") ) - { - wxLogError("Couldn't connect"); - return; - } - - ftp.ChDir("/pub"); - wxInputStream *in = ftp.GetInputStream("wxWidgets-4.2.0.tar.gz"); - if ( !in ) - { - wxLogError("Coudln't get file"); - } - else - { - size_t size = in->GetSize(); - char *data = new char[size]; - if ( !in->Read(data, size) ) - { - wxLogError("Read error"); - } - else - { - // file data is in the buffer - ... - } - - delete [] data; - delete in; - } -\end{verbatim} - -To upload a file you would do (assuming the connection to the server was opened -successfully): - -\begin{verbatim} - wxOutputStream *out = ftp.GetOutputStream("filename"); - if ( out ) - { - out->Write(...); // your data - delete out; - } -\end{verbatim} - -\wxheading{Constants} - -wxFTP defines constants corresponding to the two supported transfer modes: - -\begin{verbatim} -enum TransferMode -{ - ASCII, - BINARY -}; -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxProtocol}{wxprotocol}\\ -\helpref{wxSocketClient}{wxsocketclient}\\ -\helpref{wxSocketBase}{wxsocketbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxFTP::wxFTP}\label{wxftpctor} - -\func{}{wxFTP}{\void} - -Default constructor. - - -\membersection{wxFTP::\destruct{wxFTP}}\label{wxftpdtor} - -\func{}{\destruct{wxFTP}}{\void} - -Destructor will close the connection if connected. - - -\membersection{wxFTP::Abort}\label{wxftpabort} - -\func{bool}{Abort}{\void} - -Aborts the download currently in process, returns \true if ok, \false -if an error occurred. - - -\membersection{wxFTP::CheckCommand}\label{wxftpcheckcommand} - -\func{bool}{CheckCommand}{\param{const wxString\&}{ command}, \param{char }{ret}} - -Send the specified {\it command} to the FTP server. {\it ret} specifies -the expected result. - -\wxheading{Return value} - -true if the command has been sent successfully, else false. - - -\membersection{wxFTP::SendCommand}\label{wxftpsendcommand} - -\func{char}{SendCommand}{\param{const wxString\&}{ command}} - -Send the specified {\it command} to the FTP server and return the first -character of the return code. - - -\membersection{wxFTP::GetLastResult}\label{wxftpgetlastresult} - -\func{const wxString\&}{GetLastResult}{\void} - -Returns the last command result, i.e. the full server reply for the last -command. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::ChDir}\label{wxftpchdir} - -\func{bool}{ChDir}{\param{const wxString\&}{ dir}} - -Change the current FTP working directory. -Returns true if successful. - - -\membersection{wxFTP::MkDir}\label{wxftpmkdir} - -\func{bool}{MkDir}{\param{const wxString\&}{ dir}} - -Create the specified directory in the current FTP working directory. -Returns true if successful. - - -\membersection{wxFTP::RmDir}\label{wxftprmdir} - -\func{bool}{RmDir}{\param{const wxString\&}{ dir}} - -Remove the specified directory from the current FTP working directory. -Returns true if successful. - - -\membersection{wxFTP::Pwd}\label{wxftppwd} - -\func{wxString}{Pwd}{\void} - -Returns the current FTP working directory. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::Rename}\label{wxftprename} - -\func{bool}{Rename}{\param{const wxString\&}{ src}, \param{const wxString\&}{ dst}} - -Rename the specified {\it src} element to {\it dst}. Returns true if successful. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::RmFile}\label{wxftprmfile} - -\func{bool}{RmFile}{\param{const wxString\&}{ path}} - -Delete the file specified by {\it path}. Returns true if successful. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::SetAscii}\label{wxftpsetascii} - -\func{bool}{SetAscii}{\void} - -Sets the transfer mode to ASCII. It will be used for the next transfer. - - -\membersection{wxFTP::SetBinary}\label{wxftpsetbinary} - -\func{bool}{SetBinary}{\void} - -Sets the transfer mode to binary (IMAGE). It will be used for the next transfer. - - -\membersection{wxFTP::SetPassive}\label{wxftpsetpassive} - -\func{void}{SetPassive}{\param{bool }{pasv}} - -If \arg{pasv} is \true, passive connection to the FTP server is used. This is -the default as it works with practically all firewalls. If the server doesn't -support passive move, you may call this function with \false argument to use -active connection. - - -\membersection{wxFTP::SetTransferMode}\label{wxftpsettransfermode} - -\func{bool}{SetTransferMode}{\param{TransferMode }{mode}} - -Sets the transfer mode to the specified one. It will be used for the next -transfer. - -If this function is never called, binary transfer mode is used by default. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::SetUser}\label{wxftpsetuser} - -\func{void}{SetUser}{\param{const wxString\&}{ user}} - -Sets the user name to be sent to the FTP server to be allowed to log in. - -\wxheading{Default value} - -The default value of the user name is "anonymous". - -\wxheading{Remark} - -This parameter can be included in a URL if you want to use the URL manager. -For example, you can use: "ftp://a\_user:a\_password@a.host:service/a\_directory/a\_file" -to specify a user and a password. - - -\membersection{wxFTP::SetPassword}\label{wxftpsetpassword} - -\func{void}{SetPassword}{\param{const wxString\&}{ passwd}} - -Sets the password to be sent to the FTP server to be allowed to log in. - -\wxheading{Default value} - -The default value of the user name is your email address. For example, it could -be "username@userhost.domain". This password is built by getting the current -user name and the host name of the local machine from the system. - -\wxheading{Remark} - -This parameter can be included in a URL if you want to use the URL manager. -For example, you can use: "ftp://a\_user:a\_password@a.host:service/a\_directory/a\_file" -to specify a user and a password. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::FileExists}\label{wxftpfileexists} - -\func{bool}{FileExists}{\param{const wxString\&}{ filename}} - -Returns \true if the given remote file exists, \false otherwise. - - -\membersection{wxFTP::GetFileSize}\label{wxftpgetfilesize} - -\func{int}{GetFileSize}{\param{const wxString\&}{ filename}} - -Returns the file size in bytes or $-1$ if the file doesn't exist or the size -couldn't be determined. Notice that this size can be approximative size only -and shouldn't be used for allocating the buffer in which the remote file is -copied, for example. - - -\membersection{wxFTP::GetDirList}\label{wxftpgetdirlist} - -\func{bool}{GetDirList}{\param{wxArrayString\& }{files}, \param{const wxString\&}{ wildcard = ""}} - -The GetList function is quite low-level. It returns the list of the files in -the current directory. The list can be filtered using the {\it wildcard} string. -If {\it wildcard} is empty (default), it will return all files in directory. - -The form of the list can change from one peer system to another. For example, -for a UNIX peer system, it will look like this: - -\begin{verbatim} --r--r--r-- 1 guilhem lavaux 12738 Jan 16 20:17 cmndata.cpp --r--r--r-- 1 guilhem lavaux 10866 Jan 24 16:41 config.cpp --rw-rw-rw- 1 guilhem lavaux 29967 Dec 21 19:17 cwlex_yy.c --rw-rw-rw- 1 guilhem lavaux 14342 Jan 22 19:51 cwy_tab.c --r--r--r-- 1 guilhem lavaux 13890 Jan 29 19:18 date.cpp --r--r--r-- 1 guilhem lavaux 3989 Feb 8 19:18 datstrm.cpp -\end{verbatim} - -But on Windows system, it will look like this: - -\begin{verbatim} -winamp~1 exe 520196 02-25-1999 19:28 winamp204.exe - 1 file(s) 520 196 bytes -\end{verbatim} - -Return value: true if the file list was successfully retrieved, false -otherwise. - -\wxheading{See also} - -\helpref{GetFilesList}{wxftpgetfileslist} - - -\membersection{wxFTP::GetFilesList}\label{wxftpgetfileslist} - -\func{bool}{GetFilesList}{\param{wxArrayString\& }{files}, \param{const wxString\&}{ wildcard = ""}} - -This function returns the computer-parsable list of the files in the current -directory (optionally only of the files matching the {\it wildcard}, all files -by default). This list always has the same format and contains one full -(including the directory path) file name per line. - -Return value: true if the file list was successfully retrieved, false -otherwise. - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::GetOutputStream}\label{wxftpgetoutputstream} - -\func{wxOutputStream *}{GetOutputStream}{\param{const wxString\&}{ file}} - -Initializes an output stream to the specified {\it file}. The returned -stream has all but the seek functionality of wxStreams. When the user finishes -writing data, he has to delete the stream to close it. - -\wxheading{Return value} - -An initialized write-only stream. - -\wxheading{See also} - -\helpref{wxOutputStream}{wxoutputstream} - -% ---------------------------------------------------------------------------- - - -\membersection{wxFTP::GetInputStream}\label{wxftpgetinputstream} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the specified path. You can use all but the seek -functionality of wxStream. Seek isn't available on all streams. For example, -HTTP or FTP streams do not deal with it. Other functions like Tell -are not available for this sort of stream, at present. -You will be notified when the EOF is reached by an error. - -\wxheading{Return value} - -Returns NULL if an error occurred (it could be a network failure or the fact -that the file doesn't exist). - -Returns the initialized stream. You will have to delete it yourself when you -don't need it anymore. The destructor closes the DATA stream connection but -will leave the COMMAND stream connection opened. It means that you can still -send new commands without reconnecting. - -\wxheading{Example of a standalone connection (without wxURL)} - -\begin{verbatim} - wxFTP ftp; - wxInputStream *in_stream; - char *data; - - ftp.Connect("a.host.domain"); - ftp.ChDir("a_directory"); - in_stream = ftp.GetInputStream("a_file_to_get"); - - data = new char[in_stream->GetSize()]; - - in_stream->Read(data, in_stream->GetSize()); - if (in_stream->LastError() != wxStream_NOERROR) { - // Do something. - } - - delete in_stream; /* Close the DATA connection */ - - ftp.Close(); /* Close the COMMAND connection */ -\end{verbatim} - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex deleted file mode 100644 index 412fa7e839..0000000000 --- a/docs/latex/wx/function.tex +++ /dev/null @@ -1,5067 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: function.tex -%% Purpose: Functions and macros -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\chapter{Functions and macros}\label{functions} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -The functions and macros defined in wxWidgets are described here: you can -either look up a function using the alphabetical listing of them or find it in -the corresponding topic. - -\section{Alphabetical functions and macros list}\label{functionsalphabetically} - -\helpref{CLASSINFO}{classinfo}\\ -\helpref{DECLARE\_ABSTRACT\_CLASS}{declareabstractclass}\\ -\helpref{DECLARE\_APP}{declareapp}\\ -\helpref{DECLARE\_CLASS}{declareclass}\\ -\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass}\\ -\helpref{IMPLEMENT\_ABSTRACT\_CLASS2}{implementabstractclass2}\\ -\helpref{IMPLEMENT\_ABSTRACT\_CLASS}{implementabstractclass}\\ -\helpref{IMPLEMENT\_APP}{implementapp}\\ -\helpref{IMPLEMENT\_CLASS2}{implementclass2}\\ -\helpref{IMPLEMENT\_CLASS}{implementclass}\\ -\helpref{IMPLEMENT\_DYNAMIC\_CLASS2}{implementdynamicclass2}\\ -\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass}\\ -\helpref{wxAboutBox}{wxaboutbox}\\ -\helpref{wxASSERT}{wxassert}\\ -\helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize}\\ -\helpref{wxASSERT\_MSG}{wxassertmsg}\\ -\helpref{wxAtomicDec}{wxatomicdec}\\ -\helpref{wxAtomicInc}{wxatomicinc}\\ -\helpref{wxBase64Decode}{wxbase64decode}\\ -\helpref{wxBase64Encode}{wxbase64encode}\\ -\helpref{wxBeginBusyCursor}{wxbeginbusycursor}\\ -\helpref{wxBell}{wxbell}\\ -\helpref{wxBITMAP}{wxbitmapmacro}\\ -\helpref{wxCHANGE\_UMASK}{wxchangeumask}\\ -\helpref{wxCHECK}{wxcheck}\\ -\helpref{wxCHECK2\_MSG}{wxcheck2msg}\\ -\helpref{wxCHECK2}{wxcheck2}\\ -\helpref{wxCHECK\_GCC\_VERSION}{wxcheckgccversion}\\ -\helpref{wxCHECK\_MSG}{wxcheckmsg}\\ -\helpref{wxCHECK\_RET}{wxcheckret}\\ -\helpref{wxCHECK\_SUNCC\_VERSION}{wxchecksunccversion}\\ -\helpref{wxCHECK\_VERSION}{wxcheckversion}\\ -\helpref{wxCHECK\_VERSION\_FULL}{wxcheckversionfull}\\ -\helpref{wxCHECK\_VISUALC\_VERSION}{wxcheckvisualcversion}\\ -\helpref{wxCHECK\_W32API\_VERSION}{wxcheckw32apiversion}\\ -\helpref{wxClientDisplayRect}{wxclientdisplayrect}\\ -\helpref{wxClipboardOpen}{functionwxclipboardopen}\\ -\helpref{wxCloseClipboard}{wxcloseclipboard}\\ -\helpref{wxColourDisplay}{wxcolourdisplay}\\ -\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert}\\ -\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2}\\ -\helpref{wxCONCAT}{wxconcat}\\ -\helpref{wxConcatFiles}{wxconcatfiles}\\ -\helpref{wxConstCast}{wxconstcast}\\ -\helpref{wxCopyFile}{wxcopyfile}\\ -\helpref{wxCreateDynamicObject}{wxcreatedynamicobject}\\ -\helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}\\ -\helpref{wxCRIT\_SECT\_DECLARE}{wxcritsectdeclare}\\ -\helpref{wxCRIT\_SECT\_DECLARE\_MEMBER}{wxcritsectdeclaremember}\\ -\helpref{wxCRIT\_SECT\_LOCKER}{wxcritsectlocker}\\ -\helpref{wxCRITICAL\_SECTION}{wxcriticalsectionmacro}\\ % wxcs already taken! -\helpref{wxDDECleanUp}{wxddecleanup}\\ -\helpref{wxDDEInitialize}{wxddeinitialize}\\ -\helpref{wxDROP\_ICON}{wxdropicon}\\ -\helpref{wxDebugMsg}{wxdebugmsg}\\ -\helpref{WXDEBUG\_NEW}{debugnew}\\ -\helpref{wxDEPRECATED}{wxdeprecated}\\ -\helpref{wxDEPRECATED\_BUT\_USED\_INTERNALLY}{wxdeprecatedbutusedinternally}\\ -\helpref{wxDEPRECATED\_INLINE}{wxdeprecatedinline}\\ -\helpref{wxDirExists}{functionwxdirexists}\\ -\helpref{wxDirSelector}{wxdirselector}\\ -\helpref{wxDisplayDepth}{wxdisplaydepth}\\ -\helpref{wxDisplaySize}{wxdisplaysize}\\ -\helpref{wxDisplaySizeMM}{wxdisplaysizemm}\\ -\helpref{wxDos2UnixFilename}{wxdos2unixfilename}\\ -\helpref{wxDynamicCastThis}{wxdynamiccastthis}\\ -\helpref{wxDynamicCast}{wxdynamiccast}\\ -\helpref{wxDYNLIB\_FUNCTION}{wxdynlibfunction}\\ -\helpref{wxEmptyClipboard}{wxemptyclipboard}\\ -\helpref{wxEnableTopLevelWindows}{wxenabletoplevelwindows}\\ -\helpref{wxEndBusyCursor}{wxendbusycursor}\\ -\helpref{wxENTER\_CRIT\_SECT}{wxentercritsect}\\ -\helpref{wxEntry}{wxentry}\\ -\helpref{wxEntryStart}{wxentrystart}\\ -\helpref{wxEntryCleanup}{wxentrycleanup}\\ -\helpref{wxEnumClipboardFormats}{wxenumclipboardformats}\\ -\helpref{wxError}{wxerror}\\ -\helpref{wxExecute}{wxexecute}\\ -\helpref{wxExit}{wxexit}\\ -\helpref{wxEXPLICIT}{wxexplicit}\\ -\helpref{wxFAIL\_MSG}{wxfailmsg}\\ -\helpref{wxFAIL}{wxfail}\\ -\helpref{wxFatalError}{wxfatalerror}\\ -\helpref{wxFileExists}{functionwxfileexists}\\ -\helpref{wxFileModificationTime}{wxfilemodificationtime}\\ -\helpref{wxFileNameFromPath}{wxfilenamefrompath}\\ -\helpref{wxFileSelector}{wxfileselector}\\ -\helpref{wxFindFirstFile}{wxfindfirstfile}\\ -\helpref{wxFindMenuItemId}{wxfindmenuitemid}\\ -\helpref{wxFindNextFile}{wxfindnextfile}\\ -\helpref{wxFindWindowAtPointer}{wxfindwindowatpointer}\\ -\helpref{wxFindWindowAtPoint}{wxfindwindowatpoint}\\ -\helpref{wxFindWindowByLabel}{wxfindwindowbylabel}\\ -\helpref{wxFindWindowByName}{wxfindwindowbyname}\\ -\helpref{wxFinite}{wxfinite}\\ -\helpref{wxGenericAboutBox}{wxgenericaboutbox}\\ -\helpref{wxGetActiveWindow}{wxgetactivewindow}\\ -\helpref{wxGetApp}{wxgetapp}\\ -\helpref{wxGetBatteryState}{wxgetbatterystate}\\ -\helpref{wxGetClipboardData}{wxgetclipboarddata}\\ -\helpref{wxGetClipboardFormatName}{wxgetclipboardformatname}\\ -\helpref{wxGetColourFromUser}{wxgetcolourfromuser}\\ -\helpref{wxGetCwd}{wxgetcwd}\\ -\helpref{wxGetDiskSpace}{wxgetdiskspace}\\ -\helpref{wxGetDisplayName}{wxgetdisplayname}\\ -\helpref{wxGetDisplaySize}{wxdisplaysize}\\ -\helpref{wxGetDisplaySizeMM}{wxdisplaysizemm}\\ -\helpref{wxGetEmailAddress}{wxgetemailaddress}\\ -\helpref{wxGetEnv}{wxgetenv}\\ -\helpref{wxGetFileKind}{wxgetfilekind}\\ -\helpref{wxGetFontFromUser}{wxgetfontfromuser}\\ -\helpref{wxGetFreeMemory}{wxgetfreememory}\\ -\helpref{wxGetFullHostName}{wxgetfullhostname}\\ -\helpref{wxGetHomeDir}{wxgethomedir}\\ -\helpref{wxGetHostName}{wxgethostname}\\ -\helpref{wxGetKeyState}{wxgetkeystate}\\ -\helpref{wxGetLocalTimeMillis}{wxgetlocaltimemillis}\\ -\helpref{wxGetLocalTime}{wxgetlocaltime}\\ -\helpref{wxGetMousePosition}{wxgetmouseposition}\\ -\helpref{wxGetMouseState}{wxgetmousestate}\\ -\helpref{wxGetMultipleChoices}{wxgetmultiplechoices}\\ -\helpref{wxGetNumberFromUser}{wxgetnumberfromuser}\\ -\helpref{wxGetOSDirectory}{wxgetosdirectory}\\ -\helpref{wxGetOsDescription}{wxgetosdescription}\\ -\helpref{wxGetOsVersion}{wxgetosversion}\\ -\helpref{wxGetPasswordFromUser}{wxgetpasswordfromuser}\\ -\helpref{wxGetPowerType}{wxgetpowertype}\\ -\helpref{wxGetPrinterCommand}{wxgetprintercommand}\\ -\helpref{wxGetPrinterFile}{wxgetprinterfile}\\ -\helpref{wxGetPrinterMode}{wxgetprintermode}\\ -\helpref{wxGetPrinterOptions}{wxgetprinteroptions}\\ -\helpref{wxGetPrinterOrientation}{wxgetprinterorientation}\\ -\helpref{wxGetPrinterPreviewCommand}{wxgetprinterpreviewcommand}\\ -\helpref{wxGetPrinterScaling}{wxgetprinterscaling}\\ -\helpref{wxGetPrinterTranslation}{wxgetprintertranslation}\\ -\helpref{wxGetProcessId}{wxgetprocessid}\\ -\helpref{wxGetSingleChoiceData}{wxgetsinglechoicedata}\\ -\helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex}\\ -\helpref{wxGetSingleChoice}{wxgetsinglechoice}\\ -\helpref{wxGetTempFileName}{wxgettempfilename}\\ -\helpref{wxGetTextFromUser}{wxgettextfromuser}\\ -\helpref{wxGetTopLevelParent}{wxgettoplevelparent}\\ -\helpref{wxGetTranslation}{wxgettranslation}\\ -\helpref{wxGetUTCTime}{wxgetutctime}\\ -\helpref{wxGetUserHome}{wxgetuserhome}\\ -\helpref{wxGetUserId}{wxgetuserid}\\ -\helpref{wxGetUserName}{wxgetusername}\\ -\helpref{wxGetWorkingDirectory}{wxgetworkingdirectory}\\ -\helpref{wxGetenv}{wxgetenvmacro}\\ -\helpref{wxHandleFatalExceptions}{wxhandlefatalexceptions}\\ -\helpref{wxICON}{wxiconmacro}\\ -\helpref{wxInfoMessageBox}{wxinfomessagebox}\\ -\helpref{wxINTXX\_SWAP\_ALWAYS}{intswapalways}\\ -\helpref{wxINTXX\_SWAP\_ON\_BE}{intswaponbe}\\ -\helpref{wxINTXX\_SWAP\_ON\_LE}{intswaponle}\\ -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}\\ -\helpref{wxInitialize}{wxinitialize}\\ -\helpref{wxIsAbsolutePath}{wxisabsolutepath}\\ -\helpref{wxIsBusy}{wxisbusy}\\ -\helpref{wxIsClipboardFormatAvailable}{wxisclipboardformatavailable}\\ -\helpref{wxIsDebuggerRunning}{wxisdebuggerrunning}\\ -\helpref{wxIsEmpty}{wxisempty}\\ -\helpref{wxIsMainThread}{wxismainthread}\\ -\helpref{wxIsNaN}{wxisnan}\\ -\helpref{wxIsPlatformLittleEndian}{wxisplatformlittleendian}\\ -\helpref{wxIsPlatform64Bit}{wxisplatform64bit}\\ -\helpref{wxIsWild}{wxiswild}\\ -\helpref{wxJoin}{wxjoin}\\ -\helpref{wxKill}{wxkill}\\ -\helpref{wxLaunchDefaultBrowser}{wxlaunchdefaultbrowser}\\ -\helpref{wxLEAVE\_CRIT\_SECT}{wxleavecritsect}\\ -\helpref{wxLoadUserResource}{wxloaduserresource}\\ -\helpref{wxLogDebug}{wxlogdebug}\\ -\helpref{wxLogError}{wxlogerror}\\ -\helpref{wxLogFatalError}{wxlogfatalerror}\\ -\helpref{wxLogMessage}{wxlogmessage}\\ -\helpref{wxLogStatus}{wxlogstatus}\\ -\helpref{wxLogSysError}{wxlogsyserror}\\ -\helpref{wxLogTrace}{wxlogtrace}\\ -\helpref{wxLogVerbose}{wxlogverbose}\\ -\helpref{wxLogWarning}{wxlogwarning}\\ -\helpref{wxLL}{wxll}\\ -\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec}\\ -\helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\ -\helpref{wxMatchWild}{wxmatchwild}\\ -\helpref{wxMessageBox}{wxmessagebox}\\ -\helpref{wxMilliSleep}{wxmillisleep}\\ -\helpref{wxMicroSleep}{wxmicrosleep}\\ -\helpref{wxMkdir}{wxmkdir}\\ -\helpref{wxMutexGuiEnter}{wxmutexguienter}\\ -\helpref{wxMutexGuiLeave}{wxmutexguileave}\\ -\helpref{wxNewId}{wxnewid}\\ -\helpref{wxNow}{wxnow}\\ -\helpref{wxOnAssert}{wxonassert}\\ -\helpref{wxON\_BLOCK\_EXIT}{wxonblockexit}\\ -\helpref{wxON\_BLOCK\_EXIT\_OBJ}{wxonblockexitobj}\\ -\helpref{wxOpenClipboard}{wxopenclipboard}\\ -\helpref{wxParseCommonDialogsFilter}{wxparsecommondialogsfilter}\\ -\helpref{wxPathOnly}{wxpathonly}\\ -\helpref{wxPLURAL}{wxplural}\\ -\helpref{wxPostDelete}{wxpostdelete}\\ -\helpref{wxPostEvent}{wxpostevent}\\ -\helpref{wxRegisterClipboardFormat}{wxregisterclipboardformat}\\ -\helpref{wxRegisterId}{wxregisterid}\\ -\helpref{wxRemoveFile}{wxremovefile}\\ -\helpref{wxRenameFile}{wxrenamefile}\\ -\helpref{wxRmdir}{wxrmdir}\\ -\helpref{wxS}{wxs}\\ -\helpref{wxSafeShowMessage}{wxsafeshowmessage}\\ -\helpref{wxSafeYield}{wxsafeyield}\\ -\helpref{wxSetClipboardData}{wxsetclipboarddata}\\ -\helpref{wxSetCursor}{wxsetcursor}\\ -\helpref{wxSetDisplayName}{wxsetdisplayname}\\ -\helpref{wxSetEnv}{wxsetenv}\\ -\helpref{wxSetPrinterCommand}{wxsetprintercommand}\\ -\helpref{wxSetPrinterFile}{wxsetprinterfile}\\ -\helpref{wxSetPrinterMode}{wxsetprintermode}\\ -\helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\ -\helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\ -\helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\ -\helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\ -\helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\ -\helpref{wxSetWorkingDirectory}{wxsetworkingdirectory}\\ -\helpref{wxShell}{wxshell}\\ -\helpref{wxShowTip}{wxshowtip}\\ -\helpref{wxShutdown}{wxshutdown}\\ -\helpref{wxSleep}{wxsleep}\\ -\helpref{wxSnprintf}{wxsnprintf}\\ -\helpref{wxSplit}{wxsplit}\\ -\helpref{wxSplitPath}{wxsplitfunction}\\ -\helpref{wxStaticCast}{wxstaticcast}\\ -\helpref{wxStrcmp}{wxstrcmp}\\ -\helpref{wxStricmp}{wxstricmp}\\ -\helpref{wxStringEq}{wxstringeq}\\ -\helpref{wxStringMatch}{wxstringmatch}\\ -\helpref{wxStringTokenize}{wxstringtokenize}\\ -\helpref{wxStripMenuCodes}{wxstripmenucodes}\\ -\helpref{wxStrlen}{wxstrlen}\\ -\helpref{wxSTRINGIZE}{wxstringize}\\ -\helpref{wxSTRINGIZE\_T}{wxstringizet}\\ -\helpref{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}{wxsuppressgccprivatedtorwarning}\\ -\helpref{wxSysErrorCode}{wxsyserrorcode}\\ -\helpref{wxSysErrorMsg}{wxsyserrormsg}\\ -\helpref{wxT}{wxt}\\ -\helpref{wxTrace}{wxtrace}\\ -\helpref{WXTRACE}{trace}\\ -\helpref{wxTraceLevel}{wxtracelevel}\\ -\helpref{WXTRACELEVEL}{tracelevel}\\ -\helpref{wxTransferFileToStream}{wxtransferfiletostream}\\ -\helpref{wxTransferStreamToFile}{wxtransferstreamtofile}\\ -\helpref{wxTrap}{wxtrap}\\ -\helpref{wxULL}{wxull}\\ -\helpref{wxUninitialize}{wxuninitialize}\\ -\helpref{wxUnix2DosFilename}{wxunix2dosfilename}\\ -\helpref{wxUnsetEnv}{wxunsetenv}\\ -\helpref{wxUsleep}{wxusleep}\\ -\helpref{wxVaCopy}{wxvacopy}\\ -\helpref{wxVsnprintf}{wxvsnprintf}\\ -\helpref{wxWakeUpIdle}{wxwakeupidle}\\ -\helpref{wxYield}{wxyield}\\ -\helpref{wx\_const\_cast}{wxconstcastraw}\\ -\helpref{wx\_reinterpret\_cast}{wxreinterpretcastraw}\\ -\helpref{wx\_static\_cast}{wxstaticcastraw}\\ -\helpref{wx\_truncate\_cast}{wxtruncatecast}\\ -\helpref{\_}{underscore}\\ -\helpref{\_T}{underscoret} -\helpref{\_\_WXFUNCTION\_\_}{wxfunction} - - - -\section{Version macros}\label{versionfunctions} - -The following constants are defined in wxWidgets: - -\begin{itemize}\itemsep=0pt -\item {\tt wxMAJOR\_VERSION} is the major version of wxWidgets -\item {\tt wxMINOR\_VERSION} is the minor version of wxWidgets -\item {\tt wxRELEASE\_NUMBER} is the release number -\item {\tt wxSUBRELEASE\_NUMBER} is the subrelease number which is $0$ for all -official releases -\end{itemize} - -For example, the values or these constants for wxWidgets 2.1.15 are 2, 1 and -15. - -Additionally, {\tt wxVERSION\_STRING} is a user-readable string containing -the full wxWidgets version and {\tt wxVERSION\_NUMBER} is a combination of the -three version numbers above: for 2.1.15, it is 2115 and it is 2200 for -wxWidgets 2.2. - -The subrelease number is only used for the sources in between official releases -and so normally is not useful. - -\wxheading{Include files} - - or - - -\membersection{wxCHECK\_GCC\_VERSION}\label{wxcheckgccversion} - -\func{bool}{wxCHECK\_GCC\_VERSION}{\param{}{major, minor}} - -Returns $1$ if the compiler being used to compile the code is GNU C++ -compiler (g++) version major.minor or greater. Otherwise, and also if -the compiler is not GNU C++ at all, returns $0$. - - -\membersection{wxCHECK\_SUNCC\_VERSION}\label{wxchecksunccversion} - -\func{bool}{wxCHECK\_SUNCC\_VERSION}{\param{}{major, minor}} - -Returns $1$ if the compiler being used to compile the code is Sun CC Pro -compiler and its version is at least \texttt{major.minor}. Otherwise returns -$0$. - - -\membersection{wxCHECK\_VERSION}\label{wxcheckversion} - -\func{bool}{wxCHECK\_VERSION}{\param{}{major, minor, release}} - -This is a macro which evaluates to true if the current wxWidgets version is at -least major.minor.release. - -For example, to test if the program is compiled with wxWidgets 2.2 or higher, -the following can be done: - -\begin{verbatim} - wxString s; -#if wxCHECK_VERSION(2, 2, 0) - if ( s.StartsWith("foo") ) -#else // replacement code for old version - if ( strncmp(s, "foo", 3) == 0 ) -#endif - { - ... - } -\end{verbatim} - - -\membersection{wxCHECK\_VERSION\_FULL}\label{wxcheckversionfull} - -\func{bool}{wxCHECK\_VERSION\_FULL}{\param{}{major, minor, release, subrel}} - -Same as \helpref{wxCHECK\_VERSION}{wxcheckversion} but also checks that -\texttt{wxSUBRELEASE\_NUMBER} is at least \arg{subrel}. - - -\membersection{wxCHECK\_VISUALC\_VERSION}\label{wxcheckvisualcversion} - -\func{bool}{wxCHECK\_VISUALC\_VERSION}{\param{}{major}} - -Returns $1$ if the compiler being used to compile the code is Visual C++ -compiler version \arg{major} or greater. Otherwise, and also if -the compiler is not Visual C++ at all, returns $0$. - - -\membersection{wxCHECK\_W32API\_VERSION}\label{wxcheckw32apiversion} - -\func{bool}{wxCHECK\_W32API\_VERSION}{\param{}{major, minor, release}} - -Returns $1$ if the version of w32api headers used is major.minor.release or -greater. Otherwise, and also if we are not compiling with mingw32/cygwin under -Win32 at all, returns $0$. - - - -\section{Application initialization and termination}\label{appinifunctions} - -The functions in this section are used on application startup/shutdown and also -to control the behaviour of the main event loop of the GUI programs. - - -\membersection{::wxEntry}\label{wxentry} - -This initializes wxWidgets in a platform-dependent way. Use this if you are not -using the default wxWidgets entry code (e.g. main or WinMain). For example, you -can initialize wxWidgets from an Microsoft Foundation Classes application using -this function. - -The following overload of wxEntry is available under all platforms: - -\func{int}{wxEntry}{\param{int\&}{ argc}, \param{wxChar **}{argv}} - -Under MS Windows, an additional overload suitable for calling from -\texttt{WinMain} is available: - -\func{int}{wxEntry}{\param{HINSTANCE }{hInstance}, \param{HINSTANCE }{hPrevInstance = \NULL}, \param{char *}{pCmdLine = \NULL}, \param{int }{nCmdShow = \texttt{SW\_SHOWNORMAL}}} - -(notice that under Windows CE platform, and only there, the type of -\arg{pCmdLine} is \texttt{wchar\_t *}, otherwise it is \texttt{char *}, even in -Unicode build). - -\wxheading{See also} - -\helpref{wxEntryStart}{wxentrystart} - -\wxheading{Remarks} - -To clean up wxWidgets, call wxApp::OnExit followed by the static function -wxApp::CleanUp. For example, if exiting from an MFC application that also uses wxWidgets: - -\begin{verbatim} -int CTheApp::ExitInstance() -{ - // OnExit isn't called by CleanUp so must be called explicitly. - wxTheApp->OnExit(); - wxApp::CleanUp(); - - return CWinApp::ExitInstance(); -} -\end{verbatim} - -\wxheading{Include files} - - - - - -\membersection{::wxEntryCleanup}\label{wxentrycleanup} - -\func{void}{wxEntryCleanup}{\void} - -Free resources allocated by a successful call to \helpref{wxEntryStart}{wxentrystart}. - -\wxheading{Include files} - - - - -\membersection{::wxEntryStart}\label{wxentrystart} - -\func{bool}{wxEntryStart}{\param{int\&}{ argc}, \param{wxChar **}{argv}} - -This function can be used to perform the initialization of wxWidgets if you -can't use the default initialization code for any reason. - -If the function returns \true, the initialization was successful and the global -\helpref{wxApp}{wxapp} object \texttt{wxTheApp} has been created. Moreover, -\helpref{wxEntryCleanup}{wxentrycleanup} must be called afterwards. If the -function returns \false, a catastrophic initialization error occured and (at -least the GUI part of) the library can't be used at all. - -Notice that parameters \arg{argc} and \arg{argv} may be modified by this -function. - -An additional overload of wxEntryStart() is provided under MSW only: it is -meant to be called with the parameters passed to \texttt{WinMain()}. - -\func{bool}{wxEntryStart}{\param{HINSTANCE }{hInstance}, \param{HINSTANCE }{hPrevInstance = \NULL}, \param{char *}{pCmdLine = \NULL}, \param{int }{nCmdShow = \texttt{SW\_SHOWNORMAL}}} - -(notice that under Windows CE platform, and only there, the type of -\arg{pCmdLine} is \texttt{wchar\_t *}, otherwise it is \texttt{char *}, even in -Unicode build). - -\wxheading{Include files} - - - - -\membersection{::wxGetApp}\label{wxgetapp} - -\func{wxAppDerivedClass\&}{wxGetApp}{\void} - -This function doesn't exist in wxWidgets but it is created by using -the \helpref{IMPLEMENT\_APP}{implementapp} macro. Thus, before using it -anywhere but in the same module where this macro is used, you must make it -available using \helpref{DECLARE\_APP}{declareapp}. - -The advantage of using this function compared to directly using the global -wxTheApp pointer is that the latter is of type {\tt wxApp *} and so wouldn't -allow you to access the functions specific to your application class but not -present in wxApp while wxGetApp() returns the object of the right type. - - -\membersection{::wxHandleFatalExceptions}\label{wxhandlefatalexceptions} - -\func{bool}{wxHandleFatalExceptions}{\param{bool}{ doIt = true}} - -If {\it doIt} is true, the fatal exceptions (also known as general protection -faults under Windows or segmentation violations in the Unix world) will be -caught and passed to \helpref{wxApp::OnFatalException}{wxapponfatalexception}. -By default, i.e. before this function is called, they will be handled in the -normal way which usually just means that the application will be terminated. -Calling wxHandleFatalExceptions() with {\it doIt} equal to false will restore -this default behaviour. - -Notice that this function is only available if -\texttt{wxUSE\_ON\_FATAL\_EXCEPTION} is $1$ and under Windows platform this -requires a compiler with support for SEH (structured exception handling) which -currently means only Microsoft Visual C++ or a recent Borland C++ version. - - -\membersection{::wxInitAllImageHandlers}\label{wxinitallimagehandlers} - -\func{void}{wxInitAllImageHandlers}{\void} - -Initializes all available image handlers. For a list of available handlers, -see \helpref{wxImage}{wximage}. - -\wxheading{See also} - -\helpref{wxImage}{wximage}, \helpref{wxImageHandler}{wximagehandler} - -\wxheading{Include files} - - - - -\membersection{::wxInitialize}\label{wxinitialize} - -\func{bool}{wxInitialize}{\void} - -This function is used in wxBase only and only if you don't create -\helpref{wxApp}{wxapp} object at all. In this case you must call it from your -{\tt main()} function before calling any other wxWidgets functions. - -If the function returns \false the initialization could not be performed, -in this case the library cannot be used and -\helpref{wxUninitialize}{wxuninitialize} shouldn't be called neither. - -This function may be called several times but -\helpref{wxUninitialize}{wxuninitialize} must be called for each successful -call to this function. - -\wxheading{Include files} - - - - -\membersection{::wxSafeYield}\label{wxsafeyield} - -\func{bool}{wxSafeYield}{\param{wxWindow*}{ win = NULL}, \param{bool}{ - onlyIfNeeded = false}} - -This function is similar to wxYield, except that it disables the user input to -all program windows before calling wxYield and re-enables it again -afterwards. If {\it win} is not NULL, this window will remain enabled, -allowing the implementation of some limited user interaction. - -Returns the result of the call to \helpref{::wxYield}{wxyield}. - -\wxheading{Include files} - - - - -\membersection{::wxUninitialize}\label{wxuninitialize} - -\func{void}{wxUninitialize}{\void} - -This function is for use in console (wxBase) programs only. It must be called -once for each previous successful call to \helpref{wxInitialize}{wxinitialize}. - -\wxheading{Include files} - - - - -\membersection{::wxYield}\label{wxyield} - -\func{bool}{wxYield}{\void} - -Calls \helpref{wxApp::Yield}{wxappyield}. - -This function is kept only for backwards compatibility. Please use -the \helpref{wxApp::Yield}{wxappyield} method instead in any new code. - -\wxheading{Include files} - - or - - -\membersection{::wxWakeUpIdle}\label{wxwakeupidle} - -\func{void}{wxWakeUpIdle}{\void} - -This functions wakes up the (internal and platform dependent) idle system, i.e. it -will force the system to send an idle event even if the system currently {\it is} - idle and thus would not send any idle event until after some other event would get -sent. This is also useful for sending events between two threads and is used by -the corresponding functions \helpref{::wxPostEvent}{wxpostevent} and -\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}. - -\wxheading{Include files} - - - - - -\section{Process control functions}\label{processfunctions} - -The functions in this section are used to launch or terminate the other -processes. - - -\membersection{::wxExecute}\label{wxexecute} - -\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{int }{sync = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}} - -\perlnote{In wxPerl this function is called \texttt{Wx::ExecuteCommand}} - -\func{long}{wxExecute}{\param{char **}{argv}, \param{int }{flags = wxEXEC\_ASYNC}, \param{wxProcess *}{callback = NULL}} - -\perlnote{In wxPerl this function is called \texttt{Wx::ExecuteArgs}} - -\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}, \param{int }{flags = 0}} - -\perlnote{In wxPerl this function is called \texttt{Wx::ExecuteStdout} and it -only takes the {\tt command} argument, -and returns a 2-element list {\tt ( status, output )}, where {\tt output} is -an array reference.} - -\func{long}{wxExecute}{\param{const wxString\& }{command}, \param{wxArrayString\& }{output}, \param{wxArrayString\& }{errors}, \param{int }{flags = 0}} - -\perlnote{In wxPerl this function is called \texttt{Wx::ExecuteStdoutStderr} -and it only takes the {\tt command} argument, -and returns a 3-element list {\tt ( status, output, errors )}, where -{\tt output} and {\tt errors} are array references.} - -Executes another program in Unix or Windows. - -The first form takes a command string, such as {\tt "emacs file.txt"}. - -The second form takes an array of values: a command, any number of -arguments, terminated by NULL. - -The semantics of the third and fourth versions is different from the first two -and is described in more details below. - -If {\it flags} parameter contains {\tt wxEXEC\_ASYNC} flag (the default), flow -of control immediately returns. If it contains {\tt wxEXEC\_SYNC}, the current -application waits until the other program has terminated. - -In the case of synchronous execution, the return value is the exit code of -the process (which terminates by the moment the function returns) and will be -$-1$ if the process couldn't be started and typically 0 if the process -terminated successfully. Also, while waiting for the process to -terminate, wxExecute will call \helpref{wxYield}{wxyield}. Because of this, by -default this function disables all application windows to avoid unexpected -reentrancies which could result from the users interaction with the program -while the child process is running. If you are sure that it is safe to not -disable the program windows, you may pass \texttt{wxEXEC\_NODISABLE} flag to -prevent this automatic disabling from happening. - -For asynchronous execution, however, the return value is the process id and -zero value indicates that the command could not be executed. As an added -complication, the return value of $-1$ in this case indicates that we didn't -launch a new process, but connected to the running one (this can only happen in -case of using DDE under Windows for command execution). In particular, in this, -and only this, case the calling code will not get the notification about -process termination. - -If callback isn't NULL and if execution is asynchronous, -\helpref{wxProcess::OnTerminate}{wxprocessonterminate} will be called when -the process finishes. Specifying this parameter also allows you to redirect the -standard input and/or output of the process being launched by calling -\helpref{Redirect}{wxprocessredirect}. If the child process IO is redirected, -under Windows the process window is not shown by default (this avoids having to -flush an unnecessary console for the processes which don't create any windows -anyhow) but a {\tt wxEXEC\_NOHIDE} flag can be used to prevent this from -happening, i.e. with this flag the child process window will be shown normally. - -Under Unix the flag {\tt wxEXEC\_MAKE\_GROUP\_LEADER} may be used to ensure -that the new process is a group leader (this will create a new session if -needed). Calling \helpref{wxKill}{wxkill} passing wxKILL\_CHILDREN will -kill this process as well as all of its children (except those which have -started their own session). - -The {\tt wxEXEC\_NOEVENTS} flag prevents processing of any events from taking -place while the child process is running. It should be only used for very -short-lived processes as otherwise the application windows risk becoming -unresponsive from the users point of view. As this flag only makes sense with -{\tt wxEXEC\_SYNC}, {\tt wxEXEC\_BLOCK} equal to the sum of both of these flags -is provided as a convenience. - -Finally, you may use the third overloaded version of this function to execute -a process (always synchronously, the contents of \arg{flags} is or'd with -\texttt{wxEXEC\_SYNC}) and capture its output in the array \arg{output}. The -fourth version adds the possibility to additionally capture the messages from -standard error output in the \arg{errors} array. - -{\bf NB:} Currently wxExecute() can only be used from the main thread, calling -this function from another thread will result in an assert failure in debug -build and won't work. - -\wxheading{See also} - -\helpref{wxShell}{wxshell}, \helpref{wxProcess}{wxprocess}, \helpref{Exec sample}{sampleexec}. - -\wxheading{Parameters} - -\docparam{command}{The command to execute and any parameters to pass to it as a -single string.} - -\docparam{argv}{The command to execute should be the first element of this -array, any additional ones are the command parameters and the array must be -terminated with a NULL pointer.} - -\docparam{flags}{Combination of bit masks {\tt wxEXEC\_ASYNC},\rtfsp -{\tt wxEXEC\_SYNC} and {\tt wxEXEC\_NOHIDE}} - -\docparam{callback}{An optional pointer to \helpref{wxProcess}{wxprocess}} - -\wxheading{Include files} - - - - -\membersection{::wxExit}\label{wxexit} - -\func{void}{wxExit}{\void} - -Exits application after calling \helpref{wxApp::OnExit}{wxapponexit}. -Should only be used in an emergency: normally the top-level frame -should be deleted (after deleting all other frames) to terminate the -application. See \helpref{wxCloseEvent}{wxcloseevent} and \helpref{wxApp}{wxapp}. - -\wxheading{Include files} - - - - -\membersection{::wxJoin}\label{wxjoin} - -\func{wxString}{wxJoin}{\param{const wxArrayString\&}{ arr}, \param{const wxChar}{ sep}, \param{const wxChar}{ escape = '$\backslash$'}} - -Concatenate all lines of the given \helpref{wxArrayString}{wxarraystring} object using the separator \arg{sep} and returns -the result as a \helpref{wxString}{wxstring}. - -If the \arg{escape} character is non-\NULL, then it's used as prefix for each occurrence of \arg{sep} -in the strings contained in \arg{arr} before joining them which is necessary -in order to be able to recover the original array contents from the string -later using \helpref{wxSplit}{wxsplit}. - -\wxheading{Include files} - - - - -\membersection{::wxKill}\label{wxkill} - -\func{int}{wxKill}{\param{long}{ pid}, \param{int}{ sig = wxSIGTERM}, \param{wxKillError }{*rc = NULL}, \param{int }{flags = 0}} - -Equivalent to the Unix kill function: send the given signal {\it sig} to the -process with PID {\it pid}. The valid signal values are - -\begin{verbatim} -enum wxSignal -{ - wxSIGNONE = 0, // verify if the process exists under Unix - wxSIGHUP, - wxSIGINT, - wxSIGQUIT, - wxSIGILL, - wxSIGTRAP, - wxSIGABRT, - wxSIGEMT, - wxSIGFPE, - wxSIGKILL, // forcefully kill, dangerous! - wxSIGBUS, - wxSIGSEGV, - wxSIGSYS, - wxSIGPIPE, - wxSIGALRM, - wxSIGTERM // terminate the process gently -}; -\end{verbatim} - -{\tt wxSIGNONE}, {\tt wxSIGKILL} and {\tt wxSIGTERM} have the same meaning -under both Unix and Windows but all the other signals are equivalent to -{\tt wxSIGTERM} under Windows. - -Returns 0 on success, -1 on failure. If {\it rc} parameter is not NULL, it will -be filled with an element of {\tt wxKillError} enum: - -\begin{verbatim} -enum wxKillError -{ - wxKILL_OK, // no error - wxKILL_BAD_SIGNAL, // no such signal - wxKILL_ACCESS_DENIED, // permission denied - wxKILL_NO_PROCESS, // no such process - wxKILL_ERROR // another, unspecified error -}; -\end{verbatim} - -The {\it flags} parameter can be wxKILL\_NOCHILDREN (the default), -or wxKILL\_CHILDREN, in which case the child processes of this -process will be killed too. Note that under Unix, for wxKILL\_CHILDREN -to work you should have created the process by passing wxEXEC\_MAKE\_GROUP\_LEADER -to wxExecute. - -\wxheading{See also} - -\helpref{wxProcess::Kill}{wxprocesskill},\rtfsp -\helpref{wxProcess::Exists}{wxprocessexists},\rtfsp -\helpref{Exec sample}{sampleexec} - -\wxheading{Include files} - - - - -\membersection{::wxGetProcessId}\label{wxgetprocessid} - -\func{unsigned long}{wxGetProcessId}{\void} - -Returns the number uniquely identifying the current process in the system. - -If an error occurs, $0$ is returned. - -\wxheading{Include files} - - - - -\membersection{::wxShell}\label{wxshell} - -\func{bool}{wxShell}{\param{const wxString\& }{command = NULL}} - -Executes a command in an interactive shell window. If no command is -specified, then just the shell is spawned. - -See also \helpref{wxExecute}{wxexecute}, \helpref{Exec sample}{sampleexec}. - -\wxheading{Include files} - - - - -\membersection{::wxShutdown}\label{wxshutdown} - -\func{bool}{wxShutdown}{\param{wxShutdownFlags}{flags}} - -This function shuts down or reboots the computer depending on the value of the -{\it flags}. Please notice that doing this requires the corresponding access -rights (superuser under Unix, {\tt SE\_SHUTDOWN} privilege under Windows NT) -and that this function is only implemented under Unix and Win32. - -\wxheading{Parameters} - -\docparam{flags}{Either {\tt wxSHUTDOWN\_POWEROFF} or {\tt wxSHUTDOWN\_REBOOT}} - -\wxheading{Returns} - -\true on success, \false if an error occurred. - -\wxheading{Include files} - - - - - -\section{Thread functions}\label{threadfunctions} - -The functions and macros here mainly exist to make it writing the code which -may be compiled in multi thread build ({\tt wxUSE\_THREADS} $= 1$) as well as -in single thread configuration ({\tt wxUSE\_THREADS} $= 0$). - -For example, a static variable must be protected against simultaneous access by -multiple threads in the former configuration but in the latter the extra -overhead of using the critical section is not needed. To solve this problem, -the \helpref{wxCRITICAL\_SECTION}{wxcriticalsectionmacro} macro may be used -to create and use the critical section only when needed. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, \helpref{Multithreading overview}{wxthreadoverview} - - - -\membersection{wxCRIT\_SECT\_DECLARE}\label{wxcritsectdeclare} - -\func{}{wxCRIT\_SECT\_DECLARE}{\param{}{cs}} - -This macro declares a (static) critical section object named {\it cs} if -{\tt wxUSE\_THREADS} is $1$ and does nothing if it is $0$. - - - -\membersection{wxCRIT\_SECT\_DECLARE\_MEMBER}\label{wxcritsectdeclaremember} - -\func{}{wxCRIT\_SECT\_DECLARE}{\param{}{cs}} - -This macro declares a critical section object named {\it cs} if -{\tt wxUSE\_THREADS} is $1$ and does nothing if it is $0$. As it doesn't -include the {\tt static} keyword (unlike -\helpref{wxCRIT\_SECT\_DECLARE}{wxcritsectdeclare}), it can be used to declare -a class or struct member which explains its name. - - - -\membersection{wxCRIT\_SECT\_LOCKER}\label{wxcritsectlocker} - -\func{}{wxCRIT\_SECT\_LOCKER}{\param{}{name}, \param{}{cs}} - -This macro creates a \helpref{critical section lock}{wxcriticalsectionlocker} -object named {\it name} and associated with the critical section {\it cs} if -{\tt wxUSE\_THREADS} is $1$ and does nothing if it is $0$. - - - -\membersection{wxCRITICAL\_SECTION}\label{wxcriticalsectionmacro} - -\func{}{wxCRITICAL\_SECTION}{\param{}{name}} - -This macro combines \helpref{wxCRIT\_SECT\_DECLARE}{wxcritsectdeclare} and -\helpref{wxCRIT\_SECT\_LOCKER}{wxcritsectlocker}: it creates a static critical -section object and also the lock object associated with it. Because of this, it -can be only used inside a function, not at global scope. For example: - -\begin{verbatim} -int IncCount() -{ - static int s_counter = 0; - - wxCRITICAL_SECTION(counter); - - return ++s_counter; -} -\end{verbatim} - -(note that we suppose that the function is called the first time from the main -thread so that the critical section object is initialized correctly by the time -other threads start calling it, if this is not the case this approach can -{\bf not} be used and the critical section must be made a global instead). - - - -\membersection{wxENTER\_CRIT\_SECT}\label{wxentercritsect} - -\func{}{wxENTER\_CRIT\_SECT}{\param{wxCriticalSection\& }{cs}} - -This macro is equivalent to \helpref{cs.Enter()}{wxcriticalsectionenter} if -{\tt wxUSE\_THREADS} is $1$ and does nothing if it is $0$. - - - -\membersection{::wxIsMainThread}\label{wxismainthread} - -\func{bool}{wxIsMainThread}{\void} - -Returns \true if this thread is the main one. Always returns \true if -{\tt wxUSE\_THREADS} is $0$. - - - -\membersection{wxLEAVE\_CRIT\_SECT}\label{wxleavecritsect} - -\func{}{wxLEAVE\_CRIT\_SECT}{\param{wxCriticalSection\& }{cs}} - -This macro is equivalent to \helpref{cs.Leave()}{wxcriticalsectionleave} if -{\tt wxUSE\_THREADS} is $1$ and does nothing if it is $0$. - - - -\membersection{::wxMutexGuiEnter}\label{wxmutexguienter} - -\func{void}{wxMutexGuiEnter}{\void} - -This function must be called when any thread other than the main GUI thread -wants to get access to the GUI library. This function will block the execution -of the calling thread until the main thread (or any other thread holding the -main GUI lock) leaves the GUI library and no other thread will enter the GUI -library until the calling thread calls \helpref{::wxMutexGuiLeave()}{wxmutexguileave}. - -Typically, these functions are used like this: - -\begin{verbatim} -void MyThread::Foo(void) -{ - // before doing any GUI calls we must ensure that this thread is the only - // one doing it! - - wxMutexGuiEnter(); - - // Call GUI here: - my_window->DrawSomething(); - - wxMutexGuiLeave(); -} -\end{verbatim} - -Note that under GTK, no creation of top-level windows is allowed in any -thread but the main one. - -This function is only defined on platforms which support preemptive -threads. - - -\membersection{::wxMutexGuiLeave}\label{wxmutexguileave} - -\func{void}{wxMutexGuiLeave}{\void} - -See \helpref{::wxMutexGuiEnter()}{wxmutexguienter}. - -This function is only defined on platforms which support preemptive -threads. - - - -\section{File functions}\label{filefunctions} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxPathList}{wxpathlist}\\ -\helpref{wxDir}{wxdir}\\ -\helpref{wxFile}{wxfile}\\ -\helpref{wxFileName}{wxfilename} - - -\membersection{::wxDos2UnixFilename}\label{wxdos2unixfilename} - -\func{void}{wxDos2UnixFilename}{\param{wxChar *}{s}} - -Converts a DOS to a Unix filename by replacing backslashes with forward -slashes. - - -\membersection{::wxFileExists}\label{functionwxfileexists} - -\func{bool}{wxFileExists}{\param{const wxString\& }{filename}} - -Returns true if the file exists and is a plain file. - - -\membersection{::wxFileModificationTime}\label{wxfilemodificationtime} - -\func{time\_t}{wxFileModificationTime}{\param{const wxString\& }{filename}} - -Returns time of last modification of given file. - -The function returns \texttt{(time\_t)}$-1$ if an error occurred (e.g. file not -found). - - -\membersection{::wxFileNameFromPath}\label{wxfilenamefrompath} - -\func{wxString}{wxFileNameFromPath}{\param{const wxString\& }{path}} - -\func{char *}{wxFileNameFromPath}{\param{char *}{path}} - -{\bf NB:} This function is obsolete, please use -\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead. - -Returns the filename for a full path. The second form returns a pointer to -temporary storage that should not be deallocated. - - -\membersection{::wxFindFirstFile}\label{wxfindfirstfile} - -\func{wxString}{wxFindFirstFile}{\param{const wxString\& }{spec}, \param{int}{ flags = 0}} - -This function does directory searching; returns the first file -that matches the path {\it spec}, or the empty string. Use \helpref{wxFindNextFile}{wxfindnextfile} to -get the next matching file. Neither will report the current directory "." or the -parent directory "..". - -\wxheading{Warning} - -As of wx 2.5.2, these functions are not thread-safe! (they use static variables). You probably want to use \helpref{wxDir::GetFirst}{wxdirgetfirst} or \helpref{wxDirTraverser}{wxdirtraverser} instead. - -{\it spec} may contain wildcards. - -{\it flags} may be wxDIR for restricting the query to directories, wxFILE for files or zero for either. - -For example: - -\begin{verbatim} - wxString f = wxFindFirstFile("/home/project/*.*"); - while ( !f.empty() ) - { - ... - f = wxFindNextFile(); - } -\end{verbatim} - - -\membersection{::wxFindNextFile}\label{wxfindnextfile} - -\func{wxString}{wxFindNextFile}{\void} - -Returns the next file that matches the path passed to \helpref{wxFindFirstFile}{wxfindfirstfile}. - -See \helpref{wxFindFirstFile}{wxfindfirstfile} for an example. - - -\membersection{::wxGetDiskSpace}\label{wxgetdiskspace} - -\func{bool}{wxGetDiskSpace}{\param{const wxString\& }{path}, \param{wxLongLong }{*total = NULL}, \param{wxLongLong }{*free = NULL}} - -This function returns the total number of bytes and number of free bytes on -the disk containing the directory {\it path} (it should exist). Both -{\it total} and {\it free} parameters may be {\tt NULL} if the corresponding -information is not needed. - -\wxheading{Returns} - -\true on success, \false if an error occurred (for example, the -directory doesn't exist). - -\wxheading{Portability} - -The generic Unix implementation depends on the system having -the \texttt{statfs()} or \texttt{statvfs()} function. - -This function first appeared in wxWidgets 2.3.2. - - -\membersection{::wxGetFileKind}\label{wxgetfilekind} - -\func{wxFileKind}{wxGetFileKind}{\param{int }{fd}} - -\func{wxFileKind}{wxGetFileKind}{\param{FILE *}{fp}} - -Returns the type of an open file. Possible return values are: - -\begin{verbatim} -enum wxFileKind -{ - wxFILE_KIND_UNKNOWN, - wxFILE_KIND_DISK, // a file supporting seeking to arbitrary offsets - wxFILE_KIND_TERMINAL, // a tty - wxFILE_KIND_PIPE // a pipe -}; - -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{::wxGetOSDirectory}\label{wxgetosdirectory} - -\func{wxString}{wxGetOSDirectory}{\void} - -Returns the Windows directory under Windows; on other platforms returns the empty string. - - -\membersection{::wxIsAbsolutePath}\label{wxisabsolutepath} - -\func{bool}{wxIsAbsolutePath}{\param{const wxString\& }{filename}} - -Returns true if the argument is an absolute filename, i.e. with a slash -or drive name at the beginning. - - -\membersection{::wxDirExists}\label{functionwxdirexists} - -\func{bool}{wxDirExists}{\param{const wxString\& }{dirname}} - -Returns true if \arg{dirname} exists and is a directory. - - -\membersection{::wxPathOnly}\label{wxpathonly} - -\func{wxString}{wxPathOnly}{\param{const wxString\& }{path}} - -Returns the directory part of the filename. - - -\membersection{::wxUnix2DosFilename}\label{wxunix2dosfilename} - -\func{void}{wxUnix2DosFilename}{\param{wxChar *}{s}} - -This function is deprecated, use \helpref{wxFileName}{wxfilename} instead. - -Converts a Unix to a DOS filename by replacing forward -slashes with backslashes. - - -\membersection{wxCHANGE\_UMASK}\label{wxchangeumask} - -\func{}{wxCHANGE\_UMASK}{\param{int }{mask}} - -Under Unix this macro changes the current process umask to the given value, -unless it is equal to $-1$ in which case nothing is done, and restores it to -the original value on scope exit. It works by declaring a variable which sets -umask to \arg{mask} in its constructor and restores it in its destructor. - -Under other platforms this macro expands to nothing. - - -\membersection{::wxConcatFiles}\label{wxconcatfiles} - -\func{bool}{wxConcatFiles}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, -\param{const wxString\& }{file3}} - -Concatenates {\it file1} and {\it file2} to {\it file3}, returning -true if successful. - - -\membersection{::wxCopyFile}\label{wxcopyfile} - -\func{bool}{wxCopyFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, \param{bool }{overwrite = true}} - -Copies {\it file1} to {\it file2}, returning true if successful. If -{\it overwrite} parameter is \true (default), the destination file is overwritten -if it exists, but if {\it overwrite} is \false, the functions fails in this -case. - -This function supports resources forks under Mac OS. - - -\membersection{::wxGetCwd}\label{wxgetcwd} - -\func{wxString}{wxGetCwd}{\void} - -Returns a string containing the current (or working) directory. - - -\membersection{::wxGetWorkingDirectory}\label{wxgetworkingdirectory} - -\func{wxString}{wxGetWorkingDirectory}{\param{char *}{buf=NULL}, \param{int }{sz=1000}} - -{\bf NB:} This function is deprecated: use \helpref{wxGetCwd}{wxgetcwd} instead. - -Copies the current working directory into the buffer if supplied, or -copies the working directory into new storage (which you {\emph must} delete -yourself) if the buffer is NULL. - -{\it sz} is the size of the buffer if supplied. - - -\membersection{::wxGetTempFileName}\label{wxgettempfilename} - -\func{char *}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{char *}{buf=NULL}} - -\func{bool}{wxGetTempFileName}{\param{const wxString\& }{prefix}, \param{wxString\& }{buf}} - -%% Makes a temporary filename based on {\it prefix}, opens and closes the file, -%% and places the name in {\it buf}. If {\it buf} is NULL, new store -%% is allocated for the temporary filename using {\it new}. -%% -%% Under Windows, the filename will include the drive and name of the -%% directory allocated for temporary files (usually the contents of the -%% TEMP variable). Under Unix, the {\tt /tmp} directory is used. -%% -%% It is the application's responsibility to create and delete the file. - -{\bf NB:} These functions are obsolete, please use\rtfsp -\helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename}\rtfsp -instead. - - -\membersection{::wxIsWild}\label{wxiswild} - -\func{bool}{wxIsWild}{\param{const wxString\& }{pattern}} - -Returns true if the pattern contains wildcards. See \helpref{wxMatchWild}{wxmatchwild}. - - -\membersection{::wxMatchWild}\label{wxmatchwild} - -\func{bool}{wxMatchWild}{\param{const wxString\& }{pattern}, \param{const wxString\& }{text}, \param{bool}{ dot\_special}} - -Returns true if the \arg{pattern}\/ matches the {\it text}\/; if {\it -dot\_special}\/ is true, filenames beginning with a dot are not matched -with wildcard characters. See \helpref{wxIsWild}{wxiswild}. - - -\membersection{::wxMkdir}\label{wxmkdir} - -\func{bool}{wxMkdir}{\param{const wxString\& }{dir}, \param{int }{perm = 0777}} - -Makes the directory \arg{dir}, returning true if successful. - -{\it perm} is the access mask for the directory for the systems on which it is -supported (Unix) and doesn't have any effect on the other ones. - - -\membersection{::wxParseCommonDialogsFilter}\label{wxparsecommondialogsfilter} - -\func{int}{wxParseCommonDialogsFilter}{\param{const wxString\& }{wildCard}, \param{wxArrayString\& }{descriptions}, \param{wxArrayString\& }{filters}} - -Parses the \arg{wildCard}, returning the number of filters. -Returns 0 if none or if there's a problem. -The arrays will contain an equal number of items found before the error. -On platforms where native dialogs handle only one filter per entry, -entries in arrays are automatically adjusted. -\arg{wildCard} is in the form: -\begin{verbatim} - "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png" -\end{verbatim} - -\membersection{::wxRemoveFile}\label{wxremovefile} - -\func{bool}{wxRemoveFile}{\param{const wxString\& }{file}} - -Removes \arg{file}, returning true if successful. - - -\membersection{::wxRenameFile}\label{wxrenamefile} - -\func{bool}{wxRenameFile}{\param{const wxString\& }{file1}, \param{const wxString\& }{file2}, \param{bool }{overwrite = true}} - -Renames \arg{file1} to \arg{file2}, returning true if successful. - -If \arg{overwrite} parameter is true (default), the destination file is -overwritten if it exists, but if \arg{overwrite} is false, the functions fails -in this case. - - -\membersection{::wxRmdir}\label{wxrmdir} - -\func{bool}{wxRmdir}{\param{const wxString\& }{dir}, \param{int}{ flags=0}} - -Removes the directory {\it dir}, returning true if successful. Does not work under VMS. - -The {\it flags} parameter is reserved for future use. - -Please notice that there is also a wxRmDir() function which simply wraps the -standard POSIX rmdir() function and so return an integer error code instead of -a boolean value (but otherwise is currently identical to wxRmdir), don't -confuse these two functions. - - -\membersection{::wxSetWorkingDirectory}\label{wxsetworkingdirectory} - -\func{bool}{wxSetWorkingDirectory}{\param{const wxString\& }{dir}} - -Sets the current working directory, returning true if the operation succeeded. -Under MS Windows, the current drive is also changed if {\it dir} contains a drive specification. - - -\membersection{::wxSplit}\label{wxsplit} - -\func{wxArrayString}{wxSplit}{\param{const wxString\&}{ str}, \param{const wxChar}{ sep}, \param{const wxChar}{ escape = '\\'}} - -Splits the given \helpref{wxString}{wxstring} object using the separator \arg{sep} and returns the -result as a \helpref{wxArrayString}{wxarraystring}. - -If the \arg{escape} character is non-\NULL, then the occurrences of \arg{sep} immediately prefixed -with \arg{escape} are not considered as separators. - -Note that empty tokens will be generated if there are two or more adjacent separators. - -\wxheading{See also} - -\helpref{wxJoin}{wxjoin} - -\wxheading{Include files} - - - - -\membersection{::wxSplitPath}\label{wxsplitfunction} - -\func{void}{wxSplitPath}{\param{const wxString\&}{ fullname}, \param{wxString *}{ path}, \param{wxString *}{ name}, \param{wxString *}{ ext}} - -{\bf NB:} This function is obsolete, please use -\helpref{wxFileName::SplitPath}{wxfilenamesplitpath} instead. - -This function splits a full file name into components: the path (including possible disk/drive -specification under Windows), the base name and the extension. Any of the output parameters -({\it path}, {\it name} or {\it ext}) may be NULL if you are not interested in the value of -a particular component. - -wxSplitPath() will correctly handle filenames with both DOS and Unix path separators under -Windows, however it will not consider backslashes as path separators under Unix (where backslash -is a valid character in a filename). - -On entry, {\it fullname} should be non-NULL (it may be empty though). - -On return, {\it path} contains the file path (without the trailing separator), {\it name} -contains the file name and {\it ext} contains the file extension without leading dot. All -three of them may be empty if the corresponding component is. The old contents of the -strings pointed to by these parameters will be overwritten in any case (if the pointers -are not NULL). - - -\membersection{::wxTransferFileToStream}\label{wxtransferfiletostream} - -\func{bool}{wxTransferFileToStream}{\param{const wxString\& }{filename}, \param{ostream\& }{stream}} - -Copies the given file to {\it stream}. Useful when converting an old application to -use streams (within the document/view framework, for example). - -\wxheading{Include files} - - - - -\membersection{::wxTransferStreamToFile}\label{wxtransferstreamtofile} - -\func{bool}{wxTransferStreamToFile}{\param{istream\& }{stream} \param{const wxString\& }{filename}} - -Copies the given stream to the file {\it filename}. Useful when converting an old application to -use streams (within the document/view framework, for example). - -\wxheading{Include files} - - - - - -\section{Network, user and OS functions}\label{networkfunctions} - -The functions in this section are used to retrieve information about the -current computer and/or user characteristics. - - -\membersection{::wxGetEmailAddress}\label{wxgetemailaddress} - -\func{wxString}{wxGetEmailAddress}{\void} - -\func{bool}{wxGetEmailAddress}{\param{char * }{buf}, \param{int }{sz}} - -Copies the user's email address into the supplied buffer, by -concatenating the values returned by \helpref{wxGetFullHostName}{wxgetfullhostname}\rtfsp -and \helpref{wxGetUserId}{wxgetuserid}. - -Returns true if successful, false otherwise. - -\wxheading{Include files} - - - - -\membersection{::wxGetFreeMemory}\label{wxgetfreememory} - -\func{wxMemorySize}{wxGetFreeMemory}{\void} - -Returns the amount of free memory in bytes under environments which -support it, and -1 if not supported or failed to perform measurement. - -\wxheading{Include files} - - - - -\membersection{::wxGetFullHostName}\label{wxgetfullhostname} - -\func{wxString}{wxGetFullHostName}{\void} - -Returns the FQDN (fully qualified domain host name) or an empty string on -error. - -\wxheading{See also} - -\helpref{wxGetHostName}{wxgethostname} - -\wxheading{Include files} - - - - -\membersection{::wxGetHomeDir}\label{wxgethomedir} - -\func{wxString}{wxGetHomeDir}{\void} - -Return the (current) user's home directory. - -\wxheading{See also} - -\helpref{wxGetUserHome}{wxgetuserhome}\\ -\helpref{wxStandardPaths}{wxstandardpaths} - -\wxheading{Include files} - - - - -\membersection{::wxGetHostName}\label{wxgethostname} - -\func{wxString}{wxGetHostName}{\void} - -\func{bool}{wxGetHostName}{\param{char * }{buf}, \param{int }{sz}} - -Copies the current host machine's name into the supplied buffer. Please note -that the returned name is {\it not} fully qualified, i.e. it does not include -the domain name. - -Under Windows or NT, this function first looks in the environment -variable SYSTEM\_NAME; if this is not found, the entry {\bf HostName}\rtfsp -in the {\bf wxWidgets} section of the WIN.INI file is tried. - -The first variant of this function returns the hostname if successful or an -empty string otherwise. The second (deprecated) function returns true -if successful, false otherwise. - -\wxheading{See also} - -\helpref{wxGetFullHostName}{wxgetfullhostname} - -\wxheading{Include files} - - - - -\membersection{::wxGetOsDescription}\label{wxgetosdescription} - -\func{wxString}{wxGetOsDescription}{\void} - -Returns the string containing the description of the current platform in a -user-readable form. For example, this function may return strings like -{\tt Windows NT Version 4.0} or {\tt Linux 2.2.2 i386}. - -\wxheading{See also} - -\helpref{::wxGetOsVersion}{wxgetosversion} - -\wxheading{Include files} - - - - -\membersection{::wxGetOsVersion}\label{wxgetosversion} - -\func{wxOperatingSystemId}{wxGetOsVersion}{\param{int *}{major = NULL}, \param{int *}{minor = NULL}} - -Gets the version and the operating system ID for currently running OS. -See \helpref{wxPlatformInfo}{wxplatforminfo} for more details about wxOperatingSystemId. - -\wxheading{See also} - -\helpref{::wxGetOsDescription}{wxgetosdescription}, -\helpref{wxPlatformInfo}{wxplatforminfo} - -\wxheading{Include files} - - - - -\membersection{::wxIsPlatformLittleEndian}\label{wxisplatformlittleendian} - -\func{bool}{wxIsPlatformLittleEndian}{\void} - -Returns \true if the current platform is little endian (instead of big endian). -The check is performed at run-time. - -\wxheading{See also} - -\helpref{Byte order macros}{byteordermacros} - -\wxheading{Include files} - - - - -\membersection{::wxIsPlatform64Bit}\label{wxisplatform64bit} - -\func{bool}{wxIsPlatform64Bit}{\void} - -Returns \true if the operating system the program is running under is 64 bit. -The check is performed at run-time and may differ from the value available at -compile-time (at compile-time you can just check if {\tt sizeof(void*)==8}) -since the program could be running in emulation mode or in a mixed 32/64 bit system -(bi-architecture operating system). - -Very important: this function is not 100\% reliable on some systems given the fact -that there isn't always a standard way to do a reliable check on the OS architecture. - -\wxheading{Include files} - - - - -\membersection{::wxGetUserHome}\label{wxgetuserhome} - -\func{wxString}{wxGetUserHome}{\param{const wxString\& }{user = ""}} - -Returns the home directory for the given user. If the \arg{user} is empty -(default value), this function behaves like -\helpref{wxGetHomeDir}{wxgethomedir} i.e. returns the current user home -directory. - -If the home directory couldn't be determined, an empty string is returned. - -\wxheading{Include files} - - - - -\membersection{::wxGetUserId}\label{wxgetuserid} - -\func{wxString}{wxGetUserId}{\void} - -\func{bool}{wxGetUserId}{\param{char * }{buf}, \param{int }{sz}} - -This function returns the "user id" also known as "login name" under Unix i.e. -something like "jsmith". It uniquely identifies the current user (on this system). - -Under Windows or NT, this function first looks in the environment -variables USER and LOGNAME; if neither of these is found, the entry {\bf UserId}\rtfsp -in the {\bf wxWidgets} section of the WIN.INI file is tried. - -The first variant of this function returns the login name if successful or an -empty string otherwise. The second (deprecated) function returns true -if successful, false otherwise. - -\wxheading{See also} - -\helpref{wxGetUserName}{wxgetusername} - -\wxheading{Include files} - - - - -\membersection{::wxGetUserName}\label{wxgetusername} - -\func{wxString}{wxGetUserName}{\void} - -\func{bool}{wxGetUserName}{\param{char * }{buf}, \param{int }{sz}} - -This function returns the full user name (something like "Mr. John Smith"). - -Under Windows or NT, this function looks for the entry {\bf UserName}\rtfsp -in the {\bf wxWidgets} section of the WIN.INI file. If PenWindows -is running, the entry {\bf Current} in the section {\bf User} of -the PENWIN.INI file is used. - -The first variant of this function returns the user name if successful or an -empty string otherwise. The second (deprecated) function returns \true -if successful, \false otherwise. - -\wxheading{See also} - -\helpref{wxGetUserId}{wxgetuserid} - -\wxheading{Include files} - - - - - -\section{String functions}\label{stringfunctions} - -\membersection{::wxGetTranslation}\label{wxgettranslation} - -\func{const wxString\& }{wxGetTranslation}{\param{const wxString\& }{str}, - \param{const wxString\& }{domain = wxEmptyString}} - -\func{const wxString\& }{wxGetTranslation}{\param{const wxString\& }{str}, \param{const wxString\& }{strPlural}, \param{size\_t }{n}, - \param{const wxString\& }{domain = wxEmptyString}} - -This function returns the translation of string {\it str} in the current -\helpref{locale}{wxlocale}. If the string is not found in any of the loaded -message catalogs (see \helpref{internationalization overview}{internationalization}), the -original string is returned. In debug build, an error message is logged -- this -should help to find the strings which were not yet translated. If -{\it domain} is specified then only that domain/catalog is searched -for a matching string. As this function -is used very often, an alternative (and also common in Unix world) syntax is -provided: the \helpref{\_()}{underscore} macro is defined to do the same thing -as wxGetTranslation. - -The second form is used when retrieving translation of string that has -different singular and plural form in English or different plural forms in some -other language. It takes two extra arguments: as above, \arg{str} -parameter must contain the singular form of the string to be converted and -is used as the key for the search in the catalog. The \arg{strPlural} parameter -is the plural form (in English). The parameter \arg{n} is used to determine the -plural form. If no message catalog is found \arg{str} is returned if `n == 1', -otherwise \arg{strPlural}. - -See \urlref{GNU gettext manual}{http://www.gnu.org/manual/gettext/html\_chapter/gettext\_10.html\#SEC150} -for additional information on plural forms handling. For a shorter alternative -see the \helpref{wxPLURAL()}{wxplural} macro. - -Both versions call \helpref{wxLocale::GetString}{wxlocalegetstring}. - -Note that this function is not suitable for literal strings in Unicode -builds, since the literal strings must be enclosed into -\helpref{\_T()}{underscoret} or \helpref{wxT}{wxt} macro which makes them -unrecognised by \texttt{xgettext}, and so they are not extracted to the message -catalog. Instead, use the \helpref{\_()}{underscore} and -\helpref{wxPLURAL}{wxplural} macro for all literal strings. - - -\membersection{::wxIsEmpty}\label{wxisempty} - -\func{bool}{wxIsEmpty}{\param{const char *}{ p}} - -Returns \true if the pointer is either {\tt NULL} or points to an empty -string, \false otherwise. - - -\membersection{wxS}\label{wxs} - -\func{wxStringCharType}{wxS}{\param{char }{ch}} - -\func{const wxStringCharType *}{wxS}{\param{const char *}{s}} - -wxS is macro which can be used with character and string literals to either -convert them to wide characters or strings in \texttt{wchar\_t}-based Unicode -builds or keep them unchanged in UTF-8 builds. The use of this macro is -optional as the translation will always be done at run-time even if there is a -mismatch between the kind of the literal used and wxStringCharType used in the -current build, but using it can be beneficial in performance-sensitive code to -do the conversion at compile-time instead. - -\wxheading{See also} - -\helpref{wxT}{wxt} - - -\membersection{::wxStrcmp}\label{wxstrcmp} - -\func{int}{wxStrcmp}{\param{const char *}{p1}, \param{const char *}{p2}} - -Returns a negative value, 0, or positive value if {\it p1} is less than, equal -to or greater than {\it p2}. The comparison is case-sensitive. - -This function complements the standard C function {\it stricmp()} which performs -case-insensitive comparison. - - -\membersection{::wxStricmp}\label{wxstricmp} - -\func{int}{wxStricmp}{\param{const char *}{p1}, \param{const char *}{p2}} - -Returns a negative value, 0, or positive value if {\it p1} is less than, equal -to or greater than {\it p2}. The comparison is case-insensitive. - -This function complements the standard C function {\it strcmp()} which performs -case-sensitive comparison. - - -\membersection{::wxStringEq}\label{wxstringeq} - -\func{bool}{wxStringEq}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2}} - -{\bf NB:} This function is obsolete, use \helpref{wxString}{wxstring} instead. - -A macro defined as: - -\begin{verbatim} -#define wxStringEq(s1, s2) (s1 && s2 && (strcmp(s1, s2) == 0)) -\end{verbatim} - - -\membersection{::wxStringMatch}\label{wxstringmatch} - -\func{bool}{wxStringMatch}{\param{const wxString\& }{s1}, \param{const wxString\& }{s2},\\ - \param{bool}{ subString = true}, \param{bool}{ exact = false}} - -{\bf NB:} This function is obsolete, use \helpref{wxString::Find}{wxstringfind} instead. - -Returns \true if the substring {\it s1} is found within {\it s2}, -ignoring case if {\it exact} is false. If {\it subString} is \false, -no substring matching is done. - - -\membersection{::wxStringTokenize}\label{wxstringtokenize} - -\func{wxArrayString}{wxStringTokenize}{\param{const wxString\& }{str},\\ - \param{const wxString\& }{delims = wxDEFAULT\_DELIMITERS},\\ - \param{wxStringTokenizerMode }{mode = wxTOKEN\_DEFAULT}} - -This is a convenience function wrapping -\helpref{wxStringTokenizer}{wxstringtokenizer} which simply returns all tokens -found in the given \arg{str} in an array. - -Please see -\helpref{wxStringTokenizer::wxStringTokenizer}{wxstringtokenizerwxstringtokenizer} -for the description of the other parameters. - - -\membersection{::wxStrlen}\label{wxstrlen} - -\func{size\_t}{wxStrlen}{\param{const char *}{ p}} - -This is a safe version of standard function {\it strlen()}: it does exactly the -same thing (i.e. returns the length of the string) except that it returns 0 if -{\it p} is the {\tt NULL} pointer. - - -\membersection{::wxSnprintf}\label{wxsnprintf} - -\func{int}{wxSnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{}{...}} - -This function replaces the dangerous standard function {\tt sprintf()} and is -like {\tt snprintf()} available on some platforms. The only difference with -sprintf() is that an additional argument - buffer size - is taken and the -buffer is never overflowed. - -Returns the number of characters copied to the buffer or -1 if there is not -enough space. - -\wxheading{See also} - -\helpref{wxVsnprintf}{wxvsnprintf}, \helpref{wxString::Printf}{wxstringprintf} - - -\membersection{wxT}\label{wxt} - -\func{wxChar}{wxT}{\param{char }{ch}} - -\func{const wxChar *}{wxT}{\param{const char *}{s}} - -wxT() is a macro which can be used with character and string literals (in other -words, {\tt 'x'} or {\tt "foo"}) to automatically convert them to Unicode in -Unicode build configuration. Please see the -\helpref{Unicode overview}{unicode} for more information. - -This macro is simply returns the value passed to it without changes in ASCII -build. In fact, its definition is: -\begin{verbatim} -#ifdef UNICODE -#define wxT(x) L ## x -#else // !Unicode -#define wxT(x) x -#endif -\end{verbatim} - - -\membersection{wxTRANSLATE}\label{wxtranslate} - -\func{const wxChar *}{wxTRANSLATE}{\param{const char *}{s}} - -This macro doesn't do anything in the program code -- it simply expands to the -value of its argument. - -However it does have a purpose which is to mark the literal strings for the -extraction into the message catalog created by {\tt xgettext} program. Usually -this is achieved using \helpref{\_()}{underscore} but that macro not only marks -the string for extraction but also expands into a -\helpref{wxGetTranslation}{wxgettranslation} function call which means that it -cannot be used in some situations, notably for static array -initialization. - -Here is an example which should make it more clear: suppose that you have a -static array of strings containing the weekday names and which have to be -translated (note that it is a bad example, really, as -\helpref{wxDateTime}{wxdatetime} already can be used to get the localized week -day names already). If you write - -\begin{verbatim} -static const char * const weekdays[] = { _("Mon"), ..., _("Sun") }; -... -// use weekdays[n] as usual -\end{verbatim} - -the code wouldn't compile because the function calls are forbidden in the array -initializer. So instead you should do - -\begin{verbatim} -static const char * const weekdays[] = { wxTRANSLATE("Mon"), ..., wxTRANSLATE("Sun") }; -... -// use wxGetTranslation(weekdays[n]) -\end{verbatim} - -here. - -Note that although the code {\bf would} compile if you simply omit -wxTRANSLATE() in the above, it wouldn't work as expected because there would be -no translations for the weekday names in the program message catalog and -wxGetTranslation wouldn't find them. - - -\membersection{::wxVsnprintf}\label{wxvsnprintf} - -\func{int}{wxVsnprintf}{\param{wxChar *}{buf}, \param{size\_t }{len}, \param{const wxChar *}{format}, \param{va\_list }{argPtr}} - -The same as \helpref{wxSnprintf}{wxsnprintf} but takes a {\tt va\_list } -argument instead of arbitrary number of parameters. - -Note that if \texttt{wxUSE\_PRINTF\_POS\_PARAMS} is set to 1, then this function supports -positional arguments (see \helpref{wxString::Printf}{wxstringprintf} for more information). -However other functions of the same family (wxPrintf, wxSprintf, wxFprintf, wxVfprintf, -wxVfprintf, wxVprintf, wxVsprintf) currently do not to support positional parameters -even when \texttt{wxUSE\_PRINTF\_POS\_PARAMS} is 1. - -\wxheading{See also} - -\helpref{wxSnprintf}{wxsnprintf}, \helpref{wxString::PrintfV}{wxstringprintfv} - - - -\membersection{\_}\label{underscore} - -\func{const wxString\&}{\_}{\param{const wxString\&}{s}} - -This macro expands into a call to \helpref{wxGetTranslation}{wxgettranslation} -function, so it marks the message for the extraction by {\tt xgettext} just as -\helpref{wxTRANSLATE}{wxtranslate} does, but also returns the translation of -the string for the current locale during execution. - -Don't confuse this macro with \helpref{\_T()}{underscoret}! - - -\membersection{wxPLURAL}\label{wxplural} - -\func{const wxString\&}{wxPLURAL}{\param{const wxString\&}{sing}, \param{const wxString\&}{plur}, \param{size\_t}{n}} - -This macro is identical to \helpref{\_()}{underscore} but for the plural variant -of \helpref{wxGetTranslation}{wxgettranslation}. - - -\membersection{\_T}\label{underscoret} - -\func{wxChar}{\_T}{\param{char }{ch}} - -\func{const wxChar *}{\_T}{\param{const wxChar }{ch}} - -This macro is exactly the same as \helpref{wxT}{wxt} and is defined in -wxWidgets simply because it may be more intuitive for Windows programmers as -the standard Win32 headers also define it (as well as yet another name for the -same macro which is {\tt \_TEXT()}). - -Don't confuse this macro with \helpref{\_()}{underscore}! - - - -\section{Dialog functions}\label{dialogfunctions} - -Below are a number of convenience functions for getting input from the -user or displaying messages. Note that in these functions the last three -parameters are optional. However, it is recommended to pass a parent frame -parameter, or (in MS Windows or Motif) the wrong window frame may be brought to -the front when the dialog box is popped up. - - -\membersection{::wxAboutBox}\label{wxaboutbox} - -\func{void}{wxAboutBox}{\param{const wxAboutDialogInfo\& }{info}} - -This function shows the standard about dialog containing the information -specified in \arg{info}. If the current platform has a native about dialog -which is capable of showing all the fields in \arg{info}, the native dialog is -used, otherwise the function falls back to the generic wxWidgets version of the -dialog, i.e. does the same thing as \helpref{wxGenericAboutBox()}{wxgenericaboutbox}. - -Here is an example of how this function may be used: -\begin{verbatim} -void MyFrame::ShowSimpleAboutDialog(wxCommandEvent& WXUNUSED(event)) -{ - wxAboutDialogInfo info; - info.SetName(_("My Program")); - info.SetVersion(_("1.2.3 Beta")); - info.SetDescription(_("This program does something great.")); - info.SetCopyright(_T("(C) 2007 Me ")); - - wxAboutBox(info); -} -\end{verbatim} - -Please see the \helpref{dialogs sample}{sampledialogs} for more examples of -using this function and \helpref{wxAboutDialogInfo}{wxaboutdialoginfo} for the -description of the information which can be shown in the about dialog. - -\wxheading{Include files} - - - - -\membersection{::wxBeginBusyCursor}\label{wxbeginbusycursor} - -\func{void}{wxBeginBusyCursor}{\param{wxCursor *}{cursor = wxHOURGLASS\_CURSOR}} - -Changes the cursor to the given cursor for all windows in the application. -Use \helpref{wxEndBusyCursor}{wxendbusycursor} to revert the cursor back -to its previous state. These two calls can be nested, and a counter -ensures that only the outer calls take effect. - -See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - - -\membersection{::wxBell}\label{wxbell} - -\func{void}{wxBell}{\void} - -Ring the system bell. - -Note that this function is categorized as a GUI one and so is not thread-safe. - -\wxheading{Include files} - - - - -\membersection{::wxCreateFileTipProvider}\label{wxcreatefiletipprovider} - -\func{wxTipProvider *}{wxCreateFileTipProvider}{\param{const wxString\& }{filename}, - \param{size\_t }{currentTip}} - -This function creates a \helpref{wxTipProvider}{wxtipprovider} which may be -used with \helpref{wxShowTip}{wxshowtip}. - -\docparam{filename}{The name of the file containing the tips, one per line} -\docparam{currentTip}{The index of the first tip to show - normally this index -is remembered between the 2 program runs.} - -\wxheading{See also} - -\helpref{Tips overview}{tipsoverview} - -\wxheading{Include files} - - - - -\membersection{::wxDirSelector}\label{wxdirselector} - -\func{wxString}{wxDirSelector}{\param{const wxString\& }{message = wxDirSelectorPromptStr},\\ - \param{const wxString\& }{default\_path = ""},\\ - \param{long }{style = 0}, \param{const wxPoint\& }{pos = wxDefaultPosition},\\ - \param{wxWindow *}{parent = NULL}} - -Pops up a directory selector dialog. The arguments have the same meaning as -those of wxDirDialog::wxDirDialog(). The message is displayed at the top, -and the default\_path, if specified, is set as the initial selection. - -The application must check for an empty return value (if the user pressed -Cancel). For example: - -\begin{verbatim} -const wxString& dir = wxDirSelector("Choose a folder"); -if ( !dir.empty() ) -{ - ... -} -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{::wxFileSelector}\label{wxfileselector} - -\func{wxString}{wxFileSelector}{\param{const wxString\& }{message}, \param{const wxString\& }{default\_path = ""},\\ - \param{const wxString\& }{default\_filename = ""}, \param{const wxString\& }{default\_extension = ""},\\ - \param{const wxString\& }{wildcard = "*.*"}, \param{int }{flags = 0}, \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1}} - -Pops up a file selector box. In Windows, this is the common file selector -dialog. In X, this is a file selector box with the same functionality. -The path and filename are distinct elements of a full file pathname. -If path is empty, the current directory will be used. If filename is empty, -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. Flags may be a combination of wxFD\_OPEN, -wxFD\_SAVE, wxFD\_OVERWRITE\_PROMPT or wxFD\_FILE\_MUST\_EXIST. Note that wxFD\_MULTIPLE -can only be used with \helpref{wxFileDialog}{wxfiledialog} and not here as this -function only returns a single file name. - -Both the Unix and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. - -The wildcard may be a specification for multiple types of file -with a description for each, such as: - -\begin{verbatim} - "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" -\end{verbatim} - -The application must check for an empty return value (the user pressed -Cancel). For example: - -\begin{verbatim} -wxString filename = wxFileSelector("Choose a file to open"); -if ( !filename.empty() ) -{ - // work with the file - ... -} -//else: cancelled by user -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{::wxEndBusyCursor}\label{wxendbusycursor} - -\func{void}{wxEndBusyCursor}{\void} - -Changes the cursor back to the original cursor, for all windows in the application. -Use with \helpref{wxBeginBusyCursor}{wxbeginbusycursor}. - -See also \helpref{wxIsBusy}{wxisbusy}, \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - - -\membersection{::wxGenericAboutBox}\label{wxgenericaboutbox} - -\func{void}{wxGenericAboutBox}{\param{const wxAboutDialogInfo\& }{info}} - -This function does the same thing as \helpref{wxAboutBox}{wxaboutbox} except -that it always uses the generic wxWidgets version of the dialog instead of the -native one. This is mainly useful if you need to customize the dialog by e.g. -adding custom controls to it (customizing the native dialog is not currently -supported). - -See the \helpref{dialogs sample}{sampledialogs} for an example of about dialog -customization. - -\wxheading{See also} - -\helpref{wxAboutDialogInfo}{wxaboutdialoginfo} - -\wxheading{Include files} - -\\ - - - -\membersection{::wxGetColourFromUser}\label{wxgetcolourfromuser} - -\func{wxColour}{wxGetColourFromUser}{\param{wxWindow *}{parent}, \param{const wxColour\& }{colInit}, \param{const wxString\& }{caption = wxEmptyString}, \param{wxColourData *}{data = \NULL}} - -Shows the colour selection dialog and returns the colour selected by user or -invalid colour (use \helpref{wxColour:IsOk}{wxcolourisok} to test whether a colour -is valid) if the dialog was cancelled. - -\wxheading{Parameters} - -\docparam{parent}{The parent window for the colour selection dialog} - -\docparam{colInit}{If given, this will be the colour initially selected in the dialog.} - -\docparam{caption}{If given, this will be used for the dialog caption.} - -\docparam{data}{Optional object storing additional colour dialog settings, such -as custom colours. If none is provided the same settings as the last time are -used.} - -\wxheading{Include files} - - - - -\membersection{::wxGetFontFromUser}\label{wxgetfontfromuser} - -\func{wxFont}{wxGetFontFromUser}{\param{wxWindow *}{parent}, \param{const wxFont\& }{fontInit}, \param{const wxString\& }{caption = wxEmptyString}} - -Shows the font selection dialog and returns the font selected by user or -invalid font (use \helpref{wxFont:IsOk}{wxfontisok} to test whether a font -is valid) if the dialog was cancelled. - -\wxheading{Parameters} - -\docparam{parent}{The parent window for the font selection dialog} - -\docparam{fontInit}{If given, this will be the font initially selected in the dialog.} - -\docparam{caption}{If given, this will be used for the dialog caption.} - -\wxheading{Include files} - - - - - -\membersection{::wxGetMultipleChoices}\label{wxgetmultiplechoices} - -\func{size\_t}{wxGetMultipleChoices}{\\ - \param{wxArrayInt\& }{selections},\\ - \param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{const wxArrayString\& }{aChoices},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true},\\ - \param{int }{width=150}, \param{int }{height=200}} - -\func{size\_t}{wxGetMultipleChoices}{\\ - \param{wxArrayInt\& }{selections},\\ - \param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true},\\ - \param{int }{width=150}, \param{int }{height=200}} - -Pops up a dialog box containing a message, OK/Cancel buttons and a -multiple-selection listbox. The user may choose an arbitrary (including 0) -number of items in the listbox whose indices will be returned in -{\it selection} array. The initial contents of this array will be used to -select the items when the dialog is shown. - -You may pass the list of strings to choose from either using {\it choices} -which is an array of {\it n} strings for the listbox or by using a single -{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}. - -If {\it centre} is true, the message text (which may include new line -characters) is centred; if false, the message is left-justified. - -\wxheading{Include files} - - - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}, and no {\tt selections} parameter; the function -returns an array containing the user selections.} - - -\membersection{::wxGetNumberFromUser}\label{wxgetnumberfromuser} - -\func{long}{wxGetNumberFromUser}{ - \param{const wxString\& }{message}, - \param{const wxString\& }{prompt}, - \param{const wxString\& }{caption}, - \param{long }{value}, - \param{long }{min = 0}, - \param{long }{max = 100}, - \param{wxWindow *}{parent = NULL}, - \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Shows a dialog asking the user for numeric input. The dialogs title is set to -{\it caption}, it contains a (possibly) multiline {\it message} above the -single line {\it prompt} and the zone for entering the number. - -The number entered must be in the range {\it min}..{\it max} (both of which -should be positive) and {\it value} is the initial value of it. If the user -enters an invalid value or cancels the dialog, the function will return -1. - -Dialog is centered on its {\it parent} unless an explicit position is given in -{\it pos}. - -\wxheading{Include files} - - - - -\membersection{::wxGetPasswordFromUser}\label{wxgetpasswordfromuser} - -\func{wxString}{wxGetPasswordFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\ - \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = wxDefaultCoord}, \param{int}{ y = wxDefaultCoord}, \param{bool}{ centre = true}} - -Similar to \helpref{wxGetTextFromUser}{wxgettextfromuser} but the text entered -in the dialog is not shown on screen but replaced with stars. This is intended -to be used for entering passwords as the function name implies. - -\wxheading{Include files} - - - - -\membersection{::wxGetTextFromUser}\label{wxgettextfromuser} - -\func{wxString}{wxGetTextFromUser}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Input text"},\\ - \param{const wxString\& }{default\_value = ``"}, \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = wxDefaultCoord}, \param{int}{ y = wxDefaultCoord}, \param{bool}{ centre = true}} - -Pop up a dialog box with title set to {\it caption}, {\it message}, and a -\rtfsp{\it default\_value}. The user may type in text and press OK to return this text, -or press Cancel to return the empty string. - -If {\it centre} is true, the message text (which may include new line characters) -is centred; if false, the message is left-justified. - -\wxheading{Include files} - - - - -\membersection{::wxGetSingleChoice}\label{wxgetsinglechoice} - -\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{const wxArrayString\& }{aChoices},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true},\\ - \param{int }{width=150}, \param{int }{height=200}} - -\func{wxString}{wxGetSingleChoice}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true},\\ - \param{int }{width=150}, \param{int }{height=200}} - -Pops up a dialog box containing a message, OK/Cancel buttons and a -single-selection listbox. The user may choose an item and press OK to return a -string or Cancel to return the empty string. Use -\helpref{wxGetSingleChoiceIndex}{wxgetsinglechoiceindex} if empty string is a -valid choice and if you want to be able to detect pressing Cancel reliably. - -You may pass the list of strings to choose from either using {\it choices} -which is an array of {\it n} strings for the listbox or by using a single -{\it aChoices} parameter of type \helpref{wxArrayString}{wxarraystring}. - -If {\it centre} is true, the message text (which may include new line -characters) is centred; if false, the message is left-justified. - -\wxheading{Include files} - - - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - - -\membersection{::wxGetSingleChoiceIndex}\label{wxgetsinglechoiceindex} - -\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{const wxArrayString\& }{aChoices},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}} - -\func{int}{wxGetSingleChoiceIndex}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}} - -As {\bf wxGetSingleChoice} but returns the index representing the selected -string. If the user pressed cancel, -1 is returned. - -\wxheading{Include files} - - - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - - -\membersection{::wxGetSingleChoiceData}\label{wxgetsinglechoicedata} - -\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{const wxArrayString\& }{aChoices},\\ - \param{const wxString\& }{client\_data[]},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}} - -\func{wxString}{wxGetSingleChoiceData}{\param{const wxString\& }{message},\\ - \param{const wxString\& }{caption},\\ - \param{int}{ n}, \param{const wxString\& }{choices[]},\\ - \param{const wxString\& }{client\_data[]},\\ - \param{wxWindow *}{parent = NULL},\\ - \param{int}{ x = -1}, \param{int}{ y = -1},\\ - \param{bool}{ centre = true}, \param{int }{width=150}, \param{int }{height=200}} - -As {\bf wxGetSingleChoice} but takes an array of client data pointers -corresponding to the strings, and returns one of these pointers or NULL if -Cancel was pressed. The {\it client\_data} array must have the same number of -elements as {\it choices} or {\it aChoices}! - -\wxheading{Include files} - - - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}, and the client data array must have the -same length as the choices array.} - - -\membersection{::wxInfoMessageBox}\label{wxinfomessagebox} - -\func{void}{wxInfoMessageBox}{\param{wxWindow (}{parent = \NULL}} - -Shows a message box with the information about the wxWidgets build used, -including its version, most important build parameters and the version of the -underlying GUI toolkit. This is mainly used for diagnostic purposes and can be -invoked by Ctrl-Alt-middle clicking on any wxWindow which doesn't otherwise -handle this event. - -\newsince{2.9.0} - -\wxheading{Include files} - - - - -\membersection{::wxIsBusy}\label{wxisbusy} - -\func{bool}{wxIsBusy}{\void} - -Returns true if between two \helpref{wxBeginBusyCursor}{wxbeginbusycursor} and\rtfsp -\helpref{wxEndBusyCursor}{wxendbusycursor} calls. - -See also \helpref{wxBusyCursor}{wxbusycursor}. - -\wxheading{Include files} - - - - -\membersection{::wxMessageBox}\label{wxmessagebox} - -\func{int}{wxMessageBox}{\param{const wxString\& }{message}, \param{const wxString\& }{caption = ``Message"}, \param{int}{ style = wxOK},\\ - \param{wxWindow *}{parent = NULL}, \param{int}{ x = -1}, \param{int}{ y = -1}} - -General purpose message dialog. {\it style} may be a bit list of the -following identifiers: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxYES\_NO}{Puts Yes and No buttons on the message box. May be combined with -wxCANCEL.} -\twocolitem{wxCANCEL}{Puts a Cancel button on the message box. May only be combined with -wxYES\_NO or wxOK.} -\twocolitem{wxOK}{Puts an Ok button on the message box. May be combined with wxCANCEL.} -\twocolitem{wxICON\_EXCLAMATION}{Displays an exclamation mark symbol.} -\twocolitem{wxICON\_HAND}{Displays an error symbol.} -\twocolitem{wxICON\_ERROR}{Displays an error symbol - the same as wxICON\_HAND.} -\twocolitem{wxICON\_QUESTION}{Displays a question mark symbol.} -\twocolitem{wxICON\_INFORMATION}{Displays an information symbol.} -\end{twocollist} - -The return value is one of: wxYES, wxNO, wxCANCEL, wxOK. - -For example: - -\begin{verbatim} - ... - int answer = wxMessageBox("Quit program?", "Confirm", - wxYES_NO | wxCANCEL, main_frame); - if (answer == wxYES) - main_frame->Close(); - ... -\end{verbatim} - -{\it message} may contain newline characters, in which case the -message will be split into separate lines, to cater for large messages. - -\wxheading{Include files} - - - - -\membersection{::wxShowTip}\label{wxshowtip} - -\func{bool}{wxShowTip}{\param{wxWindow *}{parent}, - \param{wxTipProvider *}{tipProvider}, - \param{bool }{showAtStartup = true}} - -This function shows a "startup tip" to the user. The return value is the -state of the `Show tips at startup' checkbox. - -\docparam{parent}{The parent window for the modal dialog} - -\docparam{tipProvider}{An object which is used to get the text of the tips. -It may be created with the \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider} function.} - -\docparam{showAtStartup}{Should be true if startup tips are shown, false -otherwise. This is used as the initial value for "Show tips at startup" -checkbox which is shown in the tips dialog.} - -\wxheading{See also} - -\helpref{Tips overview}{tipsoverview} - -\wxheading{Include files} - - - - - - -\section{Math functions}\label{mathfunctions} - -\wxheading{Include files} - - - - -\membersection{wxFinite}\label{wxfinite} - -\func{int}{wxFinite}{\param{double }{x}} - -Returns a non-zero value if {\it x} is neither infinite nor NaN (not a number), -returns 0 otherwise. - - -\membersection{wxIsNaN}\label{wxisnan} - -\func{bool}{wxIsNaN}{\param{double }{x}} - -Returns a non-zero value if {\it x} is NaN (not a number), returns 0 -otherwise. - - - - -\section{GDI functions}\label{gdifunctions} - -The following are relevant to the GDI (Graphics Device Interface). - -\wxheading{Include files} - - - - -\membersection{wxBITMAP}\label{wxbitmapmacro} - -\func{}{wxBITMAP}{bitmapName} - -This macro loads a bitmap from either application resources (on the platforms -for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to -avoid using {\tt \#ifdef}s when creating bitmaps. - -\wxheading{See also} - -\helpref{Bitmaps and icons overview}{wxbitmapoverview}, -\helpref{wxICON}{wxiconmacro} - -\wxheading{Include files} - - - - -\membersection{::wxClientDisplayRect}\label{wxclientdisplayrect} - -\func{void}{wxClientDisplayRect}{\param{int *}{x}, \param{int *}{y}, -\param{int *}{width}, \param{int *}{height}} - -\func{wxRect}{wxGetClientDisplayRect}{\void} - -Returns the dimensions of the work area on the display. On Windows -this means the area not covered by the taskbar, etc. Other platforms -are currently defaulting to the whole display until a way is found to -provide this info for all window managers, etc. - - -\membersection{::wxColourDisplay}\label{wxcolourdisplay} - -\func{bool}{wxColourDisplay}{\void} - -Returns true if the display is colour, false otherwise. - - -\membersection{::wxDisplayDepth}\label{wxdisplaydepth} - -\func{int}{wxDisplayDepth}{\void} - -Returns the depth of the display (a value of 1 denotes a monochrome display). - - -\membersection{::wxDisplaySize}\label{wxdisplaysize} - -\func{void}{wxDisplaySize}{\param{int *}{width}, \param{int *}{height}} - -\func{wxSize}{wxGetDisplaySize}{\void} - -Returns the display size in pixels. - - -\membersection{::wxDisplaySizeMM}\label{wxdisplaysizemm} - -\func{void}{wxDisplaySizeMM}{\param{int *}{width}, \param{int *}{height}} - -\func{wxSize}{wxGetDisplaySizeMM}{\void} - -Returns the display size in millimeters. - - -\membersection{::wxDROP\_ICON}\label{wxdropicon} - -\func{wxIconOrCursor}{wxDROP\_ICON}{\param{const char *}{name}} - -This macro creates either a cursor (MSW) or an icon (elsewhere) with the given -name. Under MSW, the cursor is loaded from the resource file and the icon is -loaded from XPM file under other platforms. - -This macro should be used with -\helpref{wxDropSource constructor}{wxdropsourcewxdropsource}. - -\wxheading{Include files} - - - - -\membersection{wxICON}\label{wxiconmacro} - -\func{}{wxICON}{iconName} - -This macro loads an icon from either application resources (on the platforms -for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to -avoid using {\tt \#ifdef}s when creating icons. - -\wxheading{See also} - -\helpref{Bitmaps and icons overview}{wxbitmapoverview}, -\helpref{wxBITMAP}{wxbitmapmacro} - -\wxheading{Include files} - - - - -\membersection{::wxMakeMetafilePlaceable}\label{wxmakemetafileplaceable} - -\func{bool}{wxMakeMetafilePlaceable}{\param{const wxString\& }{filename}, \param{int }{minX}, \param{int }{minY}, - \param{int }{maxX}, \param{int }{maxY}, \param{float }{scale=1.0}} - -Given a filename for an existing, valid metafile (as constructed using \helpref{wxMetafileDC}{wxmetafiledc}) -makes it into a placeable metafile by prepending a header containing the given -bounding box. The bounding box may be obtained from a device context after drawing -into it, using the functions wxDC::MinX, wxDC::MinY, wxDC::MaxX and wxDC::MaxY. - -In addition to adding the placeable metafile header, this function adds -the equivalent of the following code to the start of the metafile data: - -\begin{verbatim} - SetMapMode(dc, MM_ANISOTROPIC); - SetWindowOrg(dc, minX, minY); - SetWindowExt(dc, maxX - minX, maxY - minY); -\end{verbatim} - -This simulates the wxMM\_TEXT mapping mode, which wxWidgets assumes. - -Placeable metafiles may be imported by many Windows applications, and can be -used in RTF (Rich Text Format) files. - -{\it scale} allows the specification of scale for the metafile. - -This function is only available under Windows. - - -\membersection{::wxSetCursor}\label{wxsetcursor} - -\func{void}{wxSetCursor}{\param{const wxCursor\&}{ cursor}} - -Globally sets the cursor; only has an effect on Windows, Mac and GTK+. You should -call this function with wxNullCursor to restore the system cursor. - -See also \helpref{wxCursor}{wxcursor}, \helpref{wxWindow::SetCursor}{wxwindowsetcursor}. - - - -\section{Printer settings}\label{printersettings} - -{\bf NB:} These routines are obsolete and should no longer be used! - -The following functions are used to control PostScript printing. Under -Windows, PostScript output can only be sent to a file. - -\wxheading{Include files} - - - - -\membersection{::wxGetPrinterCommand}\label{wxgetprintercommand} - -\func{wxString}{wxGetPrinterCommand}{\void} - -Gets the printer command used to print a file. The default is {\tt lpr}. - - -\membersection{::wxGetPrinterFile}\label{wxgetprinterfile} - -\func{wxString}{wxGetPrinterFile}{\void} - -Gets the PostScript output filename. - - -\membersection{::wxGetPrinterMode}\label{wxgetprintermode} - -\func{int}{wxGetPrinterMode}{\void} - -Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER). -The default is PS\_PREVIEW. - - -\membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions} - -\func{wxString}{wxGetPrinterOptions}{\void} - -Gets the additional options for the print command (e.g. specific printer). The default is nothing. - - -\membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation} - -\func{int}{wxGetPrinterOrientation}{\void} - -Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT. - - -\membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand} - -\func{wxString}{wxGetPrinterPreviewCommand}{\void} - -Gets the command used to view a PostScript file. The default depends on the platform. - - -\membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling} - -\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}} - -Gets the scaling factor for PostScript output. The default is 1.0, 1.0. - - -\membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation} - -\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}} - -Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0. - - -\membersection{::wxSetPrinterCommand}\label{wxsetprintercommand} - -\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}} - -Sets the printer command used to print a file. The default is {\tt lpr}. - - -\membersection{::wxSetPrinterFile}\label{wxsetprinterfile} - -\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}} - -Sets the PostScript output filename. - - -\membersection{::wxSetPrinterMode}\label{wxsetprintermode} - -\func{void}{wxSetPrinterMode}{\param{int }{mode}} - -Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER). -The default is PS\_PREVIEW. - - -\membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions} - -\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}} - -Sets the additional options for the print command (e.g. specific printer). The default is nothing. - - -\membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation} - -\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}} - -Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT. - - -\membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand} - -\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}} - -Sets the command used to view a PostScript file. The default depends on the platform. - - -\membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling} - -\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}} - -Sets the scaling factor for PostScript output. The default is 1.0, 1.0. - - -\membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation} - -\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}} - -Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0. - - - -\section{Clipboard functions}\label{clipsboard} - -These clipboard functions are implemented for Windows only. The use of these functions -is deprecated and the code is no longer maintained. Use the \helpref{wxClipboard}{wxclipboard} -class instead. - -\wxheading{Include files} - - - - -\membersection{::wxClipboardOpen}\label{functionwxclipboardopen} - -\func{bool}{wxClipboardOpen}{\void} - -Returns true if this application has already opened the clipboard. - - -\membersection{::wxCloseClipboard}\label{wxcloseclipboard} - -\func{bool}{wxCloseClipboard}{\void} - -Closes the clipboard to allow other applications to use it. - - -\membersection{::wxEmptyClipboard}\label{wxemptyclipboard} - -\func{bool}{wxEmptyClipboard}{\void} - -Empties the clipboard. - - -\membersection{::wxEnumClipboardFormats}\label{wxenumclipboardformats} - -\func{int}{wxEnumClipboardFormats}{\param{int}{ dataFormat}} - -Enumerates the formats found in a list of available formats that belong -to the clipboard. Each call to this function specifies a known -available format; the function returns the format that appears next in -the list. - -{\it dataFormat} specifies a known format. If this parameter is zero, -the function returns the first format in the list. - -The return value specifies the next known clipboard data format if the -function is successful. It is zero if the {\it dataFormat} parameter specifies -the last format in the list of available formats, or if the clipboard -is not open. - -Before it enumerates the formats function, an application must open the clipboard by using the -wxOpenClipboard function. - - -\membersection{::wxGetClipboardData}\label{wxgetclipboarddata} - -\func{wxObject *}{wxGetClipboardData}{\param{int}{ dataFormat}} - -Gets data from the clipboard. - -{\it dataFormat} may be one of: - -\begin{itemize}\itemsep=0pt -\item wxCF\_TEXT or wxCF\_OEMTEXT: returns a pointer to new memory containing a null-terminated text string. -\item wxCF\_BITMAP: returns a new wxBitmap. -\end{itemize} - -The clipboard must have previously been opened for this call to succeed. - - -\membersection{::wxGetClipboardFormatName}\label{wxgetclipboardformatname} - -\func{bool}{wxGetClipboardFormatName}{\param{int}{ dataFormat}, \param{const wxString\& }{formatName}, \param{int}{ maxCount}} - -Gets the name of a registered clipboard format, and puts it into the buffer {\it formatName} which is of maximum -length {\it maxCount}. {\it dataFormat} must not specify a predefined clipboard format. - - -\membersection{::wxIsClipboardFormatAvailable}\label{wxisclipboardformatavailable} - -\func{bool}{wxIsClipboardFormatAvailable}{\param{int}{ dataFormat}} - -Returns true if the given data format is available on the clipboard. - - -\membersection{::wxOpenClipboard}\label{wxopenclipboard} - -\func{bool}{wxOpenClipboard}{\void} - -Opens the clipboard for passing data to it or getting data from it. - - -\membersection{::wxRegisterClipboardFormat}\label{wxregisterclipboardformat} - -\func{int}{wxRegisterClipboardFormat}{\param{const wxString\& }{formatName}} - -Registers the clipboard data format name and returns an identifier. - - -\membersection{::wxSetClipboardData}\label{wxsetclipboarddata} - -\func{bool}{wxSetClipboardData}{\param{int}{ dataFormat}, \param{wxObject*}{ data}, \param{int}{ width}, \param{int}{ height}} - -Passes data to the clipboard. - -{\it dataFormat} may be one of: - -\begin{itemize}\itemsep=0pt -\item wxCF\_TEXT or wxCF\_OEMTEXT: {\it data} is a null-terminated text string. -\item wxCF\_BITMAP: {\it data} is a wxBitmap. -\item wxCF\_DIB: {\it data} is a wxBitmap. The bitmap is converted to a DIB (device independent bitmap). -\item wxCF\_METAFILE: {\it data} is a wxMetafile. {\it width} and {\it height} are used to give recommended dimensions. -\end{itemize} - -The clipboard must have previously been opened for this call to succeed. - - -\section{Miscellaneous functions and macros}\label{miscellany} - - -\membersection{wxBase64Decode}\label{wxbase64decode} - -\func{size\_t}{wxBase64Decode}{\param{void *}{dst}, \param{size\_t }{dstLen}, -\param{const char * }{src}, \param{size\_t }{srcLen = wxNO\_LEN}, -\param{wxBase64DecodeMode }{mode = wxBase64DecodeMode\_Strict}, -\param{size\_t }{*posErr = \NULL}} - -\func{wxMemoryBuffer}{wxBase64Decode}{\\ -\param{const char * }{src}, \param{size\_t }{srcLen = wxNO\_LEN},\\ -\param{wxBase64DecodeMode }{mode = wxBase64DecodeMode\_Strict},\\ -\param{size\_t }{*posErr = \NULL}} - -\func{wxMemoryBuffer}{wxBase64Decode}{\\ -\param{const wxString\& }{src},\\ -\param{wxBase64DecodeMode }{mode = wxBase64DecodeMode\_Strict},\\ -\param{size\_t }{*posErr = \NULL}} - -These function decode a Base64-encoded string. The first version is a raw -decoding function and decodes the data into the provided buffer \arg{dst} of -the given size \arg{dstLen}. An error is returned if the buffer is not large -enough -- that is not at least \helpref{wxBase64DecodedSize(srcLen)}{wxbase64decodedsize} -bytes. The second version allocates memory internally and returns it as -\helpref{wxMemoryBuffer}{wxmemorybuffer} and is recommended for normal use. - -The first version returns the number of bytes written to the buffer or the -necessary buffer size if \arg{dst} was \NULL or \texttt{wxCONV\_FAILED} on -error, e.g. if the output buffer is too small or invalid characters were -encountered in the input string. The second version returns a buffer with the -base64 decoded binary equivalent of the input string. In neither case is the -buffer NUL-terminated. - -\wxheading{Parameters} - -\docparam{dst}{Pointer to output buffer, may be \NULL to just compute the -necessary buffer size.} - -\docparam{dstLen}{The size of the output buffer, ignored if \arg{dst} is -\NULL.} - -\docparam{src}{The input string, must not be \NULL. For the version using -wxString, the input string should contain only ASCII characters.} - -\docparam{srcLen}{The length of the input string or special value -\texttt{wxNO\_LEN} if the string is \NUL-terminated and the length should be -computed by this function itself.} - -\docparam{mode}{This parameter specifies the function behaviour when invalid -characters are encountered in input. By default, any such character stops the -decoding with error. If the mode is wxBase64DecodeMode\_SkipWS, then the white -space characters are silently skipped instead. And if it is -wxBase64DecodeMode\_Relaxed, then all invalid characters are skipped.} - -\docparam{posErr}{If this pointer is non-\NULL and an error occurs during -decoding, it is filled with the index of the invalid character.} - -\wxheading{Include files} - - - - -\membersection{wxBase64DecodedSize}\label{wxbase64decodedsize} - -\func{size\_t}{wxBase64DecodedSize}{\param{size\_t }{srcLen}} - -Returns the size of the buffer necessary to contain the data encoded in a -base64 string of length \arg{srcLen}. This can be useful for allocating a -buffer to be passed to \helpref{wxBase64Decode}{wxbase64decode}. - - -\membersection{wxBase64Encode}\label{wxbase64encode} - -\func{size\_t}{wxBase64Encode}{\param{char *}{dst}, \param{size\_t }{dstLen}, -\param{const void *}{src}, \param{size\_t }{srcLen}} - -\func{wxString}{wxBase64Encode}{\param{const void *}{src}, \param{size\_t }{srcLen}} - -\func{wxString}{wxBase64Encode}{\param{const wxMemoryBuffer\& }{buf}} - -These functions encode the given data using base64. The first of them is the -raw encoding function writing the output string into provided buffer while the -other ones return the output as wxString. There is no error return for these -functions except for the first one which returns \texttt{wxCONV\_FAILED} if the -output buffer is too small. To allocate the buffer of the correct size, use -\helpref{wxBase64EncodedSize}{wxbase64encodedsize} or call this function with -\arg{dst} set to \NULL -- it will then return the necessary buffer size. - -\wxheading{Parameters} - -\docparam{dst}{The output buffer, may be \NULL to retrieve the needed buffer -size.} - -\docparam{dstLen}{The output buffer size, ignored if \arg{dst} is \NULL.} - -\docparam{src}{The input buffer, must not be \NULL.} - -\docparam{srcLen}{The length of the input data.} - -\wxheading{Include files} - - - - -\membersection{wxBase64EncodedSize}\label{wxbase64encodedsize} - -\func{size\_t}{wxBase64EncodedSize}{\param{size\_t }{len}} - -Returns the length of the string with base64 representation of a buffer of -specified size \arg{len}. This can be useful for allocating the buffer passed -to \helpref{wxBase64Encode}{wxbase64encode}. - - -\membersection{wxCONCAT}\label{wxconcat} - -\func{}{wxCONCAT}{\param{}{x1}, \param{}{x2}} - -\func{}{wxCONCAT3}{\param{}{x1}, \param{}{x2}, \param{}{x3}} - -\func{}{wxCONCAT4}{\param{}{x1}, \param{}{x2}, \param{}{x3}, \param{}{x4}} - -\func{}{wxCONCAT5}{\param{}{x1}, \param{}{x2}, \param{}{x3}, \param{}{x4}, \param{}{x5}} - -These macro return the concatenation of the tokens passed as their arguments. -Unlike when using the preprocessor \texttt{##} operator, the arguments undergo -the macro expansion before being concatenated. - - -\membersection{wxDECLARE\_APP}\label{wxdeclareapp} - -\func{}{wxDECLARE\_APP}{className} - -This is used in headers to create a forward declaration of the -\helpref{wxGetApp}{wxgetapp} function implemented by -\helpref{wxIMPLEMENT\_APP}{wximplementapp}. It creates the declaration -{\tt className\& wxGetApp(void)}. - -Example: - -\begin{verbatim} - wxDECLARE_APP(MyApp) -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{wxDYNLIB\_FUNCTION}\label{wxdynlibfunction} - -\func{}{wxDYNLIB\_FUNCTION}{\param{}{type}, \param{}{name}, \param{}{dynlib}} - -When loading a function from a DLL you always have to cast the returned -{\tt void *} pointer to the correct type and, even more annoyingly, you have to -repeat this type twice if you want to declare and define a function pointer all -in one line - -This macro makes this slightly less painful by allowing you to specify the -type only once, as the first parameter, and creating a variable of this type -named after the function but with {\tt pfn} prefix and initialized with the -function \arg{name} from the \helpref{wxDynamicLibrary}{wxdynamiclibrary} -\arg{dynlib}. - -\wxheading{Parameters} - -\docparam{type}{the type of the function} - -\docparam{name}{the name of the function to load, not a string (without quotes, -it is quoted automatically by the macro)} - -\docparam{dynlib}{the library to load the function from} - - - -\membersection{wxDEPRECATED}\label{wxdeprecated} - -This macro can be used around a function declaration to generate warnings -indicating that this function is deprecated (i.e. obsolete and planned to be -removed in the future) when it is used. Only Visual C++ 7 and higher and g++ -compilers currently support this functionality. - -Example of use: -\begin{verbatim} - // old function, use wxString version instead - wxDEPRECATED( void wxGetSomething(char *buf, size_t len) ); - - // ... - wxString wxGetSomething(); -\end{verbatim} - - -\membersection{wxDEPRECATED\_BUT\_USED\_INTERNALLY}\label{wxdeprecatedbutusedinternally} - -This is a special version of \helpref{wxDEPRECATED}{wxdeprecated} macro which -only does something when the deprecated function is used from the code outside -wxWidgets itself but doesn't generate warnings when it is used from wxWidgets. -It is used with the virtual functions which are called by the library itself -- -even if such function is deprecated the library still has to call it to ensure -that the existing code overriding it continues to work, but the use of this -macro ensures that a deprecation warning will be generated if this function is -used from the user code or, in case of Visual C++, even when it is simply -overridden. - - -\membersection{wxDEPRECATED\_INLINE}\label{wxdeprecatedinline} - -\func{}{wxDEPRECATED\_INLINE}{\param{}{func}, \param{}{body}} - -This macro is similar to \helpref{wxDEPRECATED}{wxdeprecated} but can be used -to not only declare the function \arg{func} as deprecated but to also provide -its (inline) implementation \arg{body}. - -It can be used as following: -\begin{verbatim} - class wxFoo - { - public: - // OldMethod() is deprecated, use NewMethod() instead - void NewMethod(); - wxDEPRECATED_INLINE( void OldMethod(), NewMethod() ); - }; -\end{verbatim} - -\membersection{wxEXPLICIT}\label{wxexplicit} - -{\tt wxEXPLICIT} is a macro which expands to the C++ {\tt explicit} keyword if -the compiler supports it or nothing otherwise. Thus, it can be used even in the -code which might have to be compiled with an old compiler without support for -this language feature but still take advantage of it when it is available. - - - -\membersection{::wxGetKeyState}\label{wxgetkeystate} - -\func{bool}{wxGetKeyState}{\param{wxKeyCode }{key}} - -For normal keys, returns \true if the specified key is currently down. - -For togglable keys (Caps Lock, Num Lock and Scroll Lock), returns -\true if the key is toggled such that its LED indicator is lit. There is -currently no way to test whether togglable keys are up or down. - -Even though there are virtual key codes defined for mouse buttons, they -cannot be used with this function currently. - -\wxheading{Include files} - - - - -\membersection{wxLL}\label{wxll} - -\func{wxLongLong\_t}{wxLL}{\param{}{number}} - -This macro is defined for the platforms with a native 64 bit integer type and -allows to define 64 bit compile time constants: - -\begin{verbatim} - #ifdef wxLongLong_t - wxLongLong_t ll = wxLL(0x1234567890abcdef); - #endif -\end{verbatim} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxULL}{wxull}, \helpref{wxLongLong}{wxlonglong} - - -\membersection{wxLongLongFmtSpec}\label{wxlonglongfmtspec} - -This macro is defined to contain the {\tt printf()} format specifier using -which 64 bit integer numbers (i.e. those of type {\tt wxLongLong\_t}) can be -printed. Example of using it: - -\begin{verbatim} - #ifdef wxLongLong_t - wxLongLong_t ll = wxLL(0x1234567890abcdef); - printf("Long long = %" wxLongLongFmtSpec "x\n", ll); - #endif -\end{verbatim} - -\wxheading{See also} - -\helpref{wxLL}{wxll} - -\wxheading{Include files} - - - - -\membersection{::wxNewId}\label{wxnewid} - -\func{long}{wxNewId}{\void} - -This function is deprecated as the ids generated by it can conflict with the -ids defined by the user code, use \texttt{wxID\_ANY} to assign ids which are -guaranteed to not conflict with the user-defined ids for the controls and menu -items you create instead of using this function. - - -Generates an integer identifier unique to this run of the program. - -\wxheading{Include files} - - - - -\membersection{wxON\_BLOCK\_EXIT}\label{wxonblockexit} - -\func{}{wxON\_BLOCK\_EXIT0}{\param{}{func}} - -\func{}{wxON\_BLOCK\_EXIT1}{\param{}{func}, \param{}{p1}} - -\func{}{wxON\_BLOCK\_EXIT2}{\param{}{func}, \param{}{p1}, \param{}{p2}} - -This family of macros allows to ensure that the global function \arg{func} -with 0, 1, 2 or more parameters (up to some implementaton-defined limit) is -executed on scope exit, whether due to a normal function return or because an -exception has been thrown. A typical example of its usage: -\begin{verbatim} - void *buf = malloc(size); - wxON_BLOCK_EXIT1(free, buf); -\end{verbatim} - -Please see the original article by Andrei Alexandrescu and Petru Marginean -published in December 2000 issue of \emph{C/C++ Users Journal} for more -details. - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxON\_BLOCK\_EXIT\_OBJ}{wxonblockexitobj} - - -\membersection{wxON\_BLOCK\_EXIT\_OBJ}\label{wxonblockexitobj} - -\func{}{wxON\_BLOCK\_EXIT\_OBJ0}{\param{}{obj}, \param{}{method}} - -\func{}{wxON\_BLOCK\_EXIT\_OBJ1}{\param{}{obj}, \param{}{method}, \param{}{p1}} - -\func{}{wxON\_BLOCK\_EXIT\_OBJ2}{\param{}{obj}, \param{}{method}, \param{}{p1}, \param{}{p2}} - -This family of macros is similar to \helpref{wxON\_BLOCK\_EXIT}{wxonblockexit} -but calls a method of the given object instead of a free function. - -\wxheading{Include files} - - - - -\membersection{::wxRegisterId}\label{wxregisterid} - -\func{void}{wxRegisterId}{\param{long}{ id}} - -Ensures that ids subsequently generated by {\bf NewId} do not clash with -the given {\bf id}. - -\wxheading{Include files} - - - - -\membersection{::wxDDECleanUp}\label{wxddecleanup} - -\func{void}{wxDDECleanUp}{\void} - -Called when wxWidgets exits, to clean up the DDE system. This no longer needs to be -called by the application. - -See also \helpref{wxDDEInitialize}{wxddeinitialize}. - -\wxheading{Include files} - - - - -\membersection{::wxDDEInitialize}\label{wxddeinitialize} - -\func{void}{wxDDEInitialize}{\void} - -Initializes the DDE system. May be called multiple times without harm. - -This no longer needs to be called by the application: it will be called -by wxWidgets if necessary. - -See also \helpref{wxDDEServer}{wxddeserver}, \helpref{wxDDEClient}{wxddeclient}, \helpref{wxDDEConnection}{wxddeconnection},\rtfsp -\helpref{wxDDECleanUp}{wxddecleanup}. - -\wxheading{Include files} - - - - -\membersection{::wxEnableTopLevelWindows}\label{wxenabletoplevelwindows} - -\func{void}{wxEnableTopLevelWindows}{\param{bool}{ enable = true}} - -This function enables or disables all top level windows. It is used by -\helpref{::wxSafeYield}{wxsafeyield}. - -\wxheading{Include files} - - - - -\membersection{::wxFindMenuItemId}\label{wxfindmenuitemid} - -\func{int}{wxFindMenuItemId}{\param{wxFrame *}{frame}, \param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}} - -Find a menu item identifier associated with the given frame's menu bar. - -\wxheading{Include files} - - - - -\membersection{::wxFindWindowByLabel}\label{wxfindwindowbylabel} - -\func{wxWindow *}{wxFindWindowByLabel}{\param{const wxString\& }{label}, \param{wxWindow *}{parent=NULL}} - -{\bf NB:} This function is obsolete, please use -\helpref{wxWindow::FindWindowByLabel}{wxwindowfindwindowbylabel} instead. - -Find a window by its label. Depending on the type of window, the label may be a window title -or panel item label. If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -\wxheading{Include files} - - - - -\membersection{::wxFindWindowByName}\label{wxfindwindowbyname} - -\func{wxWindow *}{wxFindWindowByName}{\param{const wxString\& }{name}, \param{wxWindow *}{parent=NULL}} - -{\bf NB:} This function is obsolete, please use -\helpref{wxWindow::FindWindowByName}{wxwindowfindwindowbyname} instead. - -Find a window by its name (as given in a window constructor or {\bf Create} function call). -If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -If no such named window is found, {\bf wxFindWindowByLabel} is called. - -\wxheading{Include files} - - - - -\membersection{::wxFindWindowAtPoint}\label{wxfindwindowatpoint} - -\func{wxWindow *}{wxFindWindowAtPoint}{\param{const wxPoint\& }{pt}} - -Find the deepest window at the given mouse position in screen coordinates, -returning the window if found, or NULL if not. - - -\membersection{::wxFindWindowAtPointer}\label{wxfindwindowatpointer} - -\func{wxWindow *}{wxFindWindowAtPointer}{\param{wxPoint\& }{pt}} - -Find the deepest window at the mouse pointer position, returning the window -and current pointer position in screen coordinates. - - -\membersection{wxFromString}\label{wxfromstring} - -\func{bool}{wxFromString}{\param{const wxString\& }{str}, - \param{wxColour* }{col}} - -\func{bool}{wxFromString}{\param{const wxString\& }{str}, - \param{wxFont* }{col}} - -Converts string to the type of the second argument. Returns \true on success. -See also: \helpref{wxToString}{wxtostring}. - - -\membersection{::wxGetActiveWindow}\label{wxgetactivewindow} - -\func{wxWindow *}{wxGetActiveWindow}{\void} - -Gets the currently active window (implemented for MSW and GTK only currently, -always returns \NULL in the other ports). - -\wxheading{Include files} - - - - -\membersection{::wxGetBatteryState}\label{wxgetbatterystate} - -\func{wxBatteryState}{wxGetBatteryState}{\void} - -Returns battery state as one of \texttt{wxBATTERY\_NORMAL\_STATE}, -\texttt{wxBATTERY\_LOW\_STATE}, \texttt{wxBATTERY\_CRITICAL\_STATE}, -\texttt{wxBATTERY\_SHUTDOWN\_STATE} or \texttt{wxBATTERY\_UNKNOWN\_STATE}. -\texttt{wxBATTERY\_UNKNOWN\_STATE} is also the default on platforms where -this feature is not implemented (currently everywhere but MS Windows). - -\wxheading{Include files} - - - - -\membersection{::wxGetDisplayName}\label{wxgetdisplayname} - -\func{wxString}{wxGetDisplayName}{\void} - -Under X only, returns the current display name. See also \helpref{wxSetDisplayName}{wxsetdisplayname}. - -\wxheading{Include files} - - - - -\membersection{::wxGetPowerType}\label{wxgetpowertype} - -\func{wxPowerType}{wxGetPowerType}{\void} - -Returns the type of power source as one of \texttt{wxPOWER\_SOCKET}, -\texttt{wxPOWER\_BATTERY} or \texttt{wxPOWER\_UNKNOWN}. -\texttt{wxPOWER\_UNKNOWN} is also the default on platforms where this -feature is not implemented (currently everywhere but MS Windows). - -\wxheading{Include files} - - - - -\membersection{::wxGetMousePosition}\label{wxgetmouseposition} - -\func{wxPoint}{wxGetMousePosition}{\void} - -Returns the mouse position in screen coordinates. - -\wxheading{Include files} - - - - -\membersection{::wxGetMouseState}\label{wxgetmousestate} - -\func{wxMouseState}{wxGetMouseState}{\void} - -Returns the current state of the mouse. Returns a wxMouseState -instance that contains the current position of the mouse pointer in -screen coordinates, as well as boolean values indicating the up/down -status of the mouse buttons and the modifier keys. - -\wxheading{Include files} - - - -wxMouseState has the following interface: - -\begin{verbatim} -class wxMouseState -{ -public: - wxMouseState(); - - wxCoord GetX(); - wxCoord GetY(); - - bool LeftDown(); - bool MiddleDown(); - bool RightDown(); - - bool ControlDown(); - bool ShiftDown(); - bool AltDown(); - bool MetaDown(); - bool CmdDown(); - - void SetX(wxCoord x); - void SetY(wxCoord y); - - void SetLeftDown(bool down); - void SetMiddleDown(bool down); - void SetRightDown(bool down); - - void SetControlDown(bool down); - void SetShiftDown(bool down); - void SetAltDown(bool down); - void SetMetaDown(bool down); -}; -\end{verbatim} - - - -\membersection{::wxGetStockLabel}\label{wxgetstocklabel} - -\func{wxString}{wxGetStockLabel}{\param{wxWindowID }{id}, \param{bool }{withCodes = true}, \param{const wxString\& }{accelerator = wxEmptyString}} - -Returns label that should be used for given {\it id} element. - -\wxheading{Parameters} - -\docparam{id}{given id of the \helpref{wxMenuItem}{wxmenuitem}, \helpref{wxButton}{wxbutton}, \helpref{wxToolBar}{wxtoolbar} tool, etc.} - -\docparam{withCodes}{if false then strip accelerator code from the label; -useful for getting labels without accelerator char code like for toolbar tooltip or -on platforms without traditional keyboard like smartphones} - -\docparam{accelerator}{optional accelerator string automatically added to label; useful -for building labels for \helpref{wxMenuItem}{wxmenuitem}} - -\wxheading{Include files} - - - - -\membersection{::wxGetTopLevelParent}\label{wxgettoplevelparent} - -\func{wxWindow *}{wxGetTopLevelParent}{\param{wxWindow }{*win}} - -Returns the first top level parent of the given window, or in other words, the -frame or dialog containing it, or {\tt NULL}. - -\wxheading{Include files} - - - - -\membersection{::wxLaunchDefaultBrowser}\label{wxlaunchdefaultbrowser} - -\func{bool}{wxLaunchDefaultBrowser}{\param{const wxString\& }{url}, \param{int }{flags = $0$}} - -Open the \arg{url} in user's default browser. If \arg{flags} parameter contains -\texttt{wxBROWSER\_NEW\_WINDOW} flag, a new window is opened for the URL -(currently this is only supported under Windows). The \arg{url} may also be a -local file path (with or without \texttt{file://} prefix), if it doesn't -correspond to an existing file and the URL has no scheme \texttt{http://} is -prepended to it by default. - -Returns \true if the application was successfully launched. - -Note that for some configurations of the running user, the application which -is launched to open the given URL may be URL-dependent (e.g. a browser may be used for -local URLs while another one may be used for remote URLs). - -\wxheading{Include files} - - - - -\membersection{::wxLoadUserResource}\label{wxloaduserresource} - -\func{wxString}{wxLoadUserResource}{\param{const wxString\& }{resourceName}, \param{const wxString\& }{resourceType=``TEXT"}} - -Loads a user-defined Windows resource as a string. If the resource is found, the function creates -a new character array and copies the data into it. A pointer to this data is returned. If unsuccessful, NULL is returned. - -The resource must be defined in the {\tt .rc} file using the following syntax: - -\begin{verbatim} -myResource TEXT file.ext -\end{verbatim} - -where {\tt file.ext} is a file that the resource compiler can find. - -This function is available under Windows only. - -\wxheading{Include files} - - - - -\membersection{::wxPostDelete}\label{wxpostdelete} - -\func{void}{wxPostDelete}{\param{wxObject *}{object}} - -Tells the system to delete the specified object when -all other events have been processed. In some environments, it is -necessary to use this instead of deleting a frame directly with the -delete operator, because some GUIs will still send events to a deleted window. - -Now obsolete: use \helpref{wxWindow::Close}{wxwindowclose} instead. - -\wxheading{Include files} - - - - -\membersection{::wxPostEvent}\label{wxpostevent} - -\func{void}{wxPostEvent}{\param{wxEvtHandler *}{dest}, \param{wxEvent\& }{event}} - -In a GUI application, this function posts {\it event} to the specified {\it dest} -object using \helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}. -Otherwise, it dispatches {\it event} immediately using -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent}. -See the respective documentation for details (and caveats). - -\wxheading{Include files} - - - - -\membersection{::wxSetDisplayName}\label{wxsetdisplayname} - -\func{void}{wxSetDisplayName}{\param{const wxString\& }{displayName}} - -Under X only, sets the current display name. This is the X host and display name such -as ``colonsay:0.0", and the function indicates which display should be used for creating -windows from this point on. Setting the display within an application allows multiple -displays to be used. - -See also \helpref{wxGetDisplayName}{wxgetdisplayname}. - -\wxheading{Include files} - - - - -\membersection{::wxStripMenuCodes}\label{wxstripmenucodes} - -\func{wxString}{wxStripMenuCodes}{\param{const wxString\& }{str}, \param{int }{flags = wxStrip\_All}} - -Strips any menu codes from \arg{str} and returns the result. - -By default, the functions strips both the mnemonics character (\texttt{'\&'}) -which is used to indicate a keyboard shortkey, and the accelerators, which are -used only in the menu items and are separated from the main text by the -\texttt{$\backslash$t} (TAB) character. By using \arg{flags} of -\texttt{wxStrip\_Mnemonics} or \texttt{wxStrip\_Accel} to strip only the former -or the latter part, respectively. - -Notice that in most cases -\helpref{wxMenuItem::GetLabelFromText}{wxmenuitemgetlabelfromtext} or -\helpref{wxControl::GetLabelText}{wxcontrolgetlabeltext} can be used instead. - -\wxheading{Include files} - - - - -\membersection{wxSTRINGIZE}\label{wxstringize} - -\func{}{wxSTRINGIZE}{\param{}{x}} - -Returns the string representation of the given symbol which can be either a -literal or a macro (hence the advantage of using this macro instead of the -standard preprocessor \texttt{\#} operator which doesn't work with macros). - -Notice that this macro always produces a \texttt{char} string, use -\helpref{wxSTRINGIZE\_T}{wxstringizet} to build a wide string Unicode build. - -\wxheading{See also} - -\helpref{wxCONCAT}{wxconcat} - - -\membersection{wxSTRINGIZE\_T}\label{wxstringizet} - -\func{}{wxSTRINGIZE\_T}{\param{}{x}} - -Returns the string representation of the given symbol as either an ASCII or -Unicode string, depending on the current build. This is the Unicode-friendly -equivalent of \helpref{wxSTRINGIZE}{wxstringize}. - - -\membersection{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}\label{wxsuppressgccprivatedtorwarning} - -\func{}{wxSUPPRESS\_GCC\_PRIVATE\_DTOR\_WARNING}{\param{}{name}} - -GNU C++ compiler gives a warning for any class whose destructor is private -unless it has a friend. This warning may sometimes be useful but it doesn't -make sense for reference counted class which always delete themselves (hence -destructor should be private) but don't necessarily have any friends, so this -macro is provided to disable the warning in such case. The \arg{name} parameter -should be the name of the class but is only used to construct a unique friend -class name internally. Example of using the macro: - -\begin{verbatim} - class RefCounted - { - public: - RefCounted() { m_nRef = 1; } - void IncRef() { m_nRef++ ; } - void DecRef() { if ( !--m_nRef ) delete this; } - - private: - ~RefCounted() { } - - wxSUPPRESS_GCC_PRIVATE_DTOR(RefCounted) - }; -\end{verbatim} - -Notice that there should be no semicolon after this macro. - - -\membersection{wxToString}\label{wxtostring} - -\func{wxString}{wxToString}{\param{const wxColour\& }{col}} - -\func{wxString}{wxToString}{\param{const wxFont\& }{col}} - -Converts its argument to string. -See also: \helpref{wxFromString}{wxfromstring}. - - -\membersection{wxULL}\label{wxull} - -\func{wxLongLong\_t}{wxULL}{\param{}{number}} - -This macro is defined for the platforms with a native 64 bit integer type and -allows to define unsigned 64 bit compile time constants: - -\begin{verbatim} - #ifdef wxLongLong_t - unsigned wxLongLong_t ll = wxULL(0x1234567890abcdef); - #endif -\end{verbatim} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxLL}{wxll}, \helpref{wxLongLong}{wxlonglong} - - -\membersection{wxVaCopy}\label{wxvacopy} - -\func{void}{wxVaCopy}{\param{va\_list }{argptrDst}, \param{va\_list}{ argptrSrc}} - -This macro is the same as the standard C99 \texttt{va\_copy} for the compilers -which support it or its replacement for those that don't. It must be used to -preserve the value of a \texttt{va\_list} object if you need to use it after -passing it to another function because it can be modified by the latter. - -As with \texttt{va\_start}, each call to \texttt{wxVaCopy} must have a matching -\texttt{va\_end}. - - - -\membersection{\_\_WXFUNCTION\_\_}\label{wxfunction} - -\func{}{\_\_WXFUNCTION\_\_}{\void} - -This macro expands to the name of the current function if the compiler supports -any of \texttt{\_\_FUNCTION\_\_}, \texttt{\_\_func\_\_} or equivalent variables -or macros or to \NULL if none of them is available. - - - -\section{Byte order macros}\label{byteordermacros} - -The endian-ness issues (that is the difference between big-endian and -little-endian architectures) are important for the portable programs working -with the external binary data (for example, data files or data coming from -network) which is usually in some fixed, platform-independent format. The -macros are helpful for transforming the data to the correct format. - - -\membersection{wxINTXX\_SWAP\_ALWAYS}\label{intswapalways} - -\func{wxInt32}{wxINT32\_SWAP\_ALWAYS}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ALWAYS}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ALWAYS}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ALWAYS}{\param{wxUint16 }{value}} - -These macros will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa unconditionally, i.e. independently of the -current platform. - - -\membersection{wxINTXX\_SWAP\_ON\_BE}\label{intswaponbe} - -\func{wxInt32}{wxINT32\_SWAP\_ON\_BE}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ON\_BE}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ON\_BE}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ON\_BE}{\param{wxUint16 }{value}} - -This macro will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa if the program is compiled on a -big-endian architecture (such as Sun work stations). If the program has -been compiled on a little-endian architecture, the value will be unchanged. - -Use these macros to read data from and write data to a file that stores -data in little-endian (for example Intel i386) format. - - -\membersection{wxINTXX\_SWAP\_ON\_LE}\label{intswaponle} - -\func{wxInt32}{wxINT32\_SWAP\_ON\_LE}{\param{wxInt32 }{value}} - -\func{wxUint32}{wxUINT32\_SWAP\_ON\_LE}{\param{wxUint32 }{value}} - -\func{wxInt16}{wxINT16\_SWAP\_ON\_LE}{\param{wxInt16 }{value}} - -\func{wxUint16}{wxUINT16\_SWAP\_ON\_LE}{\param{wxUint16 }{value}} - -This macro will swap the bytes of the {\it value} variable from little -endian to big endian or vice versa if the program is compiled on a -little-endian architecture (such as Intel PCs). If the program has -been compiled on a big-endian architecture, the value will be unchanged. - -Use these macros to read data from and write data to a file that stores -data in big-endian format. - - -\membersection{wxFORCE\_LINK\_THIS\_MODULE}\label{wxforcelinkthismodule} - -\func{}{wxFORCE\_LINK\_THIS\_MODULE}{moduleName} - -This macro can be used in conjunction with the -\helpref{wxFORCE\_LINK\_MODULE}{wxforcelinkmodule} macro to force -the linker to include in its output a specific object file. - -In particular, you should use this macro in the source file which you want -to force for inclusion. The \tt{moduleName} needs to be a name not already -in use in other \tt{wxFORCE\_LINK\_THIS\_MODULE} macros, but is not required -to be e.g. the same name of the source file (even if it's a good choice). - -\wxheading{Include files} - - - - -\membersection{wxFORCE\_LINK\_MODULE}\label{wxforcelinkmodule} - -\func{}{wxFORCE\_LINK\_MODULE}{moduleName} - -This macro can be used in conjunction with the -\helpref{wxFORCE\_LINK\_THIS\_MODULE}{wxforcelinkthismodule} macro to force -the linker to include in its output a specific object file. - -In particular, you should use this macro in a source file which you know -for sure is linked in the output (e.g. the source file containing the "main()" -of your app). The \tt{moduleName} is the name of the module you want to forcefully link -(i.e. the name you used in the relative \helpref{wxFORCE\_LINK\_THIS\_MODULE}{wxforcelinkthismodule} macro. - -\wxheading{Include files} - - - - -\membersection{wxIMPLEMENT\_APP}\label{wximplementapp} - -\func{}{wxIMPLEMENT\_APP}{className} - -This is used in the application class implementation file to make the application class -known to wxWidgets for dynamic construction. You use this as: - -\begin{verbatim} - wxIMPLEMENT_APP(MyApp) -\end{verbatim} - -See also \helpref{wxDECLARE\_APP}{wxdeclareapp}. - -\wxheading{Include files} - - - - -\section{RTTI functions}\label{rttimacros} - -wxWidgets uses its own RTTI ("run-time type identification") system which -predates the current standard C++ RTTI and so is kept for backwards -compatibility reasons but also because it allows some things which the -standard RTTI doesn't directly support (such as creating a class from its -name). - -The standard C++ RTTI can be used in the user code without any problems and in -general you shouldn't need to use the functions and the macros in this section -unless you are thinking of modifying or adding any wxWidgets classes. - -\wxheading{See also} - -\helpref{RTTI overview}{runtimeclassoverview} - - -\membersection{CLASSINFO}\label{classinfo} - -\func{wxClassInfo *}{CLASSINFO}{className} - -Returns a pointer to the wxClassInfo object associated with this class. - -\wxheading{Include files} - - - - -\membersection{DECLARE\_ABSTRACT\_CLASS}\label{declareabstractclass} - -\func{}{DECLARE\_ABSTRACT\_CLASS}{className} - -Used inside a class declaration to declare that the class should be -made known to the class hierarchy, but objects of this class cannot be created -dynamically. The same as DECLARE\_CLASS. - -Example: - -\begin{verbatim} -class wxCommand: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxCommand) - - private: - ... - public: - ... -}; -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{DECLARE\_APP}\label{declareapp} - -\func{}{DECLARE\_APP}{className} - -This is used in headers to create a forward declaration of the -\helpref{wxGetApp}{wxgetapp} function implemented by -\helpref{IMPLEMENT\_APP}{implementapp}. It creates the declaration -{\tt className\& wxGetApp(void)}. - -Example: - -\begin{verbatim} - DECLARE_APP(MyApp) -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{DECLARE\_CLASS}\label{declareclass} - -\func{}{DECLARE\_CLASS}{className} - -Used inside a class declaration to declare that the class should be -made known to the class hierarchy, but objects of this class cannot be created -dynamically. The same as DECLARE\_ABSTRACT\_CLASS. - -\wxheading{Include files} - - - - -\membersection{DECLARE\_DYNAMIC\_CLASS}\label{declaredynamicclass} - -\func{}{DECLARE\_DYNAMIC\_CLASS}{className} - -Used inside a class declaration to make the class known to wxWidgets RTTI -system and also declare that the objects of this class should be dynamically -creatable from run-time type information. Notice that this implies that the -class should have a default constructor, if this is not the case consider using -\helpref{DECLARE\_CLASS}{declareclass}. - -Example: - -\begin{verbatim} -class wxFrame: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxFrame) - - private: - const wxString& frameTitle; - public: - ... -}; -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_ABSTRACT\_CLASS}\label{implementabstractclass} - -\func{}{IMPLEMENT\_ABSTRACT\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information. The same as IMPLEMENT\_CLASS. - -Example: - -\begin{verbatim} -IMPLEMENT_ABSTRACT_CLASS(wxCommand, wxObject) - -wxCommand::wxCommand(void) -{ -... -} -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_ABSTRACT\_CLASS2}\label{implementabstractclass2} - -\func{}{IMPLEMENT\_ABSTRACT\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information and two base classes. The same as IMPLEMENT\_CLASS2. - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_APP}\label{implementapp} - -\func{}{IMPLEMENT\_APP}{className} - -This is used in the application class implementation file to make the application class known to -wxWidgets for dynamic construction. You use this instead of - -Old form: - -\begin{verbatim} - MyApp myApp; -\end{verbatim} - -New form: - -\begin{verbatim} - IMPLEMENT_APP(MyApp) -\end{verbatim} - -See also \helpref{DECLARE\_APP}{declareapp}. - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_CLASS}\label{implementclass} - -\func{}{IMPLEMENT\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information. The same as IMPLEMENT\_ABSTRACT\_CLASS. - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_CLASS2}\label{implementclass2} - -\func{}{IMPLEMENT\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of a -class that has run-time type information and two base classes. The -same as IMPLEMENT\_ABSTRACT\_CLASS2. - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_DYNAMIC\_CLASS}\label{implementdynamicclass} - -\func{}{IMPLEMENT\_DYNAMIC\_CLASS}{className, baseClassName} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information, and whose instances -can be created dynamically. - -Example: - -\begin{verbatim} -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) - -wxFrame::wxFrame(void) -{ -... -} -\end{verbatim} - -\wxheading{Include files} - - - - -\membersection{IMPLEMENT\_DYNAMIC\_CLASS2}\label{implementdynamicclass2} - -\func{}{IMPLEMENT\_DYNAMIC\_CLASS2}{className, baseClassName1, baseClassName2} - -Used in a C++ implementation file to complete the declaration of -a class that has run-time type information, and whose instances -can be created dynamically. Use this for classes derived from two -base classes. - -\wxheading{Include files} - - - - -\membersection{wxConstCast}\label{wxconstcast} - -\func{classname *}{wxConstCast}{ptr, classname} - -This macro expands into {\tt const\_cast(ptr)} if the compiler -supports {\it const\_cast} or into an old, C-style cast, otherwise. - -\wxheading{See also} - -\helpref{wx\_const\_cast}{wxconstcastraw}\\ -\helpref{wxDynamicCast}{wxdynamiccast}\\ -\helpref{wxStaticCast}{wxstaticcast} - - -\membersection{::wxCreateDynamicObject}\label{wxcreatedynamicobject} - -\func{wxObject *}{wxCreateDynamicObject}{\param{const wxString\& }{className}} - -Creates and returns an object of the given class, if the class has been -registered with the dynamic class system using DECLARE... and IMPLEMENT... macros. - - -\membersection{WXDEBUG\_NEW}\label{debugnew} - -\func{}{WXDEBUG\_NEW}{arg} - -This is defined in debug mode to be call the redefined new operator -with filename and line number arguments. The definition is: - -\begin{verbatim} -#define WXDEBUG_NEW new(__FILE__,__LINE__) -\end{verbatim} - -In non-debug mode, this is defined as the normal new operator. - -\wxheading{Include files} - - - - -\membersection{wxDynamicCast}\label{wxdynamiccast} - -\func{classname *}{wxDynamicCast}{ptr, classname} - -This macro returns the pointer {\it ptr} cast to the type {\it classname *} if -the pointer is of this type (the check is done during the run-time) or -{\tt NULL} otherwise. Usage of this macro is preferred over obsoleted -wxObject::IsKindOf() function. - -The {\it ptr} argument may be {\tt NULL}, in which case {\tt NULL} will be -returned. - -Example: - -\begin{verbatim} - wxWindow *win = wxWindow::FindFocus(); - wxTextCtrl *text = wxDynamicCast(win, wxTextCtrl); - if ( text ) - { - // a text control has the focus... - } - else - { - // no window has the focus or it is not a text control - } -\end{verbatim} - -\wxheading{See also} - -\helpref{RTTI overview}{runtimeclassoverview}\\ -\helpref{wxDynamicCastThis}{wxdynamiccastthis}\\ -\helpref{wxConstCast}{wxconstcast}\\ -\helpref{wxStaticCast}{wxstaticcast} - - -\membersection{wxDynamicCastThis}\label{wxdynamiccastthis} - -\func{classname *}{wxDynamicCastThis}{classname} - -This macro is equivalent to {\tt wxDynamicCast(this, classname)} but the -latter provokes spurious compilation warnings from some compilers (because it -tests whether {\tt this} pointer is non-{\tt NULL} which is always true), so -this macro should be used to avoid them. - -\wxheading{See also} - -\helpref{wxDynamicCast}{wxdynamiccast} - - -\membersection{wxStaticCast}\label{wxstaticcast} - -\func{classname *}{wxStaticCast}{ptr, classname} - -This macro checks that the cast is valid in debug mode (an assert failure will -result if {\tt wxDynamicCast(ptr, classname) == NULL}) and then returns the -result of executing an equivalent of {\tt static\_cast(ptr)}. - -\wxheading{See also} - -\helpref{wx\_static\_cast}{wxstaticcastraw}\\ -\helpref{wxDynamicCast}{wxdynamiccast}\\ -\helpref{wxConstCast}{wxconstcast} - - -\membersection{wx\_const\_cast}\label{wxconstcastraw} - -\func{T}{wx\_const\_cast}{T, x} - -Same as \texttt{const\_cast(x)} if the compiler supports const cast or -\texttt{(T)x} for old compilers. Unlike \helpref{wxConstCast}{wxconstcast}, -the cast it to the type \arg{T} and not to \texttt{T *} and also the order of -arguments is the same as for the standard cast. - -\wxheading{See also} - -\helpref{wx\_reinterpret\_cast}{wxreinterpretcastraw},\\ -\helpref{wx\_static\_cast}{wxstaticcastraw} - - -\membersection{wx\_reinterpret\_cast}\label{wxreinterpretcastraw} - -\func{T}{wx\_reinterpret\_cast}{T, x} - -Same as \texttt{reinterpret\_cast(x)} if the compiler supports reinterpret cast or -\texttt{(T)x} for old compilers. - -\wxheading{See also} - -\helpref{wx\_const\_cast}{wxconstcastraw},\\ -\helpref{wx\_static\_cast}{wxstaticcastraw} - - -\membersection{wx\_static\_cast}\label{wxstaticcastraw} - -\func{T}{wx\_static\_cast}{T, x} - -Same as \texttt{static\_cast(x)} if the compiler supports static cast or -\texttt{(T)x} for old compilers. Unlike \helpref{wxStaticCast}{wxstaticcast}, -there are no checks being done and the meaning of the macro arguments is exactly -the same as for the standard static cast, i.e. \arg{T} is the full type name and -star is not appended to it. - -\wxheading{See also} - -\helpref{wx\_const\_cast}{wxconstcastraw},\\ -\helpref{wx\_reinterpret\_cast}{wxreinterpretcastraw},\\ -\helpref{wx\_truncate\_cast}{wxtruncatecast} - - -\membersection{wx\_truncate\_cast}\label{wxtruncatecast} - -\func{T}{wx\_truncate\_cast}{T, x} - -This case doesn't correspond to any standard cast but exists solely to make -casts which possibly result in a truncation of an integer value more readable. - -\wxheading{See also} - -\helpref{wx\_static\_cast}{wxstaticcastraw} - - -\section{Log functions}\label{logfunctions} - -These functions provide a variety of logging functions: see \helpref{Log classes overview}{wxlogoverview} for -further information. The functions use (implicitly) the currently active log -target, so their descriptions here may not apply if the log target is not the -standard one (installed by wxWidgets in the beginning of the program). - -\wxheading{Include files} - - - - -\membersection{::wxDebugMsg}\label{wxdebugmsg} - -\func{void}{wxDebugMsg}{\param{const wxString\& }{fmt}, \param{...}{}} - -{\bf NB:} This function is now obsolete, replaced by \helpref{Log -functions}{logfunctions} and \helpref{wxLogDebug}{wxlogdebug} in particular. - -Display a debugging message; under Windows, this will appear on the -debugger command window, and under Unix, it will be written to standard -error. - -The syntax is identical to {\bf printf}: pass a format string and a -variable list of arguments. - -{\bf Tip:} under Windows, if your application crashes before the -message appears in the debugging window, put a wxYield call after -each wxDebugMsg call. wxDebugMsg seems to be broken under WIN32s -(at least for Watcom C++): preformat your messages and use OutputDebugString -instead. - -\wxheading{Include files} - - - - -\membersection{::wxError}\label{wxerror} - -\func{void}{wxError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Internal Error"}} - -{\bf NB:} This function is now obsolete, please use \helpref{wxLogError}{wxlogerror} -instead. - -Displays {\it msg} and continues. This writes to standard error under -Unix, and pops up a message box under Windows. Used for internal -wxWidgets errors. See also \helpref{wxFatalError}{wxfatalerror}. - -\wxheading{Include files} - - - - -\membersection{::wxFatalError}\label{wxfatalerror} - -\func{void}{wxFatalError}{\param{const wxString\& }{msg}, \param{const wxString\& }{title = "wxWidgets Fatal Error"}} - -{\bf NB:} This function is now obsolete, please use -\helpref{wxLogFatalError}{wxlogfatalerror} instead. - -Displays {\it msg} and exits. This writes to standard error under Unix, -and pops up a message box under Windows. Used for fatal internal -wxWidgets errors. See also \helpref{wxError}{wxerror}. - -\wxheading{Include files} - - - - -\membersection{::wxLogError}\label{wxlogerror} - -\func{void}{wxLogError}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -The functions to use for error messages, i.e. the messages that must be shown -to the user. The default processing is to pop up a message box to inform the -user about it. - - -\membersection{::wxLogFatalError}\label{wxlogfatalerror} - -\func{void}{wxLogFatalError}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogFatalError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -Like \helpref{wxLogError}{wxlogerror}, but also -terminates the program with the exit code 3. Using {\it abort()} standard -function also terminates the program with this exit code. - - -\membersection{::wxLogWarning}\label{wxlogwarning} - -\func{void}{wxLogWarning}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogWarning}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -For warnings - they are also normally shown to the user, but don't interrupt -the program work. - - -\membersection{::wxLogMessage}\label{wxlogmessage} - -\func{void}{wxLogMessage}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogMessage}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -For all normal, informational messages. They also appear in a message box by -default (but it can be changed). - -\membersection{::wxLogVerbose}\label{wxlogverbose} - -\func{void}{wxLogVerbose}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogVerbose}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -For verbose output. Normally, it is suppressed, but -might be activated if the user wishes to know more details about the program -progress (another, but possibly confusing name for the same function is {\bf wxLogInfo}). - - -\membersection{::wxLogStatus}\label{wxlogstatus} - -\func{void}{wxLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogStatus}{\param{wxFrame *}{frame}, \param{const char *}{formatString}, \param{va\_list }{argPtr}} - -\func{void}{wxLogStatus}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogStatus}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -Messages logged by these functions will appear in the statusbar of the {\it -frame} or of the top level application window by default (i.e. when using -the second version of the functions). - -If the target frame doesn't have a statusbar, the message will be lost. - - -\membersection{::wxLogSysError}\label{wxlogsyserror} - -\func{void}{wxLogSysError}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogSysError}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -Mostly used by wxWidgets itself, but might be handy for logging errors after -system call (API function) failure. It logs the specified message text as well -as the last system error code ({\it errno} or {\it ::GetLastError()} depending -on the platform) and the corresponding error message. The second form -of this function takes the error code explicitly as the first argument. - -\wxheading{See also} - -\helpref{wxSysErrorCode}{wxsyserrorcode}, -\helpref{wxSysErrorMsg}{wxsyserrormsg} - - -\membersection{::wxLogDebug}\label{wxlogdebug} - -\func{void}{wxLogDebug}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogDebug}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -The right functions for debug output. They only do something in debug -mode (when the preprocessor symbol \_\_WXDEBUG\_\_ is defined) and expand to -nothing in release mode (otherwise). - - -\membersection{::wxLogTrace}\label{wxlogtrace} - -\func{void}{wxLogTrace}{\param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogTrace}{\param{const char *}{formatString}, \param{va\_list }{argPtr}} - -\func{void}{wxLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogTrace}{\param{const char *}{mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}} - -\func{void}{wxLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{...}{}} - -\func{void}{wxVLogTrace}{\param{wxTraceMask}{ mask}, \param{const char *}{formatString}, \param{va\_list }{argPtr}} - -As {\bf wxLogDebug}, trace functions only do something in debug build and -expand to nothing in the release one. The reason for making -it a separate function from it is that usually there are a lot of trace -messages, so it might make sense to separate them from other debug messages. - -The trace messages also usually can be separated into different categories and -the second and third versions of this function only log the message if the -{\it mask} which it has is currently enabled in \helpref{wxLog}{wxlog}. This -allows to selectively trace only some operations and not others by changing -the value of the trace mask (possible during the run-time). - -For the second function (taking a string mask), the message is logged only if -the mask has been previously enabled by the call to -\helpref{AddTraceMask}{wxlogaddtracemask} or by setting -\helpref{{\tt WXTRACE} environment variable}{envvars}. -The predefined string trace masks -used by wxWidgets are: - -\begin{itemize}\itemsep=0pt -\item wxTRACE\_MemAlloc: trace memory allocation (new/delete) -\item wxTRACE\_Messages: trace window messages/X callbacks -\item wxTRACE\_ResAlloc: trace GDI resource allocation -\item wxTRACE\_RefCount: trace various ref counting operations -\item wxTRACE\_OleCalls: trace OLE method calls (Win32 only) -\end{itemize} - -{\bf Caveats:} since both the mask and the format string are strings, -this might lead to function signature confusion in some cases: -if you intend to call the format string only version of wxLogTrace, -then add a \%s format string parameter and then supply a second string parameter for that \%s, the string mask version of wxLogTrace will erroneously get called instead, since you are supplying two string parameters to the function. -In this case you'll unfortunately have to avoid having two leading -string parameters, e.g. by adding a bogus integer (with its \%d format string). - -The third version of the function only logs the message if all the bits -corresponding to the {\it mask} are set in the wxLog trace mask which can be -set by \helpref{SetTraceMask}{wxlogsettracemask}. This version is less -flexible than the previous one because it doesn't allow defining the user -trace masks easily - this is why it is deprecated in favour of using string -trace masks. - -\begin{itemize}\itemsep=0pt -\item wxTraceMemAlloc: trace memory allocation (new/delete) -\item wxTraceMessages: trace window messages/X callbacks -\item wxTraceResAlloc: trace GDI resource allocation -\item wxTraceRefCount: trace various ref counting operations -\item wxTraceOleCalls: trace OLE method calls (Win32 only) -\end{itemize} - - -\membersection{::wxSafeShowMessage}\label{wxsafeshowmessage} - -\func{void}{wxSafeShowMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{text}} - -This function shows a message to the user in a safe way and should be safe to -call even before the application has been initialized or if it is currently in -some other strange state (for example, about to crash). Under Windows this -function shows a message box using a native dialog instead of -\helpref{wxMessageBox}{wxmessagebox} (which might be unsafe to call), elsewhere -it simply prints the message to the standard output using the title as prefix. - -\wxheading{Parameters} - -\docparam{title}{The title of the message box shown to the user or the prefix -of the message string} - -\docparam{text}{The text to show to the user} - -\wxheading{See also} - -\helpref{wxLogFatalError}{wxlogfatalerror} - -\wxheading{Include files} - - - - -\membersection{::wxSysErrorCode}\label{wxsyserrorcode} - -\func{unsigned long}{wxSysErrorCode}{\void} - -Returns the error code from the last system call. This function uses -{\tt errno} on Unix platforms and {\tt GetLastError} under Win32. - -\wxheading{See also} - -\helpref{wxSysErrorMsg}{wxsyserrormsg}, -\helpref{wxLogSysError}{wxlogsyserror} - - -\membersection{::wxSysErrorMsg}\label{wxsyserrormsg} - -\func{const wxChar *}{wxSysErrorMsg}{\param{unsigned long }{errCode = 0}} - -Returns the error message corresponding to the given system error code. If -{\it errCode} is $0$ (default), the last error code (as returned by -\helpref{wxSysErrorCode}{wxsyserrorcode}) is used. - -\wxheading{See also} - -\helpref{wxSysErrorCode}{wxsyserrorcode}, -\helpref{wxLogSysError}{wxlogsyserror} - - -\membersection{WXTRACE}\label{trace} - -\wxheading{Include files} - - - -\func{}{WXTRACE}{formatString, ...} - -{\bf NB:} This macro is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -Calls wxTrace with printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). - -\wxheading{Include files} - - - - -\membersection{WXTRACELEVEL}\label{tracelevel} - -\func{}{WXTRACELEVEL}{level, formatString, ...} - -{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -Calls wxTraceLevel with printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). -The first argument should be the level at which this information is appropriate. -It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than -this value. - -\wxheading{Include files} - - - - -\membersection{::wxTrace}\label{wxtrace} - -\func{void}{wxTrace}{\param{const wxString\& }{fmt}, \param{...}{}} - -{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -Takes printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). - -\wxheading{Include files} - - - - -\membersection{::wxTraceLevel}\label{wxtracelevel} - -\func{void}{wxTraceLevel}{\param{int}{ level}, \param{const wxString\& }{fmt}, \param{...}{}} - -{\bf NB:} This function is now obsolete, replaced by \helpref{Log functions}{logfunctions}. - -Takes printf-style variable argument syntax. Output -is directed to the current output stream (see \helpref{wxDebugContext}{wxdebugcontextoverview}). -The first argument should be the level at which this information is appropriate. -It will only be output if the level returned by wxDebugContext::GetLevel is equal to or greater than -this value. - -\wxheading{Include files} - - - - - -\section{Time functions}\label{timefunctions} - -The functions in this section deal with getting the current time and sleeping -for the specified time interval. - - -\membersection{::wxGetLocalTime}\label{wxgetlocaltime} - -\func{long}{wxGetLocalTime}{\void} - -Returns the number of seconds since local time 00:00:00 Jan 1st 1970. - -\wxheading{See also} - -\helpref{wxDateTime::Now}{wxdatetimenow} - -\wxheading{Include files} - - - - -\membersection{::wxGetLocalTimeMillis}\label{wxgetlocaltimemillis} - -\func{wxLongLong}{wxGetLocalTimeMillis}{\void} - -Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970. - -\wxheading{See also} - -\helpref{wxDateTime::Now}{wxdatetimenow},\\ -\helpref{wxLongLong}{wxlonglong} - -\wxheading{Include files} - - - - -\membersection{::wxGetUTCTime}\label{wxgetutctime} - -\func{long}{wxGetUTCTime}{\void} - -Returns the number of seconds since GMT 00:00:00 Jan 1st 1970. - -\wxheading{See also} - -\helpref{wxDateTime::Now}{wxdatetimenow} - -\wxheading{Include files} - - - - -\membersection{::wxMicroSleep}\label{wxmicrosleep} - -\func{void}{wxMicroSleep}{\param{unsigned long}{ microseconds}} - -Sleeps for the specified number of microseconds. The microsecond resolution may -not, in fact, be available on all platforms (currently only Unix platforms with -nanosleep(2) may provide it) in which case this is the same as -\helpref{wxMilliSleep}{wxmillisleep}(\arg{microseconds}$/1000$). - -\wxheading{Include files} - - - - -\membersection{::wxMilliSleep}\label{wxmillisleep} - -\func{void}{wxMilliSleep}{\param{unsigned long}{ milliseconds}} - -Sleeps for the specified number of milliseconds. Notice that usage of this -function is encouraged instead of calling usleep(3) directly because the -standard usleep() function is not MT safe. - -\wxheading{Include files} - - - - -\membersection{::wxNow}\label{wxnow} - -\func{wxString}{wxNow}{\void} - -Returns a string representing the current date and time. - -\wxheading{Include files} - - - - -\membersection{::wxSleep}\label{wxsleep} - -\func{void}{wxSleep}{\param{int}{ secs}} - -Sleeps for the specified number of seconds. - -\wxheading{Include files} - - - - -\membersection{::wxUsleep}\label{wxusleep} - -\func{void}{wxUsleep}{\param{unsigned long}{ milliseconds}} - -This function is deprecated because its name is misleading: notice that the -argument is in milliseconds, not microseconds. Please use either -\helpref{wxMilliSleep}{wxmillisleep} or \helpref{wxMicroSleep}{wxmicrosleep} -depending on the resolution you need. - - - -\section{Debugging macros and functions}\label{debugmacros} - -Useful macros and functions for error checking and defensive programming. -wxWidgets defines three families of the assert-like macros: -the wxASSERT and wxFAIL macros only do anything if \_\_WXDEBUG\_\_ is defined -(in other words, in the debug build) but disappear completely in the release -build. On the other hand, the wxCHECK macros stay event in release builds but a -check failure doesn't generate any user-visible effects then. Finally, the -compile time assertions don't happen during the run-time but result in the -compilation error messages if the condition they check fail. - -\wxheading{Include files} - - - - -\membersection{::wxOnAssert}\label{wxonassert} - -\func{void}{wxOnAssert}{\param{const char *}{fileName}, \param{int}{ lineNumber}, \param{const char *}{func}, \param{const char *}{cond}, \param{const char *}{msg = NULL}} - -This function is called whenever one of debugging macros fails (i.e. condition -is false in an assertion). It is only defined in the debug mode, in release -builds the \helpref{wxCHECK}{wxcheck} failures don't result in anything. - -To override the default behaviour in the debug builds which is to show the user -a dialog asking whether he wants to abort the program, continue or continue -ignoring any subsequent assert failures, you may override -\helpref{wxApp::OnAssertFailure}{wxapponassertfailure} which is called by this function if -the global application object exists. - - -\membersection{wxASSERT}\label{wxassert} - -\func{}{wxASSERT}{\param{}{condition}} - -Assert macro. An error message will be generated if the condition is false in -debug mode, but nothing will be done in the release build. - -Please note that the condition in wxASSERT() should have no side effects -because it will not be executed in release mode at all. - -\wxheading{See also} - -\helpref{wxASSERT\_MSG}{wxassertmsg},\\ -\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert} - - -\membersection{wxASSERT\_MIN\_BITSIZE}\label{wxassertminbitsize} - -\func{}{wxASSERT\_MIN\_BITSIZE}{\param{}{type}, \param{}{size}} - -This macro results in a -\helpref{compile time assertion failure}{wxcompiletimeassert} if the size -of the given type {\it type} is less than {\it size} bits. - -You may use it like this, for example: - -\begin{verbatim} - // we rely on the int being able to hold values up to 2^32 - wxASSERT_MIN_BITSIZE(int, 32); - - // can't work with the platforms using UTF-8 for wchar_t - wxASSERT_MIN_BITSIZE(wchar_t, 16); -\end{verbatim} - - -\membersection{wxASSERT\_MSG}\label{wxassertmsg} - -\func{}{wxASSERT\_MSG}{\param{}{condition}, \param{}{msg}} - -Assert macro with message. An error message will be generated if the condition is false. - -\wxheading{See also} - -\helpref{wxASSERT}{wxassert},\\ -\helpref{wxCOMPILE\_TIME\_ASSERT}{wxcompiletimeassert} - - -\membersection{wxCOMPILE\_TIME\_ASSERT}\label{wxcompiletimeassert} - -\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}} - -Using {\tt wxCOMPILE\_TIME\_ASSERT} results in a compilation error if the -specified {\it condition} is false. The compiler error message should include -the {\it msg} identifier - please note that it must be a valid C++ identifier -and not a string unlike in the other cases. - -This macro is mostly useful for testing the expressions involving the -{\tt sizeof} operator as they can't be tested by the preprocessor but it is -sometimes desirable to test them at the compile time. - -Note that this macro internally declares a struct whose name it tries to make -unique by using the {\tt \_\_LINE\_\_} in it but it may still not work if you -use it on the same line in two different source files. In this case you may -either change the line in which either of them appears on or use the -\helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} macro. - -Also note that Microsoft Visual C++ has a bug which results in compiler errors -if you use this macro with `Program Database For Edit And Continue' -(\texttt{/ZI}) option, so you shouldn't use it (`Program Database' -(\texttt{/Zi}) is ok though) for the code making use of this macro. - -\wxheading{See also} - -\helpref{wxASSERT\_MSG}{wxassertmsg},\\ -\helpref{wxASSERT\_MIN\_BITSIZE}{wxassertminbitsize} - - -\membersection{wxCOMPILE\_TIME\_ASSERT2}\label{wxcompiletimeassert2} - -\func{}{wxCOMPILE\_TIME\_ASSERT}{\param{}{condition}, \param{}{msg}, \param{}{name}} - -This macro is identical to \helpref{wxCOMPILE\_TIME\_ASSERT2}{wxcompiletimeassert2} -except that it allows you to specify a unique {\it name} for the struct -internally defined by this macro to avoid getting the compilation errors -described \helpref{above}{wxcompiletimeassert}. - - -\membersection{wxFAIL}\label{wxfail} - -\func{}{wxFAIL}{\void} - -Will always generate an assert error if this code is reached (in debug mode). - -See also: \helpref{wxFAIL\_MSG}{wxfailmsg} - - -\membersection{wxFAIL\_MSG}\label{wxfailmsg} - -\func{}{wxFAIL\_MSG}{\param{}{msg}} - -Will always generate an assert error with specified message if this code is reached (in debug mode). - -This macro is useful for marking unreachable" code areas, for example -it may be used in the "default:" branch of a switch statement if all possible -cases are processed above. - -\wxheading{See also} - -\helpref{wxFAIL}{wxfail} - - -\membersection{wxCHECK}\label{wxcheck} - -\func{}{wxCHECK}{\param{}{condition}, \param{}{retValue}} - -Checks that the condition is true, returns with the given return value if not (FAILs in debug mode). -This check is done even in release mode. - - -\membersection{wxCHECK\_MSG}\label{wxcheckmsg} - -\func{}{wxCHECK\_MSG}{\param{}{condition}, \param{}{retValue}, \param{}{msg}} - -Checks that the condition is true, returns with the given return value if not (FAILs in debug mode). -This check is done even in release mode. - -This macro may be only used in non-void functions, see also -\helpref{wxCHECK\_RET}{wxcheckret}. - - -\membersection{wxCHECK\_RET}\label{wxcheckret} - -\func{}{wxCHECK\_RET}{\param{}{condition}, \param{}{msg}} - -Checks that the condition is true, and returns if not (FAILs with given error -message in debug mode). This check is done even in release mode. - -This macro should be used in void functions instead of -\helpref{wxCHECK\_MSG}{wxcheckmsg}. - - -\membersection{wxCHECK2}\label{wxcheck2} - -\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}} - -Checks that the condition is true and \helpref{wxFAIL}{wxfail} and execute -{\it operation} if it is not. This is a generalisation of -\helpref{wxCHECK}{wxcheck} and may be used when something else than just -returning from the function must be done when the {\it condition} is false. - -This check is done even in release mode. - - -\membersection{wxCHECK2\_MSG}\label{wxcheck2msg} - -\func{}{wxCHECK2}{\param{}{condition}, \param{}{operation}, \param{}{msg}} - -This is the same as \helpref{wxCHECK2}{wxcheck2}, but -\helpref{wxFAIL\_MSG}{wxfailmsg} with the specified {\it msg} is called -instead of wxFAIL() if the {\it condition} is false. - - -\membersection{::wxTrap}\label{wxtrap} - -\func{void}{wxTrap}{\void} - -In debug mode (when {\tt \_\_WXDEBUG\_\_} is defined) this function generates a -debugger exception meaning that the control is passed to the debugger if one is -attached to the process. Otherwise the program just terminates abnormally. - -In release mode this function does nothing. - -\wxheading{Include files} - - - - - -\membersection{::wxIsDebuggerRunning}\label{wxisdebuggerrunning} - -\func{bool}{wxIsDebuggerRunning}{\void} - -Returns \true if the program is running under debugger, \false otherwise. - -Please note that this function is currently only implemented for Win32 and Mac -builds using CodeWarrior and always returns \false elsewhere. - - - - -\section{Environment access functions}\label{environfunctions} - -The functions in this section allow to access (get) or change value of -environment variables in a portable way. They are currently implemented under -Win32 and POSIX-like systems (Unix). - -% TODO add some stuff about env var inheriting but not propagating upwards (VZ) - -\wxheading{Include files} - - - - -\membersection{wxGetenv}\label{wxgetenvmacro} - -\func{wxChar *}{wxGetEnv}{\param{const wxString\&}{ var}} - -This is a macro defined as {\tt getenv()} or its wide char version in Unicode -mode. - -Note that under Win32 it may not return correct value for the variables set -with \helpref{wxSetEnv}{wxsetenv}, use \helpref{wxGetEnv}{wxgetenv} function -instead. - - -\membersection{wxGetEnv}\label{wxgetenv} - -\func{bool}{wxGetEnv}{\param{const wxString\&}{ var}, \param{wxString *}{value}} - -Returns the current value of the environment variable {\it var} in {\it value}. -{\it value} may be {\tt NULL} if you just want to know if the variable exists -and are not interested in its value. - -Returns \true if the variable exists, \false otherwise. - - -\membersection{wxSetEnv}\label{wxsetenv} - -\func{bool}{wxSetEnv}{\param{const wxString\&}{ var}, \param{const wxString\& }{value}} - -Sets the value of the environment variable {\it var} (adding it if necessary) -to {\it value}. - -Returns \true on success. - -\wxheading{See also} - -\helpref{wxUnsetEnv}{wxunsetenv} - - -\membersection{wxUnsetEnv}\label{wxunsetenv} - -\func{bool}{wxUnsetEnv}{\param{const wxString\&}{ var}} - -Removes the variable {\it var} from the environment. -\helpref{wxGetEnv}{wxgetenv} will return {\tt NULL} after the call to this -function. - -Returns \true on success. - -\wxheading{See also} - -\helpref{wxSetEnv}{wxsetenv} - - -\section{Atomic operations}\label{atomicoperations} - -When using multi-threaded applications, it is often required to access or -modify memory which is shared between threads. Atomic integer and pointer -operations are an efficient way to handle this issue (another, less efficient, -way is to use a \helpref{mutex}{wxmutex} or \helpref{critical -section}{wxcriticalsection}). A native implementation exists for Windows, -Linux, Solaris and Mac OS X, for other OS, a -\helpref{wxCriticalSection}{wxcriticalsection} is used to protect the data. - -One particular application is reference counting (used by so-called smart -pointers). - -You should define your variable with the type wxAtomicInt in order to apply -atomic operations to it. - -\wxheading{Include files} - - - -\membersection{::wxAtomicInc}\label{wxatomicinc} - -\func{void}{wxAtomicInc}{\param{wxAtomicInt\& }{value}} - -This function increments \arg{value} in an atomic manner. - - -\membersection{::wxAtomicDec}\label{wxatomicdec} - -\func{wxInt32}{wxAtomicDec}{\param{wxAtomicInt\& }{value}} - -This function decrements \arg{value} in an atomic manner. - -Returns 0 if \arg{value} is 0 after decrementation or any non-zero value (not -necessarily equal to the value of the variable) otherwise. - - diff --git a/docs/latex/wx/gauge.tex b/docs/latex/wx/gauge.tex deleted file mode 100644 index ddef4738db..0000000000 --- a/docs/latex/wx/gauge.tex +++ /dev/null @@ -1,234 +0,0 @@ -\section{\class{wxGauge}}\label{wxgauge} - -A gauge is a horizontal or vertical bar which shows a quantity (often time). - -wxGauge supports two working modes: determinate and indeterminate progress. - -The first is the usual working mode (see \helpref{SetValue}{wxgaugesetvalue} -and \helpref{SetRange}{wxgaugesetrange}) while the second can be used when -the program is doing some processing but you don't know how much progress is -being done. -In this case, you can periodically call the \helpref{Pulse}{wxgaugepulse} -function to make the progress bar switch to indeterminate mode (graphically -it's usually a set of blocks which move or bounce in the bar control). - -wxGauge supports dynamic switch between these two work modes. - -There are no user commands for the gauge. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxGA\_HORIZONTAL}}{Creates a horizontal gauge.} -\twocolitem{\windowstyle{wxGA\_VERTICAL}}{Creates a vertical gauge.} -%\twocolitem{\windowstyle{wxGA\_PROGRESSBAR}}{Obsolete, doesn't do anything any more} -\twocolitem{\windowstyle{wxGA\_SMOOTH}}{Creates smooth progress bar with one pixel wide update step (not supported by all platforms).} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -wxGauge is read-only so generates no events. - -\wxheading{See also} - -\helpref{wxSlider}{wxslider}, \helpref{wxScrollBar}{wxscrollbar} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGauge::wxGauge}\label{wxgaugector} - -\func{}{wxGauge}{\void} - -Default constructor. - -\func{}{wxGauge}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}} - -Constructor, creating and showing a gauge. - -\wxheading{Parameters} - -\docparam{parent}{Window parent.} - -\docparam{id}{Window identifier.} - -\docparam{range}{Integer range (maximum value) of the gauge. It is ignored when the gauge is used in indeterminate mode.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Gauge style. See \helpref{wxGauge}{wxgauge}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxGauge::Create}{wxgaugecreate} - - -\membersection{wxGauge::\destruct{wxGauge}}\label{wxgaugedtor} - -\func{}{\destruct{wxGauge}}{\void} - -Destructor, destroying the gauge. - - -\membersection{wxGauge::Create}\label{wxgaugecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{int}{ range}, \param{const wxPoint\& }{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxGA\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``gauge"}} - -Creates the gauge for two-step construction. See \helpref{wxGauge::wxGauge}{wxgaugector}\rtfsp -for further details. - - -\membersection{wxGauge::GetBezelFace}\label{wxgaugegetbezelface} - -\constfunc{int}{GetBezelFace}{\void} - -Returns the width of the 3D bezel face. - -\wxheading{Remarks} - -This method is not implemented (returns $0$) for most platforms. - -\wxheading{See also} - -\helpref{wxGauge::SetBezelFace}{wxgaugesetbezelface} - - -\membersection{wxGauge::GetRange}\label{wxgaugegetrange} - -\constfunc{int}{GetRange}{\void} - -Returns the maximum position of the gauge. - -\wxheading{See also} - -\helpref{wxGauge::SetRange}{wxgaugesetrange} - - -\membersection{wxGauge::GetShadowWidth}\label{wxgaugegetshadowwidth} - -\constfunc{int}{GetShadowWidth}{\void} - -Returns the 3D shadow margin width. - -\wxheading{Remarks} - -This method is not implemented (returns $0$) for most platforms. - -\wxheading{See also} - -\helpref{wxGauge::SetShadowWidth}{wxgaugesetshadowwidth} - - -\membersection{wxGauge::GetValue}\label{wxgaugegetvalue} - -\constfunc{int}{GetValue}{\void} - -Returns the current position of the gauge. - -\wxheading{See also} - -\helpref{wxGauge::SetValue}{wxgaugesetvalue} - - -\membersection{wxGauge::IsVertical}\label{wxgaugeisvertical} - -\constfunc{bool}{IsVertical}{\void} - -Returns \true if the gauge is vertical (has \texttt{wxGA\_VERTICAL} style) and -\false otherwise. - - -\membersection{wxGauge::SetBezelFace}\label{wxgaugesetbezelface} - -\func{void}{SetBezelFace}{\param{int }{width}} - -Sets the 3D bezel face width. - -\wxheading{Remarks} - -This method is not implemented (doesn't do anything) for most platforms. - -\wxheading{See also} - -\helpref{wxGauge::GetBezelFace}{wxgaugegetbezelface} - - -\membersection{wxGauge::SetRange}\label{wxgaugesetrange} - -\func{void}{SetRange}{\param{int }{range}} - -Sets the range (maximum value) of the gauge. -This function makes the gauge switch to determinate mode, if it's not already. - -\wxheading{See also} - -\helpref{wxGauge::GetRange}{wxgaugegetrange} - - -\membersection{wxGauge::SetShadowWidth}\label{wxgaugesetshadowwidth} - -\func{void}{SetShadowWidth}{\param{int }{width}} - -Sets the 3D shadow width. - -\wxheading{Remarks} - -This method is not implemented (doesn't do anything) for most platforms. - - -\membersection{wxGauge::SetValue}\label{wxgaugesetvalue} - -\func{void}{SetValue}{\param{int }{pos}} - -Sets the position of the gauge. The \arg{pos} must be between $0$ and the gauge -range as returned by \helpref{GetRange}{wxgaugegetrange}, inclusive. - -This function makes the gauge switch to determinate mode, if it was in -indeterminate mode before. - -\wxheading{Parameters} - -\docparam{pos}{Position for the gauge level.} - -\wxheading{See also} - -\helpref{wxGauge::GetValue}{wxgaugegetvalue} - - -\membersection{wxGauge::Pulse}\label{wxgaugepulse} - -\func{void}{Pulse}{\void} - -Switch the gauge to indeterminate mode (if required) and makes the gauge move -a bit to indicate the user that some progress has been made. - -Note that after calling this function the value returned by \helpref{GetValue}{wxgaugegetvalue} -is undefined and thus you need to explicitely call \helpref{SetValue}{wxgaugesetvalue} if you -want to restore the determinate mode. - diff --git a/docs/latex/wx/gbposition.tex b/docs/latex/wx/gbposition.tex deleted file mode 100644 index 7aefc22abf..0000000000 --- a/docs/latex/wx/gbposition.tex +++ /dev/null @@ -1,65 +0,0 @@ - -\section{\class{wxGBPosition}}\label{wxgbposition} - -This class represents the position of an item in a virtual grid of -rows and columns managed by a \helpref{wxGridBagSizer}{wxgridbagsizer}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGBPosition::wxGBPosition}\label{wxgbpositionwxgbposition} - -\func{}{wxGBPosition}{\void} - -\func{}{wxGBPosition}{\param{int }{row}, \param{int }{col}} - -Construct a new wxGBPosition, optionally setting the row and column. -The default is (0,0). - -\membersection{wxGBPosition::GetCol}\label{wxgbpositiongetcol} - -\constfunc{int}{GetCol}{\void} - -Get the current column value. - -\membersection{wxGBPosition::GetRow}\label{wxgbpositiongetrow} - -\constfunc{int}{GetRow}{\void} - -Get the current row value. - -\membersection{wxGBPosition::SetCol}\label{wxgbpositionsetcol} - -\func{void}{SetCol}{\param{int }{col}} - -Set a new column value. - -\membersection{wxGBPosition::SetRow}\label{wxgbpositionsetrow} - -\func{void}{SetRow}{\param{int }{row}} - -Set a new row value. - -\membersection{wxGBPosition::operator!}\label{wxgbpositionoperatorunknown} - -\constfunc{bool}{operator!}{\param{const wxGBPosition\& }{p}} - -Is the wxGBPosition valid? (An invalid wxGBPosition is (-1,-1). ) - -\membersection{wxGBPosition::operator==}\label{wxgbpositionoperatorequal} - -\constfunc{bool operator}{operator==}{\param{const wxGBPosition\& }{p}} - -Compare equality of two wxGBPositions. - diff --git a/docs/latex/wx/gbsizeritem.tex b/docs/latex/wx/gbsizeritem.tex deleted file mode 100644 index 4204e1efb5..0000000000 --- a/docs/latex/wx/gbsizeritem.tex +++ /dev/null @@ -1,91 +0,0 @@ - -\section{\class{wxGBSizerItem}}\label{wxgbsizeritem} - -The wxGBSizerItem class is used by the -\helpref{wxGridBagSizer}{wxgridbagsizer} for tracking the items in the -sizer. It adds grid position and spanning information to the normal -\helpref{wxSizerItem}{wxsizeritem} by adding -\helpref{wxGBPosition}{wxgbposition} and \helpref{wxGBSpan}{wxgbspan} -attrbibutes. Most of the time you will not need to use a -wxGBSizerItem directly in your code, but there are a couple of cases -where it is handy. - -\wxheading{Derived from} - -\helpref{wxSizerItem}{wxsizeritem}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGBSizerItem::wxGBSizerItem}\label{wxgbsizeritemwxgbsizeritem} - -\func{}{wxGBSizerItem}{\param{int }{width}, \param{int }{height}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a spacer. - -\func{}{wxGBSizerItem}{\param{wxWindow* }{window}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a window. - -\func{}{wxGBSizerItem}{\param{wxSizer* }{sizer}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a subsizer. - -\membersection{wxGBSizerItem::GetEndPos}\label{wxgbsizeritemgetendpos} - -\func{void}{GetEndPos}{\param{int\& }{row}, \param{int\& }{col}} - -Get the row and column of the endpoint of this item - -\membersection{wxGBSizerItem::GetPos}\label{wxgbsizeritemgetpos} - -\constfunc{wxGBPosition}{GetPos}{\void} - -\constfunc{void}{GetPos}{\param{int\& }{row}, \param{int\& }{col}} - -Get the grid position of the item. - -\membersection{wxGBSizerItem::GetSpan}\label{wxgbsizeritemgetspan} - -\constfunc{wxGBSpan}{GetSpan}{\void} - -\constfunc{void}{GetSpan}{\param{int\& }{rowspan}, \param{int\& }{colspan}} - -Get the row and column spanning of the item. - -\membersection{wxGBSizerItem::Intersects}\label{wxgbsizeritemintersects} - -\func{bool}{Intersects}{\param{const wxGBSizerItem\& }{other}} - -Returns true if this item and the other item instersect - -\func{bool}{Intersects}{\param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span}} - -Returns true if the given pos/span would intersect with this item. - -\membersection{wxGBSizerItem::SetPos}\label{wxgbsizeritemsetpos} - -\func{bool}{SetPos}{\param{const wxGBPosition\& }{pos}} - -If the item is already a member of a sizer then first ensure that -there is no other item that would intersect with this one at the new -position, then set the new position. Returns true if the change is -successful and after the next Layout the item will be moved. - -\membersection{wxGBSizerItem::SetSpan}\label{wxgbsizeritemsetspan} - -\func{bool}{SetSpan}{\param{const wxGBSpan\& }{span}} - -If the item is already a member of a sizer then first ensure that -there is no other item that would intersect with this one with its new -spanning size, then set the new spanning. Returns true if the change -is successful and after the next Layout the item will be resized. - diff --git a/docs/latex/wx/gbspan.tex b/docs/latex/wx/gbspan.tex deleted file mode 100644 index 6b3b147409..0000000000 --- a/docs/latex/wx/gbspan.tex +++ /dev/null @@ -1,66 +0,0 @@ - -\section{\class{wxGBSpan}}\label{wxgbspan} - -This class is used to hold the row and column spanning attributes of -items in a \helpref{wxGridBagSizer}{wxgridbagsizer}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGBSpan::wxGBSpan}\label{wxgbspanwxgbspan} - -\func{}{wxGBSpan}{\void} - -\func{}{wxGBSpan}{\param{int }{rowspan}, \param{int }{colspan}} - -Construct a new wxGBSpan, optionally setting the rowspan and colspan. -The default is (1,1). (Meaning that the item occupies one cell in -each direction. - -\membersection{wxGBSpan::GetColspan}\label{wxgbspangetcolspan} - -\constfunc{int}{GetColspan}{\void} - -Get the current colspan value. - -\membersection{wxGBSpan::GetRowspan}\label{wxgbspangetrowspan} - -\constfunc{int}{GetRowspan}{\void} - -Get the current rowspan value. - -\membersection{wxGBSpan::SetColspan}\label{wxgbspansetcolspan} - -\func{void}{SetColspan}{\param{int }{colspan}} - -Set a new colspan value. - -\membersection{wxGBSpan::SetRowspan}\label{wxgbspansetrowspan} - -\func{void}{SetRowspan}{\param{int }{rowspan}} - -Set a new rowspan value. - -\membersection{wxGBSpan::operator!}\label{wxgbspanoperatorunknown} - -\constfunc{bool}{operator!}{\param{const wxGBSpan\& }{o}} - -Is the wxGBSpan valid? (An invalid wxGBSpan is (-1,-1). ) - -\membersection{wxGBSpan::operator==}\label{wxgbspanoperatorequal} - -\constfunc{bool operator}{operator==}{\param{const wxGBSpan\& }{o}} - -Compare equality of two wxGBSpans. - diff --git a/docs/latex/wx/gdiobj.tex b/docs/latex/wx/gdiobj.tex deleted file mode 100644 index 374299203f..0000000000 --- a/docs/latex/wx/gdiobj.tex +++ /dev/null @@ -1,34 +0,0 @@ -\section{\class{wxGDIObject}}\label{wxgdiobject} - -This class allows platforms to implement functionality to optimise GDI objects, such -as wxPen, wxBrush and wxFont. On Windows, the underling GDI objects are a scarce resource -and are cleaned up when a usage count goes to zero. On some platforms this -class may not have any special functionality. - -Since the functionality of this class is platform-specific, it is not documented here in detail. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxPen}{wxpen}, \helpref{wxBrush}{wxbrush}, \helpref{wxFont}{wxfont} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGDIObject::wxGDIObject}\label{wxgdiobjectconstr} - -\func{}{wxGDIObject}{\void} - -Default constructor. - - diff --git a/docs/latex/wx/glcanvas.tex b/docs/latex/wx/glcanvas.tex deleted file mode 100644 index b21d6d5702..0000000000 --- a/docs/latex/wx/glcanvas.tex +++ /dev/null @@ -1,172 +0,0 @@ -\section{\class{wxGLCanvas}}\label{wxglcanvas} - -wxGLCanvas is a class for displaying OpenGL graphics. It is always used in -conjunction with \helpref{wxGLContext}{wxglcontext} as the context can only be -be made current (i.e. active for the OpenGL commands) when it is associated to -a wxGLCanvas. - -More precisely, you first need to create a wxGLCanvas window and then create an -instance of a \helpref{wxGLContext}{wxglcontext} that is initialized with this -wxGLCanvas and then later use either \helpref{wxGLCanvas::SetCurrent}{wxglcanvassetcurrent} -with the instance of the \helpref{wxGLContext}{wxglcontext} or -\helpref{wxGLContext::SetCurrent}{wxglcontextsetcurrent} with the instance of -the \helpref{wxGLCanvas}{wxglcanvas} (which might be not the same as was used -for the creation of the context) to bind the OpenGL state that is represented -by the rendering context to the canvas, and then finally call -\helpref{wxGLCanvas::SwapBuffers}{wxglcanvasswapbuffers} to swap the buffers of -the OpenGL canvas and thus show your current output. - -Notice that previous versions of wxWidgets used to implicitly create a -wxGLContext inside wxGLCanvas itself. This is still supported in the current -version but is deprecated now and will be removed in the future, please update -your code to create the rendering contexts explicitly. - -To set up the attributes for the canvas (number of bits for the depth buffer, -number of bits for the stencil buffer and so on) you should set up the correct values of -the {\it attribList} parameter. The values that should be set up and their meanings will be described below. - -Notice that OpenGL is not enabled by default. To switch it on, you need to edit -setup.h under Windows and set {\tt wxUSE\_GLCANVAS} to $1$ (you may also need -to have to add {\tt opengl32.lib} and {\tt glu32.lib} to the list of libraries -your program is linked with). On Unix, pass {\tt --with-opengl} to configure. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxGl}{librarieslist} - -\wxheading{Window styles} - -There are no specific window styles for this class. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Constants} - -The generic GL implementation doesn't support many of these options, such as stereo, auxiliary buffers, -alpha channel, and accum buffer. Other implementations may support them. - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{WX\_GL\_RGBA}}{Use true colour} -\twocolitem{\windowstyle{WX\_GL\_BUFFER\_SIZE}}{Bits for buffer if not WX\_GL\_RGBA} -\twocolitem{\windowstyle{WX\_GL\_LEVEL}}{0 for main buffer, >0 for overlay, <0 for underlay} -\twocolitem{\windowstyle{WX\_GL\_DOUBLEBUFFER}}{Use doublebuffer} -\twocolitem{\windowstyle{WX\_GL\_STEREO}}{Use stereoscopic display} -\twocolitem{\windowstyle{WX\_GL\_AUX\_BUFFERS}}{Number of auxiliary buffers (not all implementations support this option)} -\twocolitem{\windowstyle{WX\_GL\_MIN\_RED}}{Use red buffer with most bits (> MIN\_RED bits)} -\twocolitem{\windowstyle{WX\_GL\_MIN\_GREEN}}{Use green buffer with most bits (> MIN\_GREEN bits) } -\twocolitem{\windowstyle{WX\_GL\_MIN\_BLUE}}{Use blue buffer with most bits (> MIN\_BLUE bits) } -\twocolitem{\windowstyle{WX\_GL\_MIN\_ALPHA}}{Use alpha buffer with most bits (> MIN\_ALPHA bits)} -\twocolitem{\windowstyle{WX\_GL\_DEPTH\_SIZE}}{Bits for Z-buffer (0,16,32)} -\twocolitem{\windowstyle{WX\_GL\_STENCIL\_SIZE}}{Bits for stencil buffer} -\twocolitem{\windowstyle{WX\_GL\_MIN\_ACCUM\_RED}}{Use red accum buffer with most bits (> MIN\_ACCUM\_RED bits)} -\twocolitem{\windowstyle{WX\_GL\_MIN\_ACCUM\_GREEN}}{Use green buffer with most bits (> MIN\_ACCUM\_GREEN bits)} -\twocolitem{\windowstyle{WX\_GL\_MIN\_ACCUM\_BLUE}}{Use blue buffer with most bits (> MIN\_ACCUM\_BLUE bits)} -\twocolitem{\windowstyle{WX\_GL\_MIN\_ACCUM\_ALPHA}}{Use blue buffer with most bits (> MIN\_ACCUM\_ALPHA bits)} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxGLContext}{wxglcontext} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGLCanvas::wxGLCanvas}\label{wxglcanvasconstr} - -\func{void}{wxGLCanvas}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id = wxID\_ANY}, - \param{const int*}{ attribList = NULL}, - \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style=0}, \param{const wxString\& }{name="GLCanvas"}, - \param{const wxPalette\&}{ palette = wxNullPalette}} - -Creates a window with the given parameters. Notice that you need to create and -use a \helpref{wxGLContext}{wxglcontext} to output to this window. - -If \arg{attribList} is not specified, double buffered RGBA mode is used. - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets -should generate a default position for the window.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets should -generate a default size for the window. If no suitable size can be found, the window will be sized to 20x20 pixels so that the window is visible but obviously not correctly sized.} - -\docparam{style}{Window style.} - -\docparam{name}{Window name.} - -\docparam{attribList}{Array of integers. With this parameter you can set the device context attributes associated to this window. -This array is zero-terminated: it should be set up with constants described in the table above. -If a constant should be followed by a value, put it in the next array position. -For example, the WX\_GL\_DEPTH\_SIZE should be followed by the value that indicates the number of -bits for the depth buffer, so:} - -\begin{verbatim} -attribList[index] = WX_GL_DEPTH_SIZE; -attribList[index+1] = 32; -and so on. -\end{verbatim} - -\docparam{palette}{Palette for indexed colour (i.e. non WX\_GL\_RGBA) mode. -Ignored under most platforms.} - - -\membersection{wxGLCanvas::IsDisplaySupported}\label{wxglcanvasisdisplaysupported} - -\func{static bool}{IsDisplaySupported}{ \param{const int *}{ attribList = \NULL} } - -Determines if a canvas having the specified attributes is available. - -\docparam{attribList}{See \arg{attribList} for \helpref{wxGLCanvas::wxGLCanvas}{wxglcanvasconstr}.} - -Returns \true if attributes are supported. - - -\membersection{wxGLCanvas::SetCurrent}\label{wxglcanvassetcurrent} - -\func{bool}{SetCurrent}{ \param{const wxGLContext&}{ context} } - -Makes the OpenGL state that is represented by the OpenGL rendering context -\arg{context} current, i.e. it will be used by all subsequent OpenGL calls. - -This is equivalent to \helpref{wxGLContext::SetCurrent}{wxglcontextsetcurrent} -called with this window as parameter. - -Note that this function may only be called when the window is shown on screen, -in particular it can't usually be called from the constructor as the window -isn't yet shown at this moment. - -Returns \false if an error occurred. - - -\membersection{wxGLCanvas::SetColour}\label{wxglcanvassetcolour} - -\func{void}{SetColour}{\param{const wxString\&}{ colour}} - -Sets the current colour for this window (using \texttt{glcolor3f()}), using the -wxWidgets colour database to find a named colour. - - -\membersection{wxGLCanvas::SwapBuffers}\label{wxglcanvasswapbuffers} - -\func{bool}{SwapBuffers}{\void} - -Swaps the double-buffer of this window, making the back-buffer the front-buffer and vice versa, -so that the output of the previous OpenGL commands is displayed on the window. - -Returns \false if an error occurred. - diff --git a/docs/latex/wx/glcontext.tex b/docs/latex/wx/glcontext.tex deleted file mode 100644 index 057977aad2..0000000000 --- a/docs/latex/wx/glcontext.tex +++ /dev/null @@ -1,60 +0,0 @@ -\section{\class{wxGLContext}}\label{wxglcontext} - -An instance of a wxGLContext represents the state of an OpenGL state machine and the connection between OpenGL and the system. - -The OpenGL state includes everything that can be set with the OpenGL API: colors, rendering variables, display lists, texture objects, etc. -Although it is possible to have multiple rendering contexts share display lists in order to save resources, -this method is hardly used today any more, because display lists are only a tiny fraction of the overall state. - -Therefore, one rendering context is usually used with or bound to multiple output windows in turn, -so that the application has access to the \emph{complete and identical} state while rendering into each window. - -Binding (making current) a rendering context with another instance of a wxGLCanvas however works only -if the other wxGLCanvas was created with the same attributes as the wxGLCanvas from which the wxGLContext -was initialized. (This applies to sharing display lists among contexts analogously.) - -Note that some wxGLContext features are extremely platform-specific - its best to check your native platform's glcanvas header (on windows include/wx/msw/glcanvas.h) to see what features your native platform provides. - -\wxheading{Library} - -\helpref{wxGl}{librarieslist} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxGLCanvas}{wxglcanvas} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGLContext::wxGLContext}\label{wxglcontextconstr} - -\func{ }{wxGLContext}{ \param{wxGLCanvas*}{ win}, \param{const wxGLContext*}{ other=NULL} } - -Constructor. - -\docparam{win}{The canvas that is used to initialize this context. This parameter is needed only temporarily, -and the caller may do anything with it (e.g. destroy the window) after the constructor returned. - -It will be possible to bind (make current) this context to any other wxGLCanvas that has been created -with equivalent attributes as {\it win}.} - -\docparam{other}{Context to share display lists with or NULL (the default) for no sharing.} - - -\membersection{wxGLContext::SetCurrent}\label{wxglcontextsetcurrent} - -\func{void}{SetCurrent}{\param{const wxGLCanvas\&}{ win}} - -Makes the OpenGL state that is represented by this rendering context current with the wxGLCanvas {\it win}. -Note that {\it win} can be a different wxGLCanvas window than the one that was passed to the constructor of this rendering context. -If { \it RC } is an object of type wxGLContext, the statements {\it RC.SetCurrent(win);} and {\it win.SetCurrent(RC);} are equivalent, -see \helpref{wxGLCanvas::SetCurrent}{wxglcanvassetcurrent}. - diff --git a/docs/latex/wx/graphicsbrush.tex b/docs/latex/wx/graphicsbrush.tex deleted file mode 100644 index 39f5c7a433..0000000000 --- a/docs/latex/wx/graphicsbrush.tex +++ /dev/null @@ -1,29 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsbrush.tex -%% Purpose: wxGraphicsBrush class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsBrush}}\label{wxgraphicsbrush} - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -A wxGraphicsBrush is a native representation of a brush. It is used for filling a path on a graphics context. The contents are specific an private to the respective renderer. Instances are ref counted and can therefore be assigned as usual. The only way to get a valid instance is via a Create...Brush call on the graphics context or the renderer instance. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - diff --git a/docs/latex/wx/graphicscontext.tex b/docs/latex/wx/graphicscontext.tex deleted file mode 100644 index 5606216aa9..0000000000 --- a/docs/latex/wx/graphicscontext.tex +++ /dev/null @@ -1,295 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsfont.tex -%% Purpose: wxGraphicsFont class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsContext}}\label{wxgraphicscontext} - -A wxGraphicsContext instance is the object that is drawn upon. It is created by a renderer using the CreateContext calls.., this can be either directly using a renderer -instance, or indirectly using the static convenience CreateXXX functions of wxGraphicsContext that always delegate the task to the default renderer. - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGraphicsContext::Create}\label{wxgraphicscontextcreate} - -\func{wxGraphicsContext*}{Create}{\param{const wxWindowDC\& }{dc}} - -Creates a wxGraphicsContext from a wxWindowDC (eg a wxPaintDC). - -\func{wxGraphicsContext*}{Create}{\param{wxWindow* }{window}} - -Creates a wxGraphicsContext from a wxWindow. - -\wxheading{See also} - -\helpref{wxGraphicsRenderer:: CreateContext}{wxgraphicsrenderercreatecontext} - -\membersection{wxGraphicsContext::CreateFromNative}\label{wxgraphicscontextcreatefromnative} - -Creates a wxGraphicsContext from a native context. This native context must be eg a CGContextRef for Core Graphics, a Graphics pointer for GDIPlus or a -cairo\_t pointer for cairo. - -\func{wxGraphicsContext*}{CreateFromNative}{\param{void * }{context}} - -Creates a wxGraphicsContext from a native window. - -\wxheading{See also} - -\helpref{wxGraphicsRenderer:: CreateContextFromNativeContext}{wxgraphicsrenderercreatecontextfromnativecontext} - -\membersection{wxGraphicsContext::CreateFromNativeWindow}\label{wxgraphicscontextcreatefromnativewindow} - -\func{wxGraphicsContext*}{CreateFromNativeWindow}{\param{void * }{window}} - -\wxheading{See also} - -\helpref{wxGraphicsRenderer:: CreateContextFromNativeWindow}{wxgraphicsrenderercreatecontextfromnativewindow} - -\membersection{wxGraphicsContext::CreatePen}\label{wxgraphicscontextcreatepen} - -\constfunc{wxGraphicsPen}{CreatePen}{\param{const wxPen\& }{pen}} - -Creates a native pen from a wxPen. - -\membersection{wxGraphicsContext::CreateBrush}\label{wxgraphicscontextcreatebrush} - -\constfunc{wxGraphicsBrush}{CreateBrush}{\param{const wxBrush\& }{brush}} - -Creates a native brush from a wxBrush. - -\membersection{wxGraphicsContext::CreateRadialGradientBrush}\label{wxgraphicscontextcreateradialgradientbrush} - -\constfunc{wxGraphicsBrush}{CreateRadialGradientBrush}{\param{wxDouble }{xo}, \param{wxDouble }{yo}, \param{wxDouble }{xc}, \param{wxDouble }{yc}, -\param{wxDouble }{radius}, \param{const wxColour\& }{oColor}, \param{const wxColour\& }{cColor}} - -Creates a native brush, having a radial gradient originating at (xo,yc) with color oColour and ends on a circle around (xc,yc) with radius r and color cColour - -\membersection{wxGraphicsContext::CreateLinearGradientBrush}\label{wxgraphicscontextcreatelineargradientbrush} - -\constfunc{wxGraphicsBrush}{CreateLinearGradientBrush}{\param{wxDouble }{x1}, \param{wxDouble }{y1}, \param{wxDouble }{x2}, \param{wxDouble }{y2}, -\param{const }{wxColour\&c1}, \param{const }{wxColour\&c2}} - -Creates a native brush, having a linear gradient, starting at (x1,y1) with color c1 to (x2,y2) with color c2 - -\membersection{wxGraphicsContext::CreateFont}\label{wxgraphicscontextcreatefont} - -\constfunc{wxGraphicsFont}{CreateFont}{\param{const wxFont\& }{font}, \param{const wxColour\& }{col = *wxBLACK}} - -Creates a native graphics font from a wxFont and a text colour. - -\membersection{wxGraphicsContext::CreateMatrix}\label{wxgraphicscontextcreatematrix} - -\constfunc{wxGraphicsMatrix}{CreateMatrix}{\param{wxDouble }{a = 1.0}, \param{wxDouble }{b = 0.0}, \param{wxDouble }{c = 0.0}, \param{wxDouble }{d = 1.0}, -\param{wxDouble }{tx = 0.0}, \param{wxDouble }{ty = 0.0}} - -Creates a native affine transformation matrix from the passed in values. The defaults result in an identity matrix. - -\membersection{wxGraphicsContext::CreatePath}\label{wxgraphicscontextcreatepath} - -\constfunc{wxGraphicsPath}{CreatePath}{\void} - -Creates a native graphics path which is initially empty. - -\membersection{wxGraphicsContext::Clip}\label{wxgraphicscontextclip} - -\func{void}{Clip}{\param{const wxRegion\& }{region}} - -Clips drawings to the region, combined to current clipping region - -\func{void}{Clip}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Clips drawings to the rectangle. - -\membersection{wxGraphicsContext::ResetClip}\label{wxgraphicscontextresetclip} - -\func{void}{ResetClip}{\void} - -Resets the clipping to original shape. - -\membersection{wxGraphicsContext::DrawBitmap}\label{wxgraphicscontextdrawbitmap} - -\func{void}{DrawBitmap}{\param{const wxBitmap\& }{bmp}, \param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Draws the bitmap. In case of a mono bitmap, this is treated as a mask and the current brushed is used for filling. - -\membersection{wxGraphicsContext::DrawEllipse}\label{wxgraphicscontextdrawellipse} - -\func{void}{DrawEllipse}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Draws an ellipse. - -\membersection{wxGraphicsContext::DrawIcon}\label{wxgraphicscontextdrawicon} - -\func{void}{DrawIcon}{\param{const wxIcon\& }{icon}, \param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Draws the icon. - - -\membersection{wxGraphicsContext::DrawLines}\label{wxgraphicscontextdrawlines} - -\func{void}{DrawLines}{\param{size\_t }{n}, \param{const wxPoint2DDouble* }{points}, \param{int }{fillStyle = wxODDEVEN\_RULE}} - -Draws a polygon. - - -\membersection{wxGraphicsContext::DrawPath}\label{wxgraphicscontextdrawpath} - -\func{void}{DrawPath}{\param{const wxGraphicsPath\& }{path}, \param{int }{fillStyle = wxODDEVEN\_RULE}} - -Draws the path by first filling and then stroking. - - -\membersection{wxGraphicsContext::DrawRectangle}\label{wxgraphicscontextdrawrectangle} - -\func{void}{DrawRectangle}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Draws a rectangle. - - -\membersection{wxGraphicsContext::DrawRoundedRectangle}\label{wxgraphicscontextdrawroundedrectangle} - -\func{void}{DrawRoundedRectangle}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}, \param{wxDouble }{radius}} - -Draws a rounded rectangle. - -\membersection{wxGraphicsContext::DrawText}\label{wxgraphicscontextdrawtext} - -\func{void}{DrawText}{\param{const wxString\& }{str}, \param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{angle}} - -\func{void}{DrawText}{\param{const wxString\& }{str}, \param{wxDouble }{x}, \param{wxDouble }{y}} - -Draws a text at the defined position, at the given angle. - -\membersection{wxGraphicsContext::FillPath}\label{wxgraphicscontextfillpath} - -\func{void}{FillPath}{\param{const wxGraphicsPath\& }{path}, \param{int }{fillStyle = wxODDEVEN\_RULE}} - -Fills the path with the current brush. - -\membersection{wxGraphicsContext::StrokePath}\label{wxgraphicscontextstrokepath} - -\func{void}{StrokePath}{\param{const wxGraphicsPath\& }{path}} - -Strokes along a path with the current pen. - - -\membersection{wxGraphicsContext::GetNativeContext}\label{wxgraphicscontextgetnativecontext} - -\func{void *}{GetNativeContext}{\void} - -Returns the native context (CGContextRef for Core Graphics, Graphics pointer for GDIPlus and cairo\_t pointer for cairo). - -\membersection{wxGraphicsContext::GetPartialTextExtents}\label{wxgraphicscontextgetpartialtextextents} - -\constfunc{void}{GetPartialTextExtents}{\param{const wxString\& }{text}, \param{wxArrayDouble\& }{widths}} - -Fills the {\it widths} array with the widths from the beginning of -{\it text} to the corresponding character of {\it text}. - -\membersection{wxGraphicsContext::GetTextExtent}\label{wxgraphicscontextgettextextent} - -\constfunc{void}{GetTextExtent}{\param{const wxString\& }{text}, \param{wxDouble* }{width}, \param{wxDouble* }{height}, \param{wxDouble* }{descent}, -\param{wxDouble* }{externalLeading}} - -Gets the dimensions of the string using the currently selected font. -\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are -the total width and height respectively, {\it descent} is the -dimension from the baseline of the font to the bottom of the -descender, and {\it externalLeading} is any extra vertical space added -to the font by the font designer (usually is zero). - -\membersection{wxGraphicsContext::Rotate}\label{wxgraphicscontextrotate} - -\func{void}{Rotate}{\param{wxDouble }{angle}} - -Rotates the current transformation matrix (radians), - -\membersection{wxGraphicsContext::Scale}\label{wxgraphicscontextscale} - -\func{void}{Scale}{\param{wxDouble }{xScale}, \param{wxDouble }{yScale}} - -Scales the current transformation matrix. - -\membersection{wxGraphicsContext::Translate}\label{wxgraphicscontexttranslate} - -\func{void}{Translate}{\param{wxDouble }{dx}, \param{wxDouble }{dy}} - -Translates the current transformation matrix. - -\membersection{wxGraphicsContext::GetTransform}\label{wxgraphicscontextgettransform} - -\constfunc{wxGraphicsMatrix}{GetTransform}{\void} - -Gets the current transformation matrix of this context. - -\membersection{wxGraphicsContext::SetTransform}\label{wxgraphicscontextsettransform} - -\func{void}{SetTransform}{\param{const wxGraphicsMatrix\& }{matrix}} - -Sets the current transformation matrix of this context - -\membersection{wxGraphicsContext::ConcatTransform}\label{wxgraphicscontextconcattransform} - -\func{void}{ConcatTransform}{\param{const wxGraphicsMatrix\& }{matrix}} - -Concatenates the passed in transform with the current transform of this context - -\membersection{wxGraphicsContext::SetBrush}\label{wxgraphicscontextsetbrush} - -\func{void}{SetBrush}{\param{const wxBrush\& }{brush}} - -\func{void}{SetBrush}{\param{const wxGraphicsBrush\& }{brush}} - -Sets the brush for filling paths. - -\membersection{wxGraphicsContext::SetFont}\label{wxgraphicscontextsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}, \param{const wxColour\& }{colour}} - - -\func{void}{SetFont}{\param{const wxGraphicsFont\& }{font}} - -Sets the font for drawing text. - - -\membersection{wxGraphicsContext::SetPen}\label{wxgraphicscontextsetpen} - -\func{void}{SetPen}{\param{const wxGraphicsPen\& }{pen}} - -\func{void}{SetPen}{\param{const wxPen\& }{pen}} - -Sets the pen used for stroking. - -\membersection{wxGraphicsContext::StrokeLine}\label{wxgraphicscontextstrokeline} - -\func{void}{StrokeLine}{\param{wxDouble }{x1}, \param{wxDouble }{y1}, \param{wxDouble }{x2}, \param{wxDouble }{y2}} - -Strokes a single line. - -\membersection{wxGraphicsContext::StrokeLines}\label{wxgraphicscontextstrokelines} - -\func{void}{StrokeLines}{\param{size\_t }{n}, \param{const wxPoint2DDouble* }{beginPoints}, \param{const wxPoint2DDouble* }{endPoints}} - -\func{void}{StrokeLines}{\param{size\_t }{n}, \param{const wxPoint2DDouble* }{points}} - -Stroke disconnected lines from begin to end points, fastest method available for this purpose. - diff --git a/docs/latex/wx/graphicsfont.tex b/docs/latex/wx/graphicsfont.tex deleted file mode 100644 index 34e011ebe9..0000000000 --- a/docs/latex/wx/graphicsfont.tex +++ /dev/null @@ -1,30 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsfont.tex -%% Purpose: wxGraphicsFont class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsFont}}\label{wxgraphicsfont} - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -A wxGraphicsFont is a native representation of a font (including text colour). The contents are specific an private to the respective renderer. Instances are ref counted -and can therefore be assigned as usual. The only way to get a valid instance is via a CreateFont call on the graphics context or the renderer instance. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - diff --git a/docs/latex/wx/graphicsmatrix.tex b/docs/latex/wx/graphicsmatrix.tex deleted file mode 100644 index b83e085ad0..0000000000 --- a/docs/latex/wx/graphicsmatrix.tex +++ /dev/null @@ -1,112 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsmatrix.tex -%% Purpose: wxGraphicsMatrix class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsMatrix}}\label{wxgraphicsmatrix} - -A wxGraphicsMatrix is a native representation of an affine matrix. The contents are specific and private to the respective renderer. Instances are ref counted and can therefore be assigned as usual. The only way to get a valid instance is via a CreateMatrix call on the graphics context or the renderer instance. - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGraphicsMatrix::Concat}\label{wxgraphicsmatrixconcat} - -\func{void}{Concat}{\param{const wxGraphicsMatrix* }{t}} - -Concatenates the matrix passed with the current matrix. - -\func{void}{Concat}{\param{const wxGraphicsMatrix\& }{t}} - - -\membersection{wxGraphicsMatrix::Get}\label{wxgraphicsmatrixget} - -\constfunc{void }{Get}{\param{wxDouble* }{a=NULL}, - \param{wxDouble* }{b=NULL}, - \param{wxDouble* }{c=NULL}, - \param{wxDouble* }{d=NULL}, - \param{wxDouble* }{tx=NULL}, - \param{wxDouble* }{ty=NULL}} - -Returns the component values of the matrix via the argument pointers. - -\membersection{wxGraphicsMatrix::GetNativeMatrix}\label{wxgraphicsmatrixgetnativematrix} - -\constfunc{void *}{GetNativeMatrix}{\void} - -Returns the native representation of the matrix. For CoreGraphics this is a CFAffineMatrix pointer. For GDIPlus a Matrix Pointer and for Cairo a cairo\_matrix\_t pointer. - -\membersection{wxGraphicsMatrix::Invert}\label{wxgraphicsmatrixinvert} - -\func{void}{Invert}{\void} - -Inverts the matrix. - -\membersection{wxGraphicsMatrix::IsEqual}\label{wxgraphicsmatrixisequal} - -\constfunc{bool}{IsEqual}{\param{const wxGraphicsMatrix\& }{t}} - -Returns true if the elements of the transformation matrix are equal. - -\membersection{wxGraphicsMatrix::IsIdentity}\label{wxgraphicsmatrixisidentity} - -\constfunc{bool}{IsIdentity}{\void} - -Return true if this is the identity matrix. - -\membersection{wxGraphicsMatrix::Rotate}\label{wxgraphicsmatrixrotate} - -\func{void}{Rotate}{\param{wxDouble }{angle}} - -Rotates this matrix (radians). - -\membersection{wxGraphicsMatrix::Scale}\label{wxgraphicsmatrixscale} - -\func{void}{Scale}{\param{wxDouble }{xScale}, \param{wxDouble }{yScale}} - -Scales this matrix. - -\membersection{wxGraphicsMatrix::Translate}\label{wxgraphicsmatrixtranslate} - -\func{void}{Translate}{\param{wxDouble }{dx}, \param{wxDouble }{dy}} - -Translates this matrix. - -\membersection{wxGraphicsMatrix::Set}\label{wxgraphicsmatrixset} - -\func{void}{Set}{\param{wxDouble }{a = 1.0}, \param{wxDouble }{b = 0.0}, \param{wxDouble }{c = 0.0}, \param{wxDouble }{d = 1.0}, \param{wxDouble }{tx = 0.0}, \param{wxDouble }{ty = 0.0}} - -Sets the matrix to the respective values (default values are the identity matrix) - -\membersection{wxGraphicsMatrix::TransformPoint}\label{wxgraphicsmatrixtransformpoint} - -\constfunc{void}{TransformPoint}{\param{wxDouble* }{x}, \param{wxDouble* }{y}} - -Applies this matrix to a point. - -\membersection{wxGraphicsMatrix::TransformDistance}\label{wxgraphicsmatrixtransformdistance} - -\constfunc{void}{TransformDistance}{\param{wxDouble* }{dx}, \param{wxDouble* }{dy}} - -Applies this matrix to a distance (ie. performs all transforms except translations) - - - diff --git a/docs/latex/wx/graphicsobject.tex b/docs/latex/wx/graphicsobject.tex deleted file mode 100644 index f05e822b99..0000000000 --- a/docs/latex/wx/graphicsobject.tex +++ /dev/null @@ -1,45 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsobject.tex -%% Purpose: wxGraphicsObject class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsObject}}\label{wxgraphicsobject} - -This class is the superclass of native graphics objects like pens etc. It allows reference counting. Not instantiated by user code. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxGraphicsBrush}{wxgraphicsbrush}, \helpref{wxGraphicsPen}{wxgraphicspen}, \helpref{wxGraphicsMatrix}{wxgraphicsmatrix}, \helpref{wxGraphicsPath}{wxgraphicspath} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGraphicsObject::GetRenderer}\label{wxgraphicsobjectgetrenderer} - -\constfunc{wxGraphicsRenderer*}{GetRenderer}{\void} - -Returns the renderer that was used to create this instance, or NULL if it has not been initialized yet - -\membersection{wxGraphicsObject::IsNull}\label{wxgraphicsobjectisnull} - -\constfunc{bool}{IsNull}{\void} - -Is this object valid (false) or still empty (true)? - diff --git a/docs/latex/wx/graphicspath.tex b/docs/latex/wx/graphicspath.tex deleted file mode 100644 index dc21c9d386..0000000000 --- a/docs/latex/wx/graphicspath.tex +++ /dev/null @@ -1,157 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicspath.tex -%% Purpose: wxGraphicsPath class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsPath}}\label{wxgraphicspath} - -A wxGraphicsPath is a native representation of an geometric path. The contents are specific an private to the respective renderer. Instances are ref counted and can -therefore be assigned as usual. The only way to get a valid instance is via a CreatePath call on the graphics context or the renderer instance. - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGraphicsPath::MoveToPoint}\label{wxgraphicspathmovetopoint} - -\func{void}{MoveToPoint}{\param{wxDouble }{x}, \param{wxDouble }{y}} - -\func{void}{MoveToPoint}{\param{const wxPoint2DDouble\& }{p}} - -Begins a new subpath at (x,y) - -\membersection{wxGraphicsPath::AddArc}\label{wxgraphicspathaddarc} - -\func{void}{AddArc}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{r}, \param{wxDouble }{startAngle}, \param{wxDouble }{endAngle}, - \param{bool }{clockwise}} - -Adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle. - -\func{void}{AddArc}{\param{const wxPoint2DDouble\& }{c}, \param{wxDouble }{r}, \param{wxDouble }{startAngle}, \param{wxDouble }{endAngle}, -\param{bool }{clockwise}} - -\membersection{wxGraphicsPath::AddArcToPoint}\label{wxgraphicspathaddarctopoint} - -\func{void}{AddArcToPoint}{\param{wxDouble }{x1}, \param{wxDouble }{y1}, \param{wxDouble }{x2}, \param{wxDouble }{y2}, \param{wxDouble }{r}} - -Appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1). - -\membersection{wxGraphicsPath::AddCircle}\label{wxgraphicspathaddcircle} - -\func{void}{AddCircle}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{r}} - -Appends a circle around (x,y) with radius r as a new closed subpath. - -\membersection{wxGraphicsPath::AddCurveToPoint}\label{wxgraphicspathaddcurvetopoint} - -\func{void}{AddCurveToPoint}{\param{wxDouble }{cx1}, \param{wxDouble }{cy1}, \param{wxDouble }{cx2}, \param{wxDouble }{cy2}, \param{wxDouble }{x}, -\param{wxDouble }{y}} - -Adds a cubic Bezier curve from the current point, using two control points and an end point. - -\func{void}{AddCurveToPoint}{\param{const wxPoint2DDouble\& }{c1}, \param{const wxPoint2DDouble\& }{c2}, \param{const wxPoint2DDouble\& }{e}} - -\membersection{wxGraphicsPath::AddEllipse}\label{wxgraphicspathaddellipse} - -\func{void}{AddEllipse}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Appends an ellipse fitting into the passed in rectangle. - -\membersection{wxGraphicsPath::AddLineToPoint}\label{wxgraphicspathaddlinetopoint} - -\func{void}{AddLineToPoint}{\param{wxDouble }{x}, \param{wxDouble }{y}} - -Adds a straight line from the current point to (x,y). - -\func{void}{AddLineToPoint}{\param{const wxPoint2DDouble\& }{p}} - -\membersection{wxGraphicsPath::AddPath}\label{wxgraphicspathaddpath} - -\func{void}{AddPath}{\param{const wxGraphicsPath\& }{path}} - -Adds another path. - -\membersection{wxGraphicsPath::AddQuadCurveToPoint}\label{wxgraphicspathaddquadcurvetopoint} - -\func{void}{AddQuadCurveToPoint}{\param{wxDouble }{cx}, \param{wxDouble }{cy}, \param{wxDouble }{x}, \param{wxDouble }{y}} - -Adds a quadratic Bezier curve from the current point, using a control point and an end point. - -\membersection{wxGraphicsPath::AddRectangle}\label{wxgraphicspathaddrectangle} - -\func{void}{AddRectangle}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}} - -Appends a rectangle as a new closed subpath. - -\membersection{wxGraphicsPath::AddRoundedRectangle}\label{wxgraphicspathaddroundedrectangle} - -\func{void}{AddRoundedRectangle}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{wxDouble }{w}, \param{wxDouble }{h}, \param{wxDouble }{radius}} - -Appends a rounded rectangle as a new closed subpath. - -\membersection{wxGraphicsPath::CloseSubpath}\label{wxgraphicspathclosesubpath} - -\func{void}{CloseSubpath}{\void} - -Closes the current sub-path. - -\membersection{wxGraphicsPath::Contains}\label{wxgraphicspathcontains} - -\constfunc{bool}{Contains}{\param{const wxPoint2DDouble\& }{c}, \param{int }{fillStyle = wxODDEVEN\_RULE}} - -\constfunc{bool}{Contains}{\param{wxDouble }{x}, \param{wxDouble }{y}, \param{int }{fillStyle = wxODDEVEN\_RULE}} - -Returns true if the point is within the path. - -\membersection{wxGraphicsPath::GetBox}\label{wxgraphicspathgetbox} - -\constfunc{wxRect2DDouble}{GetBox}{\void} - -\constfunc{void}{GetBox}{\param{wxDouble* }{x}, \param{wxDouble* }{y}, \param{wxDouble* }{w}, \param{wxDouble* }{h}} - -Gets the bounding box enclosing all points (possibly including control points). - -\membersection{wxGraphicsPath::GetCurrentPoint}\label{wxgraphicspathgetcurrentpoint} - -\constfunc{void}{GetCurrentPoint}{\param{wxDouble* }{x}, \param{wxDouble* }{y}} - -\constfunc{wxPoint2DDouble}{GetCurrentPoint}{\void} - -Gets the last point of the current path, (0,0) if not yet set. - -\membersection{wxGraphicsPath::Transform}\label{wxgraphicspathtransform} - -\func{void}{Transform}{\param{const wxGraphicsMatrix\& }{matrix}} - -Transforms each point of this path by the matrix. - -\membersection{wxGraphicsPath::GetNativePath}\label{wxgraphicspathgetnativepath} - -\constfunc{void *}{GetNativePath}{\void} - -Returns the native path (CGPathRef for Core Graphics, Path pointer for GDIPlus and a cairo\_path\_t pointer for cairo). - -\membersection{wxGraphicsPath::UnGetNativePath}\label{wxgraphicspathungetnativepath} - -\constfunc{void}{UnGetNativePath}{\param{void* }{p}} - -Gives back the native path returned by GetNativePath() because there might be some deallocations necessary (eg on cairo the native path returned by -GetNativePath is newly allocated each time). - diff --git a/docs/latex/wx/graphicspen.tex b/docs/latex/wx/graphicspen.tex deleted file mode 100644 index 14b741dc34..0000000000 --- a/docs/latex/wx/graphicspen.tex +++ /dev/null @@ -1,28 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicspen.tex -%% Purpose: wxGraphicsPen class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsPen}}\label{wxgraphicspen} - -\wxheading{Derived from} - -\helpref{wxGraphicsObject}{wxgraphicsobject}\\ -\helpref{wxObject}{wxobject} - -A wxGraphicsPen is a native representation of a pen. It is used for stroking a path on a graphics context. The contents are specific and private to the respective renderer. Instances are ref counted and can therefore be assigned as usual. The only way to get a valid instance is via a CreatePen call on the graphics context or the renderer instance. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - diff --git a/docs/latex/wx/graphicsrenderer.tex b/docs/latex/wx/graphicsrenderer.tex deleted file mode 100644 index d940ef7a7e..0000000000 --- a/docs/latex/wx/graphicsrenderer.tex +++ /dev/null @@ -1,102 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: graphicsrenderer.tex -%% Purpose: wxGraphicsRenderer class documentation -%% Author: Stefan Csomor -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Stefan Csomor -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGraphicsRenderer}}\label{wxgraphicsrenderer} - -A wxGraphicsRenderer is the instance corresponding to the rendering engine used. There may be multiple instances on a system, if there are different rendering engines present, but there is always one instance per engine, eg there is ONE core graphics renderer instance on OSX. This instance is pointed back to by all objects created by it (wxGraphicsContext, wxGraphicsPath etc). Therefore you can create ag additional instances of paths etc. by calling GetRenderer() and then using the appropriate CreateXXX function. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGraphicsRenderer::GetDefaultRenderer}\label{wxgraphicsrenderergetdefaultrenderer} - -\func{wxGraphicsRenderer*}{GetDefaultRenderer}{\void} - -Returns the default renderer on this platform. On OS X this is the Core Graphics (a.k.a. Quartz 2D) renderer, on MSW the GDIPlus renderer, and on GTK we currently default to the cairo renderer. - -\membersection{wxGraphicsRenderer::CreateContext}\label{wxgraphicsrenderercreatecontext} - -\func{wxGraphicsContext *}{CreateContext}{\param{const wxWindowDC\& }{dc}} - -Creates a wxGraphicsContext from a wxWindowDC (eg a wxPaintDC). - -\func{wxGraphicsContext *}{CreateContext}{\param{wxWindow* }{window}} - -Creates a wxGraphicsContext from a wxWindow. - -\membersection{wxGraphicsRenderer::CreateContextFromNativeContext}\label{wxgraphicsrenderercreatecontextfromnativecontext} - -\func{wxGraphicsContext *}{CreateContextFromNativeContext}{\param{void * }{context}} - -Creates a wxGraphicsContext from a native context. This native context must be eg a CGContextRef for Core Graphics, a Graphics pointer for GDIPlus or a cairo\_t pointer for cairo. - -\membersection{wxGraphicsRenderer::CreateContextFromNativeWindow}\label{wxgraphicsrenderercreatecontextfromnativewindow} - -\func{wxGraphicsContext *}{CreateContextFromNativeWindow}{\param{void * }{window}} - -Creates a wxGraphicsContext from a native window. - -\membersection{wxGraphicsRenderer::CreatePen}\label{wxgraphicsrenderercreatepen} - -\func{wxGraphicsPen}{CreatePen}{\param{const wxPen\& }{pen}} - -Creates a native pen from a wxPen. - -\membersection{wxGraphicsRenderer::CreateBrush}\label{wxgraphicsrenderercreatebrush} - -\func{wxGraphicsBrush}{CreateBrush}{\param{const wxBrush\& }{brush}} - -Creates a native brush from a wxBrush. - -\membersection{wxGraphicsRenderer::CreateLinearGradientBrush}\label{wxgraphicsrenderercreatelineargradientbrush} - -\func{wxGraphicsBrush}{CreateLinearGradientBrush}{\param{wxDouble }{x1}, \param{wxDouble }{y1}, \param{wxDouble }{x2}, \param{wxDouble }{y2}, \param{const }{wxColour\&c1}, \param{const }{wxColour\&c2}} - -Creates a native brush, having a linear gradient, starting at (x1,y1) with color c1 to (x2,y2) with color c2 - -\membersection{wxGraphicsRenderer::CreateRadialGradientBrush}\label{wxgraphicsrenderercreateradialgradientbrush} - -\func{wxGraphicsBrush}{CreateRadialGradientBrush}{\param{wxDouble }{xo}, \param{wxDouble }{yo}, \param{wxDouble }{xc}, \param{wxDouble }{yc}, \param{wxDouble }{radius}, \param{const wxColour\& }{oColour}, \param{const wxColour\& }{cColour}} - -Creates a native brush, having a radial gradient originating at (xo,yc) with color oColour and ends on a circle around (xc,yc) with radius r and color cColour - -\membersection{wxGraphicsRenderer::CreateFont}\label{wxgraphicsrenderercreatefont} - -\func{wxGraphicsFont}{CreateFont}{\param{const wxFont\& }{font}, \param{const wxColour\& }{col = *wxBLACK}} - -Creates a native graphics font from a wxFont and a text colour. - -\membersection{wxGraphicsRenderer::CreateMatrix}\label{wxgraphicsrenderercreatematrix} - -\func{wxGraphicsMatrix}{CreateMatrix}{\param{wxDouble }{a = 1.0}, \param{wxDouble }{b = 0.0}, \param{wxDouble }{c = 0.0}, \param{wxDouble }{d = 1.0}, \param{wxDouble }{tx = 0.0}, \param{wxDouble }{ty = 0.0}} - -Creates a native affine transformation matrix from the passed in values. The defaults result in an identity matrix. - -\membersection{wxGraphicsRenderer::CreatePath}\label{wxgraphicsrenderercreatepath} - -\func{wxGraphicsPath}{CreatePath}{\void} - -Creates a native graphics path which is initially empty. - - diff --git a/docs/latex/wx/grid.tex b/docs/latex/wx/grid.tex deleted file mode 100644 index 6c51b452e4..0000000000 --- a/docs/latex/wx/grid.tex +++ /dev/null @@ -1,2183 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: grid.tex -%% Purpose: wxGrid -%% Author: -%% Modified by: Santiago Palacios -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGrid}}\label{wxgrid} - -wxGrid and its related classes are used for displaying and editing tabular -data. They provide a rich set of features for display, editing, and -interacting with a variety of data sources. For simple applications, and to -help you get started, wxGrid is the only class you need to refer to -directly. It will set up default instances of the other classes and manage -them for you. For more complex applications you can derive your own -classes for custom grid views, grid data tables, cell editors and -renderers. The \helpref{wxGrid classes overview}{gridoverview} has -examples of simple and more complex applications, explains the -relationship between the various grid classes and has a summary of the -keyboard shortcuts and mouse functions provided by wxGrid. - -wxGrid has been greatly expanded and redesigned for wxWidgets 2.2 -onwards. The new grid classes are reasonably backward-compatible -but there are some exceptions. There are also easier ways of doing many things compared to -the previous implementation. - -A \helpref{wxGridTableBase}{wxgridtablebase} class holds the actual -data to be displayed by a wxGrid class. One or more wxGrid classes -may act as a view for one table class. -The default table class is called wxGridStringTable and -holds an array of strings. An instance of such a class is created -by \helpref{wxGrid::CreateGrid}{wxgridcreategrid}. - -\helpref{wxGridCellRenderer}{wxgridcellrenderer} is the abstract base -class for rendereing contents in a cell. The following renderers are -predefined: -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer}, -\helpref{wxGridCellBoolRenderer}{wxgridcellboolrenderer}, -\helpref{wxGridCellFloatRenderer}{wxgridcellfloatrenderer}, -\helpref{wxGridCellNumberRenderer}{wxgridcellnumberrenderer}. The -look of a cell can be further defined using \helpref{wxGridCellAttr}{wxgridcellattr}. -An object of this type may be returned by \helpref{wxGridTableBase::GetAttr}{wxgridtablebasegetattr}. - -\helpref{wxGridCellEditor}{wxgridcelleditor} is the abstract base -class for editing the value of a cell. The following editors are -predefined: -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor} -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor} -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor}. - - -\wxheading{Derived from} - -\helpref{wxScrolledWindow}{wxscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -There are presently no specific window styles for wxGrid. - -\wxheading{Event handling} - -\input gridevt.inc - -The event handler for the following functions takes a - \helpref{wxGridSizeEvent}{wxgridsizeevent} parameter. -The ...\_CMD\_... variants also take a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_COL\_SIZE(func)}}{The user resized a column by dragging it. Processes a wxEVT\_GRID\_COL\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_COL\_MOVE(func)}}{The user moved a column by dragging it. Processes a wxEVT\_GRID\_COL\_MOVE.} -\twocolitem{{\bf EVT\_GRID\_ROW\_SIZE(func)}}{The user resized a row by dragging it. Processes a wxEVT\_GRID\_ROW\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_COL\_SIZE(func)}}{The user resized a column by dragging it; variant taking a window identifier. Processes a wxEVT\_GRID\_COL\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_COL\_MOVE(func)}}{The user moved a column by dragging it; variant taking a window identifier. Processes a wxEVT\_GRID\_COL\_MOVE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_ROW\_SIZE(func)}}{The user resized a row by dragging it; variant taking a window identifier. Processes a wxEVT\_GRID\_ROW\_SIZE.} -\end{twocollist}% - -The event handler for the following functions takes a - \helpref{wxGridRangeSelectEvent}{wxgridrangeselectevent} parameter. -The ...\_CMD\_... variant also takes a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_RANGE\_SELECT(func)}}{The user selected a group of contiguous cells. Processes a wxEVT\_GRID\_RANGE\_SELECT.} -\twocolitem{{\bf EVT\_GRID\_CMD\_RANGE\_SELECT(id, func)}}{The user selected a group of contiguous cells; variant taking a window identifier. Processes a wxEVT\_GRID\_RANGE\_SELECT.} -\end{twocollist}% - -The event handler for the following functions takes a - \helpref{wxGridEditorCreatedEvent}{wxgrideditorcreatedevent} parameter. -The ...\_CMD\_... variant also takes a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_EDITOR\_CREATED(func)}}{The editor for a cell was created. Processes a wxEVT\_GRID\_EDITOR\_CREATED.} -\twocolitem{{\bf EVT\_GRID\_CMD\_EDITOR\_CREATED(id, func)}}{The editor for a cell was created; variant taking a window identifier. Processes a wxEVT\_GRID\_EDITOR\_CREATED.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxGrid overview}{gridoverview} - -%%%%%%%%%%% FUNCTION GROUPS %%%%%%%%%%%%% -\latexignore{\rtfignore{\wxheading{Function groups}}} - - - -\membersection{Constructors and initialization}\label{wxgridconstructors} - -\helpref{wxGrid}{wxgridctor}\\ -\helpref{\destruct{wxGrid}}{wxgriddtor}\\ -\helpref{CreateGrid}{wxgridcreategrid}\\ -\helpref{SetTable}{wxgridsettable} - - -\membersection{Cursor movement}\label{wxgridcursormovement} - -\helpref{wxGrid::MoveCursorUp}{wxgridmovecursorup}\\ -\helpref{wxGrid::MoveCursorDown}{wxgridmovecursordown}\\ -\helpref{wxGrid::MoveCursorLeft}{wxgridmovecursorleft}\\ -\helpref{wxGrid::MoveCursorRight}{wxgridmovecursorright}\\ -\helpref{wxGrid::MoveCursorPageUp}{wxgridmovecursorup}\\ -\helpref{wxGrid::MoveCursorPageDown}{wxgridmovecursordown}\\ -\helpref{wxGrid::MoveCursorUpBlock}{wxgridmovecursorupblock}\\ -\helpref{wxGrid::MoveCursorDownBlock}{wxgridmovecursordownblock}\\ -\helpref{wxGrid::MoveCursorLeftBlock}{wxgridmovecursorleftblock}\\ -\helpref{wxGrid::MoveCursorRightBlock}{wxgridmovecursorrightblock} - - -\membersection{Grid line formatting}\label{wxgridlineformatting} - -\helpref{wxGrid::EnableGridLines}{wxgridenablegridlines}\\ -\helpref{wxGrid::GridLinesEnabled}{wxgridgridlinesenabled}\\ -\helpref{wxGrid::SetGridLineColour}{wxgridsetgridlinecolour}\\ -\helpref{wxGrid::GetGridLineColour}{wxgridgetgridlinecolour}\\ -\helpref{wxGrid::GetDefaultGridLinePen}{wxgridgetdefaultgridlinepen}\\ -\helpref{wxGrid::GetRowGridLinePen}{wxgridgetrowgridlinepen}\\ -\helpref{wxGrid::GetColGridLinePen}{wxgridgetcolgridlinepen} - -\membersection{Row and column label value and format}\label{wxgridrowcoulmlabelformat} - -\helpref{wxGrid::SetRowLabelValue}{wxgridsetrowlabelvalue}\\ -\helpref{wxGrid::SetColLabelValue}{wxgridsetcollabelvalue}\\ -\helpref{wxGrid::GetRowLabelValue}{wxgridgetrowlabelvalue}\\ -\helpref{wxGrid::GetColLabelValue}{wxgridgetcollabelvalue}\\ -\helpref{wxGrid::SetUseNativeColLabels}{wxgridsetsenativecollabels}\\ -\helpref{wxGrid::HideColLabels}{wxgridhidecollabels}\\ -\helpref{wxGrid::HideRowLabels}{wxgridhiderowlabels}\\ -\helpref{wxGrid::SetRowLabelSize}{wxgridsetrowlabelsize}\\ -\helpref{wxGrid::SetColLabelSize}{wxgridsetcollabelsize}\\ -\helpref{wxGrid::GetRowLabelSize}{wxgridgetrowlabelsize}\\ -\helpref{wxGrid::GetColLabelSize}{wxgridgetcollabelsize}\\ -\helpref{wxGrid::AutoSizeRowLabelSize}{wxgridautosizerowlabelsize}\\ -\helpref{wxGrid::AutoSizeColLabelSize}{wxgridautosizecollabelsize}\\ -\helpref{wxGrid::GetDefaultRowLabelSize}{wxgridgetdefaultrowlabelsize}\\ -\helpref{wxGrid::GetDefaultColLabelSize}{wxgridgetdefaultcollabelsize}\\ -\helpref{wxGrid::SetRowLabelAlignment}{wxgridsetrowlabelalignment}\\ -\helpref{wxGrid::SetColLabelAlignment}{wxgridsetcollabelalignment}\\ -\helpref{wxGrid::GetRowLabelAlignment}{wxgridgetrowlabelalignment}\\ -\helpref{wxGrid::GetColLabelAlignment}{wxgridgetcollabelalignment}\\ -\helpref{wxGrid::SetLabelFont}{wxgridsetlabelfont}\\ -\helpref{wxGrid::SetLabelTextColour}{wxgridsetlabeltextcolour}\\ -\helpref{wxGrid::SetLabelBackgroundColour}{wxgridsetlabelbackgroundcolour}\\ -\helpref{wxGrid::GetLabelFont}{wxgridgetlabelfont}\\ -\helpref{wxGrid::GetLabelBackgroundColour}{wxgridgetlabelbackgroundcolour}\\ -\helpref{wxGrid::GetLabelTextColour}{wxgridgetlabeltextcolour}\\ -%\helpref{wxGrid::SetColLabelTextOrientation}{wxgridsetcollabeltextorientation}\\ -%\helpref{wxGrid::GetColLabelTextOrientation}{wxgridgetcollabeltextorientation} -wxGrid::SetColLabelTextOrientation\\ -wxGrid::GetColLabelTextOrientation - -\membersection{Cell, row and column user-resizing and dragging}\label{wxgridcellrowcolresizing} - -\helpref{wxGrid::EnableDragRowSize}{wxgridenabledragrowsize}\\ -\helpref{wxGrid::EnableDragColSize}{wxgridenabledragcolsize}\\ -\helpref{wxGrid::CanDragRowSize}{wxgridcandragrowsize}\\ -\helpref{wxGrid::CanDragColSize}{wxgridcandragcolsize}\\ -\helpref{wxGrid::EnableDragColMove}{wxgridenabledragcolmove}\\ -\helpref{wxGrid::CanDragColMove}{wxgridcandragcolmove}\\ -\helpref{wxGrid::EnableDragGridSize}{wxgridenabledraggridsize}\\ -\helpref{wxGrid::CanDragGridSize}{wxgridcandraggridsize}\\ -\helpref{wxGrid::GetColAt}{wxgridgetcolat}\\ -\helpref{wxGrid::SetColPos}{wxgridsetcolpos}\\ -\helpref{wxGrid::GetColPos}{wxgridgetcolpos}\\ -%\helpref{wxGrid::EnableDragCell}{wxgridenabledragcell}\\ -%\helpref{wxGrid::CanDragCell}{wxgridcandragcell} -wxGrid::EnableDragCell\\ -wxGrid::CanDragCell - -\membersection{Autoresizing and cell size constraints}\label{wxgridautoresizingandcellconstriants} - -\helpref{wxGrid::AutoSizeColumn}{wxgridautosizecolumn}\\ -\helpref{wxGrid::AutoSizeRow}{wxgridautosizerow}\\ -\helpref{wxGrid::AutoSizeColumns}{wxgridautosizecolumns}\\ -\helpref{wxGrid::AutoSizeRows}{wxgridautosizerows}\\ -\helpref{wxGrid::AutoSize}{wxgridautosize}\\ -\helpref{wxGrid::SetColMinimalWidth}{wxgridsetcolminimalwidth}\\ -\helpref{wxGrid::SetRowMinimalHeight}{wxgridsetrowminimalheight}\\ -\helpref{wxGrid::SetColMinimalAcceptableWidth}{wxgridsetcolminimalacceptablewidth}\\ -\helpref{wxGrid::SetRowMinimalAcceptableHeight}{wxgridsetrowminimalacceptableheight}\\ -\helpref{wxGrid::GetColMinimalAcceptableWidth}{wxgridgetcolminimalacceptablewidth}\\ -\helpref{wxGrid::GetRowMinimalAcceptableHeight}{wxgridgetrowminimalacceptableheight} - -\membersection{Selection functions}\label{wxgridselectionfunctions} - -\helpref{wxGrid::ClearSelection}{wxgridclearselection}\\ -\helpref{wxGrid::IsSelection}{wxgridisselection}\\ -\helpref{wxGrid::SelectAll}{wxgridselectall}\\ -\helpref{wxGrid::SelectBlock}{wxgridselectblock}\\ -\helpref{wxGrid::SelectCol}{wxgridselectcol}\\ -\helpref{wxGrid::SelectRow}{wxgridselectrow} - -%%%%%%%%% MEMBER FUNCTIONS %%%%%%%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - - - -\membersection{wxGrid::wxGrid}\label{wxgridctor} - -\func{}{wxGrid}{\void} - -Default constructor - -\func{}{wxGrid}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxWANTS\_CHARS}, \param{const wxString\& }{name = wxPanelNameStr}} - -Constructor to create a grid object. Call either \helpref{wxGrid::CreateGrid}{wxgridcreategrid} or -\helpref{wxGrid::SetTable}{wxgridsettable} directly after this to initialize the grid before using -it. - - - -\membersection{wxGrid::\destruct{wxGrid}}\label{wxgriddtor} - -\func{}{\destruct{wxGrid}}{\void} - -Destructor. This will also destroy the associated grid table unless you passed a table -object to the grid and specified that the grid should not take ownership of the -table (see \helpref{wxGrid::SetTable}{wxgridsettable}). - - - -\membersection{wxGrid::AppendCols}\label{wxgridappendcols} - -\func{bool}{AppendCols}{\param{int }{numCols = 1}, \param{bool }{updateLabels = true}} - -Appends one or more new columns to the right of the grid and returns true if -successful. The updateLabels argument is not used at present. - -If you are using a derived grid table class you will need to override -\helpref{wxGridTableBase::AppendCols}{wxgridtablebaseappendcols}. See -\helpref{wxGrid::InsertCols}{wxgridinsertcols} for further information. - - - -\membersection{wxGrid::AppendRows}\label{wxgridappendrows} - -\func{bool}{AppendRows}{\param{int }{numRows = 1}, \param{bool }{updateLabels = true}} - -Appends one or more new rows to the bottom of the grid and returns true if -successful. The updateLabels argument is not used at present. - -If you are using a derived grid table class you will need to override -\helpref{wxGridTableBase::AppendRows}{wxgridtablebaseappendrows}. See -\helpref{wxGrid::InsertRows}{wxgridinsertrows} for further information. - - - -\membersection{wxGrid::AutoSize}\label{wxgridautosize} - -\func{void}{AutoSize}{\void} - -Automatically sets the height and width of all rows and columns to fit their contents. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::AutoSizeColLabelSize}\label{wxgridautosizecollabelsize} - -\func{void}{AutoSizeColLabelSize}{\param{int }{col}} - -Automatically adjusts width of the column to fit its label. - - - -\membersection{wxGrid::AutoSizeColumn}\label{wxgridautosizecolumn} - -\func{void}{AutoSizeColumn}{\param{int }{col}, \param{bool }{setAsMin = true}} - -Automatically sizes the column to fit its contents. If setAsMin is true the calculated width will -also be set as the minimal width for the column. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::AutoSizeColumns}\label{wxgridautosizecolumns} - -\func{void}{AutoSizeColumns}{\param{bool }{setAsMin = true}} - -Automatically sizes all columns to fit their contents. If setAsMin is true the calculated widths will -also be set as the minimal widths for the columns. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::AutoSizeRow}\label{wxgridautosizerow} - -\func{void}{AutoSizeRow}{\param{int }{row}, \param{bool }{setAsMin = true}} - -Automatically sizes the row to fit its contents. If setAsMin is true the calculated height will -also be set as the minimal height for the row. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::AutoSizeRowLabelSize}\label{wxgridautosizerowlabelsize} - -\func{void}{AutoSizeRowLabelSize}{\param{int }{col}} - -Automatically adjusts height of the row to fit its label. - - - -\membersection{wxGrid::AutoSizeRows}\label{wxgridautosizerows} - -\func{void}{AutoSizeRows}{\param{bool }{setAsMin = true}} - -Automatically sizes all rows to fit their contents. If setAsMin is true the calculated heights will -also be set as the minimal heights for the rows. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::BeginBatch}\label{wxgridbeginbatch} - -\func{void}{BeginBatch}{\void} - -Increments the grid's batch count. When the count is greater than zero repainting of -the grid is suppressed. Each call to BeginBatch must be matched by a later call to -\helpref{wxGrid::EndBatch}{wxgridendbatch}. Code that does a lot of grid -modification can be enclosed between BeginBatch and EndBatch calls to avoid -screen flicker. The final EndBatch will cause the grid to be repainted. - -\wxheading{See also} - -\helpref{wxGridUpdateLocker}{wxgridupdatelocker} - - - -\membersection{wxGrid::BlockToDeviceRect}\label{wxgridblocktodevicerect} - -\constfunc{wxRect}{BlockToDeviceRect}{\param{const wxGridCellCoords \& }{topLeft}, \param{const wxGridCellCoords \& }{bottomRight}} - -This function returns the rectangle that encloses the block of cells -limited by TopLeft and BottomRight cell in device coords and clipped -to the client size of the grid window. - - - -\membersection{wxGrid::CanDragColMove}\label{wxgridcandragcolmove} - -\constfunc{bool}{CanDragColMove}{\void} - -Returns true if columns can be moved by dragging with the mouse. Columns can be moved -by dragging on their labels. - - - -\membersection{wxGrid::CanDragColSize}\label{wxgridcandragcolsize} - -\constfunc{bool}{CanDragColSize}{\void} - -Returns true if columns can be resized by dragging with the mouse. Columns can be resized -by dragging the edges of their labels. If grid line dragging is enabled they can also be -resized by dragging the right edge of the column in the grid cell area -(see \helpref{wxGrid::EnableDragGridSize}{wxgridenabledraggridsize}). - - - -\membersection{wxGrid::CanDragRowSize}\label{wxgridcandragrowsize} - -\constfunc{bool}{CanDragRowSize}{\void} - -Returns true if rows can be resized by dragging with the mouse. Rows can be resized -by dragging the edges of their labels. If grid line dragging is enabled they can also be -resized by dragging the lower edge of the row in the grid cell area -(see \helpref{wxGrid::EnableDragGridSize}{wxgridenabledraggridsize}). - - - -\membersection{wxGrid::CanDragGridSize}\label{wxgridcandraggridsize} - -\constfunc{bool}{CanDragGridSize}{\void} - -Return true if the dragging of grid lines to resize rows and columns is enabled or false otherwise. - - - -\membersection{wxGrid::CanEnableCellControl}\label{wxgridcanenablecellcontrol} - -\constfunc{bool}{CanEnableCellControl}{\void} - -Returns true if the in-place edit control for the current grid cell can be used and -false otherwise (e.g. if the current cell is read-only). - - - -\membersection{wxGrid::CanHaveAttributes}\label{wxgridcanhaveattributes} - -\constfunc{bool}{CanHaveAttributes}{\void} - -Do we have some place to store attributes in? - - - -\membersection{wxGrid::CellToRect}\label{wxgridcelltorect} - -\constfunc{wxRect}{CellToRect}{\param{int }{row}, \param{int }{col}} - -\constfunc{wxRect}{CellToRect}{\param{const wxGridCellCoords\& }{coords}} - -Return the rectangle corresponding to the grid cell's size and position in logical -coordinates. - - - -\membersection{wxGrid::ClearGrid}\label{wxgridcleargrid} - -\func{void}{ClearGrid}{\void} - -Clears all data in the underlying grid table and repaints the grid. The table is not deleted by -this function. If you are using a derived table class then you need to override -\helpref{wxGridTableBase::Clear}{wxgridtablebaseclear} for this function to have any effect. - - - -\membersection{wxGrid::ClearSelection}\label{wxgridclearselection} - -\func{void}{ClearSelection}{\void} - -Deselects all cells that are currently selected. - - - -\membersection{wxGrid::CreateGrid}\label{wxgridcreategrid} - -\func{bool}{CreateGrid}{\param{int }{numRows}, \param{int }{numCols}, \param{wxGrid::wxGridSelectionModes }{selmode = wxGrid::wxGridSelectCells}} - -Creates a grid with the specified initial number of rows and columns. -Call this directly after the grid constructor. When you use this -function wxGrid will create and manage a simple table of string values -for you. All of the grid data will be stored in memory. - -For applications with more complex data types or relationships, or for -dealing with very large datasets, you should derive your own grid table -class and pass a table object to the grid with \helpref{wxGrid::SetTable}{wxgridsettable}. - - - -\membersection{wxGrid::DeleteCols}\label{wxgriddeletecols} - -\func{bool}{DeleteCols}{\param{int }{pos = 0}, \param{int }{numCols = 1}, \param{bool }{updateLabels = true}} - -Deletes one or more columns from a grid starting at the specified position and returns -true if successful. The updateLabels argument is not used at present. - -If you are using a derived grid table class you will need to override -\helpref{wxGridTableBase::DeleteCols}{wxgridtablebasedeletecols}. See -\helpref{wxGrid::InsertCols}{wxgridinsertcols} for further information. - - - -\membersection{wxGrid::DeleteRows}\label{wxgriddeleterows} - -\func{bool}{DeleteRows}{\param{int }{pos = 0}, \param{int }{numRows = 1}, \param{bool }{updateLabels = true}} - -Deletes one or more rows from a grid starting at the specified position and returns -true if successful. The updateLabels argument is not used at present. - -If you are using a derived grid table class you will need to override -\helpref{wxGridTableBase::DeleteRows}{wxgridtablebasedeleterows}. See -\helpref{wxGrid::InsertRows}{wxgridinsertrows} for further information. - - - -\membersection{wxGrid::DisableCellEditControl}\label{wxgriddisablecelleditcontrol} - -\func{void}{DisableCellEditControl}{\void} - -Disables in-place editing of grid cells. -Equivalent to calling EnableCellEditControl(false). - - - -\membersection{wxGrid::DisableDragColMove}\label{wxgriddisabledragcolmove} - -\func{void}{DisableDragColMove}{\void} - -Disables column moving by dragging with the mouse. Equivalent to passing false to -\helpref{wxGrid::EnableDragColMove}{wxgridenabledragcolmove}. - - - -\membersection{wxGrid::DisableDragColSize}\label{wxgriddisabledragcolsize} - -\func{void}{DisableDragColSize}{\void} - -Disables column sizing by dragging with the mouse. Equivalent to passing false to -\helpref{wxGrid::EnableDragColSize}{wxgridenabledragcolsize}. - - - -\membersection{wxGrid::DisableDragGridSize}\label{wxgriddisabledraggridsize} - -\func{void}{DisableDragGridSize}{\void} - -Disable mouse dragging of grid lines to resize rows and columns. Equivalent to passing -false to \helpref{wxGrid::EnableDragGridSize}{wxgridenabledraggridsize} - - - -\membersection{wxGrid::DisableDragRowSize}\label{wxgriddisabledragrowsize} - -\func{void}{DisableDragRowSize}{\void} - -Disables row sizing by dragging with the mouse. Equivalent to passing false to -\helpref{wxGrid::EnableDragRowSize}{wxgridenabledragrowsize}. - - - -\membersection{wxGrid::EnableCellEditControl}\label{wxgridenablecelleditcontrol} - -\func{void}{EnableCellEditControl}{\param{bool }{enable = true}} - -Enables or disables in-place editing of grid cell data. The grid will issue either a -wxEVT\_GRID\_EDITOR\_SHOWN or wxEVT\_GRID\_EDITOR\_HIDDEN event. - - - -\membersection{wxGrid::EnableDragColSize}\label{wxgridenabledragcolsize} - -\func{void}{EnableDragColSize}{\param{bool }{enable = true}} - -Enables or disables column sizing by dragging with the mouse. - - - -\membersection{wxGrid::EnableDragColMove}\label{wxgridenabledragcolmove} - -\func{void}{EnableDragColMove}{\param{bool }{enable = true}} - -Enables or disables column moving by dragging with the mouse. - - - -\membersection{wxGrid::EnableDragGridSize}\label{wxgridenabledraggridsize} - -\func{void}{EnableDragGridSize}{\param{bool }{enable = true}} - -Enables or disables row and column resizing by dragging gridlines with the mouse. - - - -\membersection{wxGrid::EnableDragRowSize}\label{wxgridenabledragrowsize} - -\func{void}{EnableDragRowSize}{\param{bool }{enable = true}} - -Enables or disables row sizing by dragging with the mouse. - - - -\membersection{wxGrid::EnableEditing}\label{wxgridenableediting} - -\func{void}{EnableEditing}{\param{bool }{edit}} - -If the edit argument is false this function sets the whole grid as read-only. If the -argument is true the grid is set to the default state where cells may be editable. In the -default state you can set single grid cells and whole rows and columns to be editable or -read-only via -\helpref{wxGridCellAttribute::SetReadOnly}{wxgridcellattrsetreadonly}. For single -cells you can also use the shortcut function -\helpref{wxGrid::SetReadOnly}{wxgridsetreadonly}. - -For more information about controlling grid cell attributes see the -\helpref{wxGridCellAttr}{wxgridcellattr} cell attribute class and the -\helpref{wxGrid classes overview}{gridoverview}. - - - -\membersection{wxGrid::EnableGridLines}\label{wxgridenablegridlines} - -\func{void}{EnableGridLines}{\param{bool }{enable = true}} - -Turns the drawing of grid lines on or off. - - - -\membersection{wxGrid::EndBatch}\label{wxgridendbatch} - -\func{void}{EndBatch}{\void} - -Decrements the grid's batch count. When the count is greater than zero repainting of -the grid is suppressed. Each previous call to -\helpref{wxGrid::BeginBatch}{wxgridbeginbatch} must be matched by a later call to -EndBatch. Code that does a lot of grid modification can be enclosed between -BeginBatch and EndBatch calls to avoid screen flicker. The final EndBatch will -cause the grid to be repainted. - -\wxheading{See also} - -\helpref{wxGridUpdateLocker}{wxgridupdatelocker} - - - -\membersection{wxGrid::Fit}\label{wxgridfit} - -\func{void}{Fit}{\void} - -Overridden wxWindow method. - - - -\membersection{wxGrid::ForceRefresh}\label{wxgridforcerefresh} - -\func{void}{ForceRefresh}{\void} - -Causes immediate repainting of the grid. Use this instead of the usual wxWindow::Refresh. - - - -\membersection{wxGrid::GetBatchCount}\label{wxgridgetbatchcount} - -\constfunc{int}{GetBatchCount}{\void} - -Returns the number of times that \helpref{wxGrid::BeginBatch}{wxgridbeginbatch} has been called -without (yet) matching calls to \helpref{wxGrid::EndBatch}{wxgridendbatch}. While -the grid's batch count is greater than zero the display will not be updated. - - - -\membersection{wxGrid::GetCellAlignment}\label{wxgridgetcellalignment} - -\constfunc{void}{GetCellAlignment}{\param{int }{row}, \param{int }{col}, \param{int* }{horiz}, \param{int* }{vert}} - -Sets the arguments to the horizontal and vertical text alignment values for the -grid cell at the specified location. - -Horizontal alignment will be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. \\ -Vertical alignment will be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - -\perlnote{This method only takes the parameters {\tt row} and {\tt col} and -returns a 2-element list {\tt ( horiz, vert )}.} - - - -\membersection{wxGrid::GetCellBackgroundColour}\label{wxgridgetcellbackgroundcolour} - -\constfunc{wxColour}{GetCellBackgroundColour}{\param{int }{row}, \param{int }{col}} - -Returns the background colour of the cell at the specified location. - - - -\membersection{wxGrid::GetCellEditor}\label{wxgridgetcelleditor} - -\constfunc{wxGridCellEditor*}{GetCellEditor}{\param{int }{row}, \param{int }{col}} - -Returns a pointer to the editor for the cell at the specified location. - -See \helpref{wxGridCellEditor}{wxgridcelleditor} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::GetCellFont}\label{wxgridgetcellfont} - -\constfunc{wxFont}{GetCellFont}{\param{int }{row}, \param{int }{col}} - -Returns the font for text in the grid cell at the specified location. - - - -\membersection{wxGrid::GetCellRenderer}\label{wxgridgetcellrenderer} - -\constfunc{wxGridCellRenderer*}{GetCellRenderer}{\param{int }{row}, \param{int }{col}} - -Returns a pointer to the renderer for the grid cell at the specified location. - -See \helpref{wxGridCellRenderer}{wxgridcellrenderer} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::GetCellTextColour}\label{wxgridgetcelltextcolour} - -\constfunc{wxColour}{GetCellTextColour}{\param{int }{row}, \param{int }{col}} - -Returns the text colour for the grid cell at the specified location. - - - -\membersection{wxGrid::GetCellValue}\label{wxgridgetcellvalue} - -\constfunc{wxString}{GetCellValue}{\param{int }{row}, \param{int }{col}} - -\constfunc{wxString}{GetCellValue}{\param{const wxGridCellCoords\&}{coords}} - -Returns the string contained in the cell at the specified location. For simple applications where a -grid object automatically uses a default grid table of string values you use this function together -with \helpref{wxGrid::SetCellValue}{wxgridsetcellvalue} to access cell values. - -For more complex applications where you have derived your own grid table class that contains -various data types (e.g. numeric, boolean or user-defined custom types) then you only use this -function for those cells that contain string values. - -See \helpref{wxGridTableBase::CanGetValueAs}{wxgridtablebasecangetvalueas} -and the \helpref{wxGrid overview}{gridoverview} for more information. - - - -\membersection{wxGrid::GetColAt}\label{wxgridgetcolat} - -\constfunc{int}{GetColAt}{\param{int }{colPos}} - -Returns the column ID of the specified column position. - - -\membersection{wxGrid::GetColLeft}\label{wxgridgetcolleft} - -\constfunc{int}{GetColLeft}{\param{int }{col}} - - - -\membersection{wxGrid::GetColLabelAlignment}\label{wxgridgetcollabelalignment} - -\constfunc{void}{GetColLabelAlignment}{\param{int* }{horiz}, \param{int* }{vert}} - -Sets the arguments to the current column label alignment values. - -Horizontal alignment will be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT.\\ -Vertical alignment will be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - -\perlnote{This method takes no parameters and -returns a 2-element list {\tt ( horiz, vert )}.} - - - -\membersection{wxGrid::GetColLabelSize}\label{wxgridgetcollabelsize} - -\constfunc{int}{GetColLabelSize}{\void} - -Returns the current height of the column labels. - - - -\membersection{wxGrid::GetColLabelValue}\label{wxgridgetcollabelvalue} - -\constfunc{wxString}{GetColLabelValue}{\param{int }{col}} - -Returns the specified column label. The default grid table class provides column labels of -the form A,B...Z,AA,AB...ZZ,AAA... If you are using a custom grid table you can override -\helpref{wxGridTableBase::GetColLabelValue}{wxgridtablebasegetcollabelvalue} to provide -your own labels. - - - -\membersection{wxGrid::GetColMinimalAcceptableWidth}\label{wxgridgetcolminimalacceptablewidth} - -\constfunc{int}{GetColMinimalAcceptableWidth}{} - -This returns the value of the lowest column width that can be handled correctly. See -member \helpref{SetColMinimalAcceptableWidth}{wxgridsetcolminimalacceptablewidth} for details. - - - -\membersection{wxGrid::GetColMinimalWidth}\label{wxgridgetcolminimalwidth} - -\constfunc{int}{GetColMinimalWidth}{\param{int }{col}} - -Get the minimal width of the given column/row. - - - -\membersection{wxGrid::GetColPos}\label{wxgridgetcolpos} - -\constfunc{int}{GetColPos}{\param{int }{colID}} - -Returns the position of the specified column. - - - -\membersection{wxGrid::GetColRight}\label{wxgridgetcolright} - -\constfunc{int}{GetColRight}{\param{int }{col}} - - - -\membersection{wxGrid::GetColSize}\label{wxgridgetcolsize} - -\constfunc{int}{GetColSize}{\param{int }{col}} - -Returns the width of the specified column. - - - -\membersection{wxGrid::GetDefaultCellAlignment}\label{wxgridgetdefaultcellalignment} - -\constfunc{void}{GetDefaultCellAlignment}{\param{int* }{horiz}, \param{int* }{vert}} - -Sets the arguments to the current default horizontal and vertical text alignment -values. - -Horizontal alignment will be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. \\ -Vertical alignment will be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - - - -\membersection{wxGrid::GetDefaultCellBackgroundColour}\label{wxgridgetdefaultcellbackgroundcolour} - -\constfunc{wxColour}{GetDefaultCellBackgroundColour}{\void} - -Returns the current default background colour for grid cells. - - - -\membersection{wxGrid::GetDefaultCellFont}\label{wxgridgetdefaultcellfont} - -\constfunc{wxFont}{GetDefaultCellFont}{\void} - -Returns the current default font for grid cell text. - - - -\membersection{wxGrid::GetDefaultCellTextColour}\label{wxgridgetdefaultcelltextcolour} - -\constfunc{wxColour}{GetDefaultCellTextColour}{\void} - -Returns the current default colour for grid cell text. - - - -\membersection{wxGrid::GetDefaultColLabelSize}\label{wxgridgetdefaultcollabelsize} - -\constfunc{int}{GetDefaultColLabelSize}{\void} - -Returns the default height for column labels. - - - -\membersection{wxGrid::GetDefaultColSize}\label{wxgridgetdefaultcolsize} - -\constfunc{int}{GetDefaultColSize}{\void} - -Returns the current default width for grid columns. - - - -\membersection{wxGrid::GetDefaultEditor}\label{wxgridgetdefaulteditor} - -\constfunc{wxGridCellEditor*}{GetDefaultEditor}{\void} - -Returns a pointer to the current default grid cell editor. - -See \helpref{wxGridCellEditor}{wxgridcelleditor} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::GetDefaultEditorForCell}\label{wxgridgetdefaulteditorforcell} - -\constfunc{wxGridCellEditor*}{GetDefaultEditorForCell}{\param{int }{row}, \param{int }{col}} - -\constfunc{wxGridCellEditor*}{GetDefaultEditorForCell}{\param{const wxGridCellCoords\& }{c}} - - - -\membersection{wxGrid::GetDefaultEditorForType}\label{wxgridgetdefaulteditorfortype} - -\constfunc{wxGridCellEditor*}{GetDefaultEditorForType}{\param{const wxString\& }{typeName}} - - - -\membersection{wxGrid::GetDefaultRenderer}\label{wxgridgetdefaultrenderer} - -\constfunc{wxGridCellRenderer*}{GetDefaultRenderer}{\void} - -Returns a pointer to the current default grid cell renderer. - -See \helpref{wxGridCellRenderer}{wxgridcellrenderer} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::GetDefaultRendererForCell}\label{wxgridgetdefaultrendererforcell} - -\constfunc{wxGridCellRenderer*}{GetDefaultRendererForCell}{\param{int }{row}, \param{int }{col}} - - - -\membersection{wxGrid::GetDefaultRendererForType}\label{wxgridgetdefaultrendererfortype} - -\constfunc{wxGridCellRenderer*}{GetDefaultRendererForType}{\param{const wxString\& }{typeName}} - - - -\membersection{wxGrid::GetDefaultRowLabelSize}\label{wxgridgetdefaultrowlabelsize} - -\constfunc{int}{GetDefaultRowLabelSize}{\void} - -Returns the default width for the row labels. - - - -\membersection{wxGrid::GetDefaultRowSize}\label{wxgridgetdefaultrowsize} - -\constfunc{int}{GetDefaultRowSize}{\void} - -Returns the current default height for grid rows. - - - -\membersection{wxGrid::GetGridCursorCol}\label{wxgridgetgridcursorcol} - -\constfunc{int}{GetGridCursorCol}{\void} - -Returns the current grid cell column position. - - - -\membersection{wxGrid::GetGridCursorRow}\label{wxgridgetgridcursorrow} - -\constfunc{int}{GetGridCursorRow}{\void} - -Returns the current grid cell row position. - - - -\membersection{wxGrid::GetGridLineColour}\label{wxgridgetgridlinecolour} - -\constfunc{wxColour}{GetGridLineColour}{\void} - -Returns the colour used for grid lines. - -\wxheading{See also} - -\helpref{GetDefaultGridLinePen()}{wxgridgetdefaultgridlinepen} - - -\membersection{wxGrid::GetDefaultGridLinePen}\label{wxgridgetdefaultgridlinepen} - -\func{wxPen}{GetDefaultGridLinePen}{\void} - -Returns the pen used for grid lines. This virtual function may be overridden in -derived classes in order to change the appearance of grid lines. Note that -currently the pen width must be $1$. - -\wxheading{See also} - -\helpref{GetColGridLinePen()}{wxgridgetcolgridlinepen},\\ -\helpref{GetRowGridLinePen()}{wxgridgetrowgridlinepen} - - - - -\membersection{wxGrid::GetRowGridLinePen}\label{wxgridgetrowgridlinepen} - -\func{wxPen}{GetRowGridLinePen}{\param{int }{row}} - -Returns the pen used for horizontal grid lines. This virtual function may be -overridden in derived classes in order to change the appearance of individual -grid line for the given row \arg{row}. - -Example: \\ -\\ -\begin{verbatim} - // in a grid displaying music notation, use a solid black pen between - // octaves (C0=row 127, C1=row 115 etc.) - wxPen MidiGrid::GetRowGridLinePen(int row) - { - if ( row%12 == 7 ) - return wxPen(*wxBLACK, 1, wxSOLID); - else - return GetDefaultGridLinePen(); - } -\end{verbatim} - - - -\membersection{wxGrid::GetColGridLinePen}\label{wxgridgetcolgridlinepen} - -\func{wxPen}{GetColGridLinePen}{\param{int }{col}} - -Returns the pen used for vertical grid lines. This virtual function may be -overridden in derived classes in order to change the appearance of individual -grid lines for the given column \arg{col}. - -See \helpref{GetRowGridLinePen()}{wxgridgetrowgridlinepen} for an example. - - - - -\membersection{wxGrid::GridLinesEnabled}\label{wxgridgridlinesenabled} - -\constfunc{bool}{GridLinesEnabled}{\void} - -Returns true if drawing of grid lines is turned on, false otherwise. - - - -\membersection{wxGrid::GetLabelBackgroundColour}\label{wxgridgetlabelbackgroundcolour} - -\constfunc{wxColour}{GetLabelBackgroundColour}{\void} - -Returns the colour used for the background of row and column labels. - - - -\membersection{wxGrid::GetLabelFont}\label{wxgridgetlabelfont} - -\constfunc{wxFont}{GetLabelFont}{\void} - -Returns the font used for row and column labels. - - - -\membersection{wxGrid::GetLabelTextColour}\label{wxgridgetlabeltextcolour} - -\constfunc{wxColour}{GetLabelTextColour}{\void} - -Returns the colour used for row and column label text. - - - -\membersection{wxGrid::GetNumberCols}\label{wxgridgetnumbercols} - -\constfunc{int}{GetNumberCols}{\void} - -Returns the total number of grid columns (actually the number of columns in the underlying grid -table). - - - -\membersection{wxGrid::GetNumberRows}\label{wxgridgetnumberrows} - -\constfunc{int}{GetNumberRows}{\void} - -Returns the total number of grid rows (actually the number of rows in the underlying grid table). - - - -\membersection{wxGrid::GetOrCreateCellAttr}\label{wxgridgetorcreatecellattr} - -\constfunc{wxGridCellAttr*}{GetOrCreateCellAttr}{\param{int }{row}, \param{int }{col}} - - - -\membersection{wxGrid::GetRowMinimalAcceptableHeight}\label{wxgridgetrowminimalacceptableheight} - -\constfunc{int}{GetRowMinimalAcceptableHeight}{} - -This returns the value of the lowest row width that can be handled correctly. See -member \helpref{SetRowMinimalAcceptableHeight}{wxgridsetrowminimalacceptableheight} for details. - - - -\membersection{wxGrid::GetRowMinimalHeight}\label{wxgridgetrowminimalheight} - -\constfunc{int}{GetRowMinimalHeight}{\param{int }{col}} - - - -\membersection{wxGrid::GetRowLabelAlignment}\label{wxgridgetrowlabelalignment} - -\constfunc{void}{GetRowLabelAlignment}{\param{int* }{horiz}, \param{int* }{vert}} - -Sets the arguments to the current row label alignment values. - -Horizontal alignment will be one of wxLEFT, wxCENTRE or wxRIGHT. \\ -Vertical alignment will be one of wxTOP, wxCENTRE or wxBOTTOM. - -\perlnote{This method takes no parameters and -returns a 2-element list {\tt ( horiz, vert )}.} - - - -\membersection{wxGrid::GetRowLabelSize}\label{wxgridgetrowlabelsize} - -\constfunc{int}{GetRowLabelSize}{\void} - -Returns the current width of the row labels. - - - -\membersection{wxGrid::GetRowLabelValue}\label{wxgridgetrowlabelvalue} - -\constfunc{wxString}{GetRowLabelValue}{\param{int }{row}} - -Returns the specified row label. The default grid table class provides numeric row labels. -If you are using a custom grid table you can override -\helpref{wxGridTableBase::GetRowLabelValue}{wxgridtablebasegetcollabelvalue} to provide -your own labels. - - - -\membersection{wxGrid::GetRowSize}\label{wxgridgetrowsize} - -\constfunc{int}{GetRowSize}{\param{int }{row}} - -Returns the height of the specified row. - - - -\membersection{wxGrid::GetScrollLineX}\label{wxgridgetscrolllinex} - -\constfunc{int}{GetScrollLineX}{\void} - -Returns the number of pixels per horizontal scroll increment. The default is 15. - -\wxheading{See also} - -\helpref{wxGrid::GetScrollLineY}{wxgridgetscrollliney},\rtfsp -\helpref{wxGrid::SetScrollLineX}{wxgridsetscrolllinex},\rtfsp -\helpref{wxGrid::SetScrollLineY}{wxgridsetscrollliney} - - - -\membersection{wxGrid::GetScrollLineY}\label{wxgridgetscrollliney} - -\constfunc{int}{GetScrollLineY}{\void} - -Returns the number of pixels per vertical scroll increment. The default is 15. - -\wxheading{See also} - -\helpref{wxGrid::GetScrollLineX}{wxgridgetscrolllinex},\rtfsp -\helpref{wxGrid::SetScrollLineX}{wxgridsetscrolllinex},\rtfsp -\helpref{wxGrid::SetScrollLineY}{wxgridsetscrollliney} - - - -\membersection{wxGrid::GetSelectionMode}\label{wxgridgetselectionmode} - -\constfunc{wxGrid::wxGridSelectionModes}{GetSelectionMode}{\void} - -Returns the current selection mode, see \helpref{wxGrid::SetSelectionMode}{wxgridsetselectionmode}. - - - -\membersection{wxGrid::GetSelectedCells}\label{wxgridgetselectedcells} - -\constfunc{wxGridCellCoordsArray}{GetSelectedCells}{\void} - -Returns an array of singly selected cells. - - - -\membersection{wxGrid::GetSelectedCols}\label{wxgridgetselectedcols} - -\constfunc{wxArrayInt}{GetSelectedCols}{\void} - -Returns an array of selected cols. - - - -\membersection{wxGrid::GetSelectedRows}\label{wxgridgetselectedrows} - -\constfunc{wxArrayInt}{GetSelectedRows}{\void} - -Returns an array of selected rows. - - - -\membersection{wxGrid::GetSelectionBackground}\label{wxgridgetselectionbackground} - -\constfunc{wxColour}{GetSelectionBackground}{\void} - -Access or update the selection fore/back colours - - - -\membersection{wxGrid::GetSelectionBlockTopLeft}\label{wxgridgetselectionblocktopleft} - -\constfunc{wxGridCellCoordsArray}{GetSelectionBlockTopLeft}{\void} - -Returns an array of the top left corners of blocks of selected cells, -see \helpref{wxGrid::GetSelectionBlockBottomRight}{wxgridgetselectionblockbottomright}. - - - -\membersection{wxGrid::GetSelectionBlockBottomRight}\label{wxgridgetselectionblockbottomright} - -\constfunc{wxGridCellCoordsArray}{GetSelectionBlockBottomRight}{\void} - -Returns an array of the bottom right corners of blocks of selected cells, -see \helpref{wxGrid::GetSelectionBlockTopLeft}{wxgridgetselectionblocktopleft}. - - - -\membersection{wxGrid::GetSelectionForeground}\label{wxgridgetselectionforeground} - -\constfunc{wxColour}{GetSelectionForeground}{\void} - - - -\membersection{wxGrid::GetTable}\label{wxgridgettable} - -\constfunc{wxGridTableBase *}{GetTable}{\void} - -Returns a base pointer to the current table object. - - - -\membersection{wxGrid::GetViewWidth}\label{wxgridgetviewwidth} - -\constfunc{int}{GetViewWidth}{\void} - -Returned number of whole cols visible. - - - -\membersection{wxGrid::HideCellEditControl}\label{wxgridhidecelleditcontrol} - -\func{void}{HideCellEditControl}{\void} - -Hides the in-place cell edit control. - - -\membersection{wxGrid::HideColLabels}\label{wxgridhidecollabels} - -\func{void}{HideColLabels}{\void} - -Hides the column labels by calling \helpref{SetColLabelSize}{wxgridsetcollabelsize} -with a size of 0. Show labels again by calling that method with -a width greater than 0. - - -\membersection{wxGrid::HideRowLabels}\label{wxgridhiderowlabels} - -\func{void}{HideRowLabels}{\void} - -Hides the row labels by calling \helpref{SetRowLabelSize}{wxgridsetrowlabelsize} -with a size of 0. Show labels again by calling that method with -a width greater than 0. - - -\membersection{wxGrid::InitColWidths}\label{wxgridinitcolwidths} - -\func{void}{InitColWidths}{\void} - -Init the m\_colWidths/Rights arrays - - - -\membersection{wxGrid::InitRowHeights}\label{wxgridinitrowheights} - -\func{void}{InitRowHeights}{\void} - -NB: {\it never} access m\_row/col arrays directly because they are created -on demand, {\it always} use accessor functions instead! - -Init the m\_rowHeights/Bottoms arrays with default values. - - - -\membersection{wxGrid::InsertCols}\label{wxgridinsertcols} - -\func{bool}{InsertCols}{\param{int }{pos = 0}, \param{int }{numCols = 1}, \param{bool }{updateLabels = true}} - -Inserts one or more new columns into a grid with the first new column at the -specified position and returns true if successful. The updateLabels argument is not -used at present. - -The sequence of actions begins with the grid object requesting the underlying grid -table to insert new columns. If this is successful the table notifies the grid and the -grid updates the display. For a default grid (one where you have called -\helpref{wxGrid::CreateGrid}{wxgridcreategrid}) this process is automatic. If you are -using a custom grid table (specified with \helpref{wxGrid::SetTable}{wxgridsettable}) -then you must override -\helpref{wxGridTableBase::InsertCols}{wxgridtablebaseinsertcols} in your derived -table class. - - - -\membersection{wxGrid::InsertRows}\label{wxgridinsertrows} - -\func{bool}{InsertRows}{\param{int }{pos = 0}, \param{int }{numRows = 1}, \param{bool }{updateLabels = true}} - -Inserts one or more new rows into a grid with the first new row at the specified -position and returns true if successful. The updateLabels argument is not used at -present. - -The sequence of actions begins with the grid object requesting the underlying grid -table to insert new rows. If this is successful the table notifies the grid and the -grid updates the display. For a default grid (one where you have called -\helpref{wxGrid::CreateGrid}{wxgridcreategrid}) this process is automatic. If you are -using a custom grid table (specified with \helpref{wxGrid::SetTable}{wxgridsettable}) -then you must override -\helpref{wxGridTableBase::InsertRows}{wxgridtablebaseinsertrows} in your derived -table class. - - - -\membersection{wxGrid::IsCellEditControlEnabled}\label{wxgridiscelleditcontrolenabled} - -\constfunc{bool}{IsCellEditControlEnabled}{\void} - -Returns true if the in-place edit control is currently enabled. - - - -\membersection{wxGrid::IsCurrentCellReadOnly}\label{wxgridiscurrentcellreadonly} - -\constfunc{bool}{IsCurrentCellReadOnly}{\void} - -Returns true if the current cell has been set to read-only -(see \helpref{wxGrid::SetReadOnly}{wxgridsetreadonly}). - - - -\membersection{wxGrid::IsEditable}\label{wxgridiseditable} - -\constfunc{bool}{IsEditable}{\void} - -Returns false if the whole grid has been set as read-only or true otherwise. -See \helpref{wxGrid::EnableEditing}{wxgridenableediting} for more information about -controlling the editing status of grid cells. - - - -\membersection{wxGrid::IsInSelection}\label{wxgridisinselection} - -\constfunc{bool}{IsInSelection}{\param{int }{row}, \param{int }{col}} - -\constfunc{bool}{IsInSelection}{\param{const wxGridCellCoords\& }{coords}} - -Is this cell currently selected. - - - -\membersection{wxGrid::IsReadOnly}\label{wxgridisreadonly} - -\constfunc{bool}{IsReadOnly}{\param{int }{row}, \param{int }{col}} - -Returns true if the cell at the specified location can't be edited. -See also \helpref{wxGrid::IsReadOnly}{wxgridisreadonly}. - - - -\membersection{wxGrid::IsSelection}\label{wxgridisselection} - -\constfunc{bool}{IsSelection}{\void} - -Returns true if there are currently rows, columns or blocks of cells selected. - - - -\membersection{wxGrid::IsVisible}\label{wxgridisvisible} - -\constfunc{bool}{IsVisible}{\param{int }{row}, \param{int }{col}, \param{bool }{wholeCellVisible = true}} - -\constfunc{bool}{IsVisible}{\param{const wxGridCellCoords\& }{coords}, \param{bool }{wholeCellVisible = true}} - -Returns true if a cell is either wholly visible (the default) or at least partially -visible in the grid window. - - - -\membersection{wxGrid::MakeCellVisible}\label{wxgridmakecellvisible} - -\func{void}{MakeCellVisible}{\param{int }{row}, \param{int }{col}} - -\func{void}{MakeCellVisible}{\param{const wxGridCellCoords\& }{coords}} - -Brings the specified cell into the visible grid cell area with minimal scrolling. Does -nothing if the cell is already visible. - - - -\membersection{wxGrid::MoveCursorDown}\label{wxgridmovecursordown} - -\func{bool}{MoveCursorDown}{\param{bool }{expandSelection}} - -Moves the grid cursor down by one row. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for Down cursor key presses or Shift+Down to expand a selection. - - - -\membersection{wxGrid::MoveCursorLeft}\label{wxgridmovecursorleft} - -\func{bool}{MoveCursorLeft}{\param{bool }{expandSelection}} - -Moves the grid cursor left by one column. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for Left cursor key presses or Shift+Left to expand a selection. - - - -\membersection{wxGrid::MoveCursorRight}\label{wxgridmovecursorright} - -\func{bool}{MoveCursorRight}{\param{bool }{expandSelection}} - -Moves the grid cursor right by one column. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for Right cursor key presses or Shift+Right to expand a selection. - - - -\membersection{wxGrid::MoveCursorUp}\label{wxgridmovecursorup} - -\func{bool}{MoveCursorUp}{\param{bool }{expandSelection}} - -Moves the grid cursor up by one row. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for Up cursor key presses or Shift+Up to expand a selection. - - - -\membersection{wxGrid::MoveCursorDownBlock}\label{wxgridmovecursordownblock} - -\func{bool}{MoveCursorDownBlock}{\param{bool }{expandSelection}} - -Moves the grid cursor down in the current column such that it skips to the beginning or -end of a block of non-empty cells. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for the Ctrl+Down key combination. Shift+Ctrl+Down expands a selection. - - - -\membersection{wxGrid::MoveCursorLeftBlock}\label{wxgridmovecursorleftblock} - -\func{bool}{MoveCursorLeftBlock}{\param{bool }{expandSelection}} - -Moves the grid cursor left in the current row such that it skips to the beginning or -end of a block of non-empty cells. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for the Ctrl+Left key combination. Shift+Ctrl+left expands a selection. - - - -\membersection{wxGrid::MoveCursorRightBlock}\label{wxgridmovecursorrightblock} - -\func{bool}{MoveCursorRightBlock}{\param{bool }{expandSelection}} - -Moves the grid cursor right in the current row such that it skips to the beginning or -end of a block of non-empty cells. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for the Ctrl+Right key combination. Shift+Ctrl+Right expands a selection. - - - -\membersection{wxGrid::MoveCursorUpBlock}\label{wxgridmovecursorupblock} - -\func{bool}{MoveCursorUpBlock}{\param{bool }{expandSelection}} - -Moves the grid cursor up in the current column such that it skips to the beginning or -end of a block of non-empty cells. If a block of cells was previously selected it -will expand if the argument is true or be cleared if the argument is false. - -\wxheading{Keyboard}\\ -This function is called for the Ctrl+Up key combination. Shift+Ctrl+Up expands a selection. - - - -\membersection{wxGrid::MovePageDown}\label{wxgridmovepagedown} - -\func{bool}{MovePageDown}{\void} - -Moves the grid cursor down by some number of rows so that the previous bottom visible row -becomes the top visible row. - -\wxheading{Keyboard}\\ -This function is called for PgDn keypresses. - - - -\membersection{wxGrid::MovePageUp}\label{wxgridmovepageup} - -\func{bool}{MovePageUp}{\void} - -Moves the grid cursor up by some number of rows so that the previous top visible row -becomes the bottom visible row. - -\wxheading{Keyboard}\\ -This function is called for PgUp keypresses. - - - -\membersection{wxGrid::RegisterDataType}\label{wxgridregisterdatatype} - -\func{void}{RegisterDataType}{\param{const wxString\& }{typeName}, \param{wxGridCellRenderer* }{renderer}, \param{wxGridCellEditor* }{editor}} - -Methods for a registry for mapping data types to Renderers/Editors - - - -\membersection{wxGrid::SaveEditControlValue}\label{wxgridsaveeditcontrolvalue} - -\func{void}{SaveEditControlValue}{\void} - -Sets the value of the current grid cell to the current in-place edit control value. -This is called automatically when the grid cursor moves from the current cell to a -new cell. It is also a good idea to call this function when closing a grid since -any edits to the final cell location will not be saved otherwise. - - - -\membersection{wxGrid::SelectAll}\label{wxgridselectall} - -\func{void}{SelectAll}{\void} - -Selects all cells in the grid. - - - -\membersection{wxGrid::SelectBlock}\label{wxgridselectblock} - -\func{void}{SelectBlock}{\param{int }{topRow}, \param{int }{leftCol}, -\param{int }{bottomRow}, \param{int }{rightCol}, \param{bool }{addToSelected = false}} - -\func{void}{SelectBlock}{\param{const wxGridCellCoords\& }{topLeft}, -\param{const wxGridCellCoords\& }{bottomRight}, \param{bool }{addToSelected = false}} - -Selects a rectangular block of cells. If addToSelected is false then any existing selection will be -deselected; if true the column will be added to the existing selection. - - - -\membersection{wxGrid::SelectCol}\label{wxgridselectcol} - -\func{void}{SelectCol}{\param{int }{col}, \param{bool }{addToSelected = false}} - -Selects the specified column. If addToSelected is false then any existing selection will be -deselected; if true the column will be added to the existing selection. - - - -\membersection{wxGrid::SelectionToDeviceRect}\label{wxgridselectiontodevicerect} - -\constfunc{wxRect}{SelectionToDeviceRect}{\void} - -This function returns the rectangle that encloses the selected cells -in device coords and clipped to the client size of the grid window. - - - -\membersection{wxGrid::SelectRow}\label{wxgridselectrow} - -\func{void}{SelectRow}{\param{int }{row}, \param{bool }{addToSelected = false}} - -Selects the specified row. If addToSelected is false then any existing selection will be -deselected; if true the row will be added to the existing selection. - - - -\membersection{wxGrid::SetCellAlignment}\label{wxgridsetcellalignment} - -\func{void}{SetCellAlignment}{\param{int }{row}, \param{int }{col}, \param{int }{horiz}, \param{int }{vert}} - -\func{void}{SetCellAlignment}{\param{int }{align}, \param{int }{row}, \param{int }{col}} - -Sets the horizontal and vertical alignment for grid cell text at the specified location. - -Horizontal alignment should be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. \\ -Vertical alignment should be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - - - -\membersection{wxGrid::SetCellBackgroundColour}\label{wxgridsetcellbackgroundcolour} - -\func{void}{SetCellBackgroundColour}{\param{int }{row}, \param{int }{col}, \param{const wxColour\&}{ colour}} - - - -\membersection{wxGrid::SetCellEditor}\label{wxgridsetcelleditor} - -\func{void}{SetCellEditor}{\param{int }{row}, \param{int }{col}, \param{wxGridCellEditor* }{editor}} - -Sets the editor for the grid cell at the specified location. -The grid will take ownership of the pointer. - -See \helpref{wxGridCellEditor}{wxgridcelleditor} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::SetCellFont}\label{wxgridsetcellfont} - -\func{void}{SetCellFont}{\param{int }{row}, \param{int }{col}, \param{const wxFont\&}{ font}} - -Sets the font for text in the grid cell at the specified location. - - - -\membersection{wxGrid::SetCellRenderer}\label{wxgridsetcellrenderer} - -\func{void}{SetCellRenderer}{\param{int }{row}, \param{int }{col}, \param{wxGridCellRenderer* }{renderer}} - -Sets the renderer for the grid cell at the specified location. -The grid will take ownership of the pointer. - -See \helpref{wxGridCellRenderer}{wxgridcellrenderer} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::SetCellTextColour}\label{wxgridsetcelltextcolour} - -\func{void}{SetCellTextColour}{\param{int }{row}, \param{int }{col}, \param{const wxColour\&}{ colour}} - -\func{void}{SetCellTextColour}{\param{const wxColour\& }{val}, \param{int }{row}, \param{int }{col}} - -\func{void}{SetCellTextColour}{\param{const wxColour\& }{colour}} - -Sets the text colour for the grid cell at the specified location. - - - -\membersection{wxGrid::SetCellValue}\label{wxgridsetcellvalue} - -\func{void}{SetCellValue}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{s}} - -\func{void}{SetCellValue}{\param{const wxGridCellCoords\& }{coords}, \param{const wxString\& }{s}} - -\func{void}{SetCellValue}{\param{const wxString\& }{val}, \param{int }{row}, \param{int }{col}} - -Sets the string value for the cell at the specified location. For simple applications where a -grid object automatically uses a default grid table of string values you use this function together -with \helpref{wxGrid::GetCellValue}{wxgridgetcellvalue} to access cell values. - -For more complex applications where you have derived your own grid table class that contains -various data types (e.g. numeric, boolean or user-defined custom types) then you only use this -function for those cells that contain string values. - -The last form is for backward compatibility only. - -See \helpref{wxGridTableBase::CanSetValueAs}{wxgridtablebasecangetvalueas} -and the \helpref{wxGrid overview}{gridoverview} for more information. - - - -\membersection{wxGrid::SetColAttr}\label{wxgridsetcolattr} - -\func{void}{SetColAttr}{\param{int }{col}, \param{wxGridCellAttr* }{attr}} - -Sets the cell attributes for all cells in the specified column. - -For more information about controlling grid cell attributes see the -\helpref{wxGridCellAttr}{wxgridcellattr} cell attribute class and the -\helpref{wxGrid classes overview}{gridoverview}. - - - -\membersection{wxGrid::SetColFormatBool}\label{wxgridsetcolformatbool} - -\func{void}{SetColFormatBool}{\param{int }{col}} - -Sets the specified column to display boolean values. wxGrid displays boolean values with a checkbox. - - - -\membersection{wxGrid::SetColFormatNumber}\label{wxgridsetcolformatnumber} - -\func{void}{SetColFormatNumber}{\param{int }{col}} - -Sets the specified column to display integer values. - - - -\membersection{wxGrid::SetColFormatFloat}\label{wxgridsetcolformatfloat} - -\func{void}{SetColFormatFloat}{\param{int }{col}, \param{int }{width = -1}, \param{int }{precision = -1}} - -Sets the specified column to display floating point values with the given width and precision. - - - -\membersection{wxGrid::SetColFormatCustom}\label{wxgridsetcolformatcustom} - -\func{void}{SetColFormatCustom}{\param{int }{col}, \param{const wxString\& }{typeName}} - -Sets the specified column to display data in a custom format. -See the \helpref{wxGrid overview}{gridoverview} for more information on working -with custom data types. - - - -\membersection{wxGrid::SetColLabelAlignment}\label{wxgridsetcollabelalignment} - -\func{void}{SetColLabelAlignment}{\param{int }{horiz}, \param{int }{vert}} - -Sets the horizontal and vertical alignment of column label text. - -Horizontal alignment should be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. - -Vertical alignment should be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - - - -\membersection{wxGrid::SetColLabelSize}\label{wxgridsetcollabelsize} - -\func{void}{SetColLabelSize}{\param{int }{height}} - -Sets the height of the column labels. - -If \arg{height} equals to \texttt{wxGRID\_AUTOSIZE} then height is calculated automatically -so that no label is truncated. Note that this could be slow for a large table. - - - -\membersection{wxGrid::SetColLabelValue}\label{wxgridsetcollabelvalue} - -\func{void}{SetColLabelValue}{\param{int }{col}, \param{const wxString\&}{ value}} - -Set the value for the given column label. If you are using a derived grid table you must -override \helpref{wxGridTableBase::SetColLabelValue}{wxgridtablebasesetcollabelvalue} -for this to have any effect. - - - -\membersection{wxGrid::SetColMinimalWidth}\label{wxgridsetcolminimalwidth} - -\func{void}{SetColMinimalWidth}{\param{int }{col}, \param{int }{width}} - -Sets the minimal width for the specified column. This should normally be called when creating the grid -because it will not resize a column that is already narrower than the minimal width. -The width argument must be higher than the minimimal acceptable column width, see -\helpref{wxGrid::GetColMinimalAcceptableWidth}{wxgridgetcolminimalacceptablewidth}. - - - -\membersection{wxGrid::SetColMinimalAcceptableWidth}\label{wxgridsetcolminimalacceptablewidth} - -\func{void}{SetColMinimalAcceptableWidth}{\param{int }{width}} - -This modifies the minimum column width that can be handled correctly. Specifying a low value here -allows smaller grid cells to be dealt with correctly. Specifying a value here which is much smaller -than the actual minimum size will incur a performance penalty in the functions which perform -grid cell index lookup on the basis of screen coordinates. -This should normally be called when creating the grid because it will not resize existing columns -with sizes smaller than the value specified here. - - - -\membersection{wxGrid::SetColPos}\label{wxgridsetcolpos} - -\func{void}{SetColPos}{\param{int }{colID}, \param{int }{newPos}} - -Sets the position of the specified column. - - - -\membersection{wxGrid::SetColSize}\label{wxgridsetcolsize} - -\func{void}{SetColSize}{\param{int }{col}, \param{int }{width}} - -Sets the width of the specified column. - -This function does not refresh the grid. If you are calling it outside of a BeginBatch / EndBatch -block you can use \helpref{wxGrid::ForceRefresh}{wxgridforcerefresh} to see the changes. - -Automatically sizes the column to fit its contents. If setAsMin is true the calculated width will -also be set as the minimal width for the column. - -\wxheading{Note}\\ -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::SetDefaultCellAlignment}\label{wxgridsetdefaultcellalignment} - -\func{void}{SetDefaultCellAlignment}{\param{int }{horiz}, \param{int }{vert}} - -Sets the default horizontal and vertical alignment for grid cell text. - -Horizontal alignment should be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. - -Vertical alignment should be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - - - -\membersection{wxGrid::SetDefaultCellBackgroundColour}\label{wxgridsetdefaultcellbackgroundcolour} - -\func{void}{SetDefaultCellBackgroundColour}{\param{const wxColour\&}{ colour}} - -Sets the default background colour for grid cells. - - - -\membersection{wxGrid::SetDefaultCellFont}\label{wxgridsetdefaultcellfont} - -\func{void}{SetDefaultCellFont}{\param{const wxFont\&}{ font}} - -Sets the default font to be used for grid cell text. - - - -\membersection{wxGrid::SetDefaultCellTextColour}\label{wxgridsetdefaultcelltextcolour} - -\func{void}{SetDefaultCellTextColour}{\param{const wxColour\&}{ colour}} - -Sets the current default colour for grid cell text. - - - -\membersection{wxGrid::SetDefaultEditor}\label{wxgridsetdefaulteditor} - -\func{void}{SetDefaultEditor}{\param{wxGridCellEditor* }{editor}} - -Sets the default editor for grid cells. The grid will take ownership of the pointer. - -See \helpref{wxGridCellEditor}{wxgridcelleditor} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::SetDefaultRenderer}\label{wxgridsetdefaultrenderer} - -\func{void}{SetDefaultRenderer}{\param{wxGridCellRenderer* }{renderer}} - -Sets the default renderer for grid cells. The grid will take ownership of the pointer. - -See \helpref{wxGridCellRenderer}{wxgridcellrenderer} and -the \helpref{wxGrid overview}{gridoverview} for more information about cell editors and renderers. - - - -\membersection{wxGrid::SetDefaultColSize}\label{wxgridsetdefaultcolsize} - -\func{void}{SetDefaultColSize}{\param{int }{width}, \param{bool }{resizeExistingCols = false}} - -Sets the default width for columns in the grid. This will only affect columns subsequently added to -the grid unless resizeExistingCols is true. - - - -\membersection{wxGrid::SetDefaultRowSize}\label{wxgridsetdefaultrowsize} - -\func{void}{SetDefaultRowSize}{\param{int }{height}, \param{bool }{resizeExistingRows = false}} - -Sets the default height for rows in the grid. This will only affect rows subsequently added -to the grid unless resizeExistingRows is true. - - - -\membersection{wxGrid::SetGridCursor}\label{wxgridsetgridcursor} - -\func{void}{SetGridCursor}{\param{int }{row}, \param{int }{col}} - -Set the grid cursor to the specified cell. -This function calls \helpref{wxGrid::MakeCellVisible}{wxgridmakecellvisible}. - - - -\membersection{wxGrid::SetGridLineColour}\label{wxgridsetgridlinecolour} - -\func{void}{SetGridLineColour}{\param{const wxColour\&}{colour}} - -Sets the colour used to draw grid lines. - - - -\membersection{wxGrid::SetLabelBackgroundColour}\label{wxgridsetlabelbackgroundcolour} - -\func{void}{SetLabelBackgroundColour}{\param{const wxColour\&}{ colour}} - -Sets the background colour for row and column labels. - - - -\membersection{wxGrid::SetLabelFont}\label{wxgridsetlabelfont} - -\func{void}{SetLabelFont}{\param{const wxFont\&}{ font}} - -Sets the font for row and column labels. - - - -\membersection{wxGrid::SetLabelTextColour}\label{wxgridsetlabeltextcolour} - -\func{void}{SetLabelTextColour}{\param{const wxColour\&}{ colour}} - -Sets the colour for row and column label text. - - - -\membersection{wxGrid::SetMargins}\label{wxgridsetmargins} - -\func{void}{SetMargins}{\param{int }{extraWidth}, \param{int }{extraHeight}} - -A grid may occupy more space than needed for its rows/columns. This -function allows to set how big this extra space is - - - -\membersection{wxGrid::SetOrCalcColumnSizes}\label{wxgridsetorcalccolumnsizes} - -\func{int}{SetOrCalcColumnSizes}{\param{bool }{calcOnly}, \param{bool }{setAsMin = true}} - -Common part of AutoSizeColumn/Row() and GetBestSize() - - - -\membersection{wxGrid::SetOrCalcRowSizes}\label{wxgridsetorcalcrowsizes} - -\func{int}{SetOrCalcRowSizes}{\param{bool }{calcOnly}, \param{bool }{setAsMin = true}} - - - -\membersection{wxGrid::SetReadOnly}\label{wxgridsetreadonly} - -\func{void}{SetReadOnly}{\param{int }{row}, \param{int }{col}, \param{bool }{isReadOnly = true}} - -Makes the cell at the specified location read-only or editable. -See also \helpref{wxGrid::IsReadOnly}{wxgridisreadonly}. - - - -\membersection{wxGrid::SetRowAttr}\label{wxgridsetrowattr} - -\func{void}{SetRowAttr}{\param{int }{row}, \param{wxGridCellAttr* }{attr}} - -Sets the cell attributes for all cells in the specified row. -See the \helpref{wxGridCellAttr}{wxgridcellattr} class for more information -about controlling cell attributes. - - - -\membersection{wxGrid::SetRowLabelAlignment}\label{wxgridsetrowlabelalignment} - -\func{void}{SetRowLabelAlignment}{\param{int }{horiz}, \param{int }{vert}} - -Sets the horizontal and vertical alignment of row label text. - -Horizontal alignment should be one of wxALIGN\_LEFT, wxALIGN\_CENTRE or wxALIGN\_RIGHT. - -Vertical alignment should be one of wxALIGN\_TOP, wxALIGN\_CENTRE or wxALIGN\_BOTTOM. - - - -\membersection{wxGrid::SetRowLabelSize}\label{wxgridsetrowlabelsize} - -\func{void}{SetRowLabelSize}{\param{int }{width}} - -Sets the width of the row labels. - -If \arg{width} equals \texttt{wxGRID\_AUTOSIZE} then width is calculated automatically -so that no label is truncated. Note that this could be slow for a large table. - - - -\membersection{wxGrid::SetRowLabelValue}\label{wxgridsetrowlabelvalue} - -\func{void}{SetRowLabelValue}{\param{int }{row}, \param{const wxString\&}{ value}} - -Set the value for the given row label. If you are using a derived grid table you must -override \helpref{wxGridTableBase::SetRowLabelValue}{wxgridtablebasesetrowlabelvalue} -for this to have any effect. - - - -\membersection{wxGrid::SetRowMinimalHeight}\label{wxgridsetrowminimalheight} - -\func{void}{SetRowMinimalHeight}{\param{int }{row}, \param{int }{height}} - -Sets the minimal height for the specified row. This should normally be called when creating the grid -because it will not resize a row that is already shorter than the minimal height. -The height argument must be higher than the minimimal acceptable row height, see -\helpref{wxGrid::GetRowMinimalAcceptableHeight}{wxgridgetrowminimalacceptableheight}. - - - -\membersection{wxGrid::SetRowMinimalAcceptableHeight}\label{wxgridsetrowminimalacceptableheight} - -\func{void}{SetRowMinimalAcceptableHeight}{\param{int }{height}} - -This modifies the minimum row width that can be handled correctly. Specifying a low value here -allows smaller grid cells to be dealt with correctly. Specifying a value here which is much smaller -than the actual minimum size will incur a performance penalty in the functions which perform -grid cell index lookup on the basis of screen coordinates. -This should normally be called when creating the grid because it will not resize existing rows -with sizes smaller than the value specified here. - - - -\membersection{wxGrid::SetRowSize}\label{wxgridsetrowsize} - -\func{void}{SetRowSize}{\param{int }{row}, \param{int }{height}} - -Sets the height of the specified row. - -This function does not refresh the grid. If you are calling it outside of a BeginBatch / EndBatch -block you can use \helpref{wxGrid::ForceRefresh}{wxgridforcerefresh} to see the changes. - -Automatically sizes the column to fit its contents. If setAsMin is true the calculated width will -also be set as the minimal width for the column. - -\wxheading{Note} - -wxGrid sets up arrays to store individual row and column sizes when non-default sizes are used. -The memory requirements for this could become prohibitive if your grid is very large. - - - -\membersection{wxGrid::SetScrollLineX}\label{wxgridsetscrolllinex} - -\func{void}{SetScrollLineX}{\param{int }{x}} - -Sets the number of pixels per horizontal scroll increment. The default is 15. -Sometimes wxGrid has trouble setting the scrollbars correctly due to rounding -errors: setting this to 1 can help. - -\wxheading{See also} - -\helpref{wxGrid::GetScrollLineX}{wxgridgetscrolllinex},\rtfsp -\helpref{wxGrid::GetScrollLineY}{wxgridgetscrollliney},\rtfsp -\helpref{wxGrid::SetScrollLineY}{wxgridsetscrollliney} - - - -\membersection{wxGrid::SetScrollLineY}\label{wxgridsetscrollliney} - -\func{void}{SetScrollLineY}{\param{int }{y}} - -Sets the number of pixels per vertical scroll increment. The default is 15. -Sometimes wxGrid has trouble setting the scrollbars correctly due to rounding -errors: setting this to 1 can help. - -\wxheading{See also} - -\helpref{wxGrid::GetScrollLineX}{wxgridgetscrolllinex},\rtfsp -\helpref{wxGrid::GetScrollLineY}{wxgridgetscrollliney},\rtfsp -\helpref{wxGrid::SetScrollLineX}{wxgridsetscrolllinex} - - - -\membersection{wxGrid::SetSelectionBackground}\label{wxgridsetselectionbackground} - -\func{void}{SetSelectionBackground}{\param{const wxColour\& }{c}} - - - -\membersection{wxGrid::SetSelectionForeground}\label{wxgridsetselectionforeground} - -\func{void}{SetSelectionForeground}{\param{const wxColour\& }{c}} - - - -\membersection{wxGrid::SetSelectionMode}\label{wxgridsetselectionmode} - -\func{void}{SetSelectionMode}{\param{wxGrid::wxGridSelectionModes}{ selmode}} - -Set the selection behaviour of the grid. - -\wxheading{Parameters} - -\docparam{wxGrid::wxGridSelectCells}{The default mode where individual cells are selected.} - -\docparam{wxGrid::wxGridSelectRows}{Selections will consist of whole rows.} - -\docparam{wxGrid::wxGridSelectColumns}{Selections will consist of whole columns.} - - - -\membersection{wxGrid::SetTable}\label{wxgridsettable} - -\func{bool}{SetTable}{\param{wxGridTableBase* }{table}, \param{bool }{takeOwnership = false}, \param{wxGrid::wxGridSelectionModes }{selmode = wxGrid::wxGridSelectCells}} - -Passes a pointer to a custom grid table to be used by the grid. This should be called -after the grid constructor and before using the grid object. If takeOwnership is set to -true then the table will be deleted by the wxGrid destructor. - -Use this function instead of \helpref{wxGrid::CreateGrid}{wxgridcreategrid} when your -application involves complex or non-string data or data sets that are too large to fit -wholly in memory. - - -\membersection{wxGrid::SetUseNativeColLabels}\label{wxgridsetsenativecollabels} - -\func{void}{SetUseNativeColLabels}{\param{bool }{native= true}} - -Call this in order to make the column labels use a native look by using -\helpref{wxRenderer::DrawHeaderButton}{wxrenderernativedrawheaderbutton} -internally. There is no equivalent method for drawing row columns as -there is not native look for that. This option is useful when using -wxGrid for displaying tables and not as a spread-sheet. - -\membersection{wxGrid::ShowCellEditControl}\label{wxgridshowcelleditcontrol} - -\func{void}{ShowCellEditControl}{\void} - -Displays the in-place cell edit control for the current cell. - - - -\membersection{wxGrid::XToCol}\label{wxgridxtocol} - -\constfunc{int}{XToCol}{\param{int }{x}, \param{bool }{clipToMinMax = false}} - -\wxheading{Parameters} -\docparam{x}{The x position to evaluate.} -\docparam{clipToMinMax}{If true, rather than returning wxNOT\_FOUND, it returns either the first or last column depending on whether x is too far to the left or right respectively.} - -\wxheading{Return value} -The grid column that corresponds to the logical x coordinate. Returns -{\tt wxNOT\_FOUND} if there is no column at the x position. - - - -\membersection{wxGrid::XToEdgeOfCol}\label{wxgridxtoedgeofcol} - -\constfunc{int}{XToEdgeOfCol}{\param{int }{x}} - -Returns the column whose right hand edge is close to the given logical x position. -If no column edge is near to this position {\tt wxNOT\_FOUND} is returned. - - - -\membersection{wxGrid::YToEdgeOfRow}\label{wxgridytoedgeofrow} - -\constfunc{int}{YToEdgeOfRow}{\param{int }{y}} - -Returns the row whose bottom edge is close to the given logical y position. -If no row edge is near to this position {\tt wxNOT\_FOUND} is returned. - - - -\membersection{wxGrid::YToRow}\label{wxgridytorow} - -\constfunc{int}{YToRow}{\param{int }{y}} - -Returns the grid row that corresponds to the logical y coordinate. Returns -{\tt wxNOT\_FOUND} if there is no row at the y position. - diff --git a/docs/latex/wx/grid1.bmp b/docs/latex/wx/grid1.bmp deleted file mode 100644 index 100be252da9ebd63d6dda0aa100973c91cb8a192..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68518 zcmeHQJ#XB~6`kh<*usDmCp{mD)i)Xd3dupBl7b)Dn z(uIxu5>*1yEVeKpt76WbZw~KJBY|rzFK5zI^$jHk%DRo&Kk~jx47=SPsZHwHv{T!kBIuAfpjQ-xt z$r#~r)ih$X3M|dW^WwF-mV{C97?miD1ZKeFS{6nSImFn=!pQR2ETKI%lG-D%a9X7n zDyHwyU}&S0?>i_b8zZIzkT$K}bs;2~8!@l#0EFSuf>^u#tjAUkglEQJJa+ySg;$e~ z4X5{R?QQ$+3;39ahEl*P#55y0b`x1V+>8r|nS`kG7LoCu1v77~dO^=LtqpJr+c4YztX`)BeTj}gd`%2Ax*2ji5#0*MQwAI zW};ONk2D@d&gUdNR*XzQid=1EkC{`K8@rZ1mg6yeH8=n7ttv*@&#U39a=BWq7}-!Z zb-XM+A6uE&nTt712&{6SbC!THG)SpD;!DYu8)Hbt=~TIX}dRWY>& zOV2l6D;&*fRnq#L495CBGOvzOZB1Q{uTA8wJnH^KYTuz3wb~w1EXI|81Q0uZ3^N^q z$HJ@8IlZg7Fr zk?S9$1}ROebv`E*K|kO2v)SC#<+2xY2dY+etE}zO31Wu73#f55kQZ5PWRICsmm9m5 zK2~E+jX8-(rq*ET`I2f3vsJ5AtBEQ~wKa9Qq#DC))v9c**6&z{nun)ly+h~J<%U;C zJlXabzVVPd?x+|OHRx>1IT_#7<(NzKT^X$|V$H)M;%XQqi;X$q>qmLtcR2d$n)!a* zvbmP^4xLk%8(tytWa6r$llEfUV+68d47!+FgQe#SHON?1t6H&Dt3e;7+M2pts6oc6 zTCG}5q%pMyOV5{7W0_k5bkd&X z>Y6}?{?^d(5?ZBpu$JS7H<(4frj|f;3ABK zPY6b(jtJvcB|PfwA>vz z4r#x49`}kdMv}KH#;!c&p2;Qi$lRT&=X0KV+)?Lq7?LAb8`)##)aAymrH?&9d#o4( zE2Z}$d?I5ln8!t|>sW;jvb^uOf>^Gux~uLI|FF{rIqxnz@?G7*p8W3!&^bp_POD*A z#{-^MuW%{Cc-P%&gw}x5`VI?Y7$QFaBOqvS5k|tN-vkesky_dmq_&_;QIQ;vkDBYa zyS&sA4H$LaU?lUfFg|WQz*Q_!WDHn?ktjYej6tmBF-IfRbO8@V9m04CJvq1%Fx~;g z6+m5HA(9${g3w{c)kn_f5JsCooiqLZz_j|f`J8!S437X0=sT$4g%sPydtf|15@SG^ zx7z%n-jULBy$^AjT>n@xa(8R;=a;?l$khG;{Uh_~p{um+rR9cKNIZ#FmpY%r;pTj$ z_kHSe32Vb_!Xx)vBsKgL=h?NKm+?(qj=4nNRWa%wL@tkEB48O96}pez@viIC@s4^D zpe9S(Uivd^k1>xx*X{7?j(0n3ci49@$Q{zmG3uXPAJZ1_Xw&ULrFICyNE{M83shsB z4Mx|QHyc=O6Z*$ktE5f9Q^X*($72}8DA_(8u2#=4blRjCqu-Q4mODfpfHF{lQMbt1 zU~J7GYJf4C2Ox}~Ozn=<4linuV3bG&tsxyQk2#Fd{Hnp|@VGqz4>q9A4`VdHsxeYu zp;N#$e~e)w02nDU1yx#0(X&8EGvu*{F(AoX6=QU7+Q=R=OUsR&Lm$hx z^Wl-fK#j2^wajNZ*VN^>YxH~xk0n@US0=%@iZtrX@O3j4rzH|a%w1u;~qhZgKYob4g?hA6|{6Ws( zPD169@nac}xL zILKLf9_&j63>A5#i-p5f=a zlw&UvJ1fQ~<)>5^F=eb>!eei8B%kSh!;>%8|0ZaHawDfOhg!39F~1SHRZJS@kq{-pdKdFj_q??bYYO@h!_^#W)Z4 zLM@lYBSy??yeP?SkE>?oF=C+#EpaqUIkJVX{evlZgjO{+!5AHTBKA?=;b|273{Wx7Shc)X(Ps!sD|Y;7els9u%V7*HQ;4;J zD(f8b{K;GtkI-zy7;@2ys@|cf)J)7m9wWdr0Txx$W5m!3!z<4o%?e<7MzdOB@Vr(l zW^q__mcust7~QlLzyTfr5=isUjGqr1Or~}zMqi9DfbgTNUv*V;aMA z4z)R&)3IcsJzA|QVOsSuhoB&Qz<8L>hv4F=z#dvGt5io+LH-M{Sjs`@rM(dd5dx$Y-h_TP( z`?b0_dG_I*7hs5+I_7x4Hp0Qa|0#2~8Y0D2&tuXan}0pOIDPT*)Yp*`#>W{!U zY>d9|NaAX<{`k$9| diff --git a/docs/latex/wx/grid1.eps b/docs/latex/wx/grid1.eps deleted file mode 100644 index 76fcc9540b..0000000000 --- a/docs/latex/wx/grid1.eps +++ /dev/null @@ -1,771 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /home/jacs/wx/utils/wxgrid/docs/grid1.eps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 36 216 576 576 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define space for color conversions -/grays 450 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -36 216 translate - -% size of image (on paper, in 1/72inch coords) -540.00000 360.00000 scale - -% define 'colorimage' if it isn't defined -% ('colortogray' and 'mergeprocs' come from xwd2ps -% via xgrab) -/colorimage where % do we know about 'colorimage'? - { pop } % yes: pop off the 'dict' returned - { % no: define one - /colortogray { % define an RGB->I function - /rgbdata exch store % call input 'rgbdata' - rgbdata length 3 idiv - /npixls exch store - /rgbindx 0 store - 0 1 npixls 1 sub { - grays exch - rgbdata rgbindx get 20 mul % Red - rgbdata rgbindx 1 add get 32 mul % Green - rgbdata rgbindx 2 add get 12 mul % Blue - add add 64 idiv % I = .5G + .31R + .18B - put - /rgbindx rgbindx 3 add store - } for - grays 0 npixls getinterval - } bind def - - % Utility procedure for colorimage operator. - % This procedure takes two procedures off the - % stack and merges them into a single procedure. - - /mergeprocs { % def - dup length - 3 -1 roll - dup - length - dup - 5 1 roll - 3 -1 roll - add - array cvx - dup - 3 -1 roll - 0 exch - putinterval - dup - 4 2 roll - putinterval - } bind def - - /colorimage { % def - pop pop % remove 'false 3' operands - {colortogray} mergeprocs - image - } bind def - } ifelse % end of 'false' case - - - -% define the colormap -/cmap 39 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 -ffff00 00ffff ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -450 300 8 % dimensions of data -[450 0 0 -300 0 300] % mapping matrix -rlecmapimage - -7f067f067f0640060000 -81060c7f0c7f0c7f0c3d0c810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c068106047f047f047f0438040106810700 -82060c068106048204060c820c060783070c0702010203098102047f047f047f04260401 -06810700 -82060c068106048104060106830001020781070283020702098109028102047f047f0472 -040e0c81000c0d0c81000481040c0d0c81000481040682060700 -82060c06810604810406010601008102078507020902070201028109047f047f04720481 -0c060b068307000c060b068207000482040c060b068207000481040682060700 -82060c0681060481040601068300040307820702098409020702098109041104040c0604 -010c0404010c0504030c1904010c7f047f042504810c060b068307000c06810600070001 -068207000482040c060b068207000481040682060700 -82060c0681060481040601068304000a0789070209020002070209041004010c0204010c -0c04010c0404010c0104010c1804010c7f047f042504810c060b068307000c0681060007 -0001068207000482040c06010601000306010001068207000481040682060700 -82060c068106048204070681060001000107010286000209020702041004010c1104010c -0404010c1c04010c7f047f042504810c060b068307000c06820600060506810006830607 -000482040c06020601000106010002068207000481040682060700 -82060c0681060485040c0607060c010c8407020002090109820200040104010c81040c82 -0c040c820c040c820c040c820c040c810c040504020c81040c810c0481040c030c040401 -0c0604030c0104060c0104040c0104010c0104030c7f047f041f04810c060b068307000c -06820600060506810006830607000482040c060306030003068207000481040682060700 - -82060c068106048104070507010006020204010c81040c820c040c820c040c820c040c82 -0c040c820c040c020c0104010c0104010c81040c810c0481040c810c040404030c060401 -0c81040c820c040c820c040c820c040c810c0481040c820c040c820c040c810c0481040c -810c047f047f041d04810c060b068307000c06820600060506810006830607000482040c -060406010004068207000481040682060700 -82060c068106048104050505010006030204070c0104020c0104010c0204010c0104010c -0104010c81040c810c0481040c810c040704010c0204040c81040c820c040c820c040c82 -0c040c810c0481040c820c040c820c040c040c7f047f041e04810c060b068307000c0682 -0600060506810006830607000482040c060306030003068207000481040682060700 -82060c0681060481040b010b8205010b830b05030a020a81030a810a040104070c010402 -0c0104010c0204010c0104010c0104010c81040c810c0481040c810c040704010c010401 -0c0104010c81040c820c040c820c040c820c040c810c0481040c820c040c820c040c810c -047f047f042104810c060b068307000c06820600060506810006830607000482040c0602 -0601000106010002068207000481040682060700 -82060c068106048c040b05070507050b05030a030a840a03000a040204010c0104010c01 -04010c81040c820c040c810c0481040c010c0104010c0104010c81040c810c0481040c81 -0c040304010c0104010c0104010c0104010c81040c820c040c820c040c820c040c810c04 -81040c820c040c820c040c810c0481040c810c047f047f041d04810c0601060500030683 -07000c06820600060506810006830607000482040c060106010003060100010682070004 -81040682060700 -82060c0681060482040b08020886070b05030a030a010a82030a040204010c0104010c01 -04010c81040c810c0481040c040c0104010c0104010c0104040c0504030c0304040c8104 -0c820c040c820c040c820c040c030c0104010c0104030c7f047f041f04810c0601060500 -03068307000c06810600070001068207000482040c060b068207000481040682060700 -82060c0681060482040b080208010b8205030a810a0384030a030a044304010c7f047f04 -2c04810c060b068307000c060b068207000482040c060b068207000481040682060700 -82060c0681060482040b080308850b05030a030a010a82000a044304010c7f047f042c04 -810c070c0782000c070c0781000482040c070c0781000481040682060700 -82060c068106048c040b05080108010b05030a030a810a0382030a047f047f0472041f00 -01040f0001040106810700 -82060c0681060481040b050b8205030a050a7f047f047f0427040106810700 -82060c068106047f047f047f0438040106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c0607060400840600060006120602000e068100067f067f067f060306810700 -82060c0607068100060506810006110681000601068100060606810006820600067f067f -067f060606810700 -82060c060706810006050681000611068100060a06810006820600067f067f067f060606 -810700 -82060c0607068100060306830006000681060001000d0681000605060200010601008106 -00860006000600060081000601060300010601007f067f067406810700 -82060c060706030001068500060006000601068100060c06020002068100060106830006 -000682060006830600060081000684060006000601068300060006820600067f067f0672 -06810700 -82060c060706810006030684000600060003001006810006810600030082060006820600 -06840600060006010683000600060106810006820600067f067f067406810700 -82060c060706810006030685000600060006130681000682060006030681000682060006 -84060006000601068300060006010681000601068100067f067f067306810700 -82060c06070681000603068500060006000601068100060b068100060106810006820600 -060106830006000682060006840600060006010683000600060106830006000682060006 -7f067f067206810700 -82060c0607068100060306830006000681060001000e0602000306020002068100068606 -00060006000601068100068106000200010601007f067f067406810700 -82060c0642068100067f067f067706810700 -82060c060606050015060600140603007f067f067906810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c061b067f077f077f071e070106810700 -82060c061b068107007f007f007f001b000206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c810c000200820c000c0a0c81000c0f0c81000c820c000c7f0c7f -0c700c0206810700 -82060c060806810006040681000609068207000c820c000c0f0c81000c0f0c81000c820c -000c7f0c7f0c700c0206810700 -82060c0607068300060006020601000a068207000c820c000c020c81000c810c00010001 -0c0600040c0200020c0200010c81000c820c000c7f0c7f0c700c0206810700 -82060c06070683000600060106830006000609068207000c810c000200820c000c820c00 -0c010c81000c030c81000c030c81000c010c83000c000c010c83000c000c820c000c7f0c -7f0c700c0206810700 -82060c0606068100060106810006020681000609068207000c820c000c020c81000c820c -000c020c0200010c81000c030c81000c030c0400820c000c820c000c7f0c7f0c700c0206 -810700 -82060c0606060400030681000609068207000c820c000c020c81000c820c000c050c8300 -0c000c030c81000c010c83000c000c030c81000c820c000c7f0c7f0c700c0206810700 -82060c0606068100060106810006020681000609068207000c820c000c020c81000c820c -000c010c0300010c0100040c0200020c0300820c000c820c000c7f0c7f0c700c02068107 -00 -82060c0605068100060306810006010681000609068207000c7f0c7f0c7f0c1a0c020681 -0700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068207000c7f0c7f0c7f0c1a0c0206810700 -82060c061b068107067f067f067f061e06810700 -82060c061b067f0c7f0c7f0c1e0c0106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -82060c068106007f007f007f0028000e0681000682060700 -82060c0682060006250681000c4d0c81000c4d0c81000c4d0c81000c7f0c0f0c81060c0b -0c8207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c0624060200240682000c0622060500230682000c062406 -0400220682000c065e0604002b06810c060a068207000682060700 -82060c0682060006250682000c0624060200240682000c06220601000206010022068200 -0c062306010002060100210682000c065e060100010601002a06810c0603068100060406 -8207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220601000206 -0100220682000c0622060100270682000c065e060100020601002906810c060206020004 -068207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220601000206 -0100220682000c0622060100270682000c065e060100020601002906810c060106040003 -068207000682060700 -82060c0682060006250682000c0623060100810600810006220682000c06220605002306 -82000c0622060100270682000c065e060100020601002906810c06810600050002068207 -000682060700 -82060c0682060006250682000c062206010002060100220682000c062206010002060100 -220682000c0622060100270682000c065e060100020601002906810c060a068207000682 -060700 -82060c0682060006250682000c062206010002060100220682000c062206010002060100 -220682000c0622060100270682000c065e060100020601002906810c060a068207000682 -060700 -82060c0682060006250682000c0622060600220682000c06220601000206010022068200 -0c0622060100270682000c065e060100020601002906810c060a068207000682060700 -82060c0682060006250682000c062106010004060100210682000c062206010002060100 -220682000c062306010002060100210682000c065e060100010601002a06810c060a0682 -07000682060700 -82060c0682060006250682000c062106010004060100210682000c062206050023068200 -0c0624060400220682000c065e0604002b060d0781000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060e06 -0f000106810700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f061d06 -81000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -0c0c8207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c0682060006250682000c064c0682000c064c0682000c064c0682000c067f060f06 -810c060a068207000682060700 -82060c068106007f007f007f00280082060c060a068207000682060700 -82060c068206000c250c4f0081060c4d0c81060c4d0c81060c7f0c0f0c82060c060a0682 -07000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c0624060100030c0700210c0100010c0100180c8200060c4d0c81060c -4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c061006010011060100040c81000c030c83000c000c0b0c81000c110c -81000c010c81000c170c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a068207 -000682060700 -82060c068306000c060f06020011060100040c81000c820c000c820c000c0d0c81000c11 -0c81000c010c81000c170c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a0682 -07000682060700 -82060c068306000c060e06030011060100040c81000c820c000c010c0100810c0082000c -0082000c000100810c000200050c0200020c0200020c81000c010c81000c170c8200060c -4d0c81060c4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c060e068200060081000610060100040c0300030c81000c840c000c00 -0c820c000c020c81000c050c81000c820c000c820c000c820c000c820c000c010c81000c -180c8200060c4d0c81060c4d0c81060c7f0c0f0c82060c060a068207000682060700 -82060c068306000c061006010011060100030c81000c820c000c020c81000c010c010002 -0c81000c020c81000c050c81000c020c81000c010c81000c820c000c010c81000c180c82 -00060c4d0c81060c4d0c81060c7f0c0f0c8106070c0781000682060700 -82060c068306000c061006010011060100030c81000c820c000c020c81000c010c81000c -030c81000c010c81000c040c81000c030c81000c820c000c010c81000c010c81000c180c -8200060c4d0c81060c4d0c81060c7f0c0f0c0f000106810700 -82060c068306000c061006010011060100030c81000c050c81000c010c81000c040c8100 -0c820c000c040c81000c030c0200030c81000c010c81000c180c8200060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c061006010011060100020c81000c050c81000c010c81000c020c8100 -0c860c000c000c000c030c81000c820c000c820c000c010c83000c000c010c81000c190c -8200060c4d0c81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c061006010011060100010c0200050c0100010c81000c020c0200010c -0100060c0100030c0200010c0100010c0100190c8200060c4d0c81060c4d0c81060c7f0c -0f0c8107060c0681070682060700 -82060c068306000c0610060100110601004c0c8200060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240601004c0c8200060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068206000625064f0081060c4d0c81060c4d0c81060c7f0c0f0c8107060c068107 -0682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c050c81080c150c81080c210c81080c820c -080c060c81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c040c83080c080c100c81080c01 -0c81080c210c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c0681070682 -060700 -82060c068306000c060d06010001060100100681000c4d0c81060c040c83080c080c100c -81080c010c81080c210c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c06 -81070682060700 -82060c068306000c0611060100100681000c4d0c81060c040c83080c080c020c82080c08 -81080c020c0208010c0208010c82080c0881080c020c0208020c83080c080c040c020803 -0c0208020c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c0611060100100681000c4d0c81060c030c81080c010c81080c010c01 -08010c81080c820c080c010c81080c820c080c010c0108010c81080c820c080c010c8108 -0c810c0881080c040c81080c010c81080c820c080c010c81080c820c080c820c080c060c -81060c4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c030c81080c010c81080c010c81 -080c010c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c010c -81080c820c080c050c81080c040c81080c010c81080c820c080c820c080c060c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c020c0608010c81080c010c8108 -0c820c080c010c81080c820c080c010c81080c010c81080c810c080308010c81080c050c -81080c040c0408010c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c060f060100120681000c4d0c81060c020c81080c030c81080c820c08 -0c010c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c040c81 -080c050c81080c040c81080c040c81080c820c080c060c81060c4d0c81060c7f0c0f0c81 -07060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c010c81080c050c83080c080c01 -0c81080c820c080c010c81080c820c080c010c81080c010c81080c820c080c010c81080c -820c080c050c81080c010c81080c820c080c010c81080c820c080c820c080c060c81060c -4d0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c010c81080c050c83080c080c01 -0c81080c010c0208020c0108010c81080c010c81080c010c0208020c81080c060c020803 -0c0208020c81080c820c080c060c81060c4d0c81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b020b81000b030b81000b280b -81000b170b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060b030b81000b010b81 -000b080b81000b1a0b81000b010b81000b170b81060c7f0c0f0c8107060c068107068206 -0700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060b030b8100 -0b010b81000b080b81000b1a0b81000b010b81000b170b81060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b040b83000b000b03 -0b0200010b0200060b0200020b82000b0081000b020b0200010b0200010b82000b008100 -0b020b0200020b83000b000b040b81000b820b060c7f0c0f0c8107060c06810706820607 -00 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b040b83000b000b02 -0b81000b010b81000b820b000b050b81000b010b81000b810b0081000b820b000b820b00 -0b010b81000b820b000b010b0100010b81000b820b000b010b81000b810b0081000b040b -81000b010b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060b050b81000b030b81 -000b010b81000b820b000b090b81000b820b000b010b81000b820b000b010b81000b820b -000b010b81000b010b81000b820b000b010b81000b820b000b050b81000b010b81060c7f -0c0f0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b04 -00010b81000b060b0300010b81000b010b81000b820b000b010b81000b820b000b010b81 -000b010b81000b810b000300010b81000b050b81000b010b81060c7f0c0f0c8107060c06 -81070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b81 -000b040b81000b050b81000b010b81000b820b000b010b81000b820b000b010b81000b82 -0b000b010b81000b010b81000b820b000b040b81000b050b81000b010b81060c7f0c0f0c -8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060b050b81000b030b81 -000b010b81000b820b000b050b81000b810b0081000b820b000b010b81000b820b000b01 -0b81000b820b000b010b81000b010b81000b820b000b010b81000b820b000b050b81000b -010b81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060b050b8100 -0b040b0200020b0100060b0100820b000b820b000b010b81000b010b0200020b0100010b -81000b010b81000b010b0200020b81000b060b81000b820b060c7f0c0f0c8107060c0681 -070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060b4d0b81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e0682000600810006100681000c4d0c81060c4d0c81060c4d0c81 -060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e0682000600810006100681000c4d0c81060c4d0c81060c4d0c81 -060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06810006810600810006100681000c4d0c81060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060e060400100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060400110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060f060200110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e068100068106008100060f0681000c4d0c81060c4d0c81060c4d -0c81060c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060100140681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d060400110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060d060500100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0611060100100681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c0610060100110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060f060100120681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060e060100130681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c0681060027007f067f067f06820607060c0681070682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c8107060c -0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c810706 -0c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c8107060c0681070682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c0e0681000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c81060c0b0c8207000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c82060c060a068207000682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c82060c060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -06810600050002068207000682060700 -82060c0682060006250681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c06 -0106040003068207000682060700 -82060c0681060027007f067f067f060106810c060206020004068207000682060700 -82060c068206000c250c81000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c06 -030681000604068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c06240681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f0c82060c -060a068207000682060700 -82060c068306000c060e060300110681000c4d0c81060c4d0c81060c4d0c81060c7f0c0f -0c8106070c0781000682060700 -82060c068306000c060d06010001060100100681000c4d0c81060c4d0c81060c4d0c8106 -0c7f0c0f0c0f000106810700 -82060c060f068100060d068100077f077f0778070e068100061006810700 -82060c0601060c0c830700060c0b0c820700067f067f0679060c0c820700061006810700 - -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c0604068100060306840700060c060a06820700067f067f067906810c -0602068100060506820700061006810700 -82060c060106810c06030601000406840700060c060a06820700067f067f067906810c06 -020601000506820700061006810700 -82060c060106810c06020602000406840700060c060a06820700067f067f067906810c06 -020602000406820700061006810700 -82060c060106810c06010603000406840700060c060a06820700067f067f067906810c06 -020603000306820700061006810700 -82060c060106810c06020602000406840700060c060a06820700067f067f067906810c06 -020602000406820700061006810700 -82060c060106810c06030601000406840700060c060a06820700067f067f067906810c06 -020601000506820700061006810700 -82060c060106810c0604068100060306840700060c060a06820700067f067f067906810c -0602068100060506820700061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c060106810c060a06840700060c060a06820700067f067f067906810c060a068207 -00061006810700 -82060c0601060d07820006070c078100067f067f0679060d078100061006810700 -82060c068106001e007f077f0779070f001106810700 -82060c067f067f067f063c06810700 -82060c067f067f067f063c06810700 -8106077f077f077f073e070000 -7f007f007f004100 - -% -% Compression made this file 3.88% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/wx/grid1.gif b/docs/latex/wx/grid1.gif deleted file mode 100644 index 576fb95ad1d983695049a4421dd921bc2330f862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90841 zcmd^oQD|gWn%=FJW=bYdDi2H81dS}&P8h=mCoBP#B`uQNWE?vWVaUU<4}*gPdDxfU z)qvDiKa^Smn`CyUHw<_mR83Ea^R^Fp$U{JCSBH>zVUZmNc3*;Aum;&Lk#HO2yxht6 z{r@?)?yY<7t$U8DO4Uw-%U7z>sdK*j{oncj|D5yRAOF*TveNpO|F!lzwWsqD{(U6> zeI)<;2tR%FQMcP|x7)wL?|&2hM*fHY;|l+l|L-h*-Hd(*uMyjbX5-7F?bFsdUiSII ztHzqW>d6~;nfb(AE$r%tTjyQ#XRZ1}d-V)96?=}b{q$__;^gY=fG@mSyl1a^@&;b& zpPQ@oZ}r1_7fz`-jb~xn;h*Y_FE&N4(s6&R)HtA6Y)!Fdtr?{Q<6G`I85>g?-yXNLy3hRI9%K z^mPC5=&G?b|J?F#{fjrB+nS3BPj$4We1vkZeQse4Qe^qiAK@1Zv!@5=%|AM=Z7#h$ zdwc7ZWns{F39NXlqVe?SuzG*8h?Zs6lR2#YV7u8q@4WtTs~+t)f9p-4^y1VrD;_Qn zeLC=}BDFr236I`Ub6315ct?#}hsT&`#5=0jwodowj&>T$=L;L(zx~FK{@#Os{%_J| z_!oN@>r|<=Z}D>cW4v^)&R&wfh-hiA9$X0_tM*DioZ@?&YU?KTj}xA_lAFEG41CgC zQMWbM{MvwZzA!ttf4+3*taW&_JvaNemVZ6leB(!H&AR)`=GTibeNlK`ZQ$kNc>tIh zpaR&xg>k@a5k!X^@R@G;-b1oT{O`Y(fQKG$E%kM(P^vRh8Z3n9dz%WH}5yr zqUi82+IsHgv}S!F%xb1%F%ya)Zm3-5onTR^ok;YT|{;bM_0v#0%gIP?~RMH-|m z%$~I(1}XKUgJ}7(6K^-7^XLxju=z)gTTrgKd-cxM;tw`{^x>oE@WIu`dta>I`uwGf zKNTZ;;|xD;LHag%oH^;1)%Q4#Bh*mFwkMvL~8be$?D*Zk++A`U`h|dHiEst$#ar_m>0^ zqJ?2T06JurzI(Y&+x*k3j}Pz>rOi!%rCwi_@Enj2wa5e;|87Q)x4VoYyRBwz>x{v2 z7ojwm2IX2@d$0Ms&|A?0uj$`!3$ENmTZ|NWJJ z-TUbu{P}Ox*54x*$UR^@mm%iw1H`+aFJ%#HwEiisVQ9Si;t8x$R3FUZRg72KAuSSiNZk1LP1vEJeQh(Ol-@mGz)T2*Z``_AfN)(N z&75wwAzb@p7N^L$HO4>7|1JLTS8s2f{^B41)$hOa{H^Cm9xw==7R-`Y;ymCA)8W@= zm>BUQcKF5m*Hn1Q*U68cVX$JEct9hdbqhev9pkErA6DR&p4t50LG&`?pVjx8AH4nM zU$lPrum0{kfBd~+v2@0Ez$~3(ri)pzhx3q3tup^fhI8pM?Ut(N3Vz*Y{Ide(di2&S zAAa$dKYi!VzxRak4`;Y)LL&yszZkC>#$NZ(b2_vx&EnRa8GQHkrcA4NX&Sj79Yc^= zoB9n8y26|0gQ3G{mF9U_xo(|D+#SLY+@=ywHSr2QHCB+rm^8Cu5*a<3u1zb9f23DP z8!p`GwxSIp#-5tID;7bT?U`<^j$F?^ldrX2&@D8ZTc)0+a+8Wi$jpu0!dlec1}0rl zNx?$GC+firTTNuDR|KqH8}Ih;BeyV#*S9?u!cXmXC?;-%@AV@{AJD?88pvby56B?W z1m}Pevea#WXVDT0euu!K^x2eFvH!=+jTJ3`)u)!g0Xsx1wQ~?}A56o$;Mc5*%F%Q) z3({A~J@WF7HhXI-rBE({CDy0D15_U=eZ16Rk^5?gKx`I>-2}7Z8wq$+$Sm&l+O8(@ zYnToxOVD-eXu%92cp_f_OUw`nAFfJrCb+g4#?L~)BgC*^oiDu4_=mr1USl`m*|`nVX8# zQXY=L4sQZ1iS4mMd;=Sh5RUv)l(KiyH5n6`Q%uWR1fv zQEnxxbc1a@gH6R-=NsnCLDqR_$dX!{^P>FY(wh8RGXIaFn!TE{7aR7%xk_i>oT8>; z?4_~)s&uP|U8au6;%E6B*4ZBRI-jl%m?50B#{FKkgJ!Wgb2hCf&H85t%+DxM9v-Zc4C+2OcScO? z8OHqttdsf+yYrX?uo<;~{==SJ9M56F>l}xS`NyN{R;&J^tXy-KD#B)F-zAi85|hQ* zi&}KX!wO5g*v%X5;>Ra@z4gnR1B=pU?_r+3gNU{`3T9c%qaNWCDzg*nCSO>Fcd_b)J zLKL;@xGFJ2oZ-EemX6kTMrej?3Y%29pyLbVjD@L~DKx)(57& zu!~vLwhnc7q8rhhJhPrSY${o`pVg4Ke;gIcn3jjJ`rKlG=p?=UGTb&U|+kiIwv7*Dd& z0F>+U*!W!i%<>xJpBnG+3bA$iPysZ~9qUfuuOYXc9LWuy~}S z&8PZXUzD47uC=qkY-tWQ9tn6%w={DzlBTX{(&=86Hl?b{j4BuDU+g!BJ+<9h zx+B#hx&_q22z%m@`7jGzT{0MZ^=jeL_9_)w3?(TsZpCAy77Wk&@Tfz=_@`D(_%@f) z++YpvyR@+rMyMD&z@jQAM;Z*r>~z?*z1nWXskTUz7PS0{!#zR^0NImTgWck>0rv>C zgZqgOf4e6u*G|zA+nIrK6*N^tO22>(f^oW6*6YKLR}7uwchSLsocI6g?U_$xAZ|Do!wH99V3jQ;u9{l%)+}rSQrPk!^{3;cdw4NF_439os2$_B z9hrfhwo_z=B&lLN2v*EaJKNIHWPmRtya0nrgK(DbfLc;5qFn@5ce~J~0kc?#$=R#6 z9<;@~13?P^BDyc%hL-_4K)BokL|s2h-#}X&2!Jq@{!xlG-XtU=|ZM5Z|28#5x}qx-@dbBR%mcSf;>g ziQniPA?jbL4mn0RYrBQEq+6+8DaKAZU@J92j63SKJETe;AE)8afLfa_**ilval#IvD+vzi@-a{WaLq#usL8>YvoKdDjSoT$-95v~|>S7y{etFSVUdM3!EK%!7><+ z6|7`cdhTcj#Uf;*jT5Z2M<_2Z+sAK%MA+LOq6F|IR!AtqqHviX3 zd-B6l@~a7^^yNDTd&NBecvAW%b29^GN#>?F50CI}uv-;+b;SK@nO%vx;iG($*12x@ zusb^9vK_De4X>w6p3Ckt=k_@L;%ZG5tPXS}e21fDGB?FS(}>DPXnJZ#sJ&Xh;{+=n zwxzctqt3P^NR$F^Kpx-Ti5;7UlFZH8Zi&z|+j`?%xW|PnJl(tg)Ves?Aw_(_x=@VA z2iDaYgiBp`ByLzNLbI3M#Oq7x-$EobccE1X*4fN?DIJPzN2`?UyCoaX`)0^q3C1G< zOZW9Tjx;0{-=JKq7EzXm=QjGN9Ywl^ms5x67=RCqaK39E?&Y`Ocka(DSSm|S=Xxb1 zHCvi11FvS3Z>wYTP#CGiKd{Zdca(`VYuq;9MvuB&UX`YB4xzu$inCKZ!vO}SdR0GF zdG%Wz?F=)+*g0E3x$+|n0-nvgnlc67ScgP1H|ae5B4Q%(F(h`XL%9xkt|b9WPq=8u zaSvbETwIcAGJV-RRKB8(&1p8 z?6~MKO0f1Wjv2i(;L*g*Mk)>8SV?785b#E{L*z~Hau4TPcpivoose$(dMvMN(c<7l z;rF3j-e93yY`}|Iu$?uo~v2?97co_dFEK&I;Kd# z#$$Q-9ry*&!m+&k;VCFr09YrS9elyMrx;fQD-P-wp6NEXtQ8)hT&Nb2$-`qcs}I&W zr$b<}cn{~x$RaR{x(*?;%*vmgT3iVM>k6}jCs;ANjuw1)N#x)K5&jGylB2}JBHTkBpn{Tyae{TR{=UKiN9#aVt}|(PS*b8!VJYFb9?had zixJT2?V)yu9?ScDhSDEh)aK531$g>sJ-$NxBWTGRc!A^1kD!^d=g{sNkTXqL;0v2d zl6FRw`9+>4UD~T}7hluF4YmWsuSw=6v$a51vrMKf5^CvKE8oKz33z?%P)4X2`+;?G zt zi{MCYW_hq^l|Z*sD?I&mr`R#Vjh|~5P!Ig)nz<#yqJZi#*rNxMbWBHH8%sd^i$2;6w;v{^fN=^UMV}4lrOON zuro%{QaZdYJ{NuXP1$o(yt4q?;VJXfdY@iFxT-QMHtmC@00Vu`38}G1OF&?cC&jBYwvku|X=x_nTg<=u9fzm0Z ztlZ*-mVA>e`2Fl%d}n&%`O3}GpS}C4>fZ#jW7Yj`czvHHvGk`>EkZIkHsFaeyR_8j z^07mT7Tw0TUQL7b_PZA!7U2HXlMfVQZ!=`F)Hgdu=}X^3rBRvEysp&3yuK;bBAB@` zU@c&`xTH}bZuA{y{Fwza>;RZoPrga_>Z=pM#D)7eLc_CFZ!@IDoW|Di=FM==(sDC` z)Pd$O|L@fWMY5Ff&jpk#ZHMVf^9^K7T_a@Iq^ZaDD(!dg@ZE2I0K$Ls6By*L-hTJh z4}r-mXzHz3POd(Ci$cSzpS}6jldI46#7O5KYEzKDbX)q%H1JtEtd3E%bcBq5=rLY0 z{^6FJ{=pk;mP8iSFbf~)1%M?BejhB}d-de%C-1&`5`WMG(>^%c16uzJ$b4}2)>n*w z<>~@<_?B4d{9^$b==gxOcM+5w&mr3i%)^*#{)A@6b?VacOa#&eE2I;>k4)V>jRa*ECBP9H@{l{Gny(O0<-WVp(I$E zxf#G6Bq%n+@a$NcS@EzDGIOIoJd_L7A~FYWAoG@5hz@J$FUIAUJKDhr$sHik;|r~g z%o2{Re=E9<7cvXYf427=!IIg*8!Sh5Omls{CS5#2D3=L%4o>%Z<{F2a?AB78S4e?{ z4Uhg{$%5ZE82`yP;yZi>QVFxjvGs3_t{a7iaLqrK5APHWFlHADjipB1OaioudSH{%5BY_DlbwV;$B;~xlDvT1o{2^(z0$Iui;w+dJi@Mglpum!)# zWygfBjycSQJL4aE5vZ)IiJQT5H{8-}5MxhXz)6ILx^wZwLcg=TEov1=BslFW_x@XXvSu9Y3U5smeg(lKYp z;6wF!@1PDpw&gJXDW-!$nb9oK1m6X}SZ525^cZbj z?;(jiU^_+KN_$$Sfi&*=XIV4E@1R^JI)rlFM*PDRy&eaWtMsCUtaaG+51a7O*h!`X zi+kS=(_PUS6K zN5&o7kO4jdKnYn=48!cjVpTiN|d_ z|HCRkb+B6JL3_t^b4x|Ebmdxnc$2wF`|xS7a9Sz=tibK?KQ!O$1J;pd$8?#)=`9P5 z3c~?;cL*Icb3?aOGdCq=X?jDNQjRU&Q{A<_LQ=t(S=bJ*oEETTKmSlWBpDkI4b9!5 z#r47B%C*fqFmqE_1cc< z;Fy?&p+hQ7zysmJL9=vO8f?-{pJ7D&;{*!|TPEJU%)-9irsR09Z%cG6P?mS#gQ+yqCn%2Rza*nVZyh0Nwwldzd71 zQ__?>X{T9Ped`Te=L;*V|=7=04>@ffZ^E)yntF*f58T;OV4T%%9&X~DTA0EoZ zY7ximsC6D{=}LRDat*}%2p_cIw~9W{42eXIqQ$F51ZIhlHKY%>pn`uL#VN z$r)e~m^uYs3di9E3!<1OYa~CmcO0!&Ln|08D3<{X9-$VCNR_3*&eA?u5Rw3}zBP-g zeqhBXe*?74eM);;`n$AS%3CR5;pP7XWyge(73Z)ebLQY^W?qjR6qlvpmK#4aB;Unt zjQ!9;q>1kjX8!W~@zF;A9Q@vNB|3hQeL9k5XMv7Kx=BA`t#BPF?N4IuDz`D@PO)5Gx zEXqWO8D;@q**lgSp#U?)g|}W`pAQ8il+29;Jj~pnS_FMVaEZ=?-e08_er!%|!A~+b zzF?gSkHu#*USAU74?&CkC#pl~z|4(ChnQkmEkY9WuCoJ8Oh5wQzSWB)(6lqFZ3>^W zZio|iyI5{l2a9Hy%&CCtM0VT_|+)}qm|2oM#EIEorBxcB4D2bb*0m?Fm3$1GV;Ri<; zmL22Xv2lWRQvaW-Pp}Ge5mxI}9gw;42Wyhs;dh(^R0*$Gv})K0HFHB**33=1T7;Pxt(1m6OFeACPiEk< zh%R=`VQYgXT|jt6uySgp?}td{M&>Zd+>{oJu*W=0?qNP=t-9bhP_(K-dQ8{hr+qU%~%NO%`FK-CHR#q*dnXMK9|~Qu;v)egWArdVN8g#{{;D6TUff z08dNL9HfgjV?9b@M-%Y0L%<5(4lmN@mo4z!Jm$$PqL~SX|-Cv5gLA z0+^NF4$pwM;ypC!G4F(r61m7(4)z_yi;#Jzq*w&fy@;nRSlbO2Z4ntV>Hz6;`|z1= zLAm_zp|e^9zrDPvpuJ<&Z{fuW6E~WqIXI1T)gqu=eYCJkHG@_qu%KM!BQ&>Q0C!;Q z%`7Ey#a=mZm!efeMhN9HDJ>}1i+s)jGvd~H$ULP+&K!75JZ9c882j8q&JKQ>CDS1> zPVqgYXjR&H(rrPs&Gi)n59JzQDajH5yl~9X)TZ5! zmlTUgn3Xm|rqY%+2RY_#eeHp*fVu@Wj9@T_tm z#UpfsHOcIl2UxOjtr;y%+%)?E&yhTqsGkoWf3*ljo3Lk*%Q)@nzNE=SgtePD!%EMnLcV1<6K%U5E z=dhq|$v!hlEi-e&Y7xcv&}42L`d1>QVGDlMvSXCKjFt{fk2#!&s-h(mV_C6?z8MM~ z!iz=l4piwCq|X3fH9eLAOQztg?NBzoO}e;BZ%MI;0kA@fMZ{3}j?BoF&`Q7xtriiw zm1dBn#5kYf1n%X2OClT!mVFuqK)vlm2B%S_D@7SkD|3Rg2Ii z4YNENTrI+rS+E_&cvy5OhL&{Ah17biXAUIb(acS@T7)cV*tKL=wTKdh zH;z`=f?r^E4ALiK9o{W`&X@2=+G*xSW>#iy4l>0eGGHBr7mF|?sC*0i#Uf;dx4MUG zGB;xbOZMET8{#My0Vl{Z3yxNBu?V@}I^T=eS0SY9;70oAFf?;BKCqa%F+N+qSVR^q zcd-Zwc(Vb|fYTPV;0NXM2P-f;HmH9kZb+_JM2yT$!Cso+Y7rh257mL)pI~-Osc+_c zNM8wBrPU(RcF4^W@bycZa?>Gf!EaRAF-V`gTY6inIS=+8?p+S876F{hww$Rb77>@t z7GtOuF%S;ibg_tnqE%J*!^3h@gb&J&rJS}@Q$`a8VyBT8i%7ga>(T@*_^ndDO0zVs zkWMik7~#OYVH1mH;zlzordR}z9Atb4R&JqRKdEXFDl||oZ?FQhV=mlvwju7u z>ofY7s}@o6lvd5$__{Pf3w~kS;W;~$dNg2`dVOX3XVW3Bw(`{?GSo_#1$s&5#uqG8 zWUPW$%GumbVIJ8rUFOhkRZEY-%zdXr^)x_ud+?#LrYqOSDc=Fd;EWm4KqpizLZmNj zKYUnrjM_9*;f?;u%C)4l^2H*|nOL)jDYRGwygpBAL9{xmuXeJiMu*j5cBqX8GfP*l zHUF0{7LjHaq}~>bfb{uvD`>%QN0inNtibG8b!H)Zfg=a820W6v$yAHLipEN6(PC89 zB7nqD{p0N53szuuEK{^f?otUIpj;+8gmPu8MWBLgWcLzsg$MBu14cg1&H zCp%_}R-vo@e#o#9x~fIkfTwk1#UeUsW>NY?bA|#hnHxK`jsdKbn8oq%8pe4D^7BWlc^TrqYmtT_Th;%mMW7)(Xmj?3=9gfwh%0@AqP3fX)%A)N?V|P==>+?vDi8*+8%T|l{gjIO>fR^bf77+`` zmC>@m8;}#F37ITZ$ej1kWNy;MB6c+)Z@kj~m1p$xHJW-mk1-}Vq#~vHBi@Z`{o0-CFv51(b zrQVn491J)Q_>qZcY@XOWadyZxH8i9P%8t1O-X3Hd(7)1Z5jq_juyp0RqVHhAn&@`; zvh0}I+!CztYCE}V5hCfC;z`0W>@=CKViDr?4J3TZ(_`T4HNo1;6^q~zspR?R_VM6) zc8Z6k3ie&5wgb?F9pQl4@M?GX#?vZA0 zs`!7Y34emwF_GLM)1jTD%Zfz^WAI{*(!~?57QuPl&vwGHWAL%6fTcyNN~%SeiP0WB zyl%CKirtdwP?HLNV0mW8V)uM#9Mpm7(9Y5&)goyB3AG?vgViD`B@1?{g<&Z(WJ;^! z&#WsHt@2Ed@k@N}VYXUCu2@6{tce$kp!A7k6o!X*H>0Hj@&NEc7GIVc2Qt@GX|afz z(H4uaUSDQ}GMZesMp7-JJn`z!Ec``Tv54-zE?gVmK@vAdK>mD`QEDA*VQcr8-)gp9m&NB!$`7YB7LJ0EesA#Y37D0EmJMxIPo1= z2_az?eC*2ru%yhVH&_MR;VFHkZH>5E1g$j9tTWBrNdC_hi_kL%;+D#mn|{EvWFAoI zv>mm7vS^Vl{EJ zYQ2T14;D757EED%zdLq}Fl@mO$`vrepzK((DqX>LN{U55xZ-G*;8E+bd1Cz4A`;*y znH^ISxH9_rqE#i;B1kRW8Lo#mBy&?_JN!;39Xe{8i$3>oT-h<}^_A;iQ976-EUOkV zYaR-&+j3Yf!W*pd7K<=mpY7J_pwblHLqjOPdk8vASFwm#^>t#^BGjp>zOrUAH}Fcw zQY->qUuwm#dbcK-9rNgwZ?OpR`m%n=kXgEujepe$hMKe_6+BakVNV+J0qY`W=0*b^ zQ!OGD@R;dPC&tlKixAZx3Rd8Dc>nAerLThXkj!DZY7tD)NBtUR@*`ie$MWb|gyi9Q zFOug_qz}u;P0B5nC;neQW*xYN{1Ja^o5C61adxZmS`td%$5ZG~=5ru-)VG~=K3dny z45g`{1;1oFJd0LUp2K#~!O=#CcHU7>X!6A(sury>Ap3w7SWC5{I`E!dzgR>(7#f*K*Oa}z&gM5nXhw_*M{H=!> zk|JT*u`F1|>nk$pkynct6q*Tchj(Si%$8+^%WQo ziJTiDe>Wnqn7J`)hsfOA?xD;lGdH#@*Fy9pHA`#e#&_N^M-B=GxOX7|@4!9e!$U$w z7?d5;sju3EUtTPtX3EBjOH;8}1iij=&>FPhH_7Z630V!S@?sI6Nc{tNed+*Cs9J>B zj=?yCyBJzlmJKls;lr|HL%@RcrQ)!%Y7wnW0ff+M5g1bCSsJ%lgr>tWWJx*{tcuyO z(xO#G)1m2>Jm)}{!}8T4@PPMJXpvNl@RQQ9Z--A6t$L^+XXqf7<_rAbbg1_bt?==* zl84V1i#S64gCq`XolmM*gyi~y_QUTeH`BH=Qm~}Vr&+Yf6^r20rESp4n6)c}EW*9O zb~^RXWBt3TS}HaNx6)% zTW(USJYr^H%MF>OTbd7gt+}I}22M*^x3nIm(b77fIqztg|F^2d@XKNB1TZVOScEQf zRP!ZoYoZ8lsd+$U$AXoyLkd1JH{M|B11i1D5b!Qut5}3cUxBzF}=? z=Ef%-3}RdcWygF{iMe7CYML2^*NCyCSVUYR%V7(C6U>ec^Gel^Qz^|Ai;$Fj9L>r9 z@v>nru(jT#(QTI6hUIp{S9$V0G3o2);m6%nTsT5J)_tH_1e~Xw@rdm#>Yf|VS$cxo z;bjJP3B2|Cs_9>ecT}-jglx-^%#9~lfeU^^w!>SmZ&3fBTrRYXi+pXcPOhe-ScK;K z()u?nJ?5Ol!m?w|rV4O3Wj^6(X_?Qpj8`hEuN%I2SgJC!)aw(I?ocSJ`G2WxITOr| z4Ry3q6TT*H=#`chi->_+W4AI|ykAEDc0#~1g$yb=TB&;&lpP!H(OjL0^wFh}JvZXR zGjp@H%lOAGOV=aJgoax9-F2!($PF448h~0LG{o3nXoSa=qH;=~H{ls+AakPu4>C8k zUGsoST`Z68G@?FOmzio2)K2w7cva#`PG&niqz}Lg$kn!qZHG@6t*V|{3CfO1&+$@4XiADjfLV)auT(NOzF^ty@NsoJWcNG1 zq9wK-mK~#YR0FHLSj4ReSybwnIJntj5pik`ldp4AYoZTN?2Oe6Il!b?L~PC+^qyGj zBek>uwuS>xE^lgqCqWB-t9l3Akp->ZMTebAQtH+$cIt+J z#p;NDW+?h6Nd-T!ve_}Sr8&r?aWjg5CzT}euyChw>->qXT&wTEGY57nAuRG{i$zGT zZy4|4^Lf%1-92DZtM)P!7 zEn-&84i?=*P7nFEhJj_ue2xz+Y#=fzEih|i_H?y=Y{7yr7DXwrh82sT*XJ5x(1PEp zv#H011Vs~mSaz&3voOFUI-KiDu{<1>GF~Z{Inrn${wbqF0a$_M;U~Cv3>|lwA*9d2 zQuy#1@PJyIvgan{!_zGJu5QaI-lfV}s)!Cj3w~qBj#VmJRiX|$!n-y)Y_8Pzp%f9 z6s^*%f^YmAlpQOK@CCN48`9Z1tsxB$z1oLz%|9e|{Fkk8BfmcB;Tz+ z)D_-A{gYc@wibZbcBfquw7T0envj*!8)yo`wZSk4%+g{JR6XasGam=JG(ih~JK(D? zvrI(}XN0fj733@@s;rw^kfmvGQy`Sjplg!-r&}44hCM_U4M`$n}7FlQm)(yGq zY)X2Lm%L`l6h@3az>3}Tp>sO4=@9tvDo~)-fhqHu@g4ev@3MJcu)?at2W7`%o=D3o zjo|CgQoSv%rk*NTEiemSYG>xm%`Aw~#EV5R;4O*=c;|8x&o!$>kefs3aH{M2bude} z+!Qbi%6;wa@bLO_BP^hU_~xEq1!l)wxEJ&a@sG}7+h7(COEr&;X~HYT6bVJMQ<$Sz zgchyB*OkdKl&e5#M15U^pJ;Zh`YpsLmkyg-b1(Ac=%5?lMIK&llRo^|t3?#u!%1ex zQhZ0zD!uiE`nOJZN^1#1xh_-G+LjEeP^+;qw|uy?g%_Z@Jo~)8dY?b?cboDCUj%sm zuBjhBY~DA2cG$dauO`)0JeqF(90byhM>9z*4HIl4{%H|j+RoywB;ox!ssl}hE2)nq z>dV7~x|O&zaJ2f-A>*HO&`U#UZnVV4OP~l}e@tL;g%@|uB#)AN$nWfTOFn`Z?N&-l zCj?e2?P#&P>=33yJm%o&sqNL$okax;zJ6t}aGJxkrLErF2<@i5QQ-d6KmpUz)*d8ZZ z|DBr-jn|jrgNqJOb4-2o;mJ8%ak60MW;^9+0Xunj=6R+K@wsOJEaUZ!O0+O)G-Z~^ zE}`ZLSf`S?p{FIkgQLZKDn)Bkki8kO)a$!h{ZraNXqrMB z#4PdpM%2~_yH(nhO~VUqtj{Js{DGtwm@K%%E6F>MfrSGU>HCf - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellAttr::wxGridCellAttr}\label{wxgridcellattrwxgridcellattr} - -\func{}{wxGridCellAttr}{\void} - -Default constructor. - -\func{}{wxGridCellAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack}, \param{const wxFont\& }{font}, \param{int }{hAlign}, \param{int }{vAlign}} - -Constructor specifying some of the often used attributes. - - -\membersection{wxGridCellAttr::Clone}\label{wxgridcellattrclone} - -\constfunc{wxGridCellAttr*}{Clone}{\void} - -Creates a new copy of this object. - - -\membersection{wxGridCellAttr::IncRef}\label{wxgridcellattrincref} - -\func{void}{IncRef}{\void} - -This class is ref counted: it is created with ref count of 1, so -calling DecRef() once will delete it. Calling IncRef() allows to lock -it until the matching DecRef() is called - - -\membersection{wxGridCellAttr::DecRef}\label{wxgridcellattrdecref} - -\func{void}{DecRef}{\void} - -\membersection{wxGridCellAttr::SetTextColour}\label{wxgridcellattrsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colText}} - -Sets the text colour. - - -\membersection{wxGridCellAttr::SetBackgroundColour}\label{wxgridcellattrsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}} - -Sets the background colour. - - -\membersection{wxGridCellAttr::SetFont}\label{wxgridcellattrsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font. - - -\membersection{wxGridCellAttr::SetAlignment}\label{wxgridcellattrsetalignment} - -\func{void}{SetAlignment}{\param{int }{hAlign}, \param{int }{vAlign}} - -Sets the alignment. \arg{hAlign} can be one of \texttt{wxALIGN\_LEFT}, -\texttt{wxALIGN\_CENTRE} or \texttt{wxALIGN\_RIGHT} and \arg{vAlign} can be one -of \texttt{wxALIGN\_TOP}, \texttt{wxALIGN\_CENTRE} or \texttt{wxALIGN\_BOTTOM}. - - -\membersection{wxGridCellAttr::SetReadOnly}\label{wxgridcellattrsetreadonly} - -\func{void}{SetReadOnly}{\param{bool }{isReadOnly = true}} - - -\membersection{wxGridCellAttr::SetRenderer}\label{wxgridcellattrsetrenderer} - -\func{void}{SetRenderer}{\param{wxGridCellRenderer* }{renderer}} - -takes ownership of the pointer - - -\membersection{wxGridCellAttr::SetEditor}\label{wxgridcellattrseteditor} - -\func{void}{SetEditor}{\param{wxGridCellEditor* }{editor}} - - -\membersection{wxGridCellAttr::HasTextColour}\label{wxgridcellattrhastextcolour} - -\constfunc{bool}{HasTextColour}{\void} - -accessors - - -\membersection{wxGridCellAttr::HasBackgroundColour}\label{wxgridcellattrhasbackgroundcolour} - -\constfunc{bool}{HasBackgroundColour}{\void} - - -\membersection{wxGridCellAttr::HasFont}\label{wxgridcellattrhasfont} - -\constfunc{bool}{HasFont}{\void} - - -\membersection{wxGridCellAttr::HasAlignment}\label{wxgridcellattrhasalignment} - -\constfunc{bool}{HasAlignment}{\void} - - -\membersection{wxGridCellAttr::HasRenderer}\label{wxgridcellattrhasrenderer} - -\constfunc{bool}{HasRenderer}{\void} - - -\membersection{wxGridCellAttr::HasEditor}\label{wxgridcellattrhaseditor} - -\constfunc{bool}{HasEditor}{\void} - - -\membersection{wxGridCellAttr::GetTextColour}\label{wxgridcellattrgettextcolour} - -\constfunc{const wxColour\&}{GetTextColour}{\void} - - -\membersection{wxGridCellAttr::GetBackgroundColour}\label{wxgridcellattrgetbackgroundcolour} - -\constfunc{const wxColour\&}{GetBackgroundColour}{\void} - - -\membersection{wxGridCellAttr::GetFont}\label{wxgridcellattrgetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - - -\membersection{wxGridCellAttr::GetAlignment}\label{wxgridcellattrgetalignment} - -\constfunc{void}{GetAlignment}{\param{int* }{hAlign}, \param{int* }{vAlign}} - -\perlnote{This method takes no parameters and -returns a 2-element list {\tt ( hAlign, vAlign )}.} - -See \helpref{SetAlignment}{wxgridcellattrsetalignment} for the returned values. - - -\membersection{wxGridCellAttr::GetRenderer}\label{wxgridcellattrgetrenderer} - -\constfunc{wxGridCellRenderer*}{GetRenderer}{\param{wxGrid* }{grid}, \param{int }{row}, \param{int }{col}} - - -\membersection{wxGridCellAttr::GetEditor}\label{wxgridcellattrgeteditor} - -\constfunc{wxGridCellEditor*}{GetEditor}{\param{wxGrid* }{grid}, \param{int }{row}, \param{int }{col}} - - -\membersection{wxGridCellAttr::IsReadOnly}\label{wxgridcellattrisreadonly} - -\constfunc{bool}{IsReadOnly}{\void} - - -\membersection{wxGridCellAttr::SetDefAttr}\label{wxgridcellattrsetdefattr} - -\func{void}{SetDefAttr}{\param{wxGridCellAttr* }{defAttr}} - diff --git a/docs/latex/wx/gridbagsizer.tex b/docs/latex/wx/gridbagsizer.tex deleted file mode 100644 index e6a58b00ea..0000000000 --- a/docs/latex/wx/gridbagsizer.tex +++ /dev/null @@ -1,166 +0,0 @@ - -\section{\class{wxGridBagSizer}}\label{wxgridbagsizer} - -A \helpref{wxSizer}{wxsizer} that can lay out items in a virtual grid -like a \helpref{wxFlexGridSizer}{wxflexgridsizer} but in this case -explicit positioning of the items is allowed using -\helpref{wxGBPosition}{wxgbposition}, and items can optionally span -more than one row and/or column using \helpref{wxGBSpan}{wxgbspan}. - -\wxheading{Derived from} - -\helpref{wxFlexGridSizer}{wxflexgridsizer}\\ -\helpref{wxGridSizer}{wxgridsizer}\\ -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridBagSizer::wxGridBagSizer}\label{wxgridbagsizerwxgridbagsizer} - -\func{}{wxGridBagSizer}{\param{int }{vgap = 0}, \param{int }{hgap = 0}} - -Constructor, with optional parameters to specify the gap between the -rows and columns. - -\membersection{wxGridBagSizer::Add}\label{wxgridbagsizeradd} - -\func{wxSizerItem*}{Add}{\param{wxWindow* }{window}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span = wxDefaultSpan}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Add}{\param{wxSizer* }{sizer}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span = wxDefaultSpan}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Add}{\param{int }{width}, \param{int }{height}, \param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span = wxDefaultSpan}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Add}{\param{wxGBSizerItem* }{item}} - -The Add methods return a valid pointer if the item was successfully placed at the -given position, NULL if something was already there. - -\membersection{wxGridBagSizer::CalcMin}\label{wxgridbagsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - -Called when the managed size of the sizer is needed or when layout -needs done. - -\membersection{wxGridBagSizer::CheckForIntersection}\label{wxgridbagsizercheckforintersection} - -\func{bool}{CheckForIntersection}{\param{wxGBSizerItem* }{item}, \param{wxGBSizerItem* }{excludeItem = NULL}} - -\func{bool}{CheckForIntersection}{\param{const wxGBPosition\& }{pos}, \param{const wxGBSpan\& }{span}, \param{wxGBSizerItem* }{excludeItem = NULL}} - -Look at all items and see if any intersect (or would overlap) the given -item. Returns true if so, false if there would be no overlap. If an -excludeItem is given then it will not be checked for intersection, for -example it may be the item we are checking the position of. - -\membersection{wxGridBagSizer::FindItem}\label{wxgridbagsizerfinditem} - -\func{wxGBSizerItem*}{FindItem}{\param{wxWindow* }{window}} - -\func{wxGBSizerItem*}{FindItem}{\param{wxSizer* }{sizer}} - -Find the sizer item for the given window or subsizer, returns NULL if -not found. (non-recursive) - -\membersection{wxGridBagSizer::FindItemAtPoint}\label{wxgridbagsizerfinditematpoint} - -\func{wxGBSizerItem*}{FindItemAtPoint}{\param{const wxPoint\& }{pt}} - -Return the sizer item located at the point given in pt, or NULL if -there is no item at that point. The (x,y) coordinates in pt correspond -to the client coordinates of the window using the sizer for -layout. (non-recursive) - -\membersection{wxGridBagSizer::FindItemAtPosition}\label{wxgridbagsizerfinditematposition} - -\func{wxGBSizerItem*}{FindItemAtPosition}{\param{const wxGBPosition\& }{pos}} - -Return the sizer item for the given grid cell, or NULL if there is no -item at that position. (non-recursive) - -\membersection{wxGridBagSizer::FindItemWithData}\label{wxgridbagsizerfinditemwithdata} - -\func{wxGBSizerItem*}{FindItemWithData}{\param{const wxObject* }{userData}} - -Return the sizer item that has a matching user data (it only compares -pointer values) or NULL if not found. (non-recursive) - -\membersection{wxGridBagSizer::GetCellSize}\label{wxgridbagsizergetcellsize} - -\constfunc{wxSize}{GetCellSize}{\param{int }{row}, \param{int }{col}} - -Get the size of the specified cell, including hgap and vgap. Only -valid after a Layout. - -\membersection{wxGridBagSizer::GetEmptyCellSize}\label{wxgridbagsizergetemptycellsize} - -\constfunc{wxSize}{GetEmptyCellSize}{\void} - -Get the size used for cells in the grid with no item. - -\membersection{wxGridBagSizer::GetItemPosition}\label{wxgridbagsizergetitemposition} - -\func{wxGBPosition}{GetItemPosition}{\param{wxWindow* }{window}} - -\func{wxGBPosition}{GetItemPosition}{\param{wxSizer* }{sizer}} - -\func{wxGBPosition}{GetItemPosition}{\param{size\_t }{index}} - -Get the grid position of the specified item. - -\membersection{wxGridBagSizer::GetItemSpan}\label{wxgridbagsizergetitemspan} - -\func{wxGBSpan}{GetItemSpan}{\param{wxWindow* }{window}} - -\func{wxGBSpan}{GetItemSpan}{\param{wxSizer* }{sizer}} - -\func{wxGBSpan}{GetItemSpan}{\param{size\_t }{index}} - -Get the row/col spanning of the specified item - -\membersection{wxGridBagSizer::RecalcSizes}\label{wxgridbagsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - -Called when the managed size of the sizer is needed or when layout -needs done. - -\membersection{wxGridBagSizer::SetEmptyCellSize}\label{wxgridbagsizersetemptycellsize} - -\func{void}{SetEmptyCellSize}{\param{const wxSize\& }{sz}} - -Set the size used for cells in the grid with no item. - -\membersection{wxGridBagSizer::SetItemPosition}\label{wxgridbagsizersetitemposition} - -\func{bool}{SetItemPosition}{\param{wxWindow* }{window}, \param{const wxGBPosition\& }{pos}} - -\func{bool}{SetItemPosition}{\param{wxSizer* }{sizer}, \param{const wxGBPosition\& }{pos}} - -\func{bool}{SetItemPosition}{\param{size\_t }{index}, \param{const wxGBPosition\& }{pos}} - -Set the grid position of the specified item. Returns true on success. -If the move is not allowed (because an item is already there) then -false is returned. - -\membersection{wxGridBagSizer::SetItemSpan}\label{wxgridbagsizersetitemspan} - -\func{bool}{SetItemSpan}{\param{wxWindow* }{window}, \param{const wxGBSpan\& }{span}} - -\func{bool}{SetItemSpan}{\param{wxSizer* }{sizer}, \param{const wxGBSpan\& }{span}} - -\func{bool}{SetItemSpan}{\param{size\_t }{index}, \param{const wxGBSpan\& }{span}} - -Set the row/col spanning of the specified item. Returns true on -success. If the move is not allowed (because an item is already there) -then false is returned. - diff --git a/docs/latex/wx/gridedit.tex b/docs/latex/wx/gridedit.tex deleted file mode 100644 index 252f50208d..0000000000 --- a/docs/latex/wx/gridedit.tex +++ /dev/null @@ -1,372 +0,0 @@ -% -% automatically generated by HelpGen from -% grid.h at 11/May/00 18:30:18 -% - -\section{\class{wxGridCellBoolEditor}}\label{wxgridcellbooleditor} - -The editor for boolean data. - -\wxheading{Derived from} - -\helpref{wxGridCellEditor}{wxgridcelleditor} - -\wxheading{See also} - -\helpref{wxGridCellEditor}{wxgridcelleditor},\rtfsp -\helpref{wxGridCellFloatEditor}{wxgridcellfloateditor},\rtfsp -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor},\rtfsp -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor},\rtfsp -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGridCellBoolEditor::wxGridCellBoolEditor}\label{wxgridcellbooleditorconstr} - -\func{}{wxGridCellBoolEditor}{} - -Default constructor. - - -\membersection{wxGridCellBoolEditor::IsTrueValue}\label{wxgridcellbooleditoristruevalue} - -\func{static bool}{IsTrueValue}{\param{const wxString\& }{value}} - -Returns \true if the given \arg{value} is equal to the string representation of -the truth value we currently use (see -\helpref{UseStringValues}{wxgridcellbooleditorusestringvalues}). - - -\membersection{wxGridCellBoolEditor::UseStringValues}\label{wxgridcellbooleditorusestringvalues} - -\func{static void}{UseStringValues}{\param{const wxString\& }{valueTrue = \_T("1")}, \param{const wxString\& }{valueFalse = \_T("")}} - -This method allows to customize the values returned by GetValue() method for -the cell using this editor. By default, the default values of the arguments are -used, i.e. \texttt{"1"} is returned if the cell is checked and an empty string -otherwise, using this method allows to change this. - - -\section{\class{wxGridCellChoiceEditor}}\label{wxgridcellchoiceeditor} - -The editor for string data allowing to choose from a list of strings. - -\wxheading{Derived from} - -\helpref{wxGridCellEditor}{wxgridcelleditor} - -\wxheading{See also} - -\helpref{wxGridCellEditor}{wxgridcelleditor},\rtfsp -\helpref{wxGridCellFloatEditor}{wxgridcellfloateditor},\rtfsp -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor},\rtfsp -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor},\rtfsp -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGridCellChoiceEditor::wxGridCellChoiceEditor}\label{wxgridcellchoiceeditorconstr} - -\func{}{wxGridCellChoiceEditor}{\param{size\_t }{count = 0}, \param{const wxString }{choices[] = NULL}, \param{bool }{allowOthers = false}} - -\func{}{wxGridCellChoiceEditor}{\param{const wxArrayString\& }{choices}, \param{bool }{allowOthers = false}} - -\docparam{count}{Number of strings from which the user can choose.} -\docparam{choices}{An array of strings from which the user can choose.} -\docparam{allowOthers}{If allowOthers is true, the user can type a string not in choices array.} - - -\membersection{wxGridCellChoiceEditor::SetParameters}\label{wxgridcellchoiceeditorsetparameters} - -\func{void}{SetParameters}{\param{const wxString\& }{params}} - -Parameters string format is "item1[,item2[...,itemN]]" - -\section{\class{wxGridCellEditor}}\label{wxgridcelleditor} - -This class is responsible for providing and manipulating -the in-place edit controls for the grid. Instances of wxGridCellEditor -(actually, instances of derived classes since it is an abstract class) can be -associated with the cell attributes for individual cells, rows, columns, or -even for the entire grid. - -\wxheading{Derived from} - -wxGridCellWorker - -\wxheading{See also} - -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor},\rtfsp -\helpref{wxGridCellFloatEditor}{wxgridcellfloateditor},\rtfsp -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor},\rtfsp -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor},\rtfsp -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellEditor::wxGridCellEditor}\label{wxgridcelleditorwxgridcelleditor} - -\func{}{wxGridCellEditor}{\void} - -\membersection{wxGridCellEditor::IsCreated}\label{wxgridcelleditoriscreated} - -\func{bool}{IsCreated}{\void} - -\membersection{wxGridCellEditor::Create}\label{wxgridcelleditorcreate} - -\func{void}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{wxEvtHandler* }{evtHandler}} - -Creates the actual edit control. - -\membersection{wxGridCellEditor::SetSize}\label{wxgridcelleditorsetsize} - -\func{void}{SetSize}{\param{const wxRect\& }{rect}} - -Size and position the edit control. - -\membersection{wxGridCellEditor::Show}\label{wxgridcelleditorshow} - -\func{void}{Show}{\param{bool }{show}, \param{wxGridCellAttr* }{attr = NULL}} - -Show or hide the edit control, use the specified attributes to set -colours/fonts for it. - -\membersection{wxGridCellEditor::PaintBackground}\label{wxgridcelleditorpaintbackground} - -\func{void}{PaintBackground}{\param{const wxRect\& }{rectCell}, \param{wxGridCellAttr* }{attr}} - -Draws the part of the cell not occupied by the control: the base class -version just fills it with background colour from the attribute. - -\membersection{wxGridCellEditor::BeginEdit}\label{wxgridcelleditorbeginedit} - -\func{void}{BeginEdit}{\param{int }{row}, \param{int }{col}, \param{wxGrid* }{grid}} - -Fetch the value from the table and prepare the edit control -to begin editing. Set the focus to the edit control. - -\membersection{wxGridCellEditor::EndEdit}\label{wxgridcelleditorendedit} - -\func{bool}{EndEdit}{\param{int }{row}, \param{int }{col}, \param{wxGrid* }{grid}} - -Complete the editing of the current cell. Returns true if the value has -changed. If necessary, the control may be destroyed. - -\membersection{wxGridCellEditor::Reset}\label{wxgridcelleditorreset} - -\func{void}{Reset}{\void} - -Reset the value in the control back to its starting value. - -\membersection{wxGridCellEditor::StartingKey}\label{wxgridcelleditorstartingkey} - -\func{void}{StartingKey}{\param{wxKeyEvent\& }{event}} - -If the editor is enabled by pressing keys on the grid, -this will be called to let the editor do something about -that first key if desired. - -\membersection{wxGridCellEditor::StartingClick}\label{wxgridcelleditorstartingclick} - -\func{void}{StartingClick}{\void} - -If the editor is enabled by clicking on the cell, this method will be -called. - -\membersection{wxGridCellEditor::HandleReturn}\label{wxgridcelleditorhandlereturn} - -\func{void}{HandleReturn}{\param{wxKeyEvent\& }{event}} - -Some types of controls on some platforms may need some help -with the Return key. - -\membersection{wxGridCellEditor::Destroy}\label{wxgridcelleditordestroy} - -\func{void}{Destroy}{\void} - -Final cleanup. - -\membersection{wxGridCellEditor::Clone}\label{wxgridcelleditorclone} - -\constfunc{wxGridCellEditor*}{Clone}{\void} - -Create a new object which is the copy of this one. - -\membersection{wxGridCellEditor::\destruct{wxGridCellEditor}}\label{wxgridcelleditordtor} - -\func{}{\destruct{wxGridCellEditor}}{\void} - -The dtor is private because only DecRef() can delete us. - - -\section{\class{wxGridCellFloatEditor}}\label{wxgridcellfloateditor} - -The editor for floating point numbers data. - -\wxheading{Derived from} - -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor}\\ -\helpref{wxGridCellEditor}{wxgridcelleditor} - -\wxheading{See also} - -\helpref{wxGridCellEditor}{wxgridcelleditor},\rtfsp -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor},\rtfsp -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor},\rtfsp -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor},\rtfsp -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellFloatEditor::wxGridCellFloatEditor}\label{wxgridcellfloateditorconstr} - -\func{}{wxGridCellFloatEditor}{\param{int }{width = -1}, \param{int }{precision = -1}} - -\docparam{width}{Minimum number of characters to be shown.} -\docparam{precision}{Number of digits after the decimal dot.} - - -\membersection{wxGridCellFloatEditor::SetParameters}\label{wxgridcellfloateditorsetparameters} - -\func{void}{SetParameters}{\param{const wxString\& }{params}} - -Parameters string format is "width,precision" - - - -\section{\class{wxGridCellNumberEditor}}\label{wxgridcellnumbereditor} - -The editor for numeric integer data. - -\wxheading{Derived from} - -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor}\\ -\helpref{wxGridCellEditor}{wxgridcelleditor} - -\wxheading{See also} - -\helpref{wxGridCellEditor}{wxgridcelleditor},\rtfsp -\helpref{wxGridCellFloatEditor}{wxgridcellfloateditor},\rtfsp -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor},\rtfsp -\helpref{wxGridCellTextEditor}{wxgridcelltexteditor},\rtfsp -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellNumberEditor::wxGridCellNumberEditor}\label{wxgridcellnumbereditorconstr} - -\func{}{wxGridCellNumberEditor}{\param{int }{min = -1}, \param{int }{max = -1}} - -Allows to specify the range for acceptable data; -if min == max == -1, no range checking is done - - -\membersection{wxGridCellNumberEditor::GetString}\label{wxgridcellnumbereditorgetstring} - -\constfunc{wxString}{GetString}{\void} - -String representation of the value. - - -\membersection{wxGridCellNumberEditor::HasRange}\label{wxgridcellnumbereditorhasrange} - -\constfunc{bool}{HasRange}{\void} - -If the return value is true, the editor uses a wxSpinCtrl to get user input, -otherwise it uses a wxTextCtrl. - - -\membersection{wxGridCellNumberEditor::SetParameters}\label{wxgridcellnumbereditorsetparameters} - -\func{void}{SetParameters}{\param{const wxString\& }{params}} - -Parameters string format is "min,max". - - -\section{\class{wxGridCellTextEditor}}\label{wxgridcelltexteditor} - -The editor for string/text data. - -\wxheading{Derived from} - -\helpref{wxGridCellEditor}{wxgridcelleditor} - -\wxheading{See also} - -\helpref{wxGridCellEditor}{wxgridcelleditor},\rtfsp -\helpref{wxGridCellFloatEditor}{wxgridcellfloateditor},\rtfsp -\helpref{wxGridCellBoolEditor}{wxgridcellbooleditor},\rtfsp -\helpref{wxGridCellNumberEditor}{wxgridcellnumbereditor},\rtfsp -\helpref{wxGridCellChoiceEditor}{wxgridcellchoiceeditor} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGridCellTextEditor::wxGridCellTextEditor}\label{wxgridcelltexteditorconstr} - -\func{}{wxGridCellTextEditor}{\void} - -Default constructor. - -\membersection{wxGridCellTextEditor::SetParameters}\label{wxgridcelltexteditorsetparameters} - -\func{void}{SetParameters}{\param{const wxString\& }{params}} - -The parameters string format is "n" where n is a number representing the maximum width. - - diff --git a/docs/latex/wx/gridevt.inc b/docs/latex/wx/gridevt.inc deleted file mode 100644 index 25c9ff1e0b..0000000000 --- a/docs/latex/wx/gridevt.inc +++ /dev/null @@ -1,31 +0,0 @@ -The event handler for the following functions takes a \helpref{wxGridEvent}{wxgridevent} parameter. -The ...\_CMD\_... variants also take a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_CELL\_LEFT\_CLICK(func)}}{The user clicked a cell with the left mouse button. Processes a wxEVT\_GRID\_CELL\_LEFT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CELL\_RIGHT\_CLICK(func)}}{The user clicked a cell with the right mouse button. Processes a wxEVT\_GRID\_CELL\_RIGHT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CELL\_LEFT\_DCLICK(func)}}{The user double-clicked a cell with the left mouse button. Processes a wxEVT\_GRID\_CELL\_LEFT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CELL\_RIGHT\_DCLICK(func)}}{The user double-clicked a cell with the right mouse button. Processes a wxEVT\_GRID\_CELL\_RIGHT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_LABEL\_LEFT\_CLICK(func)}}{The user clicked a label with the left mouse button. Processes a wxEVT\_GRID\_LABEL\_LEFT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_LABEL\_RIGHT\_CLICK(func)}}{The user clicked a label with the right mouse button. Processes a wxEVT\_GRID\_LABEL\_RIGHT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_LABEL\_LEFT\_DCLICK(func)}}{The user double-clicked a label with the left mouse button. Processes a wxEVT\_GRID\_LABEL\_LEFT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_LABEL\_RIGHT\_DCLICK(func)}}{The user double-clicked a label with the right mouse button. Processes a wxEVT\_GRID\_LABEL\_RIGHT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CELL\_CHANGE(func)}}{The user changed the data in a cell. Processes a wxEVT\_GRID\_CELL\_CHANGE.} -\twocolitem{{\bf EVT\_GRID\_SELECT\_CELL(func)}}{The user moved to, and selected a cell. Processes a wxEVT\_GRID\_SELECT\_CELL.} -\twocolitem{{\bf EVT\_GRID\_EDITOR\_HIDDEN(func)}}{The editor for a cell was hidden. Processes a wxEVT\_GRID\_EDITOR\_HIDDEN.} -\twocolitem{{\bf EVT\_GRID\_EDITOR\_SHOWN(func)}}{The editor for a cell was shown. Processes a wxEVT\_GRID\_EDITOR\_SHOWN.} -\twocolitem{{\bf EVT\_GRID\_CMD\_CELL\_LEFT\_CLICK(id, func)}}{The user clicked a cell with the left mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_CELL\_LEFT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_CELL\_RIGHT\_CLICK(id, func)}}{The user clicked a cell with the right mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_CELL\_RIGHT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_CELL\_LEFT\_DCLICK(id, func)}}{The user double-clicked a cell with the left mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_CELL\_LEFT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_CELL\_RIGHT\_DCLICK(id, func)}}{The user double-clicked a cell with the right mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_CELL\_RIGHT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_LABEL\_LEFT\_CLICK(id, func)}}{The user clicked a label with the left mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_LABEL\_LEFT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_LABEL\_RIGHT\_CLICK(id, func)}}{The user clicked a label with the right mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_LABEL\_RIGHT\_CLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_LABEL\_LEFT\_DCLICK(id, func)}}{The user double-clicked a label with the left mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_LABEL\_LEFT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_LABEL\_RIGHT\_DCLICK(id, func)}}{The user double-clicked a label with the right mouse button; variant taking a window identifier. Processes a wxEVT\_GRID\_LABEL\_RIGHT\_DCLICK.} -\twocolitem{{\bf EVT\_GRID\_CMD\_CELL\_CHANGE(id, func)}}{The user changed the data in a cell; variant taking a window identifier. Processes a wxEVT\_GRID\_CELL\_CHANGE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_SELECT\_CELL(id, func)}}{The user moved to, and selected a cell; variant taking a window identifier. Processes a wxEVT\_GRID\_SELECT\_CELL.} -\twocolitem{{\bf EVT\_GRID\_CMD\_EDITOR\_HIDDEN(id, func)}}{The editor for a cell was hidden; variant taking a window identifier. Processes a wxEVT\_GRID\_EDITOR\_HIDDEN.} -\twocolitem{{\bf EVT\_GRID\_CMD\_EDITOR\_SHOWN(id, func)}}{The editor for a cell was shown; variant taking a window identifier. Processes a wxEVT\_GRID\_EDITOR\_SHOWN.} -\end{twocollist}% - diff --git a/docs/latex/wx/gridevt.tex b/docs/latex/wx/gridevt.tex deleted file mode 100644 index c26f713376..0000000000 --- a/docs/latex/wx/gridevt.tex +++ /dev/null @@ -1,353 +0,0 @@ -\section{\class{wxGridEditorCreatedEvent}}\label{wxgrideditorcreatedevent} - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Event handling} - -The event handler for the following functions takes a - \helpref{wxGridEditorCreatedEvent}{wxgrideditorcreatedevent} parameter. -The ...\_CMD\_... variants also take a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_EDITOR\_CREATED(func)}}{The editor for a cell was created. Processes a wxEVT\_GRID\_EDITOR\_CREATED.} -\twocolitem{{\bf EVT\_GRID\_CMD\_EDITOR\_CREATED(id, func)}}{The editor for a cell was created; variant taking a window identifier. Processes a wxEVT\_GRID\_EDITOR\_CREATED.} -\end{twocollist}% - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridEditorCreatedEvent::wxGridEditorCreatedEvent}\label{wxgrideditorcreatedeventconstr} - -\func{}{wxGridEditorCreatedEvent}{\void} - -Default constructor. - -\func{}{wxGridEditorCreatedEvent}{\param{int }{id}, \param{wxEventType }{type}, - \param{wxObject* }{obj}, \param{int }{row}, \param{int }{col}, \param{wxControl* }{ctrl}} - -\membersection{wxGridEditorCreatedEvent::GetCol}\label{wxgrideditorcreatedeventgetcol} - -\func{int}{GetCol}{\void} - -Returns the column at which the event occurred. - -\membersection{wxGridEditorCreatedEvent::GetControl}\label{wxgrideditorcreatedeventgetcontrol} - -\func{wxControl*}{GetControl}{\void} - -Returns the edit control. - -\membersection{wxGridEditorCreatedEvent::GetRow}\label{wxgrideditorcreatedeventgetrow} - -\func{int}{GetRow}{\void} - -Returns the row at which the event occurred. - -\membersection{wxGridEditorCreatedEvent::SetCol}\label{wxgrideditorcreatedeventsetcol} - -\func{void}{SetCol}{\param{int }{col}} - -Sets the column at which the event occurred. - -\membersection{wxGridEditorCreatedEvent::SetControl}\label{wxgrideditorcreatedeventsetcontrol} - -\func{void}{SetControl}{\param{wxControl* }{ctrl}} - -Sets the edit control. - -\membersection{wxGridEditorCreatedEvent::SetRow}\label{wxgrideditorcreatedeventsetrow} - -\func{void}{SetRow}{\param{int }{row}} - -Sets the row at which the event occurred. - -\section{\class{wxGridEvent}}\label{wxgridevent} - -This event class contains information about various grid events. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event handling} - -\input gridevt.inc - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridEvent::wxGridEvent}\label{wxgrideventconstr} - -\func{}{wxGridEvent}{\void} - -Default constructor. - -\func{}{wxGridEvent}{\param{int }{id}, \param{wxEventType }{type}, \param{wxObject* }{obj}, - \param{int }{row = -1}, \param{int }{col = -1}, \param{int }{x = -1}, \param{int }{y = -1}, - \param{bool }{sel = true}, \param{bool }{control = false}, \param{bool }{shift = false}, - \param{bool }{alt = false}, \param{bool }{meta = false}} - -\wxheading{Parameters} - -\membersection{wxGridEvent::AltDown}\label{wxgrideventaltdown} - -\func{bool}{AltDown}{\void} - -Returns true if the Alt key was down at the time of the event. - -\membersection{wxGridEvent::ControlDown}\label{wxgrideventcontroldown} - -\func{bool}{ControlDown}{\void} - -Returns true if the Control key was down at the time of the event. - -\membersection{wxGridEvent::GetCol}\label{wxgrideventgetcol} - -\func{int}{GetCol}{\void} - -Column at which the event occurred. - -\membersection{wxGridEvent::GetPosition}\label{wxgrideventgetposition} - -\func{wxPoint}{GetPosition}{\void} - -Position in pixels at which the event occurred. - -\membersection{wxGridEvent::GetRow}\label{wxgrideventgetrow} - -\func{int}{GetRow}{\void} - -Row at which the event occurred. - -\membersection{wxGridEvent::MetaDown}\label{wxgrideventmetadown} - -\func{bool}{MetaDown}{\void} - -Returns true if the Meta key was down at the time of the event. - -\membersection{wxGridEvent::Selecting}\label{wxgrideventselecting} - -\func{bool}{Selecting}{\void} - -Returns true if the user is selecting grid cells, false -- if -deselecting. - -\membersection{wxGridEvent::ShiftDown}\label{wxgrideventshiftdown} - -\func{bool}{ShiftDown}{\void} - -Returns true if the Shift key was down at the time of the event. - -\section{\class{wxGridRangeSelectEvent}}\label{wxgridrangeselectevent} - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Event handling} - -The event handler for the following functions takes a - \helpref{wxGridRangeSelectEvent}{wxgridrangeselectevent} parameter. -The ...\_CMD\_... variants also take a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_RANGE\_SELECT(func)}}{The user selected a group of contiguous cells. Processes a wxEVT\_GRID\_RANGE\_SELECT.} -\twocolitem{{\bf EVT\_GRID\_CMD\_RANGE\_SELECT(func)}}{The user selected a group of contiguous cells; variant taking a window identifier. Processes a wxEVT\_GRID\_RANGE\_SELECT.} -\end{twocollist}% - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridRangeSelectEvent::wxGridRangeSelectEvent}\label{wxgridrangeselecteventconstr} - -\func{}{wxGridRangeSelectEvent}{\void} - -Default constructor. - -\func{}{wxGridRangeSelectEvent}{\param{int }{id}, \param{wxEventType }{type}, - \param{wxObject* }{obj}, \param{const wxGridCellCoords\& }{topLeft}, - \param{const wxGridCellCoords\& }{bottomRight}, \param{bool }{sel = true}, - \param{bool }{control = false}, \param{bool }{shift = false}, \param{bool }{alt = false}, - \param{bool }{meta = false}} - -\membersection{wxGridRangeSelectEvent::AltDown}\label{wxgridrangeselecteventaltdown} - -\func{bool}{AltDown}{\void} - -Returns true if the Alt key was down at the time of the event. - -\membersection{wxGridRangeSelectEvent::ControlDown}\label{wxgridrangeselecteventcontroldown} - -\func{bool}{ControlDown}{\void} - -Returns true if the Control key was down at the time of the event. - -\membersection{wxGridRangeSelectEvent::GetBottomRightCoords}\label{wxgridrangeselecteventgetbottomrightcoords} - -\func{wxGridCellCoords}{GetBottomRightCoords}{\void} - -Top left corner of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::GetBottomRow}\label{wxgridrangeselecteventgetbottomrow} - -\func{int}{GetBottomRow}{\void} - -Bottom row of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::GetLeftCol}\label{wxgridrangeselecteventgetleftcol} - -\func{int}{GetLeftCol}{\void} - -Left column of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::GetRightCol}\label{wxgridrangeselecteventgetrightcol} - -\func{int}{GetRightCol}{\void} - -Right column of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::GetTopLeftCoords}\label{wxgridrangeselecteventgettopleftcoords} - -\func{wxGridCellCoords}{GetTopLeftCoords}{\void} - -Top left corner of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::GetTopRow}\label{wxgridrangeselecteventgettoprow} - -\func{int}{GetTopRow}{\void} - -Top row of the rectangular area that was (de)selected. - -\membersection{wxGridRangeSelectEvent::MetaDown}\label{wxgridrangeselecteventmetadown} - -\func{bool}{MetaDown}{\void} - -Returns true if the Meta key was down at the time of the event. - -\membersection{wxGridRangeSelectEvent::Selecting}\label{wxgridrangeselecteventselecting} - -\func{bool}{Selecting}{\void} - -Returns true if the area was selected, false otherwise. - -\membersection{wxGridRangeSelectEvent::ShiftDown}\label{wxgridrangeselecteventshiftdown} - -\func{bool}{ShiftDown}{\void} - -Returns true if the Shift key was down at the time of the event. - -\section{\class{wxGridSizeEvent}}\label{wxgridsizeevent} - -This event class contains information about a row/column resize event. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event handling} - -The event handler for the following functions takes a - \helpref{wxGridSizeEvent}{wxgridsizeevent} parameter. -The ...\_CMD\_... variants also take a window identifier. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_GRID\_COL\_SIZE(func)}}{The user resized a column by dragging it. Processes a wxEVT\_GRID\_COL\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_ROW\_SIZE(func)}}{The user resized a row by dragging it. Processes a wxEVT\_GRID\_ROW\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_COL\_SIZE(func)}}{The user resized a column by dragging it; variant taking a window identifier. Processes a wxEVT\_GRID\_COL\_SIZE.} -\twocolitem{{\bf EVT\_GRID\_CMD\_ROW\_SIZE(func)}}{The user resized a row by dragging it; variant taking a window identifier. Processes a wxEVT\_GRID\_ROW\_SIZE.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridSizeEvent::wxGridSizeEvent}\label{wxgridsizeeventconstr} - -\func{}{wxGridSizeEvent}{\void} - -Default constructor. - -\func{}{wxGridSizeEvent}{\param{int }{id}, \param{wxEventType }{type}, - \param{wxObject* }{obj}, \param{int }{rowOrCol = -1}, \param{int }{x = -1}, - \param{int }{y = -1}, \param{bool }{control = false}, \param{bool }{shift = false}, - \param{bool }{alt = false}, \param{bool }{meta = false}} - -\membersection{wxGridSizeEvent::AltDown}\label{wxgridsizeeventaltdown} - -\func{bool}{AltDown}{\void} - -Returns true if the Alt key was down at the time of the event. - -\membersection{wxGridSizeEvent::ControlDown}\label{wxgridsizeeventcontroldown} - -\func{bool}{ControlDown}{\void} - -Returns true if the Control key was down at the time of the event. - -\membersection{wxGridSizeEvent::GetPosition}\label{wxgridsizeeventgetposition} - -\func{wxPoint}{GetPosition}{\void} - -Position in pixels at which the event occurred. - -\membersection{wxGridSizeEvent::GetRowOrCol}\label{wxgridsizeeventgetroworcol} - -\func{int}{GetRowOrCol}{\void} - -Row or column at that was resized. - -\membersection{wxGridSizeEvent::MetaDown}\label{wxgridsizeeventmetadown} - -\func{bool}{MetaDown}{\void} - -Returns true if the Meta key was down at the time of the event. - -\membersection{wxGridSizeEvent::ShiftDown}\label{wxgridsizeeventshiftdown} - -\func{bool}{ShiftDown}{\void} - -Returns true if the Shift key was down at the time of the event. - diff --git a/docs/latex/wx/gridrend.tex b/docs/latex/wx/gridrend.tex deleted file mode 100644 index e8a9c5078d..0000000000 --- a/docs/latex/wx/gridrend.tex +++ /dev/null @@ -1,215 +0,0 @@ -\section{\class{wxGridCellBoolRenderer}}\label{wxgridcellboolrenderer} - -This class may be used to format boolean data in a cell. -for string cells. - -\wxheading{Derived from} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer} - -\wxheading{See also} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer},\rtfsp -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer},\rtfsp -\helpref{wxGridCellFloatRenderer}{wxgridcellfloatrenderer},\rtfsp -\helpref{wxGridCellNumberRenderer}{wxgridcellnumberrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellBoolRenderer::wxGridCellBoolRenderer}\label{wxgridcellboolrendererconstr} - -\func{}{wxGridCellBoolRenderer}{} - -Default constructor - - - -\section{\class{wxGridCellFloatRenderer}}\label{wxgridcellfloatrenderer} - -This class may be used to format floating point data in a cell. - -\wxheading{Derived from} - -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer}\\ -\helpref{wxGridCellRenderer}{wxgridcellrenderer} - -\wxheading{See also} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer},\rtfsp -\helpref{wxGridCellNumberRenderer}{wxgridcellnumberrenderer},\rtfsp -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer},\rtfsp -\helpref{wxGridCellBoolRenderer}{wxgridcellboolrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellFloatRenderer::wxGridCellFloatRenderer}\label{wxgridcellfloatrendererconstr} - -\func{}{wxGridCellFloatRenderer}{\param{int }{width = -1}, \param{int }{precision = -1}} - -\docparam{width}{Minimum number of characters to be shown.} -\docparam{precision}{Number of digits after the decimal dot.} - -\membersection{wxGridCellFloatRenderer::GetPrecision}\label{wxgridcellfloatrenderergetprecision} - -\constfunc{int}{GetPrecision}{\void} - -Returns the precision ( see \helpref{wxGridCellFloatRenderer}{wxgridcellfloatrendererconstr} ). - -\membersection{wxGridCellFloatRenderer::GetWidth}\label{wxgridcellfloatrenderergetwidth} - -\constfunc{int}{GetWidth}{\void} - -Returns the width ( see \helpref{wxGridCellFloatRenderer}{wxgridcellfloatrendererconstr} ). - -\membersection{wxGridCellFloatRenderer::SetParameters}\label{wxgridcellfloatrenderersetparameters} - -\func{void}{SetParameters}{\param{const wxString\& }{params}} - -Parameters string format is "width[,precision]". - -\membersection{wxGridCellFloatRenderer::SetPrecision}\label{wxgridcellfloatrenderersetprecision} - -\func{void}{SetPrecision}{\param{int }{precision}} - -Sets the precision ( see \helpref{wxGridCellFloatRenderer}{wxgridcellfloatrendererconstr} ). - -\membersection{wxGridCellFloatRenderer::SetWidth}\label{wxgridcellfloatrenderersetwidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Sets the width ( see \helpref{wxGridCellFloatRenderer}{wxgridcellfloatrendererconstr} ) - - - -\section{\class{wxGridCellNumberRenderer}}\label{wxgridcellnumberrenderer} - -This class may be used to format integer data in a cell. - -\wxheading{Derived from} - -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer}\\ -\helpref{wxGridCellRenderer}{wxgridcellrenderer} - -\wxheading{See also} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer},\rtfsp -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer},\rtfsp -\helpref{wxGridCellFloatRenderer}{wxgridcellfloatrenderer},\rtfsp -\helpref{wxGridCellBoolRenderer}{wxgridcellboolrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellNumberRenderer::wxGridCellNumberRenderer}\label{wxgridcellnumberrendererconstr} - -\func{}{wxGridCellNumberRenderer}{} - -Default constructor - -\section{\class{wxGridCellRenderer}}\label{wxgridcellrenderer} - -This class is responsible for actually drawing the cell -in the grid. You may pass it to the wxGridCellAttr (below) to change the -format of one given cell or to wxGrid::SetDefaultRenderer() to change the -view of all cells. This is an abstract class, and you will normally use one of the -predefined derived classes or derive your own class from it. - -\wxheading{Derived from} - -wxGridCellWorker - -\wxheading{See also} - -\helpref{wxGridCellStringRenderer}{wxgridcellstringrenderer},\rtfsp -\helpref{wxGridCellNumberRenderer}{wxgridcellnumberrenderer},\rtfsp -\helpref{wxGridCellFloatRenderer}{wxgridcellfloatrenderer},\rtfsp -\helpref{wxGridCellBoolRenderer}{wxgridcellboolrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellRenderer::Draw}\label{wxgridcellrendererdraw} - -\func{void}{Draw}{\param{wxGrid\& }{grid}, \param{wxGridCellAttr\& }{attr}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{row}, \param{int }{col}, \param{bool }{isSelected}} - -Draw the given cell on the provided DC inside the given rectangle -using the style specified by the attribute and the default or selected -state corresponding to the isSelected value. - -This pure virtual function has a default implementation which will -prepare the DC using the given attribute: it will draw the rectangle -with the background colour from attr and set the text colour and font. - -\membersection{wxGridCellRenderer::GetBestSize}\label{wxgridcellrenderergetbestsize} - -\func{wxSize}{GetBestSize}{\param{wxGrid\& }{grid}, \param{wxGridCellAttr\& }{attr}, \param{wxDC\& }{dc}, \param{int }{row}, \param{int }{col}} - -Get the preferred size of the cell for its contents. - -\membersection{wxGridCellRenderer::Clone}\label{wxgridcellrendererclone} - -\constfunc{wxGridCellRenderer*}{Clone}{\void} - -\section{\class{wxGridCellStringRenderer}}\label{wxgridcellstringrenderer} - -This class may be used to format string data in a cell; it is the default -for string cells. - -\wxheading{Derived from} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer} - -\wxheading{See also} - -\helpref{wxGridCellRenderer}{wxgridcellrenderer},\rtfsp -\helpref{wxGridCellNumberRenderer}{wxgridcellnumberrenderer},\rtfsp -\helpref{wxGridCellFloatRenderer}{wxgridcellfloatrenderer},\rtfsp -\helpref{wxGridCellBoolRenderer}{wxgridcellboolrenderer} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridCellStringRenderer::wxGridCellStringRenderer}\label{wxgridcellstringrendererconstr} - -\func{}{wxGridCellStringRenderer}{} - -Default constructor - - diff --git a/docs/latex/wx/gridsizr.tex b/docs/latex/wx/gridsizr.tex deleted file mode 100644 index e3c7465d34..0000000000 --- a/docs/latex/wx/gridsizr.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{\class{wxGridSizer}}\label{wxgridsizer} - -A grid sizer is a sizer which lays out its children in a two-dimensional -table with all table fields having the same size, -i.e. the width of each field is the width of the widest child, -the height of each field is the height of the tallest child. - -\wxheading{Derived from} - -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridSizer::wxGridSizer}\label{wxgridsizerwxgridsizer} - -\func{}{wxGridSizer}{\param{int }{rows}, \param{int }{cols}, \param{int }{vgap}, \param{int }{hgap}} - -\func{}{wxGridSizer}{\param{int }{cols}, \param{int }{vgap = 0}, \param{int }{hgap = 0}} - -Constructor for a wxGridSizer. {\it rows} and {\it cols} determine the number of -columns and rows in the sizer - if either of the parameters is zero, it will be -calculated to form the total number of children in the sizer, thus making the -sizer grow dynamically. {\it vgap} and {\it hgap} define extra space between -all children. - -\membersection{wxGridSizer::GetCols}\label{wxgridsizergetcols} - -\func{int}{GetCols}{} - -Returns the number of columns in the sizer. - - -\membersection{wxGridSizer::GetHGap}\label{wxgridsizergethgap} - -\func{int}{GetHGap}{} - -Returns the horizontal gap (in pixels) between cells in the sizer. - - -\membersection{wxGridSizer::GetRows}\label{wxgridsizergetrows} - -\func{int}{GetRows}{} - -Returns the number of rows in the sizer. - - -\membersection{wxGridSizer::GetVGap}\label{wxgridsizergetvgap} - -\func{int}{GetVGap}{} - -Returns the vertical gap (in pixels) between the cells in the sizer. - - -\membersection{wxGridSizer::SetCols}\label{wxgridsizersetcols} - -\func{void}{SetCols}{\param{int }{cols}} - -Sets the number of columns in the sizer. - - -\membersection{wxGridSizer::SetHGap}\label{wxgridsizersethgap} - -\func{void}{SetHGap}{\param{int }{gap}} - -Sets the horizontal gap (in pixels) between cells in the sizer. - - -\membersection{wxGridSizer::SetRows}\label{wxgridsizersetrows} - -\func{void}{SetRows}{\param{int }{rows}} - -Sets the number of rows in the sizer. - - -\membersection{wxGridSizer::SetVGap}\label{wxgridsizersetvgap} - -\func{void}{SetVGap}{\param{int }{gap}} - -Sets the vertical gap (in pixels) between the cells in the sizer. - - - - diff --git a/docs/latex/wx/gridtbl.tex b/docs/latex/wx/gridtbl.tex deleted file mode 100644 index 545e01bb9b..0000000000 --- a/docs/latex/wx/gridtbl.tex +++ /dev/null @@ -1,236 +0,0 @@ -\section{\class{wxGridTableBase}}\label{wxgridtablebase} - -Grid table classes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGridTableBase::wxGridTableBase}\label{wxgridtablebasewxgridtablebase} - -\func{}{wxGridTableBase}{\void} - -\membersection{wxGridTableBase::\destruct{wxGridTableBase}}\label{wxgridtablebasedtor} - -\func{}{\destruct{wxGridTableBase}}{\void} - -\membersection{wxGridTableBase::GetNumberRows}\label{wxgridtablebasegetnumberrows} - -\func{int}{GetNumberRows}{\void} - -You must override these functions in a derived table class. - -\membersection{wxGridTableBase::GetNumberCols}\label{wxgridtablebasegetnumbercols} - -\func{int}{GetNumberCols}{\void} - - -\membersection{wxGridTableBase::IsEmptyCell}\label{wxgridtablebaseisemptycell} - -\func{bool}{IsEmptyCell}{\param{int }{row}, \param{int }{col}} - - -\membersection{wxGridTableBase::GetValue}\label{wxgridtablebasegetvalue} - -\func{wxString}{GetValue}{\param{int }{row}, \param{int }{col}} - - -\membersection{wxGridTableBase::SetValue}\label{wxgridtablebasesetvalue} - -\func{void}{SetValue}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{value}} - - -\membersection{wxGridTableBase::GetTypeName}\label{wxgridtablebasegettypename} - -\func{wxString}{GetTypeName}{\param{int }{row}, \param{int }{col}} - -Data type determination and value access. - -\membersection{wxGridTableBase::CanGetValueAs}\label{wxgridtablebasecangetvalueas} - -\func{bool}{CanGetValueAs}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{typeName}} - - -\membersection{wxGridTableBase::CanSetValueAs}\label{wxgridtablebasecansetvalueas} - -\func{bool}{CanSetValueAs}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{typeName}} - - -\membersection{wxGridTableBase::GetValueAsLong}\label{wxgridtablebasegetvalueaslong} - -\func{long}{GetValueAsLong}{\param{int }{row}, \param{int }{col}} - - -\membersection{wxGridTableBase::GetValueAsDouble}\label{wxgridtablebasegetvalueasdouble} - -\func{double}{GetValueAsDouble}{\param{int }{row}, \param{int }{col}} - - -\membersection{wxGridTableBase::GetValueAsBool}\label{wxgridtablebasegetvalueasbool} - -\func{bool}{GetValueAsBool}{\param{int }{row}, \param{int }{col}} - - -\membersection{wxGridTableBase::SetValueAsLong}\label{wxgridtablebasesetvalueaslong} - -\func{void}{SetValueAsLong}{\param{int }{row}, \param{int }{col}, \param{long }{value}} - - -\membersection{wxGridTableBase::SetValueAsDouble}\label{wxgridtablebasesetvalueasdouble} - -\func{void}{SetValueAsDouble}{\param{int }{row}, \param{int }{col}, \param{double }{value}} - - -\membersection{wxGridTableBase::SetValueAsBool}\label{wxgridtablebasesetvalueasbool} - -\func{void}{SetValueAsBool}{\param{int }{row}, \param{int }{col}, \param{bool }{value}} - - -\membersection{wxGridTableBase::GetValueAsCustom}\label{wxgridtablebasegetvalueascustom} - -\func{void*}{GetValueAsCustom}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{typeName}} - -For user defined types - - -\membersection{wxGridTableBase::SetValueAsCustom}\label{wxgridtablebasesetvalueascustom} - -\func{void}{SetValueAsCustom}{\param{int }{row}, \param{int }{col}, \param{const wxString\& }{typeName}, \param{void* }{value}} - - -\membersection{wxGridTableBase::SetView}\label{wxgridtablebasesetview} - -\func{void}{SetView}{\param{wxGrid* }{grid}} - -Overriding these is optional - - -\membersection{wxGridTableBase::GetView}\label{wxgridtablebasegetview} - -\constfunc{wxGrid *}{GetView}{\void} - - -\membersection{wxGridTableBase::Clear}\label{wxgridtablebaseclear} - -\func{void}{Clear}{\void} - - -\membersection{wxGridTableBase::InsertRows}\label{wxgridtablebaseinsertrows} - -\func{bool}{InsertRows}{\param{size\_t }{pos = 0}, \param{size\_t }{numRows = 1}} - - -\membersection{wxGridTableBase::AppendRows}\label{wxgridtablebaseappendrows} - -\func{bool}{AppendRows}{\param{size\_t }{numRows = 1}} - - -\membersection{wxGridTableBase::DeleteRows}\label{wxgridtablebasedeleterows} - -\func{bool}{DeleteRows}{\param{size\_t }{pos = 0}, \param{size\_t }{numRows = 1}} - - -\membersection{wxGridTableBase::InsertCols}\label{wxgridtablebaseinsertcols} - -\func{bool}{InsertCols}{\param{size\_t }{pos = 0}, \param{size\_t }{numCols = 1}} - - -\membersection{wxGridTableBase::AppendCols}\label{wxgridtablebaseappendcols} - -\func{bool}{AppendCols}{\param{size\_t }{numCols = 1}} - - -\membersection{wxGridTableBase::DeleteCols}\label{wxgridtablebasedeletecols} - -\func{bool}{DeleteCols}{\param{size\_t }{pos = 0}, \param{size\_t }{numCols = 1}} - - -\membersection{wxGridTableBase::GetRowLabelValue}\label{wxgridtablebasegetrowlabelvalue} - -\func{wxString}{GetRowLabelValue}{\param{int }{row}} - - -\membersection{wxGridTableBase::GetColLabelValue}\label{wxgridtablebasegetcollabelvalue} - -\func{wxString}{GetColLabelValue}{\param{int }{col}} - - -\membersection{wxGridTableBase::SetRowLabelValue}\label{wxgridtablebasesetrowlabelvalue} - -\func{void}{SetRowLabelValue}{\param{int }{WXUNUSED(row)}, \param{const }{wxString\&}} - - -\membersection{wxGridTableBase::SetColLabelValue}\label{wxgridtablebasesetcollabelvalue} - -\func{void}{SetColLabelValue}{\param{int }{WXUNUSED(col)}, \param{const }{wxString\&}} - - -\membersection{wxGridTableBase::SetAttrProvider}\label{wxgridtablebasesetattrprovider} - -\func{void}{SetAttrProvider}{\param{wxGridCellAttrProvider* }{attrProvider}} - -Attribute handling -give us the attr provider to use - we take ownership of the pointer - - -\membersection{wxGridTableBase::GetAttrProvider}\label{wxgridtablebasegetattrprovider} - -\constfunc{wxGridCellAttrProvider*}{GetAttrProvider}{\void} - -get the currently used attr provider (may be NULL) - - -\membersection{wxGridTableBase::CanHaveAttributes}\label{wxgridtablebasecanhaveattributes} - -\func{bool}{CanHaveAttributes}{\void} - -Does this table allow attributes? Default implementation creates -a wxGridCellAttrProvider if necessary. - - -\membersection{wxGridTableBase::UpdateAttrRows}\label{wxgridtablebaseupdateattrrows} - -\func{void}{UpdateAttrRows}{\param{size\_t }{pos}, \param{int }{numRows}} - -change row/col number in attribute if needed - - -\membersection{wxGridTableBase::UpdateAttrCols}\label{wxgridtablebaseupdateattrcols} - -\func{void}{UpdateAttrCols}{\param{size\_t }{pos}, \param{int }{numCols}} - - -\membersection{wxGridTableBase::GetAttr}\label{wxgridtablebasegetattr} - -\func{wxGridCellAttr*}{GetAttr}{\param{int }{row}, \param{int }{col}} - -by default forwarded to wxGridCellAttrProvider if any. May be -overridden to handle attributes directly in the table. - - -\membersection{wxGridTableBase::SetAttr}\label{wxgridtablebasesetattr} - -\func{void}{SetAttr}{\param{wxGridCellAttr* }{attr}, \param{int }{row}, \param{int }{col}} - -these functions take ownership of the pointer - - -\membersection{wxGridTableBase::SetRowAttr}\label{wxgridtablebasesetrowattr} - -\func{void}{SetRowAttr}{\param{wxGridCellAttr* }{attr}, \param{int }{row}} - - -\membersection{wxGridTableBase::SetColAttr}\label{wxgridtablebasesetcolattr} - -\func{void}{SetColAttr}{\param{wxGridCellAttr* }{attr}, \param{int }{col}} - diff --git a/docs/latex/wx/gupdlock.tex b/docs/latex/wx/gupdlock.tex deleted file mode 100644 index 3fdfa32600..0000000000 --- a/docs/latex/wx/gupdlock.tex +++ /dev/null @@ -1,85 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: gupdlock.tex -%% Purpose: wxGridUpdateLocker documentation -%% Author: Evgeniy Tarassov -%% Created: 2007-03-15 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 TT-Solutions SARL -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxGridUpdateLocker}}\label{wxgridupdatelocker} - -This small class can be used to prevent \helpref{wxGrid}{wxgrid} from redrawing -during its lifetime by calling \helpref{wxGrid::BeginBatch}{wxgridbeginbatch} -in its constructor and \helpref{wxGrid::EndBatch}{wxgridendbatch} in its -destructor. It is typically used in a function performing several operations -with a grid which would otherwise result in flicker. For example: - -{\small -\begin{verbatim} - void MyFrame::Foo() - { - m_grid = new wxGrid(this, ...); - - wxGridUpdateLocker noUpdates(m_grid); - m_grid->AppendColumn(); - ... many other operations with m_grid... - m_grid->AppendRow(); - - // destructor called, grid refreshed - } -\end{verbatim} -} - -Using this class is easier and safer than calling -\helpref{BeginBatch}{wxgridbeginbatch} and \helpref{EndBatch}{wxgridendbatch} -because you don't risk not to call the latter (due to an exception for example). - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxGridUpdateLocker::wxGridUpdateLocker}\label{wxgridupdatelockerctor} - -\func{}{wxGridUpdateLocker}{\param{wxGrid *}{grid = \NULL}} - -Creates an object preventing the updates of the specified \arg{grid}. The -parameter could be \NULL in which case nothing is done. If \arg{grid} is -non-\NULL then the grid must exist for longer than wxGridUpdateLocker object -itself. - -The default constructor could be followed by a call to -\helpref{wxGridUpdateLocker::Create}{wxgridupdatelockercreate} to set the -grid object later. - - - -\membersection{wxGridUpdateLocker::\destruct{wxGridUpdateLocker}}\label{wxgridupdatelockerdtor} - -\func{}{\destruct{wxGridUpdateLocker}}{\void} - -Destructor reenables updates for the grid this object is associated with. - - - -\membersection{wxGridUpdateLocker::Create}\label{wxgridupdatelockercreate} - -\func{void}{Create}{\param{wxGrid* }{grid}} - -This method can be called if the object had been constructed using the default -constructor. It must not be called more than once. - - diff --git a/docs/latex/wx/hash.tex b/docs/latex/wx/hash.tex deleted file mode 100644 index 83ba35780e..0000000000 --- a/docs/latex/wx/hash.tex +++ /dev/null @@ -1,143 +0,0 @@ -\section{\class{wxHashTable}}\label{wxhashtable} - -{\bf Please note} that this class is retained for backward compatibility -reasons; you should use \helpref{wxHashMap}{wxhashmap}. - -This class provides hash table functionality for wxWidgets, and for an -application if it wishes. Data can be hashed on an integer or string -key. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Example} - -Below is an example of using a hash table. - -\begin{verbatim} - wxHashTable table(wxKEY_STRING); - - wxPoint *point = new wxPoint(100, 200); - table.Put("point 1", point); - - .... - - wxPoint *found_point = (wxPoint *)table.Get("point 1"); -\end{verbatim} - -A hash table is implemented as an array of pointers to lists. When no -data has been stored, the hash table takes only a little more space than -this array (default size is 1000). When a data item is added, an -integer is constructed from the integer or string key that is within the -bounds of the array. If the array element is NULL, a new (keyed) list is -created for the element. Then the data object is appended to the list, -storing the key in case other data objects need to be stored in the list -also (when a `collision' occurs). - -Retrieval involves recalculating the array index from the key, and searching -along the keyed list for the data object whose stored key matches the passed -key. Obviously this is quicker when there are fewer collisions, so hashing -will become inefficient if the number of items to be stored greatly exceeds -the size of the hash table. - -\wxheading{See also} - -\helpref{wxList}{wxlist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHashTable::wxHashTable}\label{wxhashtablector} - -\func{}{wxHashTable}{\param{unsigned int}{ key\_type}, \param{int}{ size = 1000}} - -Constructor. {\it key\_type} is one of wxKEY\_INTEGER, or wxKEY\_STRING, -and indicates what sort of keying is required. {\it size} is optional. - -\membersection{wxHashTable::\destruct{wxHashTable}}\label{wxhashtabledtor} - -\func{}{\destruct{wxHashTable}}{\void} - -Destroys the hash table. - -\membersection{wxHashTable::BeginFind}\label{wxhashtablebeginfind} - -\func{void}{BeginFind}{\void} - -The counterpart of {\it Next}. If the application wishes to iterate -through all the data in the hash table, it can call {\it BeginFind} and -then loop on {\it Next}. - -\membersection{wxHashTable::Clear}\label{wxhashtableclear} - -\func{void}{Clear}{\void} - -Clears the hash table of all nodes (but as usual, doesn't delete user data). - -\membersection{wxHashTable::Delete}\label{wxhashtabledelete} - -\func{wxObject *}{Delete}{\param{long}{ key}} - -\func{wxObject *}{Delete}{\param{const wxString\& }{ key}} - -Deletes entry in hash table and returns the user's data (if found). - -\membersection{wxHashTable::DeleteContents}\label{wxhashtabledeletecontents} - -\func{void}{DeleteContents}{\param{bool}{ flag}} - -If set to true data stored in hash table will be deleted when hash table object -is destroyed. - - -\membersection{wxHashTable::Get}\label{wxhashtableget} - -\func{wxObject *}{Get}{\param{long}{ key}} - -\func{wxObject *}{Get}{\param{const char*}{ key}} - -Gets data from the hash table, using an integer or string key (depending on which -has table constructor was used). - -\membersection{wxHashTable::MakeKey}\label{wxhashtablemakekey} - -\func{long}{MakeKey}{\param{const wxString\& }{string}} - -Makes an integer key out of a string. An application may wish to make a key -explicitly (for instance when combining two data values to form a key). - -\membersection{wxHashTable::Next}\label{wxhashtablenext} - -\func{wxHashTable::Node *}{Next}{\void} - -If the application wishes to iterate through all the data in the hash -table, it can call {\it BeginFind} and then loop on {\it Next}. This function -returns a {\bf wxHashTable::Node} pointer (or NULL if there are no more nodes). -The return value is functionally equivalent to \textbf{wxNode} but might not be -implemented as a \textbf{wxNode}. The user will probably only wish to use the -\textbf{GetData} method to retrieve the data; the node may also be deleted. - -\membersection{wxHashTable::Put}\label{wxhashtableput} - -\func{void}{Put}{\param{long}{ key}, \param{wxObject *}{object}} - -\func{void}{Put}{\param{const char*}{ key}, \param{wxObject *}{object}} - -Inserts data into the hash table, using an integer or string key (depending on which -has table constructor was used). The key string is copied and stored by the hash -table implementation. - -\membersection{wxHashTable::GetCount}\label{wxhashtablegetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of elements in the hash table. - diff --git a/docs/latex/wx/hashmap.tex b/docs/latex/wx/hashmap.tex deleted file mode 100644 index ebb9c60e6a..0000000000 --- a/docs/latex/wx/hashmap.tex +++ /dev/null @@ -1,251 +0,0 @@ -\section{\class{wxHashMap}}\label{wxhashmap} - -This is a simple, type-safe, and reasonably efficient hash map class, -whose interface is a subset of the interface of STL containers. In -particular, the interface is modeled after std::map, and the various, -non-standard, std::hash\_map. - -\wxheading{Example} - -\begin{verbatim} - class MyClass { /* ... */ }; - - // declare a hash map with string keys and int values - WX_DECLARE_STRING_HASH_MAP( int, MyHash5 ); - // same, with int keys and MyClass* values - WX_DECLARE_HASH_MAP( int, MyClass*, wxIntegerHash, wxIntegerEqual, MyHash1 ); - // same, with wxString keys and int values - WX_DECLARE_STRING_HASH_MAP( int, MyHash3 ); - // same, with wxString keys and values - WX_DECLARE_STRING_HASH_MAP( wxString, MyHash2 ); - - MyHash1 h1; - MyHash2 h2; - - // store and retrieve values - h1[1] = new MyClass( 1 ); - h1[10000000] = NULL; - h1[50000] = new MyClass( 2 ); - h2["Bill"] = "ABC"; - wxString tmp = h2["Bill"]; - // since element with key "Joe" is not present, this will return - // the default value, which is an empty string in the case of wxString - MyClass tmp2 = h2["Joe"]; - - // iterate over all the elements in the class - MyHash2::iterator it; - for( it = h2.begin(); it != h2.end(); ++it ) - { - wxString key = it->first, value = it->second; - // do something useful with key and value - } -\end{verbatim} - -\wxheading{Declaring new hash table types} - -\begin{verbatim} - WX_DECLARE_STRING_HASH_MAP( VALUE_T, // type of the values - CLASSNAME ); // name of the class -\end{verbatim} - -Declares a hash map class named CLASSNAME, with {\tt wxString} keys -and VALUE\_T values. - -\begin{verbatim} - WX_DECLARE_VOIDPTR_HASH_MAP( VALUE_T, // type of the values - CLASSNAME ); // name of the class -\end{verbatim} - -Declares a hash map class named CLASSNAME, with {\tt void*} keys -and VALUE\_T values. - -\begin{verbatim} - WX_DECLARE_HASH_MAP( KEY_T, // type of the keys - VALUE_T, // type of the values - HASH_T, // hasher - KEY_EQ_T, // key equality predicate - CLASSNAME); // name of the class -\end{verbatim} - -The HASH\_T and KEY\_EQ\_T are the types -used for the hashing function and key comparison. wxWidgets provides -three predefined hashing functions: {\tt wxIntegerHash} -for integer types ( {\tt int}, {\tt long}, {\tt short}, -and their unsigned counterparts ), {\tt wxStringHash} for strings -( {\tt wxString}, {\tt wxChar*}, {\tt char*} ), and -{\tt wxPointerHash} for any kind of pointer. -Similarly three equality predicates: -{\tt wxIntegerEqual}, {\tt wxStringEqual}, {\tt wxPointerEqual} are provided. - -Using this you could declare a hash map mapping {\tt int} values -to {\tt wxString} like this: - -\begin{verbatim} - WX_DECLARE_HASH_MAP( int, - wxString, - wxIntegerHash, - wxIntegerEqual, - MyHash ); - - // using an user-defined class for keys - class MyKey { /* ... */ }; - - // hashing function - class MyKeyHash - { - public: - MyKeyHash() { } - - unsigned long operator()( const MyKey& k ) const - { /* compute the hash */ } - - MyKeyHash& operator=(const MyKeyHash&) { return *this; } - }; - - // comparison operator - class MyKeyEqual - { - public: - MyKeyEqual() { } - bool operator()( const MyKey& a, const MyKey& b ) const - { /* compare for equality */ } - - MyKeyEqual& operator=(const MyKeyEqual&) { return *this; } - }; - - WX_DECLARE_HASH_MAP( MyKey, // type of the keys - SOME_TYPE, // any type you like - MyKeyHash, // hasher - MyKeyEqual, // key equality predicate - CLASSNAME); // name of the class -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Types}}} - -In the documentation below you should replace wxHashMap with the name -you used in the class declaration. - -\begin{twocollist} -\twocolitem{wxHashMap::key\_type}{Type of the hash keys} -\twocolitem{wxHashMap::mapped\_type}{Type of the values stored in the hash map} -\twocolitem{wxHashMap::value\_type}{Equivalent to -{\tt struct \{ key\_type first; mapped\_type second \};} } -\twocolitem{wxHashMap::iterator}{Used to enumerate all the elements in a hash -map; it is similar to a {\tt value\_type*}} -\twocolitem{wxHashMap::const\_iterator}{Used to enumerate all the elements -in a constant hash map; it is similar to a {\tt const value\_type*}} -\twocolitem{wxHashMap::size\_type}{Used for sizes} -\twocolitem{wxHashMap::Insert\_Result}{The return value for -\helpref{insert()}{wxhashmapinsert}} -\end{twocollist} - -\wxheading{Iterators} - -An iterator is similar to a pointer, and so you can use the usual pointer -operations: {\tt ++it} ( and {\tt it++} ) to move to the next element, -{\tt *it} to access the element pointed to, {\tt it->first} -( {\tt it->second} ) to access the key ( value ) -of the element pointed to. Hash maps provide forward only iterators, this -means that you can't use {\tt --it}, {\tt it + 3}, {\tt it1 - it2}. - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHashMap::wxHashMap}\label{wxhashmapctor} - -\func{}{wxHashMap}{\param{size\_type}{ size = 10}} - -The size parameter is just a hint, the table will resize automatically -to preserve performance. - -\func{}{wxHashMap}{\param{const wxHashMap\&}{ map}} - -Copy constructor. - -\membersection{wxHashMap::begin}\label{wxhashmapbegin} - -\constfunc{const\_iterator}{begin}{} - -\func{iterator}{begin}{} - -Returns an iterator pointing at the first element of the hash map. -Please remember that hash maps do not guarantee ordering. - -\membersection{wxHashMap::clear}\label{wxhashmapclear} - -\func{void}{clear}{} - -Removes all elements from the hash map. - -\membersection{wxHashMap::count}\label{wxhashmapcount} - -\constfunc{size\_type}{count}{\param{const key\_type\&}{ key}} - -Counts the number of elements with the given key present in the map. -This function returns only 0 or 1. - -\membersection{wxHashMap::empty}\label{wxhashmapempty} - -\constfunc{bool}{empty}{} - -Returns true if the hash map does not contain any elements, false otherwise. - -\membersection{wxHashMap::end}\label{wxhashmapend} - -\constfunc{const\_iterator}{end}{} - -\func{iterator}{end}{} - -Returns an iterator pointing at the one-after-the-last element of the hash map. -Please remember that hash maps do not guarantee ordering. - -\membersection{wxHashMap::erase}\label{wxhashmaperase} - -\func{size\_type}{erase}{\param{const key\_type\&}{ key}} - -Erases the element with the given key, and returns the number of elements -erased (either 0 or 1). - -\func{void}{erase}{\param{iterator}{ it}} - -\func{void}{erase}{\param{const\_iterator}{ it}} - -Erases the element pointed to by the iterator. After the deletion -the iterator is no longer valid and must not be used. - -\membersection{wxHashMap::find}\label{wxhashmapfind} - -\func{iterator}{find}{\param{const key\_type\&}{ key}} - -\constfunc{const\_iterator}{find}{\param{const key\_type\&}{ key}} - -If an element with the given key is present, the functions returns -an iterator pointing at that element, otherwise an invalid iterator -is returned (i.e. hashmap.find( non\_existent\_key ) == hashmap.end()). - -\membersection{wxHashMap::insert}\label{wxhashmapinsert} - -\func{Insert\_Result}{insert}{\param{const value\_type\&}{ v}} - -Inserts the given value in the hash map. The return value is -equivalent to a \texttt{std::pair}; -the iterator points to the inserted element, the boolean value -is \texttt{true} if \texttt{v} was actually inserted. - -\membersection{wxHashMap::operator[]}\label{wxhashmapbracket} - -\func{mapped\_type\&}{operator[]}{\param{const key\_type\&}{ key}} - -Use the key as an array subscript. The only difference is that if the -given key is not present in the hash map, an element with the -default {\tt value\_type()} is inserted in the table. - -\membersection{wxHashMap::size}\label{wxhashmapsize} - -\constfunc{size\_type}{size}{} - -Returns the number of elements in the map. - diff --git a/docs/latex/wx/hashset.tex b/docs/latex/wx/hashset.tex deleted file mode 100644 index 56b59914ed..0000000000 --- a/docs/latex/wx/hashset.tex +++ /dev/null @@ -1,223 +0,0 @@ -\section{\class{wxHashSet}}\label{wxhashset} - -This is a simple, type-safe, and reasonably efficient hash set class, -whose interface is a subset of the interface of STL containers. In -particular, the interface is modeled after std::set, and the various, -non-standard, std::hash\_map. - -\wxheading{Example} - -\begin{verbatim} - class MyClass { /* ... */ }; - - // same, with MyClass* keys (only uses pointer equality!) - WX_DECLARE_HASH_SET( MyClass*, wxPointerHash, wxPointerEqual, MySet1 ); - // same, with int keys - WX_DECLARE_HASH_SET( int, wxIntegerHash, wxIntegerEqual, MySet2 ); - // declare a hash set with string keys - WX_DECLARE_HASH_SET( wxString, wxStringHash, wxStringEqual, MySet3 ); - - MySet1 h1; - MySet2 h1; - MySet3 h3; - - // store and retrieve values - h1.insert( new MyClass( 1 ) ); - - h3.insert( "foo" ); - h3.insert( "bar" ); - h3.insert( "baz" ); - - int size = h3.size(); // now is three - bool has_foo = h3.find( "foo" ) != h3.end(); - - h3.insert( "bar" ); // still has size three - - // iterate over all the elements in the class - MySet3::iterator it; - for( it = h3.begin(); it != h3.end(); ++it ) - { - wxString key = *it; - // do something useful with key - } -\end{verbatim} - -\wxheading{Declaring new hash set types} - -\begin{verbatim} - WX_DECLARE_HASH_SET( KEY_T, // type of the keys - HASH_T, // hasher - KEY_EQ_T, // key equality predicate - CLASSNAME); // name of the class -\end{verbatim} - -The HASH\_T and KEY\_EQ\_T are the types -used for the hashing function and key comparison. wxWidgets provides -three predefined hashing functions: {\tt wxIntegerHash} -for integer types ( {\tt int}, {\tt long}, {\tt short}, -and their unsigned counterparts ), {\tt wxStringHash} for strings -( {\tt wxString}, {\tt wxChar*}, {\tt char*} ), and -{\tt wxPointerHash} for any kind of pointer. -Similarly three equality predicates: -{\tt wxIntegerEqual}, {\tt wxStringEqual}, {\tt wxPointerEqual} are provided. - -Using this you could declare a hash set using {\tt int} values like this: - -\begin{verbatim} - WX_DECLARE_HASH_SET( int, - wxIntegerHash, - wxIntegerEqual, - MySet ); - - // using an user-defined class for keys - class MyKey { /* ... */ }; - - // hashing function - class MyKeyHash - { - public: - MyKeyHash() { } - - unsigned long operator()( const MyKey& k ) const - { /* compute the hash */ } - - MyKeyHash& operator=(const MyKeyHash&) { return *this; } - }; - - // comparison operator - class MyKeyEqual - { - public: - MyKeyEqual() { } - bool operator()( const MyKey& a, const MyKey& b ) const - { /* compare for equality */ } - - MyKeyEqual& operator=(const MyKeyEqual&) { return *this; } - }; - - WX_DECLARE_HASH_SET( MyKey, // type of the keys - MyKeyHash, // hasher - MyKeyEqual, // key equality predicate - CLASSNAME); // name of the class -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Types}}} - -In the documentation below you should replace wxHashSet with the name -you used in the class declaration. - -\begin{twocollist} -\twocolitem{wxHashSet::key\_type}{Type of the hash keys} -\twocolitem{wxHashSet::mapped\_type}{Type of hash keys} -\twocolitem{wxHashSet::value\_type}{Type of hash keys} -\twocolitem{wxHashSet::iterator}{Used to enumerate all the elements in a hash -set; it is similar to a {\tt value\_type*}} -\twocolitem{wxHashSet::const\_iterator}{Used to enumerate all the elements -in a constant hash set; it is similar to a {\tt const value\_type*}} -\twocolitem{wxHashSet::size\_type}{Used for sizes} -\twocolitem{wxHashSet::Insert\_Result}{The return value for -\helpref{insert()}{wxhashsetinsert}} -\end{twocollist} - -\wxheading{Iterators} - -An iterator is similar to a pointer, and so you can use the usual pointer -operations: {\tt ++it} ( and {\tt it++} ) to move to the next element, -{\tt *it} to access the element pointed to, {\tt *it} -to access the value of the element pointed to. -Hash sets provide forward only iterators, this -means that you can't use {\tt --it}, {\tt it + 3}, {\tt it1 - it2}. - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHashSet::wxHashSet}\label{wxhashsetctor} - -\func{}{wxHashSet}{\param{size\_type}{ size = 10}} - -The size parameter is just a hint, the table will resize automatically -to preserve performance. - -\func{}{wxHashSet}{\param{const wxHashSet\&}{ set}} - -Copy constructor. - -\membersection{wxHashSet::begin}\label{wxhashsetbegin} - -\constfunc{const\_iterator}{begin}{} - -\func{iterator}{begin}{} - -Returns an iterator pointing at the first element of the hash set. -Please remember that hash sets do not guarantee ordering. - -\membersection{wxHashSet::clear}\label{wxhashsetclear} - -\func{void}{clear}{} - -Removes all elements from the hash set. - -\membersection{wxHashSet::count}\label{wxhashsetcount} - -\constfunc{size\_type}{count}{\param{const key\_type\&}{ key}} - -Counts the number of elements with the given key present in the set. -This function returns only 0 or 1. - -\membersection{wxHashSet::empty}\label{wxhashsetempty} - -\constfunc{bool}{empty}{} - -Returns true if the hash set does not contain any elements, false otherwise. - -\membersection{wxHashSet::end}\label{wxhashsetend} - -\constfunc{const\_iterator}{end}{} - -\func{iterator}{end}{} - -Returns an iterator pointing at the one-after-the-last element of the hash set. -Please remember that hash sets do not guarantee ordering. - -\membersection{wxHashSet::erase}\label{wxhashseterase} - -\func{size\_type}{erase}{\param{const key\_type\&}{ key}} - -Erases the element with the given key, and returns the number of elements -erased (either 0 or 1). - -\func{void}{erase}{\param{iterator}{ it}} - -\func{void}{erase}{\param{const\_iterator}{ it}} - -Erases the element pointed to by the iterator. After the deletion -the iterator is no longer valid and must not be used. - -\membersection{wxHashSet::find}\label{wxhashsetfind} - -\func{iterator}{find}{\param{const key\_type\&}{ key}} - -\constfunc{const\_iterator}{find}{\param{const key\_type\&}{ key}} - -If an element with the given key is present, the functions returns -an iterator pointing at that element, otherwise an invalid iterator -is returned (i.e. hashset.find( non\_existent\_key ) == hashset.end()). - -\membersection{wxHashSet::insert}\label{wxhashsetinsert} - -\func{Insert\_Result}{insert}{\param{const value\_type\&}{ v}} - -Inserts the given value in the hash set. The return value is -equivalent to a \texttt{std::pair}; -the iterator points to the inserted element, the boolean value -is \texttt{true} if \texttt{v} was actually inserted. - -\membersection{wxHashSet::size}\label{wxhashsetsize} - -\constfunc{size\_type}{size}{} - -Returns the number of elements in the set. - diff --git a/docs/latex/wx/hello.bmp b/docs/latex/wx/hello.bmp deleted file mode 100644 index 98fc776673dbb6910bf685ee1a232e98b01be965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32886 zcmeI4UuYZ29mhv^2L{uC)EwyPN(=?{r4aW;P&k_8#c=fQ;b0eSWu&JS4mPS3xmgGt z+`~B>B)D*8)e0Ney%r4R=-V0_sS1?nsFBb)_t4OXmL9~yuGGns!d>n#{msa-=jX}F za?vo|Aw4<&b=m z{Tcb@@Q|$Deom;qv;tZIt$`qWsdrRQ3PmonSQ1Iwh;Grg(}d6YsQDAKZ?L3(qviFw7FvtHG^zcjza__dXC zqf}~G`4oOJ4%tZU7(hD22Y#gM>HlLi&jOJ=0wSe$~!oHi7RIGs|AG zZDrQ=m;FF+nFxZGqJbsN&b8|muK(%MfwzcPE-R<>WB?SJ3yJ;Uo@ z!l(4pCQiJIUF~TFv;tZIt$~i@BygxuP^QTdAw6(Y zrpb}Op+Z5KCP#$yz)hJZM*@cm1!bBX5z+%UWttob94Zu)X>vqJ58RY#awKr5P*A4H z5g|QrQ>Mw0z@b7xnZ_gknu?6)dV_uR;>iA_dNX=79(*M7&I|ed$&BY&UjKNweTwGy zm4Ig?h7eb1A|!GYLWR-@i5wwGp^1>lQ3w@EBP4g8jO+H}bN~5bT=ze}`)|}?SN!O~ z?9*4lDVz#%e{cgM;wPiP%=_H`qe2=V0Ci77Cl>GPH7^Vb{Vz0q`TcBEl`Ssbn@2BR z0Ee#_rSm?Y2EweT|2UHmx#ATUoxaUxah~fWyKr8`ea# zM1Id%oN?mUqtGAEN22+uM>B<~7tYpqUVL|Yy?*>COpQbr$;Kl2eeB9c_|<&qT68xA zgK{%(#++Nf-Hl%jK}vjgiu~>eq*rXfuE*JG`%N#Kw}bf(iQSoWUcV9xPvqb${20cB zV|ON;Yq4-F$M^*@v%Zm^WVJw>;Ttv=HsDM?P#ngG8HD(V^@(dC9^w2v0h@u(w*zcI zoHf%v_dnSGJeh&@=U$0iKIX%K0(tw&=coC-8L)aoUh#h3!1X_h06&xqG5)oQ+-q!5 zp5)05XEzq!$Xx4T>Us}hiUrw!TK|PK9t*F{5uo54JO&05X>NYH5PuHn+#tk z&ic%H%n5NZ`4on2*o5J}IdJ_^&_Dk9Zj|vCKmOYcoAvIctCMfSyW#uJTi?ABA9DhxM~kXYp?xz5j>D9%uUT zqfQ}D9v8?4+b7PCvkx4n8n*uUdh8bAJ#d3z-wB6pVCca2|Iz)|aTX&pk?8S^MI#^K zy^B*~aA=#oRHuF3|IwkVjF#xH|7dlG7|oXN|Ne)4g#A|94CD{7fB;g0`~3BilexhC zhZzs}{H1*N`HRc{_4kr`o_E;A>hJ&lyWpQcFZ$CY@88CC|NZvgL05VGD56mL9vacOgCd%*P61hMIiik!^wLAS zt@)rgQse^kAKTyG@r5E9a#Svz*B&oT`EoQsE1(t73TOqi0$KsBfL1^&pcT*xXa%$a zS^=$qRzNGD70?Q31+)TM0j+>mKr5gX&F_MzM88q3?pvis|-XWE;oz3dVk&e(C;S(H1*ETzx~L%j3?q>nH!W6SVX z%Jn3i0lH>WezvB2uiUbd2Z?gUY}_-qQ+9*#7c5wRJJB@T39DS89kcNv3@JTGLi#9t z>e|K3y<{uZO4*d3t!ZU49XGpI%*-cg8#*8i{CTjzrDofNvpJc?hOpUW1|6Pw*3=9m z4M%8xoqU=)ShKhI*_x%Y)izcSR=m{&t@ru0`NR=_KMiMd(oTYY21BfN64K9t4CpsD zlW>IQj&;A}R&Doyovpc@N!C`adeN@h7OXny&e@xmd+6Rw(E}?BXK}*WoNyMYwE#mr zD+%cX>YvqR>|1bz=F@buU7_`M|7^`VoVW>rPKABhm2!iY!GU96(^d0swZk?XT$Ztw zd&^H6lTD{vm>SgmKr8Tnt^oQYWaNxT81&cX$kF_9D1anK&N%3&{`6CshK5Gs^LNaP4f3QdGWjzXwV8X=J*Bq=lz5;+Q?LTQ9Vj*z6#L`dW) zgbJk*5;;PWLK7j8qYx^TMo8ocNeWGbM2a3)UpYwLoSI+tp)KqChKGk|XJ>cLKC0zDXO#7|zT#b{2@lGB zPY4_GwVt|gYQkyHoU5yASXdbF@BS_De^p@jy5v8;#{cktp8#aV07O=Y(8PR}CaZ?> z?P;p)yr!(@SW0NV)0L^YFLb=8xvKjX9G{`%z^UfnHab=B%jeX*V3-B;mO8Z5_LpFz z=g0XitXCDdG^nn%IS#mb19|C;t2bE zP`RyqRJf>>9Max}wQBS$jBWdSrhT>XY<@giT72xmG?8<;3t`%)IqiSrmiDnh&4*vl zrFa=$7%cR{OuQ(;mjwRGZk-+2b;8Px-X42oP~QJhIel&4*D>87LlOPaYJ{NRvix?~ zs)5L;I8(vX!fG4@G#RPJOKdZv;(X%VJ{C!N$nhXj zaJVyQ2MxqQq%DwvAgDq{lw7&#ASegc_#`H%GHRFu2;ye}IXDpkNne!1m1RPqyfW$1 zhcmfhLVoa}>j>x^E~bNDduPc#zPdWvaGqEOkN8VX`{?NRNp*p3HIPcS2PH;bCv6RZ4cOBLQB$>W6` zR_tdq$Bc%Nu(w)<6}nI7&@bvT6c-pH8aNzSj}O7}VBI0O+@J{Lnux5Cv?d^4w7vUD zNzKO~?~Wdi^o{#;r%kr8f|uFPN`pw#KUeF~}UyouDOX5+sx2EAc1^yg+Bx_Dj`!Sh&%i z^*OSo_`rclr5ZJR2}R5whm9vyCT`nA351s)%u2B-O@S+8A*~SBpL{Or-a4Z%+@OP)jEdE{>i+$<25Kxey>OS zVt!LrjWNmLh4<)U!Gp&$Y7X(bkm*GR4_0e-&7tqy$BT@@=}ZiR-xqAXRMcr-n_ei< zAL_kSJZw>Gkr>h&matSZ3HyZP&S`~aES1h4Ct0vgYe&~Fl`UkE(0sn`&fcZ+HF1)m zZRJ3J(#BH7@HmO`rKnd1H_4Qt19ocdjx@VTh$5~IYv3(NvlBs7ngB^)<77&EP`+v* zPtu6oD|@{aY;5I88Y{cxIEiZN8+eWLZR~KsoBzPcNdfDZK_63xp^$-ZEK=Rnl`!A zoU;Vgn*b>zWr$~b45)gYCxviMk#(K~V`)4oedge)KY5@A1&~6JoeMiG8_gBwC5}Kn zSR6HTYlF`Om4w0Uh!}7?nd;+@8mPD<$~Vu)9mAtj=*4+;lua@6tZk-y(V!(KxGXei zIez4Nl3V`a8h}Kar#`t-&|K9v7f445Gdbqf4dD^a+vUduu9knX?B_2sHr}wm6>uL{ zp9^mB@feX-uaoVcb@$77v&a!vt5E>|qdP>?y>az~E|lltUlWuJ_aa{GcdrTb=<;am zldQ`%$MfaAD@Iq_*MjyQUmZKUweklxz#uZUKhd$Me5F$9?Y%I)1W0aUF6)qbv;R=y zTLrGDcHxOhl#8!_teDGytKSX9BnZ`)EE}bcgt$n&80JUBG@CjFCB2^alLuDVv9!pm zhR&Yzjq0t+_e1Cd@c~_RLZ*D|`2=0^a7Tt#pNt7ojK@GzptBnJHi(vJg_2-vc6=pE z-&oQ+@pabU@h{$exoF!N?~T*mV5FwMw9?BS!rSa%+}Jr=W!V3kfTsxyU$Sa07tJ|! zMh}!LS~B*A>C|Oxh(=m14DtMVk4GDCz@7lgSV%VTSY`0R%eKbP6n;p7Yg(oou}KXZ zCaK|*5#Bf1OdrNy0UwP>9PU9}I`K8sXDqXz)G}D51AzJd8k?+LF}m%b6D~m>=s|EP z{a=r|e$Sq;yt?}6jR`JhpU+#|e^$j`?%QAb^b4*an0hkzBs{fZ?47-cD_;9*e^t-r z{d&L}U~ne#+CG&JYgH7$@(MXiuV!c`xDJTjhmXQ~m1#yNANG2_Tr7C>d&cb6!@gIB z^@n!PA*@)}^DJmN29<=E6ZM`f&Y!D=6aWyePfUa(p^_|dlx^(>Fy6V;U@HZArsa(u82k@D%|tD zrajaUYGD3XSLgzD$-UEh1<4FSQlg-Yg22PAb}sUy9Jc#A+Vao+$hXAXXwA9oHj`%z zw4IRSD_m6Prf6MoTi)1SAjq#Cj-Gc4RPr4V+FMxFIJhU5jN)0M z<%zO5q3|?c)2+s<8RmUbzBo_uCBy8VEz-ZK*!NXI4EDL<-PLEE6J2rd*2{v - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxHelpEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_HELP(id, func)}}{Process a wxEVT\_HELP event.} -\twocolitem{{\bf EVT\_HELP\_RANGE(id1, id2, func)}}{Process a wxEVT\_HELP event for a range of ids.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxContextHelp}{wxcontexthelp},\rtfsp -\helpref{wxDialog}{wxdialog},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHelpEvent::wxHelpEvent}\label{wxhelpeventctor} - -\func{}{wxHelpEvent}{\param{WXTYPE }{eventType = 0}, \param{wxWindowID }{id = 0}, - \param{const wxPoint\& }{point}} - -Constructor. - -\membersection{wxHelpEvent::GetOrigin}\label{wxhelpeventgetorigin} - -\constfunc{wxHelpEvent::Origin }{GetOrigin}{\void} - -Returns the origin of the help event which is one of the following values: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Origin\_Unknown}}{Unrecognized event source.} -\twocolitem{{\bf Origin\_Keyboard}}{Event generated by \texttt{F1} key press.} -\twocolitem{{\bf Origin\_HelpButton}}{Event generated by -\helpref{wxContextHelp}{wxcontexthelp} or using the "?" title bur button under -MS Windows.} -\end{twocollist} - -The application may handle events generated using the keyboard or mouse -differently, e.g. by using \helpref{wxGetMousePosition()}{wxgetmouseposition} -for the mouse events. - -\wxheading{See also} - -\helpref{wxHelpEvent::SetOrigin}{wxhelpeventsetorigin} - - -\membersection{wxHelpEvent::GetPosition}\label{wxhelpeventgetposition} - -\constfunc{const wxPoint\&}{GetPosition}{\void} - -Returns the left-click position of the mouse, in screen coordinates. This allows -the application to position the help appropriately. - -\membersection{wxHelpEvent::SetOrigin}\label{wxhelpeventsetorigin} - -\func{void}{SetOrigin}{\param{wxHelpEvent::Origin }{origin}} - -Set the help event origin, only used internally by wxWidgets normally. - -\wxheading{See also} - -\helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin} - - -\membersection{wxHelpEvent::SetPosition}\label{wxhelpeventsetposition} - -\func{void}{SetPosition}{\param{const wxPoint\&}{ pt}} - -Sets the left-click position of the mouse, in screen coordinates. - diff --git a/docs/latex/wx/helpinst.tex b/docs/latex/wx/helpinst.tex deleted file mode 100644 index fd42c0e51e..0000000000 --- a/docs/latex/wx/helpinst.tex +++ /dev/null @@ -1,278 +0,0 @@ -\section{\class{wxHelpController}}\label{wxhelpcontroller} - -This is a family of classes by which -applications may invoke a help viewer to provide on-line help. - -A help controller allows an application to display help, at the contents -or at a particular topic, and shut the help program down on termination. -This avoids proliferation of many instances of the help viewer whenever the -user requests a different topic via the application's menus or buttons. - -Typically, an application will create a help controller instance -when it starts, and immediately call {\bf Initialize}\rtfsp -to associate a filename with it. The help viewer will only get run, however, -just before the first call to display something. - -Most help controller classes actually derive from wxHelpControllerBase and have -names of the form wxXXXHelpController or wxHelpControllerXXX. An -appropriate class is aliased to the name wxHelpController for each platform, as follows: - -\begin{itemize}\itemsep=0pt -\item On desktop Windows, wxCHMHelpController is used (MS HTML Help). -\item On Windows CE, wxWinceHelpController is used. -\item On all other platforms, wxHtmlHelpController is used if wxHTML is -compiled into wxWidgets; otherwise wxExtHelpController is used (for invoking an external -browser). -\end{itemize} - -The remaining help controller classes need to be named -explicitly by an application that wishes to make use of them. - -There are currently the following help controller classes defined: - -\begin{itemize}\itemsep=0pt -\item wxWinHelpController, for controlling Windows Help. -\item wxCHMHelpController, for controlling MS HTML Help. To use this, you need to set wxUSE\_MS\_HTML\_HELP -to 1 in setup.h and have htmlhelp.h header from Microsoft's HTML Help kit (you don't need -VC++ specific htmlhelp.lib because wxWidgets loads necessary DLL at runtime and so it -works with all compilers). -\item wxBestHelpController, for controlling MS HTML Help or, if Microsoft's runtime is -not available, \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. You need to provide -{\bf both} CHM and HTB versions of the help file. For 32bit Windows only. -\item wxExtHelpController, for controlling external browsers under Unix. -The default browser is Netscape Navigator. The 'help' sample shows its use. -\item wxWinceHelpController, for controlling a simple {\tt .htm} help controller for Windows CE applications. -\item \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}, a sophisticated help controller using \helpref{wxHTML}{wxhtml}, in -a similar style to the Microsoft HTML Help viewer and using some of the same files. -Although it has an API compatible with other help controllers, it has more advanced features, so it is -recommended that you use the specific API for this class instead. Note that if you -use .zip or .htb formats for your books, you -must add this line to your application initialization: {\tt wxFileSystem::AddHandler(new wxArchiveFSHandler);} -or nothing will be shown in your help window. -\end{itemize} - -\wxheading{Derived from} - -wxHelpControllerBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - (wxWidgets chooses the appropriate help controller class)\\ - (wxHelpControllerBase class)\\ - (Windows Help controller)\\ - (MS HTML Help controller)\\ - (external HTML browser controller)\\ - (wxHTML based help controller: wxHtmlHelpController) - -\wxheading{See also} - -\helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}, \helpref{wxHTML}{wxhtml} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHelpController::wxHelpController}\label{wxhelpcontrollerctor} - -\func{}{wxHelpController}{\param{wxWindow*}{ parentWindow = NULL}} - -Constructs a help instance object, but does not invoke the help viewer. - -If you provide a window, it will be used by some help controller classes, such as -wxCHMHelpController, wxWinHelpController and wxHtmlHelpController, as the -parent for the help window instead of the value of \helpref{wxApp::GetTopWindow}{wxappgettopwindow}. You can also change the parent window later with -\helpref{wxHelpController::SetParentWindow}{wxhelpcontrollersetparentwindow}. - -\membersection{wxHelpController::\destruct{wxHelpController}}\label{wxhelpcontrollerdtor} - -\func{}{\destruct{wxHelpController}}{\void} - -Destroys the help instance, closing down the viewer if it is running. - -\membersection{wxHelpController::Initialize}\label{wxhelpcontrollerinitialize} - -\func{virtual bool}{Initialize}{\param{const wxString\& }{file}} - -\func{virtual bool}{Initialize}{\param{const wxString\& }{file}, \param{int}{ server}} - -Initializes the help instance with a help filename, and optionally a server socket -number if using wxHelp (now obsolete). Does not invoke the help viewer. -This must be called directly after the help instance object is created and before -any attempts to communicate with the viewer. - -You may omit the file extension and a suitable one will be chosen. For -wxHtmlHelpController, the extensions zip, htb and hhp will be appended while searching for -a suitable file. For WinHelp, the hlp extension is appended. - -\membersection{wxHelpController::DisplayBlock}\label{wxhelpcontrollerdisplayblock} - -\func{virtual bool}{DisplayBlock}{\param{long}{ blockNo}} - -If the help viewer is not running, runs it and displays the file at the given block number. - -{\it WinHelp:} Refers to the context number. - -{\it MS HTML Help:} Refers to the context number. - -{\it External HTML help:} the same as for \helpref{wxHelpController::DisplaySection}{wxhelpcontrollerdisplaysection}. - -{\it wxHtmlHelpController:} {\it sectionNo} is an identifier as specified in the {\tt .hhc} file. See \helpref{Help files format}{helpformat}. - -This function is for backward compatibility only, and applications should use \helpref{wxHelpController}{wxhelpcontrollerdisplaysection} instead. - -\membersection{wxHelpController::DisplayContents}\label{wxhelpcontrollerdisplaycontents} - -\func{virtual bool}{DisplayContents}{\void} - -If the help viewer is not running, runs it and displays the -contents. - -\membersection{wxHelpController::DisplayContextPopup}\label{wxhelpcontrollerdisplaycontextpopup} - -\func{virtual bool}{DisplayContextPopup}{\param{int }{contextId}} - -Displays the section as a popup window using a context id. - -Returns false if unsuccessful or not implemented. - -\membersection{wxHelpController::DisplaySection}\label{wxhelpcontrollerdisplaysection} - -\func{virtual bool}{DisplaySection}{\param{const wxString\&}{ section}} - -If the help viewer is not running, runs it and displays the given section. - -The interpretation of {\it section} differs between help viewers. For most viewers, -this call is equivalent to KeywordSearch. For MS HTML Help, wxHTML help and external HTML help, -if {\it section} has a .htm -or .html extension, that HTML file will be displayed; otherwise -a keyword search is done. - -\func{virtual bool}{DisplaySection}{\param{int}{ sectionNo}} - -If the help viewer is not running, runs it and displays the given section. - -{\it WinHelp, MS HTML Help} {\it sectionNo} is a context id. - -{\it External HTML help:} wxExtHelpController implements {\it sectionNo} as an id in a map file, which is of the form: - -\begin{verbatim} -0 wx.html ; Index -1 wx34.html#classref ; Class reference -2 wx204.html ; Function reference -\end{verbatim} - -{\it wxHtmlHelpController:} {\it sectionNo} is an identifier as specified in the {\tt .hhc} file. See \helpref{Help files format}{helpformat}. - -See also the help sample for notes on how to specify section numbers for various help file formats. - -\membersection{wxHelpController::DisplayTextPopup}\label{wxhelpcontrollerdisplaytextpopup} - -\func{virtual bool}{DisplayTextPopup}{\param{const wxString\&}{ text}, \param{const wxPoint\& }{pos}} - -Displays the text in a popup window, if possible. - -Returns false if unsuccessful or not implemented. - -\membersection{wxHelpController::GetFrameParameters}\label{wxhelpcontrollergetframeparameters} - -\func{virtual wxFrame *}{GetFrameParameters}{\param{const wxSize * }{size = NULL}, \param{const wxPoint * }{pos = NULL}, - \param{bool *}{newFrameEachTime = NULL}} - -wxHtmlHelpController returns the frame, size and position. - -For all other help controllers, this function does nothing -and just returns NULL. - -\wxheading{Parameters} - -\docparam{viewer}{This defaults to "netscape" for wxExtHelpController.} - -\docparam{flags}{This defaults to wxHELP\_NETSCAPE for wxExtHelpController, indicating -that the viewer is a variant of Netscape Navigator.} - -\membersection{wxHelpController::GetParentWindow}\label{wxhelpcontrollergetparentwindow} - -\constfunc{virtual wxWindow*}{GetParentWindow}{\void} - -Returns the window to be used as the parent for the help window. This window is used -by wxCHMHelpController, wxWinHelpController and wxHtmlHelpController. - -\membersection{wxHelpController::KeywordSearch}\label{wxhelpcontrollerkeywordsearch} - -\func{virtual bool}{KeywordSearch}{\param{const wxString\& }{keyWord}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}} - -If the help viewer is not running, runs it, and searches for sections matching -the given keyword. If one match is found, the file is displayed at this -section. The optional parameter allows the search the index -(wxHELP\_SEARCH\_INDEX) but this currently only supported by the -wxHtmlHelpController. - -{\it WinHelp, MS HTML Help:} If more than one match is found, -the first topic is displayed. - -{\it External HTML help, simple wxHTML help:} If more than one match is found, -a choice of topics is displayed. - -{\it wxHtmlHelpController:} see \helpref{wxHtmlHelpController::KeywordSearch}{wxhtmlhelpcontrollerkeywordsearch}. - -\membersection{wxHelpController::LoadFile}\label{wxhelpcontrollerloadfile} - -\func{virtual bool}{LoadFile}{\param{const wxString\& }{file = ""}} - -If the help viewer is not running, runs it and loads the given file. -If the filename is not supplied or is -empty, the file specified in {\bf Initialize} is used. If the viewer is -already displaying the specified file, it will not be reloaded. This -member function may be used before each display call in case the user -has opened another file. - -wxHtmlHelpController ignores this call. - -\membersection{wxHelpController::OnQuit}\label{wxhelpcontrolleronquit} - -\func{virtual bool}{OnQuit}{\void} - -Overridable member called when this application's viewer is quit by the user. - -This does not work for all help controllers. - -\membersection{wxHelpController::SetFrameParameters}\label{wxhelpcontrollersetframeparameters} - -\func{virtual void}{SetFrameParameters}{\param{const wxString \& }{title}, - \param{const wxSize \& }{size}, \param{const wxPoint \& }{pos = wxDefaultPosition}, - \param{bool }{newFrameEachTime = false}} - -For wxHtmlHelpController, the title is set (again with \%s indicating the -page title) and also the size and position of the frame if the frame is already -open. {\it newFrameEachTime} is ignored. - -For all other help controllers this function has no effect. - -\membersection{wxHelpController::SetParentWindow}\label{wxhelpcontrollersetparentwindow} - -\func{virtual void}{SetParentWindow}{\param{wxWindow* }{parentWindow}} - -Sets the window to be used as the parent for the help window. This is used -by wxCHMHelpController, wxWinHelpController and wxHtmlHelpController. - -\membersection{wxHelpController::SetViewer}\label{wxhelpcontrollersetviewer} - -\func{virtual void}{SetViewer}{\param{const wxString\& }{viewer}, \param{long}{ flags}} - -Sets detailed viewer information. So far this is only relevant to wxExtHelpController. - -Some examples of usage: - -\begin{verbatim} - m_help.SetViewer("kdehelp"); - m_help.SetViewer("gnome-help-browser"); - m_help.SetViewer("netscape", wxHELP_NETSCAPE); -\end{verbatim} - -\membersection{wxHelpController::Quit}\label{wxhelpcontrollerquit} - -\func{virtual bool}{Quit}{\void} - -If the viewer is running, quits it by disconnecting. - -For Windows Help, the viewer will only close if no other application is using it. - diff --git a/docs/latex/wx/helpprov.tex b/docs/latex/wx/helpprov.tex deleted file mode 100644 index a72cf5046d..0000000000 --- a/docs/latex/wx/helpprov.tex +++ /dev/null @@ -1,119 +0,0 @@ -\section{\class{wxHelpProvider}}\label{wxhelpprovider} - -wxHelpProvider is an abstract class used by a program implementing context-sensitive help to -show the help text for the given window. - -The current help provider must be explicitly set by the application using -wxHelpProvider::Set(). - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxContextHelp}{wxcontexthelp}, \helpref{wxContextHelpButton}{wxcontexthelpbutton}, -\helpref{wxSimpleHelpProvider}{wxsimplehelpprovider}, \helpref{wxHelpControllerHelpProvider}{wxhelpcontrollerhelpprovider}, -\helpref{wxWindow::SetHelpText}{wxwindowsethelptext}, \helpref{wxWindow::GetHelpTextAtPoint}{wxwindowgethelptextatpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxHelpProvider::\destruct{wxHelpProvider}}\label{wxhelpproviderdtor} - -\func{}{\destruct{wxHelpProvider}}{\void} - -Virtual destructor for any base class. - - -\membersection{wxHelpProvider::AddHelp}\label{wxhelpprovideraddhelp} - -\func{void}{AddHelp}{\param{wxWindowBase* }{window}, \param{const wxString\& }{text}} - -Associates the text with the given window or id. Although all help -providers have these functions to allow making \helpref{wxWindow::SetHelpText}{wxwindowsethelptext} -work, not all of them implement the functions. - - -\membersection{wxHelpProvider::Get}\label{wxhelpproviderget} - -\func{wxHelpProvider*}{Get}{\void} - -Unlike some other classes, the help provider is not created on demand. -This must be explicitly done by the application. - - -\membersection{wxHelpProvider::GetHelp}\label{wxhelpprovidergethelp} - -\func{wxString}{GetHelp}{\param{const wxWindowBase* }{window}} - -Gets the help string for this window. Its interpretation is dependent on the help provider -except that empty string always means that no help is associated with -the window. - -\func{void}{AddHelp}{\param{wxWindowID }{id}, \param{const wxString\& }{text}} - -This version associates the given text with all windows with this id. -May be used to set the same help string for all Cancel buttons in -the application, for example. - - -\membersection{wxHelpProvider::RemoveHelp}\label{wxhelpproviderremovehelp} - -\func{void}{RemoveHelp}{\param{wxWindowBase* }{window}} - -Removes the association between the window pointer and the help text. This is -called by the wxWindow destructor. Without this, the table of help strings will fill up -and when window pointers are reused, the wrong help string will be found. - - -\membersection{wxHelpProvider::Set}\label{wxhelpproviderset} - -\func{wxHelpProvider*}{Set}{\param{wxHelpProvider* }{helpProvider}} - -Get/set the current, application-wide help provider. Returns -the previous one. - - -\membersection{wxHelpProvider::ShowHelpAtPoint}\label{wxhelpprovidershowhelpatpoint} - -\func{bool}{ShowHelpAtPoint}{\param{wxWindowBase* }{window}, \param{const wxPoint & }{point}, \param{wxHelpEvent::Origin }{origin}} - -This function may be overridden to show help for the window when it should -depend on the position inside the window, By default this method forwards to -\helpref{ShowHelp}{wxhelpprovidershowhelp}, so it is enough to only implement -the latter if the help doesn't depend on the position. - -Returns \true if help was shown, or \false if no help was available for this -window. - -\wxheading{Parameters} - -\docparam{window}{Window to show help text for.} - -\docparam{point}{Coordinates of the mouse at the moment of help event emission.} - -\docparam{origin}{Help event origin, see \helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin}.} - -\newsince{2.7.0} - - -\membersection{wxHelpProvider::ShowHelp}\label{wxhelpprovidershowhelp} - -\func{bool}{ShowHelp}{\param{wxWindowBase* }{window}} - -Shows help for the given window. Override this function if the help doesn't -depend on the exact position inside the window, otherwise you need to override -\helpref{ShowHelpAtPoint}{wxhelpprovidershowhelpatpoint}. - -Returns \true if help was shown, or \false if no help was available for this -window. - diff --git a/docs/latex/wx/hprovcnt.tex b/docs/latex/wx/hprovcnt.tex deleted file mode 100644 index 8728f3c488..0000000000 --- a/docs/latex/wx/hprovcnt.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{\class{wxHelpControllerHelpProvider}}\label{wxhelpcontrollerhelpprovider} - -wxHelpControllerHelpProvider is an implementation of wxHelpProvider which supports -both context identifiers and plain text help strings. If the help text is an integer, -it is passed to wxHelpController::DisplayContextPopup. Otherwise, it shows the string -in a tooltip as per wxSimpleHelpProvider. If you use this with a wxCHMHelpController instance -on windows, it will use the native style of tip window instead of \helpref{wxTipWindow}{wxtipwindow}. - -You can use the convenience function {\bf wxContextId} to convert an integer context -id to a string for passing to \helpref{wxWindow::SetHelpText}{wxwindowsethelptext}. - -\wxheading{Derived from} - -\helpref{wxSimpleHelpProvider}{wxsimplehelpprovider}\\ -\helpref{wxHelpProvider}{wxhelpprovider} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHelpProvider}{wxhelpprovider}, \helpref{wxSimpleHelpProvider}{wxsimplehelpprovider}, -\helpref{wxContextHelp}{wxcontexthelp}, \helpref{wxWindow::SetHelpText}{wxwindowsethelptext}, -\helpref{wxWindow::GetHelpTextAtPoint}{wxwindowgethelptextatpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHelpControllerHelpProvider::wxHelpControllerHelpProvider}\label{wxhelpcontrollerhelpproviderwxhelpcontrollerhelpprovider} - -\func{}{wxHelpControllerHelpProvider}{\param{wxHelpControllerBase* }{hc = NULL}} - -Note that the instance doesn't own the help controller. The help controller -should be deleted separately. - -\membersection{wxHelpControllerHelpProvider::SetHelpController}\label{wxhelpcontrollerhelpprovidersethelpcontroller} - -\func{void}{SetHelpController}{\param{wxHelpControllerBase* }{hc}} - -Sets the help controller associated with this help provider. - -\membersection{wxHelpControllerHelpProvider::GetHelpController}\label{wxhelpcontrollerhelpprovidergethelpcontroller} - -\constfunc{wxHelpControllerBase*}{GetHelpController}{\void} - -Returns the help controller associated with this help provider. - diff --git a/docs/latex/wx/hprovsmp.tex b/docs/latex/wx/hprovsmp.tex deleted file mode 100644 index 99357e7ca8..0000000000 --- a/docs/latex/wx/hprovsmp.tex +++ /dev/null @@ -1,24 +0,0 @@ -\section{\class{wxSimpleHelpProvider}}\label{wxsimplehelpprovider} - -wxSimpleHelpProvider is an implementation of \helpref{wxHelpProvider}{wxhelpprovider} which supports -only plain text help strings, and shows the string associated with the -control (if any) in a tooltip. - -\wxheading{Derived from} - -\helpref{wxHelpProvider}{wxhelpprovider} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHelpProvider}{wxhelpprovider}, \helpref{wxHelpControllerHelpProvider}{wxhelpcontrollerhelpprovider}, -\helpref{wxContextHelp}{wxcontexthelp}, \helpref{wxWindow::SetHelpText}{wxwindowsethelptext}, -\helpref{wxWindow::GetHelpTextAtPoint}{wxwindowgethelptextatpoint} - diff --git a/docs/latex/wx/hscrolledwindow.tex b/docs/latex/wx/hscrolledwindow.tex deleted file mode 100644 index 386b4a6eb7..0000000000 --- a/docs/latex/wx/hscrolledwindow.tex +++ /dev/null @@ -1,103 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: hscrolledwindow.tex -%% Purpose: wxHScrolledWindow Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHScrolledWindow}}\label{wxhscrolledwindow} - -In the name of this class, "H" stands for "horizontal" because it can be -used for scrolling columns of variable widths. It is not necessary to know -the widths of all columns in advance -- only those which are shown on the -screen need to be measured. - -In any case, this is a generalization of the -\helpref{wxScrolledWindow}{wxscrolledwindow} class which can be only used when -all columns have the same widths. It lacks some other wxScrolledWindow features -however, notably it can't scroll only a rectangle of the window and not its -entire client area. - -To use this class, you need to derive from it and implement the -\helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} pure virtual -method. You also must call \helpref{SetColumnCount()}{wxvarhscrollhelpersetcolumncount} -to let the base class know how many columns it should display, but from that -moment on the scrolling is handled entirely by wxHScrolledWindow. You only -need to draw the visible part of contents in your {\tt OnPaint()} method as -usual. You should use \helpref{GetVisibleColumnsBegin()}{wxvarhscrollhelpergetvisiblecolumnsbegin} -and \helpref{GetVisibleColumnsEnd()}{wxvarhscrollhelpergetvisiblecolumnsend} to -select the lines to display. Note that the device context origin is not shifted -so the first visible column always appears at the point $(0, 0)$ in physical as -well as logical coordinates. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\helpref{wxVarHScrollHelper}{wxvarhscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxHScrolledWindow::wxHScrolledWindow}\label{wxhscrolledwindowwxhscrolledwindow} - -\func{}{wxHScrolledWindow}{\void} - -Default constructor, you must call \helpref{Create()}{wxhscrolledwindowcreate} -later. - -\func{}{wxHScrolledWindow}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -This is the normal constructor, no need to call {\tt Create()} after using this one. - -Note that {\tt wxHSCROLL} is always automatically added to our style, there is -no need to specify it explicitly. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, must not be {\tt NULL}} - -\docparam{id}{The identifier of this window, {\tt wxID\_ANY} by default} - -\docparam{pos}{The initial window position} - -\docparam{size}{The initial window size} - -\docparam{style}{The window style. There are no special style bits defined for -this class.} - -\docparam{name}{The name for this window; usually not used} - - -\membersection{wxHScrolledWindow::Create}\label{wxhscrolledwindowcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -Same as the \helpref{non-default constuctor}{wxhscrolledwindowwxhscrolledwindow} -but returns status code: {\tt true} if ok, {\tt false} if the window couldn't -be created. - -Just as with the constructor above, the {\tt wxHSCROLL} style is always used, -there is no need to specify it explicitly. - diff --git a/docs/latex/wx/htcell.tex b/docs/latex/wx/htcell.tex deleted file mode 100644 index 5bfff0e864..0000000000 --- a/docs/latex/wx/htcell.tex +++ /dev/null @@ -1,304 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: htcell.tex -%% Purpose: wxHtmlCell documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: 21/Mar/99 22:45:23 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHtmlCell}}\label{wxhtmlcell} - -Internal data structure. It represents fragments of parsed HTML -page, the so-called {\bf cell} - a word, picture, table, horizontal line and so on. -It is used by \helpref{wxHtmlWindow}{wxhtmlwindow} and -\helpref{wxHtmlWinParser}{wxhtmlwinparser} to represent HTML page in memory. - -You can divide cells into two groups : {\it visible} cells with non-zero width and -height and {\it helper} cells (usually with zero width and height) that -perform special actions such as color or font change. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See Also} - -\helpref{Cells Overview}{cells}, -\helpref{wxHtmlContainerCell}{wxhtmlcontainercell} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlCell::wxHtmlCell}\label{wxhtmlcellwxhtmlcell} - -\func{}{wxHtmlCell}{\void} - -Constructor. - -\membersection{wxHtmlCell::AdjustPagebreak}\label{wxhtmlcelladjustpagebreak} - -\func{virtual bool}{AdjustPagebreak}{\param{int * }{pagebreak}} - -This method is used to adjust pagebreak position. The parameter is -variable that contains y-coordinate of page break (= horizontal line that -should not be crossed by words, images etc.). If this cell cannot be divided -into two pieces (each one on another page) then it moves the pagebreak -few pixels up. - -Returns true if pagebreak was modified, false otherwise - -Usage: -\begin{verbatim} -while (container->AdjustPagebreak(&p)) {} -\end{verbatim} - -\membersection{wxHtmlCell::Draw}\label{wxhtmlcelldraw} - -\func{virtual void}{Draw}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{view\_y1}, \param{int }{view\_y2}} - -Renders the cell. - -\wxheading{Parameters} - -\docparam{dc}{Device context to which the cell is to be drawn} - -\docparam{x,y}{Coordinates of parent's upper left corner (origin). You must -add this to m\_PosX,m\_PosY when passing coordinates to dc's methods -Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}} - -\docparam{view\_y1}{y-coord of the first line visible in window. This is -used to optimize rendering speed} - -\docparam{view\_y2}{y-coord of the last line visible in window. This is -used to optimize rendering speed} - -\membersection{wxHtmlCell::DrawInvisible}\label{wxhtmlcelldrawinvisible} - -\func{virtual void}{DrawInvisible}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}} - -This method is called instead of \helpref{Draw}{wxhtmlcelldraw} when the -cell is certainly out of the screen (and thus invisible). This is not -nonsense - some tags (like \helpref{wxHtmlColourCell}{wxhtmlcolourcell} -or font setter) must be drawn even if they are invisible! - -\wxheading{Parameters} - -\docparam{dc}{Device context to which the cell is to be drawn} - -\docparam{x,y}{Coordinates of parent's upper left corner. You must -add this to m\_PosX,m\_PosY when passing coordinates to dc's methods -Example : {\tt dc -> DrawText("hello", x + m\_PosX, y + m\_PosY)}} - -\membersection{wxHtmlCell::Find}\label{wxhtmlcellfind} - -\func{virtual const wxHtmlCell*}{Find}{\param{int }{condition}, \param{const void* }{param}} - -Returns pointer to itself if this cell matches condition (or if any of the cells -following in the list matches), NULL otherwise. -(In other words if you call top-level container's Find it will -return pointer to the first cell that matches the condition) - -It is recommended way how to obtain pointer to particular cell or -to cell of some type (e.g. wxHtmlAnchorCell reacts on -wxHTML\_COND\_ISANCHOR condition) - -\wxheading{Parameters} - -\docparam{condition}{Unique integer identifier of condition} - -\docparam{param}{Optional parameters} - -\wxheading{Defined conditions} - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_COND\_ISANCHOR}}{Finds particular anchor. -{\it param} is pointer to wxString with name of the anchor.} -\twocolitem{{\bf wxHTML\_COND\_USER}}{User-defined conditions start -from this number.} -\end{twocollist} - -\membersection{wxHtmlCell::GetDescent}\label{wxhtmlcellgetdescent} - -\constfunc{int}{GetDescent}{\void} - -Returns descent value of the cell (m\_Descent member). -\helponly{See explanation: - -\image{}{descent.bmp} -} - -\membersection{wxHtmlCell::GetFirstChild}\label{wxhtmlcellgetfirstchild} - -\func{wxHtmlCell*}{GetFirstChild}{\void} - -Returns pointer to the first cell in the list. -You can then use child's \helpref{GetNext}{wxhtmlcellgetnext} -method to obtain pointer to the next cell in list. - -{\bf Note:} This shouldn't be used by the end user. If you need some way of -finding particular cell in the list, try \helpref{Find}{wxhtmlcellfind} method -instead. - -\membersection{wxHtmlCell::GetHeight}\label{wxhtmlcellgetheight} - -\constfunc{int}{GetHeight}{\void} - -Returns height of the cell (m\_Height member). - -\membersection{wxHtmlCell::GetId}\label{wxhtmlcellgetid} - -\constfunc{virtual wxString}{GetId}{\void} - -Returns unique cell identifier if there is any, empty string otherwise. - -\membersection{wxHtmlCell::GetLink}\label{wxhtmlcellgetlink} - -\constfunc{virtual wxHtmlLinkInfo*}{GetLink}{\param{int }{x = 0}, \param{int }{y = 0}} - -Returns hypertext link if associated with this cell or NULL otherwise. -See \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}. -(Note: this makes sense only for visible tags). - -\wxheading{Parameters} - -\docparam{x,y}{Coordinates of position where the user pressed mouse button. -These coordinates are used e.g. by COLORMAP. Values are relative to the -upper left corner of THIS cell (i.e. from 0 to m\_Width or m\_Height)} - -\membersection{wxHtmlCell::GetMouseCursor}\label{wxhtmlcellgetmousecursor} - -\func{virtual wxCursor}{GetMouseCursor}{\param{wxHtmlWindowInterface* }{window}} - -Returns cursor to show when mouse pointer is over the cell. - -\wxheading{Parameters} - -\docparam{window}{interface to the parent HTML window} - -\newsince{2.7.0} (before \tt{GetCursor} method served a similar purpose, which is now deprecated). - - -\membersection{wxHtmlCell::GetNext}\label{wxhtmlcellgetnext} - -\constfunc{wxHtmlCell*}{GetNext}{\void} - -Returns pointer to the next cell in list (see htmlcell.h if you're -interested in details). - -\membersection{wxHtmlCell::GetParent}\label{wxhtmlcellgetparent} - -\constfunc{wxHtmlContainerCell*}{GetParent}{\void} - -Returns pointer to parent container. - -\membersection{wxHtmlCell::GetPosX}\label{wxhtmlcellgetposx} - -\constfunc{int}{GetPosX}{\void} - -Returns X position within parent (the value is relative to parent's -upper left corner). The returned value is meaningful only if -parent's \helpref{Layout}{wxhtmlcelllayout} was called before! - -\membersection{wxHtmlCell::GetPosY}\label{wxhtmlcellgetposy} - -\constfunc{int}{GetPosY}{\void} - -Returns Y position within parent (the value is relative to parent's -upper left corner). The returned value is meaningful only if -parent's \helpref{Layout}{wxhtmlcelllayout} was called before! - -\membersection{wxHtmlCell::GetWidth}\label{wxhtmlcellgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Returns width of the cell (m\_Width member). - -\membersection{wxHtmlCell::Layout}\label{wxhtmlcelllayout} - -\func{virtual void}{Layout}{\param{int }{w}} - -This method performs two actions: - -\begin{enumerate}\itemsep=0pt -\item adjusts the cell's width according to the fact that maximal possible width is {\it w}. -(this has sense when working with horizontal lines, tables etc.) -\item prepares layout (=fill-in m\_PosX, m\_PosY (and sometimes m\_Height) members) -based on actual width {\it w} -\end{enumerate} - -It must be called before displaying cells structure because -m\_PosX and m\_PosY are undefined (or invalid) -before calling Layout. - -\membersection{wxHtmlCell::ProcessMouseClick}\label{wxhtmlcellprocessmouseclick} - -\func{virtual bool}{ProcessMouseClick}{\param{wxHtmlWindowInterface* }{window}, \param{const wxPoint\& }{pos}, \param{const wxMouseEvent\& }{event}} - -This function is simple event handler. Each time the user clicks mouse button -over a cell within \helpref{wxHtmlWindow}{wxhtmlwindow} this method of that -cell is called. Default behavior is to call -\helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage}. - -\wxheading{Note} - -If you need more "advanced" event handling -you should use wxHtmlBinderCell instead. - -\wxheading{Parameters} - -\docparam{window}{interface to the parent HTML window} - -\docparam{pos}{coordinates of mouse click (this is relative to cell's origin} - -\docparam{event}{mouse event that triggered the call} - -\wxheading{Return value} - -\true if a link was clicked, \false otherwise. - -\newsince{2.7.0} (before \tt{OnMouseClick} method served a similar purpose). - - -\membersection{wxHtmlCell::SetId}\label{wxhtmlcellsetid} - -\func{void}{SetId}{\param{const wxString\& }{id}} - -Sets unique cell identifier. Default value is no identifier, i.e. empty string. - -\membersection{wxHtmlCell::SetLink}\label{wxhtmlcellsetlink} - -\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}} - -Sets the hypertext link associated with this cell. (Default value -is \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}("", "") (no link)) - -\membersection{wxHtmlCell::SetNext}\label{wxhtmlcellsetnext} - -\func{void}{SetNext}{\param{wxHtmlCell }{*cell}} - -Sets the next cell in the list. This shouldn't be called by user - it is -to be used only by \helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell}. - -\membersection{wxHtmlCell::SetParent}\label{wxhtmlcellsetparent} - -\func{void}{SetParent}{\param{wxHtmlContainerCell }{*p}} - -Sets parent container of this cell. This is called from -\helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell}. - -\membersection{wxHtmlCell::SetPos}\label{wxhtmlcellsetpos} - -\func{void}{SetPos}{\param{int }{x}, \param{int }{y}} - -Sets the cell's position within parent container. - diff --git a/docs/latex/wx/htcolor.tex b/docs/latex/wx/htcolor.tex deleted file mode 100644 index 5ee71e0a02..0000000000 --- a/docs/latex/wx/htcolor.tex +++ /dev/null @@ -1,42 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcolourcell.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlColourCell}}\label{wxhtmlcolourcell} - -This cell changes the colour of either the background or the foreground. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlColourCell::wxHtmlColourCell}\label{wxhtmlcolourcellwxhtmlcolourcell} - -\func{}{wxHtmlColourCell}{\param{wxColour }{clr}, \param{int }{flags = wxHTML\_CLR\_FOREGROUND}} - -Constructor. - -\wxheading{Parameters} - -\docparam{clr}{The color} - -\docparam{flags}{Can be one of following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_CLR\_FOREGROUND}}{change color of text} -\twocolitem{{\bf wxHTML\_CLR\_BACKGROUND}}{change background color} -\end{twocollist} -} - diff --git a/docs/latex/wx/htcontnr.tex b/docs/latex/wx/htcontnr.tex deleted file mode 100644 index dac106978a..0000000000 --- a/docs/latex/wx/htcontnr.tex +++ /dev/null @@ -1,249 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: htcontnr.tex -%% Purpose: wxHtmlContainerCell documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: 21/Mar/99 22:45:23 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHtmlContainerCell}}\label{wxhtmlcontainercell} - -The wxHtmlContainerCell class is an implementation of a cell that may -contain more cells in it. It is heavily used in the wxHTML layout algorithm. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See Also} - -\helpref{Cells Overview}{cells} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlContainerCell::wxHtmlContainerCell}\label{wxhtmlcontainercellwxhtmlcontainercell} - -\func{}{wxHtmlContainerCell}{\param{wxHtmlContainerCell }{*parent}} - -Constructor. {\it parent} is pointer to parent container or NULL. - - -\membersection{wxHtmlContainerCell::GetAlignHor}\label{wxhtmlcontainercellgetalignhor} - -\constfunc{int}{GetAlignHor}{\void} - -Returns container's horizontal alignment. - -\membersection{wxHtmlContainerCell::GetAlignVer}\label{wxhtmlcontainercellgetalignver} - -\constfunc{int}{GetAlignVer}{\void} - -Returns container's vertical alignment. - -\membersection{wxHtmlContainerCell::GetBackgroundColour}\label{wxhtmlcontainercellgetbackgroundcolour} - -\func{wxColour}{GetBackgroundColour}{\void} - -Returns the background colour of the container or {\tt wxNullColour} if no background -colour is set. - -\membersection{wxHtmlContainerCell::GetIndent}\label{wxhtmlcontainercellgetindent} - -\constfunc{int}{GetIndent}{\param{int }{ind}} - -Returns the indentation. {\it ind} is one of the {\bf wxHTML\_INDENT\_*} constants. - -{\bf Note:} You must call \helpref{GetIndentUnits}{wxhtmlcontainercellgetindentunits} -with same {\it ind} parameter in order to correctly interpret the returned integer value. -It is NOT always in pixels! - -\membersection{wxHtmlContainerCell::GetIndentUnits}\label{wxhtmlcontainercellgetindentunits} - -\constfunc{int}{GetIndentUnits}{\param{int }{ind}} - -Returns the units of indentation for {\it ind} where {\it ind} is one -of the {\bf wxHTML\_INDENT\_*} constants. - -\membersection{wxHtmlContainerCell::InsertCell}\label{wxhtmlcontainercellinsertcell} - -\func{void}{InsertCell}{\param{wxHtmlCell }{*cell}} - -Inserts new cell into the container. - -\membersection{wxHtmlContainerCell::SetAlign}\label{wxhtmlcontainercellsetalign} - -\func{void}{SetAlign}{\param{const wxHtmlTag\& }{tag}} - -Sets the container's alignment (both horizontal and vertical) according to -the values stored in {\it tag}. (Tags {\tt ALIGN} parameter is extracted.) In fact -it is only a front-end to \helpref{SetAlignHor}{wxhtmlcontainercellsetalignhor} -and \helpref{SetAlignVer}{wxhtmlcontainercellsetalignver}. - -\membersection{wxHtmlContainerCell::SetAlignHor}\label{wxhtmlcontainercellsetalignhor} - -\func{void}{SetAlignHor}{\param{int }{al}} - -Sets the container's {\it horizontal alignment}. During \helpref{Layout}{wxhtmlcelllayout} -each line is aligned according to {\it al} value. - -\wxheading{Parameters} - -\docparam{al}{new horizontal alignment. May be one of these values: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_ALIGN\_LEFT}}{lines are left-aligned (default)} -\twocolitem{{\bf wxHTML\_ALIGN\_JUSTIFY}}{lines are justified} -\twocolitem{{\bf wxHTML\_ALIGN\_CENTER}}{lines are centered} -\twocolitem{{\bf wxHTML\_ALIGN\_RIGHT}}{lines are right-aligned} -\end{twocollist} -} - -\membersection{wxHtmlContainerCell::SetAlignVer}\label{wxhtmlcontainercellsetalignver} - -\func{void}{SetAlignVer}{\param{int }{al}} - -Sets the container's {\it vertical alignment}. This is per-line alignment! - -\wxheading{Parameters} - -\docparam{al}{new vertical alignment. May be one of these values: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_ALIGN\_BOTTOM}}{cells are over the line (default)} -\twocolitem{{\bf wxHTML\_ALIGN\_CENTER}}{cells are centered on line} -\twocolitem{{\bf wxHTML\_ALIGN\_TOP}}{cells are under the line} -\end{twocollist} - -\helponly{\image{}{alignv.bmp}} -} - -\membersection{wxHtmlContainerCell::SetBackgroundColour}\label{wxhtmlcontainercellsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{clr}} - -Sets the background colour for this container. - -\membersection{wxHtmlContainerCell::SetBorder}\label{wxhtmlcontainercellsetborder} - -\func{void}{SetBorder}{\param{const wxColour\& }{clr1}, \param{const wxColour\& }{clr2}} - -Sets the border (frame) colours. A border is a rectangle around the container. - -\wxheading{Parameters} - -\docparam{clr1}{Colour of top and left lines} - -\docparam{clr2}{Colour of bottom and right lines} - -\membersection{wxHtmlContainerCell::SetIndent}\label{wxhtmlcontainercellsetindent} - -\func{void}{SetIndent}{\param{int }{i}, \param{int }{what}, \param{int }{units = wxHTML\_UNITS\_PIXELS}} - -Sets the indentation (free space between borders of container and subcells). - -\wxheading{Parameters} - -\docparam{i}{Indentation value.} - -\docparam{what}{Determines which of the four borders we're setting. It is OR -combination of following constants: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_INDENT\_TOP}}{top border} -\twocolitem{{\bf wxHTML\_INDENT\_BOTTOM}}{bottom} -\twocolitem{{\bf wxHTML\_INDENT\_LEFT}}{left} -\twocolitem{{\bf wxHTML\_INDENT\_RIGHT}}{right} -\twocolitem{{\bf wxHTML\_INDENT\_HORIZONTAL}}{left and right} -\twocolitem{{\bf wxHTML\_INDENT\_VERTICAL}}{top and bottom} -\twocolitem{{\bf wxHTML\_INDENT\_ALL}}{all 4 borders} -\end{twocollist} - -\helponly{\image{}{indent.bmp}} -} - -\docparam{units}{Units of {\it i}. This parameter affects interpretation of {\it} value. - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_UNITS\_PIXELS}}{{\it i} is number of pixels} -\twocolitem{{\bf wxHTML\_UNITS\_PERCENT}}{{\it i} is interpreted as percents of width -of parent container} -\end{twocollist} -} - -\membersection{wxHtmlContainerCell::SetMinHeight}\label{wxhtmlcontainercellsetminheight} - -\func{void}{SetMinHeight}{\param{int }{h}, \param{int }{align = wxHTML\_ALIGN\_TOP}} - -Sets minimal height of the container. - -When container's \helpref{Layout}{wxhtmlcelllayout} is called, m\_Height -is set depending on layout of subcells to the height of area covered -by layed-out subcells. Calling this method guarantees you that the height -of container is never smaller than {\it h} - even if the subcells cover -much smaller area. - -\wxheading{Parameters} - -\docparam{h}{The minimal height.} - -\docparam{align}{If height of the container is lower than the minimum height, empty space must be inserted -somewhere in order to ensure minimal height. This parameter is one of {\bf wxHTML\_ALIGN\_TOP, -wxHTML\_ALIGN\_BOTTOM, wxHTML\_ALIGN\_CENTER}. It refers to the {\it contents}, not to the -empty place.} - -\membersection{wxHtmlContainerCell::SetWidthFloat}\label{wxhtmlcontainercellsetwidthfloat} - -\func{void}{SetWidthFloat}{\param{int }{w}, \param{int }{units}} - -\func{void}{SetWidthFloat}{\param{const wxHtmlTag\& }{tag}, \param{double }{pixel\_scale = 1.0}} - -Sets floating width adjustment. - -The normal behaviour of container is that its width is the same as the width of -parent container (and thus you can have only one sub-container per line). -You can change this by setting FWA. - -{\it pixel\_scale} is number of real pixels that equals to 1 HTML pixel. - -\wxheading{Parameters} - -\docparam{w}{Width of the container. If the value is negative it means -complement to full width of parent container (e.g. -{\tt SetWidthFloat(-50, wxHTML\_UNITS\_PIXELS)} sets the width -of container to parent's width minus 50 pixels. This is useful when -creating tables - you can call SetWidthFloat(50) and SetWidthFloat(-50))} - -\docparam{units}{Units of {\it w} This parameter affects the interpretation of {\it} value. - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_UNITS\_PIXELS}}{{\it w} is number of pixels} -\twocolitem{{\bf wxHTML\_UNITS\_PERCENT}}{{\it w} is interpreted as percents of width -of parent container} -\end{twocollist} -} - -\docparam{tag}{In the second version of method, {\it w} and {\it units} -info is extracted from tag's {\tt WIDTH} parameter.} - -\pythonnote{The second form of this method is named -SetWidthFloatFromTag in wxPython.} - - - - - - - - diff --git a/docs/latex/wx/htdcrend.tex b/docs/latex/wx/htdcrend.tex deleted file mode 100644 index 631b4c22e5..0000000000 --- a/docs/latex/wx/htdcrend.tex +++ /dev/null @@ -1,115 +0,0 @@ -% -% automatically generated by HelpGen from -% htmprint.h at 17/Oct/99 12:48:02 -% - -\section{\class{wxHtmlDCRenderer}}\label{wxhtmldcrenderer} - -This class can render HTML document into a specified area of a DC. You can use it -in your own printing code, although use of \helpref{wxHtmlEasyPrinting}{wxhtmleasyprinting} -or \helpref{wxHtmlPrintout}{wxhtmlprintout} is strongly recommended. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlDCRenderer::wxHtmlDCRenderer}\label{wxhtmldcrendererwxhtmldcrenderer} - -\func{}{wxHtmlDCRenderer}{\void} - -Constructor. - -\membersection{wxHtmlDCRenderer::SetDC}\label{wxhtmldcrenderersetdc} - -\func{void}{SetDC}{\param{wxDC* }{dc}, \param{double }{pixel\_scale = 1.0}} - -Assign DC instance to the renderer. - -{\it pixel\_scale} can be used when rendering to high-resolution DCs (e.g. printer) to adjust size of pixel metrics. -(Many dimensions in HTML are given in pixels -- e.g. image sizes. 300x300 image would be only one -inch wide on typical printer. With pixel\_scale = 3.0 it would be 3 inches.) - -\membersection{wxHtmlDCRenderer::SetFonts}\label{wxhtmldcrenderersetfonts} - -\func{void}{SetFonts}{\param{const wxString\& }{normal\_face}, \param{const wxString\& }{fixed\_face}, \param{const int }{*sizes = NULL}} - -Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for -detailed description. - -See also \helpref{SetSize}{wxhtmldcrenderersetsize}. - -\membersection{wxHtmlDCRenderer::SetSize}\label{wxhtmldcrenderersetsize} - -\func{void}{SetSize}{\param{int }{width}, \param{int }{height}} - -Set size of output rectangle, in pixels. Note that you {\bf can't} change -width of the rectangle between calls to \helpref{Render}{wxhtmldcrendererrender}! -(You can freely change height.) - -\membersection{wxHtmlDCRenderer::SetHtmlText}\label{wxhtmldcrenderersethtmltext} - -\func{void}{SetHtmlText}{\param{const wxString\& }{html}, \param{const wxString\& }{basepath = wxEmptyString}, \param{bool }{isdir = true}} - -Assign text to the renderer. \helpref{Render}{wxhtmldcrendererrender} then draws -the text onto DC. - -\wxheading{Parameters} - -\docparam{html}{HTML text. This is {\it not} a filename.} - -\docparam{basepath}{base directory (html string would be stored there if it was in -file). It is used to determine path for loading images, for example.} - -\docparam{isdir}{false if basepath is filename, true if it is directory name -(see \helpref{wxFileSystem}{wxfilesystem} for detailed explanation)} - -\membersection{wxHtmlDCRenderer::Render}\label{wxhtmldcrendererrender} - -\func{int}{Render}{\param{int }{x}, \param{int }{y}, \param{int }{from = 0}, \param{int }{dont\_render = false}} - -Renders HTML text to the DC. - -\wxheading{Parameters} - -\docparam{x,y}{ position of upper-left corner of printing rectangle (see \helpref{SetSize}{wxhtmldcrenderersetsize})} - -\docparam{from}{y-coordinate of the very first visible cell} - -\docparam{dont\_render}{if true then this method only returns y coordinate of the next page -and does not output anything} - -Returned value is y coordinate of first cell than didn't fit onto page. -Use this value as {\it from} in next call to Render in order to print multipages -document. - -\wxheading{Caution!} - -The Following three methods {\bf must} always be called before any call to Render (preferably -in this order): - -\begin{itemize}\itemsep=0pt -\item \helpref{SetDC}{wxhtmldcrenderersetdc} -\item \helpref{SetSize}{wxhtmldcrenderersetsize} -\item \helpref{SetHtmlText}{wxhtmldcrenderersethtmltext} -\end{itemize} - -{\bf Render() changes the DC's user scale and does NOT restore it.} - -\membersection{wxHtmlDCRenderer::GetTotalHeight}\label{wxhtmldcrenderergettotalheight} - -\func{int}{GetTotalHeight}{\void} - -Returns the height of the HTML text. This is important if area height (see \helpref{SetSize}{wxhtmldcrenderersetsize}) -is smaller that total height and thus the page cannot fit into it. In that case you're supposed to -call \helpref{Render}{wxhtmldcrendererrender} as long as its return value is smaller than GetTotalHeight's. - diff --git a/docs/latex/wx/hteasypr.tex b/docs/latex/wx/hteasypr.tex deleted file mode 100644 index 887dc808d1..0000000000 --- a/docs/latex/wx/hteasypr.tex +++ /dev/null @@ -1,164 +0,0 @@ -% -% automatically generated by HelpGen from -% htmprint.h at 17/Oct/99 12:48:02 -% - -\section{\class{wxHtmlEasyPrinting}}\label{wxhtmleasyprinting} - -This class provides very simple interface to printing -architecture. It allows you to print HTML documents using -only a few commands. - -\wxheading{Note} - -Do not create this class on the stack only. You should create an instance on app -startup and use this instance for all printing operations. The reason is that -this class stores various settings in it. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlEasyPrinting::wxHtmlEasyPrinting}\label{wxhtmleasyprintingwxhtmleasyprinting} - -\func{}{wxHtmlEasyPrinting}{\param{const wxString\& }{name = "Printing"}, \param{wxWindow* }{parentWindow = NULL}} - -Constructor. - -\wxheading{Parameters} - -\docparam{name}{Name of the printing object. Used by preview frames and setup dialogs.} - -\docparam{parentWindow}{pointer to the window that will own the preview frame and setup dialogs. May be NULL.} - -\membersection{wxHtmlEasyPrinting::GetParentWindow}\label{wxhtmleasyprintinggetparentwindow} - -\constfunc{wxWindow*}{GetParentWindow}{\void} - -Gets the parent window for dialogs. - -\membersection{wxHtmlEasyPrinting::GetPrintData}\label{wxhtmleasyprintinggetprintdata} - -\func{wxPrintData*}{GetPrintData}{\void} - -Returns pointer to \helpref{wxPrintData}{wxprintdata} instance used by this class. You can -set its parameters (via SetXXXX methods). - -\membersection{wxHtmlEasyPrinting::GetPageSetupData}\label{wxhtmleasyprintinggetpagesetupdata} - -\func{wxPageSetupDialogData*}{GetPageSetupData}{\void} - -Returns a pointer to \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} instance used by -this class. You can set its parameters (via SetXXXX methods). - -\membersection{wxHtmlEasyPrinting::PreviewFile}\label{wxhtmleasyprintingpreviewfile} - -\func{bool}{PreviewFile}{\param{const wxString\& }{htmlfile}} - -Preview HTML file. - -Returns false in case of error -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - - -\membersection{wxHtmlEasyPrinting::PreviewText}\label{wxhtmleasyprintingpreviewtext} - -\func{bool}{PreviewText}{\param{const wxString\& }{htmltext}, \param{const wxString\& }{basepath = wxEmptyString}} - -Preview HTML text (not file!). - -Returns false in case of error -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - -\wxheading{Parameters} - -\docparam{htmltext}{HTML text.} - -\docparam{basepath}{base directory (html string would be stored there if it was in -file). It is used to determine path for loading images, for example.} - -\membersection{wxHtmlEasyPrinting::PrintFile}\label{wxhtmleasyprintingprintfile} - -\func{bool}{PrintFile}{\param{const wxString\& }{htmlfile}} - -Print HTML file. - -Returns false in case of error -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - -\membersection{wxHtmlEasyPrinting::PrintText}\label{wxhtmleasyprintingprinttext} - -\func{bool}{PrintText}{\param{const wxString\& }{htmltext}, \param{const wxString\& }{basepath = wxEmptyString}} - -Print HTML text (not file!). - -Returns false in case of error -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - -\wxheading{Parameters} - -\docparam{htmltext}{HTML text.} - -\docparam{basepath}{base directory (html string would be stored there if it was in -file). It is used to determine path for loading images, for example.} - -\membersection{wxHtmlEasyPrinting::PageSetup}\label{wxhtmleasyprintingpagesetup} - -\func{void}{PageSetup}{\void} - -Display page setup dialog and allows the user to modify settings. - -\membersection{wxHtmlEasyPrinting::SetFonts}\label{wxhtmleasyprintingsetfonts} - -\func{void}{SetFonts}{\param{const wxString\& }{normal\_face}, \param{const wxString\& }{fixed\_face}, \param{const int }{*sizes = NULL}} - -Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for -detailed description. - -\membersection{wxHtmlEasyPrinting::SetHeader}\label{wxhtmleasyprintingsetheader} - -\func{void}{SetHeader}{\param{const wxString\& }{header}, \param{int }{pg = wxPAGE\_ALL}} - -Set page header. The following macros can be used inside it: -\input htprintmacros.inc - -\wxheading{Parameters} - -\docparam{header}{HTML text to be used as header.} - -\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.} - -\membersection{wxHtmlEasyPrinting::SetFooter}\label{wxhtmleasyprintingsetfooter} - -\func{void}{SetFooter}{\param{const wxString\& }{footer}, \param{int }{pg = wxPAGE\_ALL}} - -Set page footer. The following macros can be used inside it: -\input htprintmacros.inc - -\wxheading{Parameters} - -\docparam{footer}{HTML text to be used as footer.} - -\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.} - -\membersection{wxHtmlEasyPrinting::SetParentWindow}\label{wxhtmleasyprintingsetparentwindow} - -\func{void}{SetParentWindow}{\param{wxWindow*}{ window}} - -Sets the parent window for dialogs. - diff --git a/docs/latex/wx/htfilter.tex b/docs/latex/wx/htfilter.tex deleted file mode 100644 index d12b75bb73..0000000000 --- a/docs/latex/wx/htfilter.tex +++ /dev/null @@ -1,67 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlfilter.tex at 29/Mar/99 18:35:09 -% - -\section{\class{wxHtmlFilter}}\label{wxhtmlfilter} - -This class is the parent class of input filters for \helpref{wxHtmlWindow}{wxhtmlwindow}. -It allows you to read and display files of different file formats. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - - -\wxheading{See Also} - -\helpref{Overview}{filters} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlFilter::wxHtmlFilter}\label{wxhtmlfilterwxhtmlfilter} - -\func{}{wxHtmlFilter}{\void} - -Constructor. - -\membersection{wxHtmlFilter::CanRead}\label{wxhtmlfiltercanread} - -\func{bool}{CanRead}{\param{const wxFSFile\& }{file}} - -Returns true if this filter is capable of reading file {\it file}. - -Example: - -\begin{verbatim} -bool MyFilter::CanRead(const wxFSFile& file) -{ - return (file.GetMimeType() == "application/x-ugh"); -} -\end{verbatim} - -\membersection{wxHtmlFilter::ReadFile}\label{wxhtmlfilterreadfile} - -\func{wxString}{ReadFile}{\param{const wxFSFile\& }{file}} - -Reads the file and returns string with HTML document. - -Example: - -\begin{verbatim} -wxString MyImgFilter::ReadFile(const wxFSFile& file) -{ - return ""; -} -\end{verbatim} - diff --git a/docs/latex/wx/hthelpct.tex b/docs/latex/wx/hthelpct.tex deleted file mode 100644 index d530c50677..0000000000 --- a/docs/latex/wx/hthelpct.tex +++ /dev/null @@ -1,243 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlhelp.h at 02/May/99 19:58:53 -% - -\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller} - -This help controller provides an easy way of displaying HTML help in your -application (see {\it test} sample). The help system is based on {\bf books} -(see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is a logical -section of documentation (for example "User's Guide" or "Programmer's Guide" or -"C++ Reference" or "wxWidgets Reference"). The help controller can handle as -many books as you want. - -Although this class has an API compatible with other wxWidgets -help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it -is recommended that you use the enhanced capabilities of wxHtmlHelpController's API. - -wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its -native format. The file format is described \helpref{here}{helpformat}. -Have a look at docs/html/ directory where sample project files are stored. - -You can use Tex2RTF to produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in -your tex2rtf.ini file. The commercial tool HelpBlocks (www.helpblocks.com) can also create these files. - -\wxheading{Note} - -It is strongly recommended to use preprocessed {\bf .hhp.cached} version of -projects. It can be either created on-the-fly (see -\helpref{SetTempDir}{wxhtmlhelpcontrollersettempdir}) or you can use -{\bf hhp2cached} utility from {\it utils/hhp2cached} to create it and -distribute the cached version together with helpfiles. See {\it samples/html/help} -sample for demonstration of its use. - -\wxheading{See also} - -\helpref{Information about wxBestHelpController}{wxhelpcontroller}, -\helpref{wxHtmlHelpFrame}{wxhtmlhelpframe}, -\helpref{wxHtmlHelpDialog}{wxhtmlhelpdialog}, -\helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow}, -\helpref{wxHtmlModalHelp}{wxhtmlmodalhelp} - -\wxheading{Derived from} - -wxHelpControllerBase - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller} - -\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxWindow* }{parentWindow = NULL}} - -Constructor. - -\wxheading{Parameters} - -{\it style} is a combination of these flags: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{The help window has a toolbar.} -\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{The help window has a toolbar with flat buttons (aka coolbar).} -\twocolitem{\windowstyle{wxHF\_CONTENTS}}{The help window has a contents panel.} -\twocolitem{\windowstyle{wxHF\_INDEX}}{The help window has an index panel.} -\twocolitem{\windowstyle{wxHF\_SEARCH}}{The help window has a search panel.} -\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{The help window has bookmarks controls.} -\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allows user to open arbitrary HTML document.} -\twocolitem{\windowstyle{wxHF\_PRINT}}{The toolbar contains "print" button.} -\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{The contents pane does not show -book nodes. All books are merged together and appear as single book to the -user.} -\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane -have a book icon. This is how Microsoft's HTML help viewer behaves.} -\twocolitem{\windowstyle{wxHF\_ICONS\_FOLDER}}{Book nodes in contents pane have -a book icon, book's sections have a folder icon. This is the default.} -\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and -nodes of top-level sections of a book (i.e. chapters) have a book icon, -all other sections (sections, subsections, ...) have a folder icon.} -\twocolitem{\windowstyle{wxHF\_EMBEDDED}}{Specifies that the help controller controls an embedded window of class \helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow} that -should not be destroyed when the controller is destroyed.} -\twocolitem{\windowstyle{wxHF\_DIALOG}}{Specifies that the help controller should create a dialog containing the help window.} -\twocolitem{\windowstyle{wxHF\_FRAME}}{Specifies that the help controller should create a frame containing the help window. This is the default if neither wxHF\_DIALOG nor wxHF\_EMBEDDED is specified.} -\twocolitem{\windowstyle{wxHF\_MODAL}}{Specifies that the help controller should create a modal dialog containing the help window (used with the wxHF\_DIALOG style).} -\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS -| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}} -\end{twocollist} - -{\it parentWindow} is an optional window to be used as the parent for the help window. - -\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook} - -\func{bool}{AddBook}{\param{const wxFileName\& }{bookFile}, \param{bool }{showWaitMsg}} - -\func{bool}{AddBook}{\param{const wxString\& }{bookUrl}, \param{bool }{showWaitMsg}} - -Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books. -This must be called at least once before displaying any help. - -{\it bookFile} or {\it bookUrl} may be either .hhp file or ZIP archive -that contains arbitrary number of .hhp files in -top-level directory. This ZIP archive must have .zip or .htb extension -(the latter stands for "HTML book"). In other words, {\tt AddBook(wxFileName("help.zip"))} -is possible and is the recommended way. - -\wxheading{Parameters} - -\docparam{showWaitMsg}{If true then a decoration-less window with progress message is displayed.} -\docparam{bookFile}{Help book filename. It is recommended to use this prototype -instead of the one taking URL, because it is less error-prone.} -\docparam{bookUrl}{Help book URL (note that syntax of filename and URL is -different on most platforms)} - -\wxheading{Note} - -Don't forget to install the archive wxFileSystem handler with -{\tt wxFileSystem::AddHandler(new wxArchiveFSHandler);} before calling this method -on a .zip or .htb file! - -\membersection{wxHtmlHelpController::CreateHelpDialog}\label{wxhtmlhelpcontrollercreatehelpdialog} - -\func{virtual wxHtmlHelpDialog*}{CreateHelpDialog}{\param{wxHtmlHelpData * }{data}} - -This protected virtual method may be overridden so that when specifying the wxHF\_DIALOG style, the controller -uses a different dialog. - -\membersection{wxHtmlHelpController::CreateHelpFrame}\label{wxhtmlhelpcontrollercreatehelpframe} - -\func{virtual wxHtmlHelpFrame*}{CreateHelpFrame}{\param{wxHtmlHelpData * }{data}} - -This protected virtual method may be overridden so that the controller -uses a different frame. - -\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay} - -\func{void}{Display}{\param{const wxString\& }{x}} - -Displays page {\it x}. This is THE important function - it is used to display -the help in application. - -You can specify the page in many ways: - -\begin{itemize}\itemsep=0pt -\item as direct filename of HTML document -\item as chapter name (from contents) or as a book name -\item as some word from index -\item even as any word (will be searched) -\end{itemize} - -Looking for the page runs in these steps: - -\begin{enumerate}\itemsep=0pt -\item try to locate file named x (if x is for example "doc/howto.htm") -\item try to open starting page of book named x -\item try to find x in contents (if x is for example "How To ...") -\item try to find x in index (if x is for example "How To ...") -\item switch to Search panel and start searching -\end{enumerate} - -\func{void}{Display}{\param{const int }{id}} - -This alternative form is used to search help contents by numeric IDs. - -\pythonnote{The second form of this method is named DisplayId in -wxPython.} - -\membersection{wxHtmlHelpController::DisplayContents}\label{wxhtmlhelpcontrollerdisplaycontents} - -\func{void}{DisplayContents}{\void} - -Displays help window and focuses contents panel. - -\membersection{wxHtmlHelpController::DisplayIndex}\label{wxhtmlhelpcontrollerdisplayindex} - -\func{void}{DisplayIndex}{\void} - -Displays help window and focuses index panel. - -\membersection{wxHtmlHelpController::KeywordSearch}\label{wxhtmlhelpcontrollerkeywordsearch} - -\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}} - -Displays help window, focuses search panel and starts searching. Returns true -if the keyword was found. Optionally it searches through the index (mode = -wxHELP\_SEARCH\_INDEX), default the content (mode = wxHELP\_SEARCH\_ALL). - -{\bf Important:} KeywordSearch searches only pages listed in .hhc file(s). -You should list all pages in the contents file. - -\membersection{wxHtmlHelpController::ReadCustomization}\label{wxhtmlhelpcontrollerreadcustomization} - -\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} - -Reads the controller's setting (position of window, etc.) - -\membersection{wxHtmlHelpController::SetTempDir}\label{wxhtmlhelpcontrollersettempdir} - -\func{void}{SetTempDir}{\param{const wxString\& }{path}} - -Sets the path for storing temporary files - cached binary versions of index and contents files. These binary -forms are much faster to read. Default value is empty string (empty string means -that no cached data are stored). Note that these files are {\it not} -deleted when program exits. - -Once created these cached files will be used in all subsequent executions -of your application. If cached files become older than corresponding .hhp -file (e.g. if you regenerate documentation) it will be refreshed. - -\membersection{wxHtmlHelpController::SetTitleFormat}\label{wxhtmlhelpcontrollersettitleformat} - -\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} - -Sets format of title of the frame. Must contain exactly one "\%s" -(for title of displayed HTML page). - -\membersection{wxHtmlHelpController::UseConfig}\label{wxhtmlhelpcontrolleruseconfig} - -\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}} - -Associates {\it config} object with the controller. - -If there is associated config object, wxHtmlHelpController automatically -reads and writes settings (including wxHtmlWindow's settings) when needed. - -The only thing you must do is create wxConfig object and call UseConfig. - -If you do not use {\it UseConfig}, wxHtmlHelpController will use -default wxConfig object if available (for details see -\helpref{wxConfigBase::Get}{wxconfigbaseget} and -\helpref{wxConfigBase::Set}{wxconfigbaseset}). - -\membersection{wxHtmlHelpController::WriteCustomization}\label{wxhtmlhelpcontrollerwritecustomization} - -\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{wxString }{path = wxEmptyString}} - -Stores controllers setting (position of window etc.) - diff --git a/docs/latex/wx/hthlpdat.tex b/docs/latex/wx/hthlpdat.tex deleted file mode 100644 index 0960c30245..0000000000 --- a/docs/latex/wx/hthlpdat.tex +++ /dev/null @@ -1,79 +0,0 @@ -% -% automatically generated by HelpGen from -% helpdata.h at 24/Oct/99 18:03:10 -% - -\section{\class{wxHtmlHelpData}}\label{wxhtmlhelpdata} - -This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} -and \helpref{wxHtmlHelpFrame}{wxhtmlhelpframe} to access HTML help items. -It is internal class and should not be used directly - except for the case -you're writing your own HTML help controller. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpData::wxHtmlHelpData}\label{wxhtmlhelpdatawxhtmlhelpdata} - -\func{}{wxHtmlHelpData}{\void} - -Constructor. - -\membersection{wxHtmlHelpData::AddBook}\label{wxhtmlhelpdataaddbook} - -\func{bool}{AddBook}{\param{const wxString\& }{book\_url}} - -Adds new book. {\it book} is URL (not filename!) of HTML help project (hhp) -or ZIP file that contains arbitrary number of .hhp projects (this zip -file can have either .zip or .htb extension, htb stands for "html book"). -Returns success. - -\membersection{wxHtmlHelpData::FindPageById}\label{wxhtmlhelpdatafindpagebyid} - -\func{wxString}{FindPageById}{\param{int }{id}} - -Returns page's URL based on integer ID stored in project. - -\membersection{wxHtmlHelpData::FindPageByName}\label{wxhtmlhelpdatafindpagebyname} - -\func{wxString}{FindPageByName}{\param{const wxString\& }{page}} - -Returns page's URL based on its (file)name. - -\membersection{wxHtmlHelpData::GetBookRecArray}\label{wxhtmlhelpdatagetbookrecarray} - -\func{const wxHtmlBookRecArray\&}{GetBookRecArray}{\void} - -Returns array with help books info. - -\membersection{wxHtmlHelpData::GetContentsArray}\label{wxhtmlhelpdatagetcontentsarray} - -\func{const wxHtmlHelpDataItems\&}{GetContentsArray}{\void} - -Returns reference to array with contents entries. - -\membersection{wxHtmlHelpData::GetIndexArray}\label{wxhtmlhelpdatagetindexarray} - -\func{const wxHtmlHelpDataItems\&}{GetIndexArray}{\void} - -Returns reference to array with index entries. - -\membersection{wxHtmlHelpData::SetTempDir}\label{wxhtmlhelpdatasettempdir} - -\func{void}{SetTempDir}{\param{const wxString\& }{path}} - -Sets temporary directory where binary cached versions of MS HTML Workshop -files will be stored. (This is turned off by default and you can enable -this feature by setting non-empty temp dir.) - diff --git a/docs/latex/wx/hthlpfrm.tex b/docs/latex/wx/hthlpfrm.tex deleted file mode 100644 index 92dc708ce4..0000000000 --- a/docs/latex/wx/hthlpfrm.tex +++ /dev/null @@ -1,382 +0,0 @@ -% -% automatically generated by HelpGen from -% helpfrm.h at 24/Oct/99 18:03:10 -% - -\section{\class{wxHtmlHelpDialog}}\label{wxhtmlhelpdialog} - -This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} -to display help. -It is an internal class and should not be used directly - except for the case -when you're writing your own HTML help controller. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpDialog::wxHtmlHelpDialog}\label{wxhtmlhelpdialogwxhtmlhelpdialog} - -\func{}{wxHtmlHelpDialog}{\param{wxHtmlHelpData* }{data = NULL}} - -\func{}{wxHtmlHelpDialog}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}} - -Constructor. For the values of {\it style}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. - -\membersection{wxHtmlHelpDialog::AddToolbarButtons}\label{wxhtmlhelpdialogaddtoolbarbuttons} - -\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}} - -You may override this virtual method to add more buttons to the help window's -toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style -flag as passed to the Create method. - -wxToolBar::Realize is called immediately after returning from this function. - -\membersection{wxHtmlHelpDialog::Create}\label{wxhtmlhelpdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}} - -Creates the dialog. See \helpref{the constructor}{wxhtmlhelpdialogwxhtmlhelpdialog} -for a description of the parameters. - -\membersection{wxHtmlHelpDialog::GetController}\label{wxhtmlhelpdialoggetcontroller} - -\constfunc{wxHtmlHelpController* }{GetController}{\void} - -Returns the help controller associated with the dialog. - -\membersection{wxHtmlHelpDialog::ReadCustomization}\label{wxhtmlhelpdialogreadcustomization} - -\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Reads the user's settings for this dialog see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization}) - -\membersection{wxHtmlHelpDialog::SetController}\label{wxhtmlhelpdialogsetcontroller} - -\func{void}{SetController}{\param{wxHtmlHelpController* }{contoller}} - -Sets the help controller associated with the dialog. - -\membersection{wxHtmlHelpDialog::SetTitleFormat}\label{wxhtmlhelpdialogsettitleformat} - -\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} - -Sets the dialog's title format. {\it format} must contain exactly one "\%s" -(it will be replaced by the page title). - -\membersection{wxHtmlHelpDialog::WriteCustomization}\label{wxhtmlhelpdialogwritecustomization} - -\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Saves the user's settings for this dialog (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}). - -\section{\class{wxHtmlHelpFrame}}\label{wxhtmlhelpframe} - -This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} -to display help. -It is an internal class and should not be used directly - except for the case -when you're writing your own HTML help controller. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpFrame::wxHtmlHelpFrame}\label{wxhtmlhelpframewxhtmlhelpframe} - -\func{}{wxHtmlHelpFrame}{\param{wxHtmlHelpData* }{data = NULL}} - -\func{}{wxHtmlHelpFrame}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}} - -Constructor. For the values of {\it style}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. - -\membersection{wxHtmlHelpFrame::AddToolbarButtons}\label{wxhtmlhelpframeaddtoolbarbuttons} - -\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}} - -You may override this virtual method to add more buttons to the help window's -toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style -flag as passed to the Create method. - -wxToolBar::Realize is called immediately after returning from this function. - -\membersection{wxHtmlHelpFrame::Create}\label{wxhtmlhelpframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}} - -Creates the frame. See \helpref{the constructor}{wxhtmlhelpframewxhtmlhelpframe} -for a description of the parameters. - -\membersection{wxHtmlHelpFrame::GetController}\label{wxhtmlhelpframegetcontroller} - -\constfunc{wxHtmlHelpController* }{GetController}{\void} - -Returns the help controller associated with the frame. - -\membersection{wxHtmlHelpFrame::ReadCustomization}\label{wxhtmlhelpframereadcustomization} - -\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Reads the user's settings for this frame see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization}) - -\membersection{wxHtmlHelpFrame::SetController}\label{wxhtmlhelpframesetcontroller} - -\func{void}{SetController}{\param{wxHtmlHelpController* }{contoller}} - -Sets the help controller associated with the frame. - -\membersection{wxHtmlHelpFrame::SetTitleFormat}\label{wxhtmlhelpframesettitleformat} - -\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} - -Sets the frame's title format. {\it format} must contain exactly one "\%s" -(it will be replaced by the page title). - -\membersection{wxHtmlHelpFrame::WriteCustomization}\label{wxhtmlhelpframewritecustomization} - -\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Saves the user's settings for this frame (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}). - -\section{\class{wxHtmlHelpWindow}}\label{wxhtmlhelpwindow} - -This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} -to display help within a frame or dialog, but you can use it yourself to create an embedded HTML help window. - -For example: - -\begin{verbatim} - // m_embeddedHelpWindow is a wxHtmlHelpWindow - // m_embeddedHtmlHelp is a wxHtmlHelpController - - // Create embedded HTML Help window - m_embeddedHelpWindow = new wxHtmlHelpWindow; - m_embeddedHtmlHelp.UseConfig(config, rootPath); // Set your own config object here - m_embeddedHtmlHelp.SetHelpWindow(m_embeddedHelpWindow); - m_embeddedHelpWindow->Create(this, - wxID_ANY, wxDefaultPosition, GetClientSize(), wxTAB_TRAVERSAL|wxBORDER_NONE, wxHF_DEFAULT_STYLE); - m_embeddedHtmlHelp.AddBook(wxFileName(_T("doc.zip"))); -\end{verbatim} - -You should pass the style wxHF\_EMBEDDED to the style parameter of wxHtmlHelpController to allow -the embedded window to be destroyed independently of the help controller. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlHelpWindow::wxHtmlHelpWindow}\label{wxhtmlhelpwindowwxhtmlhelpwindow} - -\func{}{wxHtmlHelpWindow}{\param{wxHtmlHelpData* }{data = NULL}} - -\func{}{wxHtmlHelpWindow}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ pos = wxDefaultSize}, \param{int }{style = wxTAB\_TRAVERSAL|wxBORDER\_NONE}, \param{int }{helpStyle = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}} - -Constructor. - -Constructor. For the values of {\it helpStyle}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. - -\membersection{wxHtmlHelpWindow::Create}\label{wxhtmlhelpwindowcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ pos = wxDefaultSize}, \param{int }{style = wxTAB\_TRAVERSAL|wxBORDER\_NONE}, \param{int }{helpStyle = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}} - -Creates the help window. See \helpref{the constructor}{wxhtmlhelpwindowwxhtmlhelpwindow} -for a description of the parameters. - -\membersection{wxHtmlHelpWindow::CreateContents}\label{wxhtmlhelpwindowcreatecontents} - -\func{void}{CreateContents}{\void} - -Creates contents panel. (May take some time.) - -Protected. - -\membersection{wxHtmlHelpWindow::CreateIndex}\label{wxhtmlhelpwindowcreateindex} - -\func{void}{CreateIndex}{\void} - -Creates index panel. (May take some time.) - -Protected. - -\membersection{wxHtmlHelpWindow::CreateSearch}\label{wxhtmlhelpwindowcreatesearch} - -\func{void}{CreateSearch}{\void} - -Creates search panel. - -\membersection{wxHtmlHelpWindow::Display}\label{wxhtmlhelpwindowdisplay} - -\func{bool}{Display}{\param{const wxString\& }{x}} - -\func{bool}{Display}{\param{const int }{id}} - -Displays page x. If not found it will give the user the choice of -searching books. -Looking for the page runs in these steps: - -\begin{enumerate}\itemsep=0pt -\item try to locate file named x (if x is for example "doc/howto.htm") -\item try to open starting page of book x -\item try to find x in contents (if x is for example "How To ...") -\item try to find x in index (if x is for example "How To ...") -\end{enumerate} - -The second form takes numeric ID as the parameter. -(uses extension to MS format, ) - -\pythonnote{The second form of this method is named DisplayId in -wxPython.} - -\membersection{wxHtmlHelpWindow::DisplayContents}\label{wxhtmlhelpwindowdisplaycontents} - -\func{bool}{DisplayContents}{\void} - -Displays contents panel. - -\membersection{wxHtmlHelpWindow::DisplayIndex}\label{wxhtmlhelpwindowdisplayindex} - -\func{bool}{DisplayIndex}{\void} - -Displays index panel. - -\membersection{wxHtmlHelpWindow::GetData}\label{wxhtmlhelpwindowgetdata} - -\func{wxHtmlHelpData*}{GetData}{\void} - -Returns the wxHtmlHelpData object, which is usually a pointer to the controller's data. - -\membersection{wxHtmlHelpWindow::KeywordSearch}\label{wxhtmlhelpwindowkeywordsearch} - -\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}} - -Search for given keyword. Optionally it searches through the index (mode = -wxHELP\_SEARCH\_INDEX), default the content (mode = wxHELP\_SEARCH\_ALL). - -\membersection{wxHtmlHelpWindow::ReadCustomization}\label{wxhtmlhelpwindowreadcustomization} - -\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Reads the user's settings for this window (see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization}) - -\membersection{wxHtmlHelpWindow::RefreshLists}\label{wxhtmlhelpwindowrefreshlists} - -\func{void}{RefreshLists}{\void} - -Refresh all panels. This is necessary if a new book was added. - -Protected. - -\membersection{wxHtmlHelpWindow::SetTitleFormat}\label{wxhtmlhelpwindowsettitleformat} - -\func{void}{SetTitleFormat}{\param{const wxString\& }{format}} - -Sets the frame's title format. {\it format} must contain exactly one "\%s" -(it will be replaced by the page title). - -\membersection{wxHtmlHelpWindow::UseConfig}\label{wxhtmlhelpwindowuseconfig} - -\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}} - -Associates a wxConfig object with the help window. It is recommended that you use \helpref{wxHtmlHelpController::UseConfig}{wxhtmlhelpcontrolleruseconfig} instead. - -\membersection{wxHtmlHelpWindow::WriteCustomization}\label{wxhtmlhelpwindowwritecustomization} - -\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}} - -Saves the user's settings for this window(see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}). - -\membersection{wxHtmlHelpWindow::AddToolbarButtons}\label{wxhtmlhelpwindowaddtoolbarbuttons} - -\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}} - -You may override this virtual method to add more buttons to the help window's -toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style -flag as passed to the Create method. - -wxToolBar::Realize is called immediately after returning from this function. - -See {\it samples/html/helpview} for an example. - -\section{\class{wxHtmlModalHelp}}\label{wxhtmlmodalhelp} - -This class uses \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} -to display help in a modal dialog. This is useful on platforms such as wxMac -where if you display help from a modal dialog, the help window must itself be a modal -dialog. - -Create objects of this class on the stack, for example: - -\begin{verbatim} - // The help can be browsed during the lifetime of this object; when the user quits - // the help, program execution will continue. - wxHtmlModalHelp help(parent, wxT("help"), wxT("My topic")); -\end{verbatim} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlModalHelp::wxHtmlModalHelp}\label{wxhtmlmodalhelpctor} - -\func{}{wxHtmlModalHelp}{\param{wxWindow* }{parent}, \param{const wxString\& }{helpFile}, \param{const wxString\& }{topic = wxEmptyString}, - \param{int }{style = wxHF\_DEFAULT\_STYLE | wxHF\_DIALOG | wxHF\_MODAL}} - -\wxheading{Parameters} - -\docparam{parent}{is the parent of the dialog.} - -\docparam{helpFile}{is the HTML help file to show.} - -\docparam{topic}{is an optional topic. If this is empty, the help contents will be shown.} - -\docparam{style}{is a combination of the flags described in the \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} documentation.} - diff --git a/docs/latex/wx/htlnkinf.tex b/docs/latex/wx/htlnkinf.tex deleted file mode 100644 index 913eac1239..0000000000 --- a/docs/latex/wx/htlnkinf.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{\class{wxHtmlLinkInfo}}\label{wxhtmllinkinfo} - -This class stores all necessary information about hypertext -links (as represented by {\tt } tag in HTML documents). In -current implementation it stores URL and target frame name. -{\it Note that frames are not currently supported by wxHTML!} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlLinkInfo::wxHtmlLinkInfo}\label{wxhtmllinkinfowxhtmllinkinfo} - -\func{}{wxHtmlLinkInfo}{\void} - -Default ctor. - -\func{}{wxHtmlLinkInfo}{\param{const wxString\& }{href}, \param{const wxString\& }{target = wxEmptyString}} - -Construct hypertext link from HREF (aka URL) and TARGET (name of target -frame). - -\membersection{wxHtmlLinkInfo::GetEvent}\label{wxhtmllinkinfogetevent} - -\func{const wxMouseEvent *}{GetEvent}{\void} - -Return pointer to event that generated OnLinkClicked event. Valid -only within \helpref{wxHtmlWindow::OnLinkClicked}{wxhtmlwindowonlinkclicked}, -NULL otherwise. - -\membersection{wxHtmlLinkInfo::GetHtmlCell}\label{wxhtmllinkinfogethtmlcell} - -\func{const wxHtmlCell *}{GetHtmlCell}{\void} - -Return pointer to the cell that was clicked. Valid -only within \helpref{wxHtmlWindow::OnLinkClicked}{wxhtmlwindowonlinkclicked}, -NULL otherwise. - - -\membersection{wxHtmlLinkInfo::GetHref}\label{wxhtmllinkinfogethref} - -\func{wxString}{GetHref}{\void} - -Return {\it HREF} value of the {\tt } tag. - -\membersection{wxHtmlLinkInfo::GetTarget}\label{wxhtmllinkinfogettarget} - -\func{wxString}{GetTarget}{\void} - -Return {\it TARGET} value of the {\tt } tag (this value -is used to specify in which frame should be the page pointed -by \helpref{Href}{wxhtmllinkinfogethref} opened). - diff --git a/docs/latex/wx/htmlcell.tex b/docs/latex/wx/htmlcell.tex deleted file mode 100644 index 6b3696ecd6..0000000000 --- a/docs/latex/wx/htmlcell.tex +++ /dev/null @@ -1,75 +0,0 @@ -\subsection{Cells and Containers}\label{cells} - -This article describes mechanism used by -\helpref{wxHtmlWinParser}{wxhtmlwinparser} and -\helpref{wxHtmlWindow}{wxhtmlwindow} to parse and display HTML documents. - -\wxheading{Cells} - -You can divide any text (or HTML) into small fragments. Let's call these -fragments {\bf cells}. Cell is for example one word, horizontal line, image -or any other part of document. Each cell has width and height (except special -"magic" cells with zero dimensions - e.g. colour changers or font changers). - -See \helpref{wxHtmlCell}{wxhtmlcell}. - -\wxheading{Containers} - -Container is kind of cell that may contain sub-cells. Its size depends -on number and sizes of its sub-cells (and also depends on width of window). - -See \helpref{wxHtmlContainerCell}{wxhtmlcontainercell}, -\helpref{wxHtmlCell::Layout}{wxhtmlcelllayout}. - -This image shows the cells and containers: -\helponly{\image{}{contbox.bmp}} - -\wxheading{Using Containers in Tag Handler} - -\helpref{wxHtmlWinParser}{wxhtmlwinparser} provides a user-friendly way -of managing containers. It is based on the idea of opening and closing containers. - -Use \helpref{OpenContainer}{wxhtmlwinparseropencontainer} to open new -a container {\it within an already opened container}. This new container is a -{\it sub-container} of the old one. (If you want to create a new container with -the same depth level you can call {\tt CloseContainer(); OpenContainer();}.) - -Use \helpref{CloseContainer}{wxhtmlwinparserclosecontainer} to close the -container. This doesn't create a new container with same depth level but -it returns "control" to the parent container. - -See explanation: -\helponly{\image{}{cont.bmp}} - -There clearly must be same number of calls to OpenContainer as to -CloseContainer. - -\wxheading{Example} - -This code creates a new paragraph (container at same depth level) -with "Hello, world!": - -\begin{verbatim} -m_WParser -> CloseContainer(); -c = m_WParser -> OpenContainer(); - -m_WParser -> AddText("Hello, "); -m_WParser -> AddText("world!"); - -m_WParser -> CloseContainer(); -m_WParser -> OpenContainer(); -\end{verbatim} - -and here is image of the situation: -\helponly{\image{}{hello.bmp}} - -You can see that there was an opened container before the code was executed. -We closed it, created our own container, then closed our container and opened -new container. The result was that we had {\it same depth level} after -executing. This is general rule that should be followed by tag handlers: -leave depth level of containers unmodified (in other words, number of -OpenContainer and CloseContainer calls should be same within \helpref{HandleTag}{wxhtmltaghandlerhandletag}'s body). - -Notice that it would be usually better to use -\helpref{wxHtmlContainerCell::InsertCell}{wxhtmlcontainercellinsertcell} instead -of adding text to the parser directly. diff --git a/docs/latex/wx/htmlfilt.tex b/docs/latex/wx/htmlfilt.tex deleted file mode 100644 index 51a4a80c37..0000000000 --- a/docs/latex/wx/htmlfilt.tex +++ /dev/null @@ -1,10 +0,0 @@ -\subsection{Input Filters}\label{filters} - -The wxHTML library provides a mechanism for reading and displaying -files of many different file formats. - -\helpref{wxHtmlWindow::LoadPage}{wxhtmlwindowloadpage} can load not -only HTML files but any known file. To make a file type known to wxHtmlWindow -you must create a \helpref{wxHtmlFilter}{wxhtmlfilter} filter and -register it using \helpref{wxHtmlWindow::AddFilter}{wxhtmlwindowaddfilter}. - diff --git a/docs/latex/wx/htmlhand.tex b/docs/latex/wx/htmlhand.tex deleted file mode 100644 index de833c17d9..0000000000 --- a/docs/latex/wx/htmlhand.tex +++ /dev/null @@ -1,146 +0,0 @@ -\subsection{Tag Handlers}\label{handlers} - -The wxHTML library provides architecture of pluggable {\it tag handlers}. -Tag handler is class that understands particular HTML tag (or tags) and is -able to interpret it. - -\helpref{wxHtmlWinParser}{wxhtmlwinparser} has static table of {\bf modules}. -Each module contains one or more tag handlers. Each time a new wxHtmlWinParser -object is constructed all modules are scanned and handlers are added -to wxHtmlParser's list of available handlers (note: wxHtmlParser's list -is non-static). - -\wxheading{How it works} - -Common tag handler's \helpref{HandleTag}{wxhtmltaghandlerhandletag} method -works in four steps: - -\begin{enumerate}\itemsep=0pt -\item Save state of parent parser into local variables -\item Change parser state according to tag's params -\item Parse text between the tag and paired ending tag (if present) -\item Restore original parser state -\end{enumerate} - -See \helpref{wxHtmlWinParser}{wxhtmlwinparser} for methods for modifying -parser's state. In general you can do things like opening/closing containers, -changing colors, fonts etc. - -\wxheading{Providing own tag handlers} - -You should create new .cpp file and place following lines into it: - -\begin{verbatim} -#include -#include -FORCE_LINK_ME(yourmodulefilenamewithoutcpp) -\end{verbatim} - -Then you must define handlers and one module. - -\wxheading{Tag handlers} - -The handler is derived from \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler} -(or directly from \helpref{wxHtmlTagHandler}{wxhtmltaghandler}) - -You can use set of macros to define the handler (see src/html/m\_*.cpp files -for details). Handler definition must start with {\bf TAG\_HANDLER\_BEGIN} macro -and end with {\bf TAG\_HANDLER\_END} macro. I strongly recommend to have a look -at {\it include/wxhtml/mod\_templ.h} file. Otherwise you won't understand -the structure of macros. See macros reference: - -{\bf TAG\_HANDLER\_BEGIN}({\it name}, {\it tags}) - -Starts handler definition. {\it name} is handler identifier (in fact -part of class name), {\it tags} is string containing list of tags -supported by this handler (in uppercase). This macro derives new class from -wxHtmlWinTagHandler and implements it is -\helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags} method. - -Example: TAG\_HANDLER\_BEGIN(FONTS, "B,I,U,T") - -{\bf TAG\_HANDLER\_VARS} - -This macro starts block of variables definitions. (Variables are identical -to class attributes.) Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(VARS_ONLY, "CRAZYTAG") - TAG_HANDLER_VARS - int my_int_var; - wxString something_else; -TAG_HANDLER_END(VARS_ONLY) -\end{verbatim} - -This macro is used only in rare cases. - -{\bf TAG\_HANDLER\_CONSTR}({\it name}) - -This macro supplies object constructor. {\it name} is same name as the one -from TAG\_HANDLER\_BEGIN macro. Body of constructor follow after -this macro (you must use { and } ). Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(VARS2, "CRAZYTAG") - TAG_HANDLER_VARS - int my_int_var; - TAG_HANDLER_CONSTR(vars2) - { // !!!!!! - my_int_var = 666; - } // !!!!!! -TAG_HANDLER_END(VARS2) -\end{verbatim} - -Never used in wxHTML :-) - -{\bf TAG\_HANDLER\_PROC}({\it varib}) - -This is very important macro. It defines \helpref{HandleTag}{wxhtmltaghandlerhandletag} -method. {\it varib} is name of parameter passed to the method, usually -{\it tag}. Body of method follows after this macro. -Note than you must use { and } ! Example: - -\begin{verbatim} -TAG_HANDLER_BEGIN(TITLE, "TITLE") - TAG_HANDLER_PROC(tag) - { - printf("TITLE found...\n"); - } -TAG_HANDLER_END(TITLE) -\end{verbatim} - -{\bf TAG\_HANDLER\_END}({\it name}) - -Ends definition of tag handler {\it name}. - -\wxheading{Tags Modules} - -You can use set of 3 macros TAGS\_MODULE\_BEGIN, TAGS\_MODULE\_ADD and -TAGS\_MODULE\_END to inherit new module from -\helpref{wxHtmlTagsModule}{wxhtmltagsmodule} and to create instance of it. -See macros reference: - -{\bf TAGS\_MODULE\_BEGIN}({\it modname}) - -Begins module definition. {\it modname} is part of class name and must -be unique. - -{\bf TAGS\_MODULE\_ADD}({\it name}) - -Adds the handler to this module. {\it name} is the identifier from -TAG\_HANDLER\_BEGIN. - -{\bf TAGS\_MODULE\_END}({\it modname}) - -Ends the definition of module. - -{\bf Example:} - -\begin{verbatim} -TAGS_MODULE_BEGIN(Examples) - TAGS_MODULE_ADD(VARS_ONLY) - TAGS_MODULE_ADD(VARS2) - TAGS_MODULE_ADD(TITLE) -TAGS_MODULE_END(Examples) -\end{verbatim} - diff --git a/docs/latex/wx/htmlhlpf.tex b/docs/latex/wx/htmlhlpf.tex deleted file mode 100644 index a3b7e4dc41..0000000000 --- a/docs/latex/wx/htmlhlpf.tex +++ /dev/null @@ -1,96 +0,0 @@ -\subsection{Help Files Format}\label{helpformat} - -wxHTML library uses a reduced version of MS HTML Workshop format. -Tex2RTF can produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in -your tex2rtf.ini file. - -(See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} for help controller description.) - -A {\bf book} consists of three files: header file, contents file and index file. -You can make a regular zip archive of these files, plus the HTML and any image files, -for wxHTML (or helpview) to read; and the .zip file can optionally be renamed to .htb. - -\wxheading{Header file (.hhp)} - -Header file must contain these lines (and may contain additional lines which are ignored) : - -\begin{verbatim} -Contents file= -Index file= -Title= -Default topic=<default page to be displayed.htm> -\end{verbatim} - -All filenames (including the Default topic) are relative to the -location of .hhp file. - -{\bf Localization note:} In addition, .hhp file may contain line - -\begin{verbatim} -Charset=<rfc_charset> -\end{verbatim} - -which specifies what charset (e.g. "iso8859\_1") was used in contents -and index files. Please note that this line is incompatible with -MS HTML Help Workshop and it would either silently remove it or complain -with some error. See also -\helpref{Writing non-English applications}{nonenglishoverview}. - -\wxheading{Contents file (.hhc)} - -Contents file has HTML syntax and it can be parsed by regular HTML parser. It contains exactly one list -({\tt <ul>}....{\tt </ul>} statement): - -\begin{verbatim} -<ul> - - <li> <object type="text/sitemap"> - <param name="Name" value="@topic name@"> - <param name="ID" value=@numeric_id@> - <param name="Local" value="@filename.htm@"> - </object> - <li> <object type="text/sitemap"> - <param name="Name" value="@topic name@"> - <param name="ID" value=@numeric_id@> - <param name="Local" value="@filename.htm@"> - </object> - ... - -</ul> -\end{verbatim} - -You can modify value attributes of param tags. {\it topic name} is name of chapter/topic as is displayed in -contents, {\it filename.htm} is HTML page name (relative to .hhp file) and {\it numeric\_id} is optional -- it is used only when you use \helpref{wxHtmlHelpController::Display(int)}{wxhtmlhelpcontrollerdisplay} - -Items in the list may be nested - one {\tt <li>} statement may contain a {\tt <ul>} sub-statement: - -\begin{verbatim} -<ul> - - <li> <object type="text/sitemap"> - <param name="Name" value="Top node"> - <param name="Local" value="top.htm"> - </object> - <ul> - <li> <object type="text/sitemap"> - <param name="Name" value="subnode in topnode"> - <param name="Local" value="subnode1.htm"> - </object> - ... - </ul> - - <li> <object type="text/sitemap"> - <param name="Name" value="Another Top"> - <param name="Local" value="top2.htm"> - </object> - ... - -</ul> -\end{verbatim} - -\wxheading{Index file (.hhk)} - -Index files have same format as contents file except that ID params are ignored and sublists are {\bf not} -allowed. - diff --git a/docs/latex/wx/htmllbox.tex b/docs/latex/wx/htmllbox.tex deleted file mode 100644 index def468fc46..0000000000 --- a/docs/latex/wx/htmllbox.tex +++ /dev/null @@ -1,350 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: htmllbox.tex -%% Purpose: wxHtmlListBox and wxSimpleHtmlListBox documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 01.06.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHtmlListBox}}\label{wxhtmllistbox} - -wxHtmlListBox is an implementation of \helpref{wxVListBox}{wxvlistbox} which -shows HTML content in the listbox rows. This is still an abstract base class -and you will need to derive your own class from it (see htlbox sample for the -example) but you will only need to override a single -\helpref{OnGetItem()}{wxhtmllistboxongetitem} function. - -\wxheading{Derived from} - -\helpref{wxVListBox}{wxvlistbox}\\ -\helpref{wxVScrolledWindow}{wxvscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/htmllbox.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See also} - -\helpref{wxSimpleHtmlListBox}{wxsimplehtmllistbox} - - -\wxheading{Event handling} - -To process input from a wxHtmlListBox, use these event handler macros to direct input to member -functions that take a \helpref{wxHtmlCellEvent}{wxhtmlcellevent} argument or a \helpref{wxHtmlLinkEvent}{wxhtmllinkevent}. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_HTML\_CELL\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} was clicked.} -\twocolitem{{\bf EVT\_HTML\_CELL\_HOVER(id, func)}}{The mouse passed over a \helpref{wxHtmlCell}{wxhtmlcell}.} -\twocolitem{{\bf EVT\_HTML\_LINK\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} which contains an hyperlink was clicked.} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxHtmlListBox::wxHtmlListBox}\label{wxhtmllistboxwxhtmllistbox} - -\func{}{wxHtmlListBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxHtmlListBoxNameStr}} - -Normal constructor which calls \helpref{Create()}{wxhtmllistboxcreate} -internally. - -\func{}{wxHtmlListBox}{\void} - -Default constructor, you must call \helpref{Create()}{wxhtmllistboxcreate} -later. - - -\membersection{wxHtmlListBox::\destruct{wxHtmlListBox}}\label{wxhtmllistboxdtor} - -\func{}{\destruct{wxHtmlListBox}}{\void} - -Destructor cleans up whatever resources we use. - - -\membersection{wxHtmlListBox::Create}\label{wxhtmllistboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxHtmlListBoxNameStr}} - -Creates the control and optionally sets the initial number of items in it -(it may also be set or changed later with -\helpref{SetItemCount()}{wxvlistboxsetitemcount}). - -There are no special styles defined for wxHtmlListBox, in particular the -wxListBox styles (with the exception of {\tt wxLB\_MULTIPLE}) can not be used here. - -Returns {\tt true} on success or {\tt false} if the control couldn't be created - - -\membersection{wxHtmlListBox::GetFileSystem}\label{wxhtmllistboxgetfilesystem} - -\func{wxFileSystem\&}{GetFileSystem}{\void} - -\constfunc{const wxFileSystem\&}{GetFileSystem}{\void} - -Returns the \helpref{wxFileSystem}{wxfilesystem} used by the HTML parser of -this object. The file system object is used to resolve the paths in HTML -fragments displayed in the control and you should use -\helpref{wxFileSystem::ChangePathTo}{wxfilesystemchangepathto} if you use -relative paths for the images or other resources embedded in your HTML. - - -\membersection{wxHtmlListBox::GetSelectedTextBgColour}\label{wxhtmllistboxgetselectedtextbgcolour} - -\constfunc{wxColour}{GetSelectedTextBgColour}{\param{const wxColour\& }{colBg}} - -This virtual function may be overridden to change the appearance of the -background of the selected cells in the same way as -\helpref{GetSelectedTextColour}{wxhtmllistboxgetselectedtextcolour}. - -It should be rarely, if ever, used because -\helpref{SetSelectionBackground}{wxvlistboxsetselectionbackground} allows to -change the selection background for all cells at once and doing anything more -fancy is probably going to look strangely. - -\wxheading{See also} - -\helpref{GetSelectedTextColour}{wxhtmllistboxgetselectedtextcolour} - - -\membersection{wxHtmlListBox::GetSelectedTextColour}\label{wxhtmllistboxgetselectedtextcolour} - -\constfunc{wxColour}{GetSelectedTextColour}{\param{const wxColour\& }{colFg}} - -This virtual function may be overridden to customize the appearance of the -selected cells. It is used to determine how the colour {\it colFg} is going to -look inside selection. By default all original colours are completely ignored -and the standard, system-dependent, selection colour is used but the program -may wish to override this to achieve some custom appearance. - -\wxheading{See also} - -\helpref{GetSelectedTextBgColour}{wxhtmllistboxgetselectedtextbgcolour},\\ -\helpref{SetSelectionBackground}{wxvlistboxsetselectionbackground},\\ -\helpref{wxSystemSettings::GetColour}{wxsystemsettingsgetcolour} - - -\membersection{wxHtmlListBox::OnGetItem}\label{wxhtmllistboxongetitem} - -\constfunc{wxString}{OnGetItem}{\param{size\_t }{n}} - -This method must be implemented in the derived class and should return -the body (i.e. without {\tt <html>} nor {\tt <body>} tags) of the HTML fragment -for the given item. - -Note that this function should always return a text fragment for the \arg{n} item -which renders with the same height both when it is selected and when it's not: -i.e. if you call, inside your OnGetItem() implementation, {\tt IsSelected(n)} to -make the items appear differently when they are selected, then you should make sure -that the returned HTML fragment will render with the same height or else you'll -see some artifacts when the user selects an item. - -\membersection{wxHtmlListBox::OnGetItemMarkup}\label{wxhtmllistboxongetitemmarkup} - -\constfunc{wxString}{OnGetItemMarkup}{\param{size\_t }{n}} - -This function may be overridden to decorate HTML returned by -\helpref{OnGetItem()}{wxhtmllistboxongetitem}. - -\membersection{wxHtmlListBox::OnLinkClicked}\label{wxhtmlistboxonlinkclicked} - -\func{virtual void}{OnLinkClicked}{\param{size\_t }{n}, \param{const wxHtmlLinkInfo\& }{link}} - -Called when the user clicks on hypertext link. Does nothing by default. -Overloading this method is deprecated; intercept the event instead. - -\wxheading{Parameters} - -\docparam{n}{Index of the item containing the link.} - -\docparam{link}{Description of the link.} - -\wxheading{See also} - -See also \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}. - - - - - - - -% -% wxSimpleHtmlListBox -% - - -\section{\class{wxSimpleHtmlListBox}}\label{wxsimplehtmllistbox} - -wxSimpleHtmlListBox is an implementation of \helpref{wxHtmlListBox}{wxhtmllistbox} which -shows HTML content in the listbox rows. - -Unlike \helpref{wxHtmlListBox}{wxhtmllistbox}, this is not an abstract class and thus it -has the advantage that you can use it without deriving your own class from it. -However, it also has the disadvantage that this is not a virtual control and thus it's not -well-suited for those cases where you need to show a huge number of items: every time you -add/insert a string, it will be stored internally and thus will take memory. - -The interface exposed by wxSimpleHtmlListBox fully implements the -\helpref{wxControlWithItems}{wxcontrolwithitems} interface, thus you should refer to -\helpref{wxControlWithItems}{wxcontrolwithitems}'s documentation for the API reference -for adding/removing/retrieving items in the listbox. -Also note that the \helpref{wxVListBox::SetItemCount}{wxvlistboxsetitemcount} function is -{\tt protected} in wxSimpleHtmlListBox's context so that you cannot call it directly, -wxSimpleHtmlListBox will do it for you. - -Note: in case you need to append a lot of items to the control at once, make sure to use the -\helpref{Append(const wxArrayString \&)}{wxcontrolwithitemsappend} function. - -Thus the only difference between a \helpref{wxListBox}{wxlistbox} and a wxSimpleHtmlListBox -is that the latter stores strings which can contain HTML fragments (see the list of -\helpref{tags supported by wxHTML}{htmltagssupported}). - -Note that the HTML strings you fetch to wxSimpleHtmlListBox should not contain the {\tt <html>} -or {\tt <body>} tags. - - -\wxheading{Derived from} - -\helpref{wxHtmlListBox}{wxhtmllistbox}, \helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxVListBox}{wxvlistbox}\\ -\helpref{wxVScrolledWindow}{wxvscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/htmllbox.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxHLB\_DEFAULT\_STYLE}}{The default style: wxBORDER\_SUNKEN} -\twocolitem{\windowstyle{wxHLB\_MULTIPLE}}{Multiple-selection list: the user can toggle multiple -items on and off.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -A wxSimpleHtmlListBox emits the same events used by \helpref{wxListBox}{wxlistbox} and by -\helpref{wxHtmlListBox}{wxhtmllistbox}. - -The event handlers for the following events take a \helpref{wxCommandEvent}{wxcommandevent}: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event, -when an item on the list is selected.} -\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event, -when the listbox is double-clicked.} -\end{twocollist} - -The event handlers for the following events take a \helpref{wxHtmlCellEvent}{wxhtmlcellevent} -or a \helpref{wxHtmlLinkEvent}{wxhtmllinkevent}: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_HTML\_CELL\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} was clicked.} -\twocolitem{{\bf EVT\_HTML\_CELL\_HOVER(id, func)}}{The mouse passed over a \helpref{wxHtmlCell}{wxhtmlcell}.} -\twocolitem{{\bf EVT\_HTML\_LINK\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} which contains an hyperlink was clicked.} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSimpleHtmlListBox::wxSimpleHtmlListBox}\label{wxsimplehtmllistboxctor} - -\func{}{wxHtmlListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = wxHLB\_DEFAULT\_STYLE}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``simpleHtmlListBox"}} - -\func{}{wxHtmlListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = wxHLB\_DEFAULT\_STYLE}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``simpleHtmlListBox"}} - -Constructor, creating and showing the HTML list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See {\tt wxHLB\_*} flags.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSimpleHtmlListBox::Create}{wxsimplehtmllistboxcreate} - - - -\func{}{wxSimpleHtmlListBox}{\void} - -Default constructor, you must call \helpref{Create()}{wxsimplehtmllistboxcreate} -later. - - -\membersection{wxSimpleHtmlListBox::\destruct{wxSimpleHtmlListBox}}\label{wxsimplehtmllistboxdtor} - -\func{}{\destruct{wxSimpleHtmlListBox}}{\void} - -Frees the array of stored items and relative client data. - - -\membersection{wxSimpleHtmlListBox::Create}\label{wxsimplehtmllistboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = wxHLB\_DEFAULT\_STYLE}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``simpleHtmlListBox"}} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = wxHLB\_DEFAULT\_STYLE}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``simpleHtmlListBox"}} - -Creates the HTML listbox for two-step construction. -See \helpref{wxSimpleHtmlListBox::wxSimpleHtmlListBox}{wxsimplehtmllistboxctor} for further details. - diff --git a/docs/latex/wx/htmlprn.tex b/docs/latex/wx/htmlprn.tex deleted file mode 100644 index f52852c23a..0000000000 --- a/docs/latex/wx/htmlprn.tex +++ /dev/null @@ -1,13 +0,0 @@ -\subsection{HTML Printing}\label{printing} - -The wxHTML library provides printing facilities with several levels of complexity. - -The easiest way to print an HTML document is to use -\helpref{wxHtmlEasyPrinting class}{wxhtmleasyprinting}. It lets you print HTML documents with only one -command and you don't have to worry about deriving from the wxPrintout class at all. It is only a simple wrapper around the -\helpref{wxHtmlPrintout}{wxhtmlprintout}, normal wxWidgets printout class. - -And finally there is the low level class \helpref{wxHtmlDCRenderer}{wxhtmldcrenderer} which you can use to -render HTML into a rectangular area on any DC. It supports rendering into multiple rectangles with the same -width. (The most common use of this is placing one rectangle on each page or printing into two columns.) - diff --git a/docs/latex/wx/htmlstrt.tex b/docs/latex/wx/htmlstrt.tex deleted file mode 100644 index 5708f5daf2..0000000000 --- a/docs/latex/wx/htmlstrt.tex +++ /dev/null @@ -1,66 +0,0 @@ -\subsection{wxHTML quick start}\label{wxhtmlquickstart} - -\wxheading{Displaying HTML} - -First of all, you must include <wx/wxhtml.h>. - -Class \helpref{wxHtmlWindow}{wxhtmlwindow} (derived from wxScrolledWindow) -is used to display HTML documents. -It has two important methods: \helpref{LoadPage}{wxhtmlwindowloadpage} -and \helpref{SetPage}{wxhtmlwindowsetpage}. -LoadPage loads and displays HTML file while SetPage displays directly the -passed {\bf string}. See the example: - -\begin{verbatim} - mywin -> LoadPage("test.htm"); - mywin -> SetPage("<html><body>" - "<h1>Error</h1>" - "Some error occurred :-H)" - "</body></hmtl>"); -\end{verbatim} - -\wxheading{Displaying Help} - -See \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}. - -\wxheading{Setting up wxHtmlWindow} - -Because wxHtmlWindow is derived from wxScrolledWindow and not from -wxFrame, it doesn't have visible frame. But the user usually wants to see -the title of HTML page displayed somewhere and the frame's titlebar is -the ideal place for it. - -wxHtmlWindow provides 2 methods in order to handle this: -\helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe} and -\helpref{SetRelatedStatusBar}{wxhtmlwindowsetrelatedstatusbar}. -See the example: - -\begin{verbatim} - html = new wxHtmlWindow(this); - html -> SetRelatedFrame(this, "HTML : %%s"); - html -> SetRelatedStatusBar(0); -\end{verbatim} - -The first command associates the HTML object with its parent frame -(this points to wxFrame object there) and sets the format of the title. -Page title "Hello, world!" will be displayed as "HTML : Hello, world!" -in this example. - -The second command sets which frame's status bar should be used to display -browser's messages (such as "Loading..." or "Done" or hypertext links). - -\wxheading{Customizing wxHtmlWindow} - -You can customize wxHtmlWindow by setting font size, font face and -borders (space between border of window and displayed HTML). Related functions: - -\begin{itemize}\itemsep=0pt -\item \helpref{SetFonts}{wxhtmlwindowsetfonts} -\item \helpref{SetBorders}{wxhtmlwindowsetborders} -\item \helpref{ReadCustomization}{wxhtmlwindowreadcustomization} -\item \helpref{WriteCustomization}{wxhtmlwindowwritecustomization} -\end{itemize} - -The last two functions are used to store user customization info wxConfig stuff -(for example in the registry under Windows, or in a dotfile under Unix). - diff --git a/docs/latex/wx/htmltags.tex b/docs/latex/wx/htmltags.tex deleted file mode 100644 index f9fc091b18..0000000000 --- a/docs/latex/wx/htmltags.tex +++ /dev/null @@ -1,151 +0,0 @@ -\subsection{Tags supported by wxHTML}\label{htmltagssupported} - -wxHTML is not full implementation of HTML standard. Instead, it supports most common tags so that it -is possible to display {\it simple} HTML documents with it. (For example it works fine with pages created -in Netscape Composer or generated by tex2rtf). - -Following tables list all tags known to wxHTML, together with supported parameters. -A tag has general form of {\tt <tagname param\_1 param\_2 ... param\_n>} where param\_i is -either {\tt paramname="paramvalue"} or {\tt paramname=paramvalue} - these two are equivalent. Unless stated -otherwise, wxHTML is case-insensitive. - -\wxheading{Table of common parameter values} - -We will use these substitutions in tags descriptions: - -\begin{verbatim} -[alignment] CENTER - LEFT - RIGHT - JUSTIFY - -[v_alignment] TOP - BOTTOM - CENTER - -[color] HTML 4.0-compliant colour specification - -[fontsize] -2 - -1 - +0 - +1 - +2 - +3 - +4 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - -[pixels] integer value that represents dimension in pixels - -[percent] i% - where i is integer - -[url] an URL - -[string] text string - -[coords] c(1),c(2),c(3),...,c(n) - where c(i) is integer - -\end{verbatim} - - -\wxheading{List of supported tags} - -\begin{verbatim} - -A NAME=[string] - HREF=[url] - TARGET=[target window spec] -ADDRESS -AREA SHAPE=POLY - SHAPE=CIRCLE - SHAPE=RECT - COORDS=[coords] - HREF=[url] -B -BIG -BLOCKQUOTE -BODY TEXT=[color] - LINK=[color] - BGCOLOR=[color] -BR ALIGN=[alignment] -CENTER -CITE -CODE -DD -DIV ALIGN=[alignment] -DL -DT -EM -FONT COLOR=[color] - SIZE=[fontsize] - FACE=[comma-separated list of facenames] -HR ALIGN=[alignment] - SIZE=[pixels] - WIDTH=[percent|pixels] - NOSHADE -H1 -H2 -H3 -H4 -H5 -H6 -I -IMG SRC=[url] - WIDTH=[pixels] - HEIGHT=[pixels] - ALIGN=TEXTTOP - ALIGN=CENTER - ALIGN=ABSCENTER - ALIGN=BOTTOM - USEMAP=[url] -KBD -LI -MAP NAME=[string] -META HTTP-EQUIV="Content-Type" - CONTENT=[string] -OL -P ALIGN=[alignment] -PRE -SAMP -SMALL -STRIKE -STRONG -SUB -SUP -TABLE ALIGN=[alignment] - WIDTH=[percent|pixels] - BORDER=[pixels] - VALIGN=[v_alignment] - BGCOLOR=[color] - CELLSPACING=[pixels] - CELLPADDING=[pixels] -TD ALIGN=[alignment] - VALIGN=[v_alignment] - BGCOLOR=[color] - WIDTH=[percent|pixels] - COLSPAN=[pixels] - ROWSPAN=[pixels] - NOWRAP -TH ALIGN=[alignment] - VALIGN=[v_alignment] - BGCOLOR=[color] - WIDTH=[percent|pixels] - COLSPAN=[pixels] - ROWSPAN=[pixels] -TITLE -TR ALIGN=[alignment] - VALIGN=[v_alignment] - BGCOLOR=[color] -TT -U -UL - -\end{verbatim} - diff --git a/docs/latex/wx/htparser.tex b/docs/latex/wx/htparser.tex deleted file mode 100644 index 5dceb68da8..0000000000 --- a/docs/latex/wx/htparser.tex +++ /dev/null @@ -1,270 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlparser.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlParser}}\label{wxhtmlparser} - -Classes derived from this handle the {\bf generic} parsing of HTML documents: it scans -the document and divide it into blocks of tags (where one block -consists of beginning and ending tag and of text between these -two tags). - -It is independent from wxHtmlWindow and can be used as stand-alone parser -(Julian Smart's idea of speech-only HTML viewer or wget-like utility - -see InetGet sample for example). - -It uses system of tag handlers to parse the HTML document. Tag handlers -are not statically shared by all instances but are created for each -wxHtmlParser instance. The reason is that the handler may contain -document-specific temporary data used during parsing (e.g. complicated -structures like tables). - -Typically the user calls only the \helpref{Parse}{wxhtmlparserparse} method. - -\wxheading{Derived from} - -wxObject - -\wxheading{Include files} - -<wx/html/htmlpars.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See also} - -\helpref{Cells Overview}{cells}, -\helpref{Tag Handlers Overview}{handlers}, -\helpref{wxHtmlTag}{wxhtmltag} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlParser::wxHtmlParser}\label{wxhtmlparserwxhtmlparser} - -\func{}{wxHtmlParser}{\void} - -Constructor. - -\membersection{wxHtmlParser::AddTag}\label{wxhtmlparseraddtag} - -\func{void}{AddTag}{\param{const wxHtmlTag\& }{tag}} - -This may (and may not) be overwritten in derived class. - -This method is called each time new tag is about to be added. -{\it tag} contains information about the tag. (See \helpref{wxHtmlTag}{wxhtmltag} -for details.) - -Default (wxHtmlParser) behaviour is this: -First it finds a handler capable of handling this tag and then it calls -handler's HandleTag method. - -\membersection{wxHtmlParser::AddTagHandler}\label{wxhtmlparseraddtaghandler} - -\func{virtual void}{AddTagHandler}{\param{wxHtmlTagHandler }{*handler}} - -Adds handler to the internal list (\& hash table) of handlers. This -method should not be called directly by user but rather by derived class' -constructor. - -This adds the handler to this {\bf instance} of wxHtmlParser, not to -all objects of this class! (Static front-end to AddTagHandler is provided -by wxHtmlWinParser). - -All handlers are deleted on object deletion. - -\membersection{wxHtmlParser::AddText}\label{wxhtmlparseraddword} - -\func{virtual void}{AddWord}{\param{const wxString\& }{txt}} - -Must be overwritten in derived class. - -This method is called by \helpref{DoParsing}{wxhtmlparserdoparsing} -each time a part of text is parsed. {\it txt} is NOT only one word, it is -substring of input. It is not formatted or preprocessed (so white spaces are -unmodified). - -\membersection{wxHtmlParser::DoParsing}\label{wxhtmlparserdoparsing} - -\func{void}{DoParsing}{\param{int }{begin\_pos}, \param{int }{end\_pos}} - -\func{void}{DoParsing}{\void} - -Parses the m\_Source from begin\_pos to end\_pos-1. -(in noparams version it parses whole m\_Source) - -\membersection{wxHtmlParser::DoneParser}\label{wxhtmlparserdoneparser} - -\func{virtual void}{DoneParser}{\void} - -This must be called after DoParsing(). - -\membersection{wxHtmlParser::GetFS}\label{wxhtmlparsergetfs} - -\constfunc{wxFileSystem*}{GetFS}{\void} - -Returns pointer to the file system. Because each tag handler has -reference to it is parent parser it can easily request the file by -calling - -\begin{verbatim} -wxFSFile *f = m_Parser -> GetFS() -> OpenFile("image.jpg"); -\end{verbatim} - -\membersection{wxHtmlParser::GetProduct}\label{wxhtmlparsergetproduct} - -\func{virtual wxObject*}{GetProduct}{\void} - -Returns product of parsing. Returned value is result of parsing -of the document. The type of this result depends on internal -representation in derived parser (but it must be derived from wxObject!). - -See wxHtmlWinParser for details. - -\membersection{wxHtmlParser::GetSource}\label{wxhtmlparsergetsource} - -\func{wxString*}{GetSource}{\void} - -Returns pointer to the source being parsed. - - -\membersection{wxHtmlParser::InitParser}\label{wxhtmlparserinitparser} - -\func{virtual void}{InitParser}{\param{const wxString\& }{source}} - -Setups the parser for parsing the {\it source} string. (Should be overridden -in derived class) - -\membersection{wxHtmlParser::OpenURL}\label{wxhtmlparseropenurl} - -\func{virtual wxFSFile*}{OpenURL}{\param{wxHtmlURLType }{type}, \param{const wxString\& }{url}} - -Opens given URL and returns {\tt wxFSFile} object that can be used to read data -from it. This method may return NULL in one of two cases: either the URL doesn't -point to any valid resource or the URL is blocked by overridden implementation -of {\it OpenURL} in derived class. - -\wxheading{Parameters} - -\docparam{type}{Indicates type of the resource. Is one of: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_URL\_PAGE}}{Opening a HTML page.} -\twocolitem{{\bf wxHTML\_URL\_IMAGE}}{Opening an image.} -\twocolitem{{\bf wxHTML\_URL\_OTHER}}{Opening a resource that doesn't fall into -any other category.} -\end{twocollist}} - -\docparam{url}{URL being opened.} - -\wxheading{Notes} - -Always use this method in tag handlers instead of {\tt GetFS()->OpenFile()} -because it can block the URL and is thus more secure. - -Default behaviour is to call \helpref{wxHtmlWindow::OnOpeningURL}{wxhtmlwindowonopeningurl} -of the associated wxHtmlWindow object (which may decide to block the URL or -redirect it to another one),if there's any, and always open the URL if the -parser is not used with wxHtmlWindow. - -Returned {\tt wxFSFile} object is not guaranteed to point to {\it url}, it might -have been redirected! - -\membersection{wxHtmlParser::Parse}\label{wxhtmlparserparse} - -\func{wxObject*}{Parse}{\param{const wxString\& }{source}} - -Proceeds parsing of the document. This is end-user method. You can simply -call it when you need to obtain parsed output (which is parser-specific) - -The method does these things: - -\begin{enumerate}\itemsep=0pt -\item calls \helpref{InitParser(source)}{wxhtmlparserinitparser} -\item calls \helpref{DoParsing}{wxhtmlparserdoparsing} -\item calls \helpref{GetProduct}{wxhtmlparsergetproduct} -\item calls \helpref{DoneParser}{wxhtmlparserdoneparser} -\item returns value returned by GetProduct -\end{enumerate} - -You shouldn't use InitParser, DoParsing, GetProduct or DoneParser directly. - -\membersection{wxHtmlParser::PushTagHandler}\label{wxhtmlparserpushtaghandler} - -\func{void}{PushTagHandler}{\param{wxHtmlTagHandler* }{handler}, \param{const wxString\& }{tags}} - -Forces the handler to handle additional tags -(not returned by \helpref{GetSupportedTags}{wxhtmltaghandlergetsupportedtags}). -The handler should already be added to this parser. - -\wxheading{Parameters} - -\docparam{handler}{the handler} -\docparam{tags}{List of tags (in same format as GetSupportedTags's return value). The parser -will redirect these tags to {\it handler} (until call to \helpref{PopTagHandler}{wxhtmlparserpoptaghandler}). } - -\wxheading{Example} - -Imagine you want to parse following pseudo-html structure: - -\begin{verbatim} -<myitems> - <param name="one" value="1"> - <param name="two" value="2"> -</myitems> - -<execute> - <param program="text.exe"> -</execute> -\end{verbatim} - -It is obvious that you cannot use only one tag handler for <param> tag. -Instead you must use context-sensitive handlers for <param> inside <myitems> -and <param> inside <execute>. - -This is the preferred solution: - -\begin{verbatim} -TAG_HANDLER_BEGIN(MYITEM, "MYITEMS") - TAG_HANDLER_PROC(tag) - { - // ...something... - - m_Parser -> PushTagHandler(this, "PARAM"); - ParseInner(tag); - m_Parser -> PopTagHandler(); - - // ...something... - } -TAG_HANDLER_END(MYITEM) -\end{verbatim} - - -\membersection{wxHtmlParser::PopTagHandler}\label{wxhtmlparserpoptaghandler} - -\func{void}{PopTagHandler}{\void} - -Restores parser's state before last call to -\helpref{PushTagHandler}{wxhtmlparserpushtaghandler}. - - -\membersection{wxHtmlParser::SetFS}\label{wxhtmlparsersetfs} - -\func{void}{SetFS}{\param{wxFileSystem }{*fs}} - -Sets the virtual file system that will be used to request additional -files. (For example {\tt <IMG>} tag handler requests wxFSFile with the -image data.) - -\membersection{wxHtmlParser::StopParsing}\label{wxhtmlparserstopparsing} - -\func{void}{StopParsing}{\void} - -Call this function to interrupt parsing from a tag handler. No more tags -will be parsed afterward. This function may only be called from -\helpref{wxHtmlParser::Parse}{wxhtmlparserparse} or any function called -by it (i.e. from tag handlers). - diff --git a/docs/latex/wx/htprint.tex b/docs/latex/wx/htprint.tex deleted file mode 100644 index 48235aa9d4..0000000000 --- a/docs/latex/wx/htprint.tex +++ /dev/null @@ -1,110 +0,0 @@ -% -% automatically generated by HelpGen from -% htmprint.h at 17/Oct/99 12:48:02 -% - - -\section{\class{wxHtmlPrintout}}\label{wxhtmlprintout} - -This class serves as printout class for HTML documents. - -\wxheading{Derived from} - -\helpref{wxPrintout}{wxprintout}\\ -\helpref{wxObject}{wxobject} - - -\wxheading{Include files} - -<wx/html/htmprint.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxHtmlPrintout::wxHtmlPrintout}\label{wxhtmlprintoutwxhtmlprintout} - -\func{}{wxHtmlPrintout}{\param{const wxString\& }{title = "Printout"}} - -Constructor. - - -\membersection{wxHtmlPrintout::AddFilter}\label{wxhtmlprintoutaddfilter} - -\func{static void}{AddFilter}{\param{wxHtmlFilter* }{filter}} - -Adds a filter to the static list of filters for wxHtmlPrintout. See \helpref{wxHtmlFilter}{wxhtmlfilter} for -further information. - -\membersection{wxHtmlPrintout::SetFonts}\label{wxhtmlprintoutsetfonts} - -\func{void}{SetFonts}{\param{const wxString\& }{normal\_face}, \param{const wxString\& }{fixed\_face}, \param{const int }{*sizes = NULL}} - -Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for -detailed description. - -\membersection{wxHtmlPrintout::SetFooter}\label{wxhtmlprintoutsetfooter} - -\func{void}{SetFooter}{\param{const wxString\& }{footer}, \param{int }{pg = wxPAGE\_ALL}} - -Set page footer. The following macros can be used inside it: -\input htprintmacros.inc - -\wxheading{Parameters} - -\docparam{footer}{HTML text to be used as footer.} - -\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.} - - -\membersection{wxHtmlPrintout::SetHeader}\label{wxhtmlprintoutsetheader} - -\func{void}{SetHeader}{\param{const wxString\& }{header}, \param{int }{pg = wxPAGE\_ALL}} - -Set page header. The following macros can be used inside it: -\input htprintmacros.inc - -\wxheading{Parameters} - -\docparam{header}{HTML text to be used as header.} - -\docparam{pg}{one of wxPAGE\_ODD, wxPAGE\_EVEN and wxPAGE\_ALL constants.} - - -\membersection{wxHtmlPrintout::SetHtmlFile}\label{wxhtmlprintoutsethtmlfile} - -\func{void}{SetHtmlFile}{\param{const wxString\& }{htmlfile}} - -Prepare the class for printing this HTML {\bf file}. The file may be located on -any virtual file system or it may be normal file. - - - -\membersection{wxHtmlPrintout::SetHtmlText}\label{wxhtmlprintoutsethtmltext} - -\func{void}{SetHtmlText}{\param{const wxString\& }{html}, \param{const wxString\& }{basepath = wxEmptyString}, \param{bool }{isdir = true}} - -Prepare the class for printing this HTML text. - -\wxheading{Parameters} - -\docparam{html}{HTML text. (NOT file!)} - -\docparam{basepath}{base directory (html string would be stored there if it was in -file). It is used to determine path for loading images, for example.} - -\docparam{isdir}{false if basepath is filename, true if it is directory name -(see \helpref{wxFileSystem}{wxfilesystem} for detailed explanation)} - - - -\membersection{wxHtmlPrintout::SetMargins}\label{wxhtmlprintoutsetmargins} - -\func{void}{SetMargins}{\param{float }{top = 25.2}, \param{float }{bottom = 25.2}, \param{float }{left = 25.2}, \param{float }{right = 25.2}, \param{float }{spaces = 5}} - -Sets margins in millimeters. Defaults to 1 inch for margins and 0.5cm for space -between text and header and/or footer - diff --git a/docs/latex/wx/htprintmacros.inc b/docs/latex/wx/htprintmacros.inc deleted file mode 100644 index 0da33a146f..0000000000 --- a/docs/latex/wx/htprintmacros.inc +++ /dev/null @@ -1,19 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: htprint.inc -%% Purpose: Macros which can be used with wxHtmlPrintout: this file is -%% included from several locations where we list these macros -%% Author: Vadim Zeitlin -%% Created: 2006-07-29 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{itemize}\itemsep=0pt -\item @DATE@ is replaced by the current date in default format -\item @PAGENUM@ is replaced by page number -\item @PAGESCNT@ is replaced by total number of pages -\item @TIME@ is replaced by the current time in default format -\item @TITLE@ is replaced with the title of the document -\end{itemize} - diff --git a/docs/latex/wx/httag.tex b/docs/latex/wx/httag.tex deleted file mode 100644 index 2ed4d07300..0000000000 --- a/docs/latex/wx/httag.tex +++ /dev/null @@ -1,193 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltag.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlTag}}\label{wxhtmltag} - -This class represents a single HTML tag. -It is used by \helpref{tag handlers}{handlers}. - -\wxheading{Derived from} - -wxObject - -\wxheading{Include files} - -<wx/html/htmltag.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTag::wxHtmlTag}\label{wxhtmltagwxhtmltag} - -\func{}{wxHtmlTag}{\param{wxHtmlTag *}{parent}, \param{const wxString\& }{source}, -\param{int }{pos}, \param{int }{end\_pos}, -\param{wxHtmlTagsCache* }{cache}, \param{wxHtmlEntitiesParser *}{entParser}} - -Constructor. You will probably never have to construct a wxHtmlTag object -yourself. Feel free to ignore the constructor parameters. -Have a look at src/html/htmlpars.cpp if you're interested in creating it. - -\membersection{wxHtmlTag::GetAllParams}\label{wxhtmltaggetallparams} - -\constfunc{const wxString\&}{GetAllParams}{\void} - -Returns a string containing all parameters. - -Example : tag contains {\tt <FONT SIZE=+2 COLOR="\#000000">}. Call to -tag.GetAllParams() would return {\tt SIZE=+2 COLOR="\#000000"}. - - -\membersection{wxHtmlTag::GetBeginPos}\label{wxhtmltaggetbeginpos} - -\constfunc{int}{GetBeginPos}{\void} - -Returns beginning position of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with `|'): - -\begin{verbatim} -bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla - | -\end{verbatim} - - -\membersection{wxHtmlTag::GetEndPos1}\label{wxhtmltaggetendpos1} - -\constfunc{int}{GetEndPos1}{\void} - -Returns ending position of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with `|'): - -\begin{verbatim} -bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla - | -\end{verbatim} - - -\membersection{wxHtmlTag::GetEndPos2}\label{wxhtmltaggetendpos2} - -\constfunc{int}{GetEndPos2}{\void} - -Returns ending position 2 of the text {\it between} this tag and paired -ending tag. -See explanation (returned position is marked with `|'): - -\begin{verbatim} -bla bla bla <MYTAG> bla bla internal text</MYTAG> bla bla - | -\end{verbatim} - -\membersection{wxHtmlTag::GetName}\label{wxhtmltaggetname} - -\constfunc{wxString}{GetName}{\void} - -Returns tag's name. The name is always in uppercase and it doesn't contain -'<' or '/' characters. (So the name of {\tt <FONT SIZE=+2>} tag is "FONT" -and name of {\tt </table>} is "TABLE") - - -\membersection{wxHtmlTag::GetParam}\label{wxhtmltaggetparam} - -\constfunc{wxString}{GetParam}{\param{const wxString\& }{par}, \param{bool }{with\_quotes = false}} - -Returns the value of the parameter. You should check whether the -parameter exists or not (use \helpref{HasParam}{wxhtmltaghasparam}) first. - -\wxheading{Parameters} - -\docparam{par}{The parameter's name.} - -\docparam{with\_quotes}{true if you want to get quotes as well. See example.} - -\wxheading{Example} - -\begin{verbatim} -... -/* you have wxHtmlTag variable tag which is equal to - HTML tag <FONT SIZE=+2 COLOR="#0000FF"> */ -dummy = tag.GetParam("SIZE"); - // dummy == "+2" -dummy = tag.GetParam("COLOR"); - // dummy == "#0000FF" -dummy = tag.GetParam("COLOR", true); - // dummy == "\"#0000FF\"" -- see the difference!! -\end{verbatim} - -\membersection{wxHtmlTag::GetParamAsColour}\label{wxhtmltaggetparamascolour} - -\constfunc{bool}{GetParamAsColour}{\param{const wxString\& }{par}, \param{wxColour *}{clr}} - -Interprets tag parameter {\it par} as colour specification and saves its value -into wxColour variable pointed by {\it clr}. - -Returns true on success and false if {\it par} is not colour specification or -if the tag has no such parameter. - -\membersection{wxHtmlTag::GetParamAsInt}\label{wxhtmltaggetparamasint} - -\constfunc{bool}{GetParamAsInt}{\param{const wxString\& }{par}, \param{int *}{value}} - -Interprets tag parameter {\it par} as an integer and saves its value -into int variable pointed by {\it value}. - -Returns true on success and false if {\it par} is not an integer or -if the tag has no such parameter. - -\membersection{wxHtmlTag::HasEnding}\label{wxhtmltaghasending} - -\constfunc{bool}{HasEnding}{\void} - -Returns true if this tag is paired with ending tag, false otherwise. - -See the example of HTML document: - -\begin{verbatim} -<html><body> -Hello<p> -How are you? -<p align=center>This is centered...</p> -Oops<br>Oooops! -</body></html> -\end{verbatim} - -In this example tags HTML and BODY have ending tags, first P and BR -doesn't have ending tag while the second P has. The third P tag (which -is ending itself) of course doesn't have ending tag. - -\membersection{wxHtmlTag::HasParam}\label{wxhtmltaghasparam} - -\constfunc{bool}{HasParam}{\param{const wxString\& }{par}} - -Returns true if the tag has a parameter of the given name. -Example : {\tt <FONT SIZE=+2 COLOR="\#FF00FF">} has two parameters named -"SIZE" and "COLOR". - -\wxheading{Parameters} - -\docparam{par}{the parameter you're looking for.} - -\membersection{wxHtmlTag::ScanParam}\label{wxhtmltagscanparam} - -\constfunc{wxString}{ScanParam}{\param{const wxString\& }{par}, \param{const wxChar *}{format}, \param{void *}{value}} - -This method scans the given parameter. Usage is exactly the same as sscanf's -usage except that you don't pass a string but a parameter name as the first -argument -and you can only retrieve one value (i.e. you can use only one "\%" element -in {\it format}). - - -\wxheading{Parameters} - -\docparam{par}{The name of the tag you want to query} - -\docparam{format}{scanf()-like format string.} - -\docparam{value}{pointer to a variable to store the value in } - diff --git a/docs/latex/wx/httaghnd.tex b/docs/latex/wx/httaghnd.tex deleted file mode 100644 index d96dc842fc..0000000000 --- a/docs/latex/wx/httaghnd.tex +++ /dev/null @@ -1,95 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltaghandler.tex at 18/Mar/99 19:20:29 -% - -\section{\class{wxHtmlTagHandler}}\label{wxhtmltaghandler} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/htmlpars.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See Also} - -\helpref{Overview}{handlers}, -\helpref{wxHtmlTag}{wxhtmltag} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTagHandler::m\_Parser}\label{wxhtmltaghandlermparser} - -{\bf wxHtmlParser* m\_Parser} - -This attribute is used to access parent parser. It is protected so that -it can't be accessed by user but can be accessed from derived classes. - -\membersection{wxHtmlTagHandler::wxHtmlTagHandler}\label{wxhtmltaghandlerwxhtmltaghandler} - -\func{}{wxHtmlTagHandler}{\void} - -Constructor. - -\membersection{wxHtmlTagHandler::GetSupportedTags}\label{wxhtmltaghandlergetsupportedtags} - -\func{virtual wxString}{GetSupportedTags}{\void} - -Returns list of supported tags. The list is in uppercase and tags -are delimited by ','. Example : {\tt "I,B,FONT,P" } - -\membersection{wxHtmlTagHandler::HandleTag}\label{wxhtmltaghandlerhandletag} - -\func{virtual bool}{HandleTag}{\param{const wxHtmlTag\& }{tag}} - -This is the core method of each handler. It is called each time -one of supported tags is detected. {\it tag} contains all necessary -info (see \helpref{wxHtmlTag}{wxhtmltag} for details). - -\wxheading{Return value} - -true if \helpref{ParseInner}{wxhtmltaghandlerparseinner} was called, -false otherwise. - -\wxheading{Example} - -\begin{verbatim} -bool MyHandler::HandleTag(const wxHtmlTag& tag) -{ - ... - // change state of parser (e.g. set bold face) - ParseInner(tag); - ... - // restore original state of parser -} -\end{verbatim} - -You shouldn't call ParseInner if the tag is not paired with an ending one. - -\membersection{wxHtmlTagHandler::ParseInner}\label{wxhtmltaghandlerparseinner} - -\func{void}{ParseInner}{\param{const wxHtmlTag\& }{tag}} - -This method calls parser's \helpref{DoParsing}{wxhtmlparserdoparsing} method -for the string between this tag and the paired ending tag: - -\begin{verbatim} -...<A HREF="x.htm">Hello, world!</A>... -\end{verbatim} - -In this example, a call to ParseInner (with {\it tag} pointing to A tag) -will parse 'Hello, world!'. - -\membersection{wxHtmlTagHandler::SetParser}\label{wxhtmltaghandlersetparser} - -\func{virtual void}{SetParser}{\param{wxHtmlParser }{*parser}} - -Assigns {\it parser} to this handler. Each {\bf instance} of handler -is guaranteed to be called only from the parser. - diff --git a/docs/latex/wx/httagmod.tex b/docs/latex/wx/httagmod.tex deleted file mode 100644 index bce7bda44a..0000000000 --- a/docs/latex/wx/httagmod.tex +++ /dev/null @@ -1,48 +0,0 @@ -% -% automatically generated by HelpGen from -% htmltagsmodule.tex at 14/Mar/99 20:13:37 - -\section{\class{wxHtmlTagsModule}}\label{wxhtmltagsmodule} - -This class provides easy way of filling wxHtmlWinParser's table of -tag handlers. It is used almost exclusively together with the set of -\helpref{TAGS\_MODULE\_* macros}{handlers} - -\wxheading{Derived from} - -\helpref{wxModule}{wxmodule}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/winpars.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See Also} - -\helpref{Tag Handlers}{handlers}, -\helpref{wxHtmlTagHandler}{wxhtmltaghandler}, -\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}, - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlTagsModule::FillHandlersTable}\label{wxhtmltagsmodulefillhandlerstable} - -\func{virtual void}{FillHandlersTable}{\param{wxHtmlWinParser }{*parser}} - -You must override this method. In most common case its body consists -only of lines of the following type: - -\begin{verbatim} -parser -> AddTagHandler(new MyHandler); -\end{verbatim} - -I recommend using the {\bf TAGS\_MODULE\_*} macros. - -\wxheading{Paremeters} - -\docparam{parser}{Pointer to the parser that requested tables filling.} - diff --git a/docs/latex/wx/http.tex b/docs/latex/wx/http.tex deleted file mode 100644 index 3a4a9a1ffe..0000000000 --- a/docs/latex/wx/http.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{\class{wxHTTP}}\label{wxhttp} - -\wxheading{Derived from} - -\helpref{wxProtocol}{wxprotocol}\\ -\helpref{wxSocketClient}{wxsocketclient}\\ -\helpref{wxSocketBase}{wxsocketbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/protocol/http.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxURL}{wxurl} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ---------------------------------------------------------------------------- -\membersection{wxHTTP::GetResponse}\label{wxhttpgetresponse} - -\constfunc{int}{GetResponse}{\void} - -Returns the HTTP response code returned by the server. Please refer to -\urlref{RFC 2616}{http://www.faqs.org/rfcs/rfc2616.html} for the list of responses. - - -\membersection{wxHTTP::GetInputStream}\label{wxhttpgetinputstream} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the specified path. Notice that this stream is -unseekable, i.e. SeekI() and TellI() methods shouldn't be used. - -Note that you can still know the size of the file you are getting using -\helpref{wxStreamBase::GetSize()}{wxstreambasegetsize}. However there is a -limitation: in HTTP protocol, the size is not always specified so sometimes -\texttt{(size\_t)-1} can returned ot indicate that the size is unknown. In such -case, you may want to use \helpref{wxInputStream::LastRead()}{wxinputstreamlastread} -method in a loop to get the total size. - -\wxheading{Return value} - -Returns the initialized stream. You must delete it yourself once you -don't use it anymore and this must be done before the wxHTTP object itself is -destroyed. The destructor closes the network connection. The next time you will -try to get a file the network connection will have to be reestablished, but you -don't have to take care of this since wxHTTP reestablishes it automatically. - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - -% ---------------------------------------------------------------------------- - -\membersection{wxHTTP::SetHeader}\label{wxhttpsetheader} - -\func{void}{SetHeader}{\param{const wxString\&}{ header}, \param{const wxString\&}{ h\_data}} - -It sets data of a field to be sent during the next request to the HTTP server. The field -name is specified by {\it header} and the content by {\it h\_data}. -This is a low level function and it assumes that you know what you are doing. - -\membersection{wxHTTP::GetHeader}\label{wxhttpgetheader} - -\func{wxString}{GetHeader}{\param{const wxString\&}{ header}} - -Returns the data attached with a field whose name is specified by {\it header}. -If the field doesn't exist, it will return an empty string and not a NULL string. - -\wxheading{Note} - -The header is not case-sensitive, i.e. "CONTENT-TYPE" and "content-type" -represent the same header. - diff --git a/docs/latex/wx/htwidget.tex b/docs/latex/wx/htwidget.tex deleted file mode 100644 index b095e9446f..0000000000 --- a/docs/latex/wx/htwidget.tex +++ /dev/null @@ -1,42 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlcell.h at 14/Apr/99 20:12:40 -% - -\section{\class{wxHtmlWidgetCell}}\label{wxhtmlwidgetcell} - -wxHtmlWidgetCell is a class that provides a connection between HTML cells and widgets (an object derived -from wxWindow). You can use it to display things like forms, input boxes etc. in an HTML window. - -wxHtmlWidgetCell takes care of resizing and moving window. - -\wxheading{Derived from} - -\helpref{wxHtmlCell}{wxhtmlcell}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/htmlcell.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWidgetCell::wxHtmlWidgetCell}\label{wxhtmlwidgetcellwxhtmlwidgetcell} - -\func{}{wxHtmlWidgetCell}{\param{wxWindow* }{wnd}, \param{int }{w = 0}} - -Constructor. - -\wxheading{Parameters} - -\docparam{wnd}{Connected window. It is parent window {\bf must} be the wxHtmlWindow object within -which it is displayed!} - -\docparam{w}{Floating width. If non-zero width of {\it wnd} window is adjusted so that it is -always {\it w} percents of parent container's width. (For example w = 100 means that the window -will always have same width as parent container)} - diff --git a/docs/latex/wx/htwindow.tex b/docs/latex/wx/htwindow.tex deleted file mode 100644 index 75df9734af..0000000000 --- a/docs/latex/wx/htwindow.tex +++ /dev/null @@ -1,612 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwindow.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWindow}}\label{wxhtmlwindow} - -wxHtmlWindow is probably the only class you will directly use -unless you want to do something special (like adding new tag -handlers or MIME filters). - -The purpose of this class is to display HTML pages (either local -file or downloaded via HTTP protocol) in a window. The width -of the window is constant - given in the constructor - and virtual height -is changed dynamically depending on page size. -Once the window is created you can set its content by calling -\helpref{SetPage(text)}{wxhtmlwindowsetpage}, -\helpref{LoadPage(filename)}{wxhtmlwindowloadpage} or -\helpref{LoadFile}{wxhtmlwindowloadfile}. - -\wxheading{Note} - -wxHtmlWindow uses the \helpref{wxImage}{wximage} class for displaying images. -Don't forget to initialize all image formats you need before loading any page! -(See \helpref{wxInitAllImageHandlers}{wxinitallimagehandlers} and -\helpref{wxImage::AddHandler}{wximageaddhandler}.) - -\wxheading{Derived from} - -\helpref{wxScrolledWindow}{wxscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/htmlwin.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxHW\_SCROLLBAR\_NEVER}}{Never display scrollbars, not -even when the page is larger than the window.} -\twocolitem{\windowstyle{wxHW\_SCROLLBAR\_AUTO}}{Display scrollbars only if -page's size exceeds window's size.} -\twocolitem{\windowstyle{wxHW\_NO\_SELECTION}}{Don't allow the user to select -text.} -\end{twocollist} - - -\wxheading{Event handling} - -To process input from a wxHtmlWindow, use these event handler macros to direct input to member -functions that take a \helpref{wxHtmlCellEvent}{wxhtmlcellevent} argument or a \helpref{wxHtmlLinkEvent}{wxhtmllinkevent}. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_HTML\_CELL\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} was clicked.} -\twocolitem{{\bf EVT\_HTML\_CELL\_HOVER(id, func)}}{The mouse passed over a \helpref{wxHtmlCell}{wxhtmlcell}.} -\twocolitem{{\bf EVT\_HTML\_LINK\_CLICKED(id, func)}}{A \helpref{wxHtmlCell}{wxhtmlcell} which contains an hyperlink was clicked.} -\end{twocollist} - - -\wxheading{See also} - -\helpref{wxHtmlLinkEvent}{wxhtmllinkevent}, \helpref{wxHtmlCellEvent}{wxhtmlcellevent} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWindow::wxHtmlWindow}\label{wxhtmlwindowwxhtmlwindow} - -\func{}{wxHtmlWindow}{\void} - -Default constructor. - -\func{}{wxHtmlWindow}{\param{wxWindow }{*parent}, \param{wxWindowID }{id = -1}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxHW\_DEFAULT\_STYLE}, \param{const wxString\& }{name = "htmlWindow"}} - -Constructor. The parameters are the same as for the \helpref{wxScrolledWindow}{wxscrolledwindow} constructor. - -\wxheading{Parameters} - -\docparam{style}{Window style. See \helpref{wxHtmlWindow}{wxhtmlwindow}.} - -\membersection{wxHtmlWindow::AddFilter}\label{wxhtmlwindowaddfilter} - -\func{static void}{AddFilter}{\param{wxHtmlFilter }{*filter}} - -Adds \helpref{input filter}{filters} to the static list of available -filters. These filters are present by default: - -\begin{itemize}\itemsep=0pt -\item {\tt text/html} MIME type -\item {\tt image/*} MIME types -\item Plain Text filter (this filter is used if no other filter matches) -\end{itemize} - -\membersection{wxHtmlWindow::AppendToPage}\label{wxhtmlwindowappendtopage} - -\func{bool}{AppendToPage}{\param{const wxString\& }{source}} - -Appends HTML fragment to currently displayed text and refreshes the window. - -\wxheading{Parameters} - -\docparam{source}{HTML code fragment} - -\wxheading{Return value} - -false if an error occurred, true otherwise. - -\membersection{wxHtmlWindow::GetInternalRepresentation}\label{wxhtmlwindowgetinternalrepresentation} - -\constfunc{wxHtmlContainerCell*}{GetInternalRepresentation}{\void} - -Returns pointer to the top-level container. - -See also: \helpref{Cells Overview}{cells}, -\helpref{Printing Overview}{printing} - -\membersection{wxHtmlWindow::GetOpenedAnchor}\label{wxhtmlwindowgetopenedanchor} - -\func{wxString}{GetOpenedAnchor}{\void} - -Returns anchor within currently opened page -(see \helpref{GetOpenedPage}{wxhtmlwindowgetopenedpage}). -If no page is opened or if the displayed page wasn't -produced by call to LoadPage, empty string is returned. - - -\membersection{wxHtmlWindow::GetOpenedPage}\label{wxhtmlwindowgetopenedpage} - -\func{wxString}{GetOpenedPage}{\void} - -Returns full location of the opened page. If no page is opened or if the displayed page wasn't -produced by call to LoadPage, empty string is returned. - -\membersection{wxHtmlWindow::GetOpenedPageTitle}\label{wxhtmlwindowgetopenedpagetitle} - -\func{wxString}{GetOpenedPageTitle}{\void} - -Returns title of the opened page or wxEmptyString if current page does not contain {\tt <TITLE>} tag. - -\membersection{wxHtmlWindow::GetRelatedFrame}\label{wxhtmlwindowgetrelatedframe} - -\constfunc{wxFrame*}{GetRelatedFrame}{\void} - -Returns the related frame. - -\membersection{wxHtmlWindow::HistoryBack}\label{wxhtmlwindowhistoryback} - -\func{bool}{HistoryBack}{\void} - -Moves back to the previous page. (each page displayed using -\helpref{LoadPage}{wxhtmlwindowloadpage} is stored in history list.) - -\membersection{wxHtmlWindow::HistoryCanBack}\label{wxhtmlwindowhistorycanback} - -\func{bool}{HistoryCanBack}{\void} - -Returns true if it is possible to go back in the history (i.e. HistoryBack() -won't fail). - -\membersection{wxHtmlWindow::HistoryCanForward}\label{wxhtmlwindowhistorycanforward} - -\func{bool}{HistoryCanForward}{\void} - -Returns true if it is possible to go forward in the history (i.e. HistoryBack() -won't fail). - - -\membersection{wxHtmlWindow::HistoryClear}\label{wxhtmlwindowhistoryclear} - -\func{void}{HistoryClear}{\void} - -Clears history. - -\membersection{wxHtmlWindow::HistoryForward}\label{wxhtmlwindowhistoryforward} - -\func{bool}{HistoryForward}{\void} - -Moves to next page in history. - -\membersection{wxHtmlWindow::LoadFile}\label{wxhtmlwindowloadfile} - -\func{virtual bool}{LoadFile}{\param{const wxFileName\& }{filename}} - -Loads HTML page from file and displays it. - -\wxheading{Return value} - -false if an error occurred, true otherwise - -\wxheading{See also} - -\helpref{LoadPage}{wxhtmlwindowloadpage} - -\membersection{wxHtmlWindow::LoadPage}\label{wxhtmlwindowloadpage} - -\func{virtual bool}{LoadPage}{\param{const wxString\& }{location}} - -Unlike SetPage this function first loads HTML page from {\it location} -and then displays it. See example: - -\begin{verbatim} -htmlwin->LoadPage("help/myproject/index.htm"); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{location}{The address of document. See \helpref{wxFileSystem}{wxfilesystem} for details on address format and behaviour of "opener".} - -\wxheading{Return value} - -false if an error occurred, true otherwise - -\wxheading{See also} - -\helpref{LoadFile}{wxhtmlwindowloadfile} - -\membersection{wxHtmlWindow::OnCellClicked}\label{wxhtmlwindowoncellclicked} - -\func{virtual bool}{OnCellClicked}{\param{wxHtmlCell }{*cell}, \param{wxCoord }{x}, \param{wxCoord }{y}, \param{const wxMouseEvent\& }{event}} - -This method is called when a mouse button is clicked inside wxHtmlWindow. - -The default behaviour is to emit a \helpref{wxHtmlCellEvent}{wxhtmlcellevent} -and, if the event was not processed or skipped, call -\helpref{OnLinkClicked}{wxhtmlwindowonlinkclicked} if the cell contains an -hypertext link. - -Overloading this method is deprecated; intercept the event instead. - - -\wxheading{Parameters} - -\docparam{cell}{The cell inside which the mouse was clicked, always a simple -(i.e. non-container) cell} - -\docparam{x, y}{The logical coordinates of the click point} - -\docparam{event}{The mouse event containing other information about the click} - -\wxheading{Return value} - -\true if a link was clicked, \false otherwise. - -\membersection{wxHtmlWindow::OnCellMouseHover}\label{wxhtmlwindowoncellmousehover} - -\func{virtual void}{OnCellMouseHover}{\param{wxHtmlCell }{*cell}, \param{wxCoord }{x}, \param{wxCoord }{y}} - -This method is called when a mouse moves over an HTML cell. -Default behaviour is to emit a \helpref{wxHtmlCellEvent}{wxhtmlcellevent}. -Overloading this method is deprecated; intercept the event instead. - -\wxheading{Parameters} - -\docparam{cell}{The cell inside which the mouse is currently, always a simple -(i.e. non-container) cell} - -\docparam{x, y}{The logical coordinates of the click point} - -\membersection{wxHtmlWindow::OnLinkClicked}\label{wxhtmlwindowonlinkclicked} - -\func{virtual void}{OnLinkClicked}{\param{const wxHtmlLinkInfo\& }{link}} - -Called when user clicks on hypertext link. Default behaviour is to emit a -\helpref{wxHtmlLinkEvent}{wxhtmllinkevent} and, if the event was not processed -or skipped, call \helpref{LoadPage}{wxhtmlwindowloadpage} and do nothing else. -Overloading this method is deprecated; intercept the event instead. - -Also see \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo}. - -\membersection{wxHtmlWindow::OnOpeningURL}\label{wxhtmlwindowonopeningurl} - -\func{virtual wxHtmlOpeningStatus}{OnOpeningURL}{\param{wxHtmlURLType }{type},\param{const wxString\& }{url}, \param{wxString *}{redirect}} - -Called when an URL is being opened (either when the user clicks on a link or -an image is loaded). The URL will be opened only if OnOpeningURL returns -{\tt wxHTML\_OPEN}. This method is called by -\helpref{wxHtmlParser::OpenURL}{wxhtmlparseropenurl}. -You can override OnOpeningURL to selectively block some -URLs (e.g. for security reasons) or to redirect them elsewhere. Default -behaviour is to always return {\tt wxHTML\_OPEN}. - -\wxheading{Parameters} - -\docparam{type}{Indicates type of the resource. Is one of -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_URL\_PAGE}}{Opening a HTML page.} -\twocolitem{{\bf wxHTML\_URL\_IMAGE}}{Opening an image.} -\twocolitem{{\bf wxHTML\_URL\_OTHER}}{Opening a resource that doesn't fall into -any other category.} -\end{twocollist}} - -\docparam{url}{URL being opened.} - -\docparam{redirect}{Pointer to wxString variable that must be filled with an -URL if OnOpeningURL returns {\tt wxHTML\_REDIRECT}.} - -\wxheading{Return value} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxHTML\_OPEN}}{Open the URL.} -\twocolitem{{\bf wxHTML\_BLOCK}}{Deny access to the URL, \helpref{wxHtmlParser::OpenURL}{wxhtmlparseropenurl} will return NULL.} -\twocolitem{{\bf wxHTML\_REDIRECT}}{Don't open {\it url}, redirect to another -URL. OnOpeningURL must fill {\it *redirect} with the new URL. OnOpeningURL will -be called again on returned URL.} -\end{twocollist} - -\membersection{wxHtmlWindow::OnSetTitle}\label{wxhtmlwindowonsettitle} - -\func{virtual void}{OnSetTitle}{\param{const wxString\& }{title}} - -Called on parsing {\tt <TITLE>} tag. - - -\membersection{wxHtmlWindow::ReadCustomization}\label{wxhtmlwindowreadcustomization} - -\func{virtual void}{ReadCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} - -This reads custom settings from wxConfig. It uses the path 'path' -if given, otherwise it saves info into currently selected path. -The values are stored in sub-path {\tt wxHtmlWindow} - -Read values: all things set by SetFonts, SetBorders. - -\wxheading{Parameters} - -\docparam{cfg}{wxConfig from which you want to read the configuration.} - -\docparam{path}{Optional path in config tree. If not given current path is used.} - -\membersection{wxHtmlWindow::SelectAll}\label{wxhtmlwindowselectall} - -\func{void}{SelectAll}{\void} - -Selects all text in the window. - -\wxheading{See also} - -\helpref{SelectLine}{wxhtmlwindowselectline}, -\helpref{SelectWord}{wxhtmlwindowselectword} - -\membersection{wxHtmlWindow::SelectionToText}\label{wxhtmlwindowselectiontotext} - -\func{wxString}{SelectionToText}{\void} - -Returns current selection as plain text. Returns empty string if no text -is currently selected. - -\membersection{wxHtmlWindow::SelectLine}\label{wxhtmlwindowselectline} - -\func{void}{SelectLine}{\param{const wxPoint\& }{pos}} - -Selects the line of text that \arg{pos} points at. Note that \arg{pos} -is relative to the top of displayed page, not to window's origin, use -\helpref{CalcUnscrolledPosition}{wxscrolledwindowcalcunscrolledposition} -to convert physical coordinate. - -\wxheading{See also} - -\helpref{SelectAll}{wxhtmlwindowselectall}, -\helpref{SelectWord}{wxhtmlwindowselectword} - -\membersection{wxHtmlWindow::SelectWord}\label{wxhtmlwindowselectword} - -\func{void}{SelectWord}{\param{const wxPoint\& }{pos}} - -Selects the word at position \arg{pos}. Note that \arg{pos} -is relative to the top of displayed page, not to window's origin, use -\helpref{CalcUnscrolledPosition}{wxscrolledwindowcalcunscrolledposition} -to convert physical coordinate. - -\wxheading{See also} - -\helpref{SelectAll}{wxhtmlwindowselectall}, -\helpref{SelectLine}{wxhtmlwindowselectline} - -\membersection{wxHtmlWindow::SetBorders}\label{wxhtmlwindowsetborders} - -\func{void}{SetBorders}{\param{int }{b}} - -This function sets the space between border of window and HTML contents. See image: - -\helponly{\image{}{border.bmp}} - -\wxheading{Parameters} - -\docparam{b}{indentation from borders in pixels} - -\membersection{wxHtmlWindow::SetFonts}\label{wxhtmlwindowsetfonts} - -\func{void}{SetFonts}{\param{const wxString\& }{normal\_face}, \param{const wxString\& }{fixed\_face}, \param{const int }{*sizes = NULL}} - -This function sets font sizes and faces. - -\wxheading{Parameters} - -\docparam{normal\_face}{This is face name for normal (i.e. non-fixed) font. -It can be either empty string (then the default face is chosen) or -platform-specific face name. Examples are "helvetica" under Unix or -"Times New Roman" under Windows.} - -\docparam{fixed\_face}{The same thing for fixed face ( <TT>..</TT> )} - -\docparam{sizes}{This is an array of 7 items of {\it int} type. -The values represent size of font with HTML size from -2 to +4 -( <FONT SIZE=-2> to <FONT SIZE=+4> ). Default sizes are used if {\it sizes} -is NULL.} - -\wxheading{Defaults} - -Default font sizes are defined by constants wxHTML\_FONT\_SIZE\_1, -wxHTML\_FONT\_SIZE\_2, ..., wxHTML\_FONT\_SIZE\_7. Note that they differ among -platforms. Default face names are empty strings. - -\membersection{wxHtmlWindow::SetPage}\label{wxhtmlwindowsetpage} - -\func{bool}{SetPage}{\param{const wxString\& }{source}} - -Sets HTML page and display it. This won't {\bf load} the page!! -It will display the {\it source}. See example: - -\begin{verbatim} -htmlwin -> SetPage("<html><body>Hello, world!</body></html>"); -\end{verbatim} - -If you want to load a document from some location use -\helpref{LoadPage}{wxhtmlwindowloadpage} instead. - -\wxheading{Parameters} - -\docparam{source}{The HTML document source to be displayed.} - -\wxheading{Return value} - -false if an error occurred, true otherwise. - -\membersection{wxHtmlWindow::SetRelatedFrame}\label{wxhtmlwindowsetrelatedframe} - -\func{void}{SetRelatedFrame}{\param{wxFrame* }{frame}, \param{const wxString\& }{format}} - -Sets the frame in which page title will be displayed. {\it format} is format of -frame title, e.g. "HtmlHelp : \%s". It must contain exactly one \%s. This -\%s is substituted with HTML page title. - -\membersection{wxHtmlWindow::SetRelatedStatusBar}\label{wxhtmlwindowsetrelatedstatusbar} - -\func{void}{SetRelatedStatusBar}{\param{int }{bar}} - -{\bf After} calling \helpref{SetRelatedFrame}{wxhtmlwindowsetrelatedframe}, -this sets statusbar slot where messages will be displayed. -(Default is -1 = no messages.) - -\wxheading{Parameters} - -\docparam{bar}{statusbar slot number (0..n)} - -\membersection{wxHtmlWindow::ToText}\label{wxhtmlwindowtotext} - -\func{wxString}{ToText}{\void} - -Returns content of currently displayed page as plain text. - -\membersection{wxHtmlWindow::WriteCustomization}\label{wxhtmlwindowwritecustomization} - -\func{virtual void}{WriteCustomization}{\param{wxConfigBase }{*cfg}, \param{wxString }{path = wxEmptyString}} - -Saves custom settings into wxConfig. It uses the path 'path' -if given, otherwise it saves info into currently selected path. -Regardless of whether the path is given or not, the function creates sub-path -{\tt wxHtmlWindow}. - -Saved values: all things set by SetFonts, SetBorders. - -\wxheading{Parameters} - -\docparam{cfg}{wxConfig to which you want to save the configuration.} - -\docparam{path}{Optional path in config tree. If not given, the current path is used.} - - - - - - - -\section{\class{wxHtmlLinkEvent}}\label{wxhtmllinkevent} - -This event class is used for the events generated by \helpref{wxHtmlWindow}{wxhtmlwindow}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/htmlwin.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxHtmlLinkEvent, use one of these event handler macros to -direct input to member function that take a \helpref{wxHtmlLinkEvent}{wxhtmllinkevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_HTML\_LINK\_CLICKED(id, func)}}{User clicked on an hyperlink.} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlLinkEvent::wxHtmlLinkEvent}\label{wxhtmllinkeventctor} - -\func{}{wxHyperlinkEvent}{\param{int}{ id}, \param{const wxHtmlLinkInfo \&}{ linkinfo}} - -The constructor is not normally used by the user code. - - -\membersection{wxHtmlLinkEvent::GetLinkInfo}\label{wxhtmllinkeventgetlinkinfo} - -\constfunc{const wxHtmlLinkInfo &}{GetLinkInfo}{\void} - -Returns the \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo} which contains info about the cell clicked and the hyperlink it contains. - - - - - - -\section{\class{wxHtmlCellEvent}}\label{wxhtmlcellevent} - -This event class is used for the events generated by \helpref{wxHtmlWindow}{wxhtmlwindow}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/htmlwin.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxHtmlCellEvent, use one of these event handler macros to -direct input to member function that take a \helpref{wxHtmlCellEvent}{wxhtmlcellevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_HTML\_CELL\_HOVER(id, func)}}{User moved the mouse over a \helpref{wxHtmlCell}{wxhtmlcell}.} -\twocolitem{{\bf EVT\_HTML\_CELL\_CLICKED(id, func)}}{User clicked on a \helpref{wxHtmlCell}{wxhtmlcell}. When handling this event, remember to use \helpref{wxHtmlCell::SetLinkClicked(true)}{wxhtmlcelleventsetlinkclicked} if the cell contains a link.} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlCellEvent::wxHtmlCellEvent}\label{wxhtmlcelleventctor} - -\func{}{wxHtmlCellEvent}{\param{wxEventType}{ commandType}, \param{int}{ id}, \param{wxHtmlCell *}{ cell}, \param{const wxPoint \&}{ point}} - -The constructor is not normally used by the user code. - - -\membersection{wxHtmlCellEvent::GetCell}\label{wxhtmlcelleventgetcell} - -\constfunc{wxHtmlCell *}{GetCell}{\void} - -Returns the \helpref{wxHtmlCellEvent}{wxhtmlcellevent} associated with the event. - - -\membersection{wxHtmlCellEvent::GetPoint}\label{wxhtmlcelleventgetpoint} - -\constfunc{wxPoint}{GetPoint}{\void} - -Returns the \helpref{wxPoint}{wxpoint} associated with the event. - - -\membersection{wxHtmlCellEvent::SetLinkClicked}\label{wxhtmlcelleventsetlinkclicked} - -\func{bool}{SetLinkClicked}{\param{bool}{ linkclicked}} - -Call this function with {\tt linkclicked} set to \true if the cell which has been clicked contained a link or -\false otherwise (which is the default). With this function the event handler can return info to the -wxHtmlWindow which sent the event. - - -\membersection{wxHtmlCellEvent::GetLinkClicked}\label{wxhtmlcelleventgetlinkclicked} - -\constfunc{bool}{GetLinkClicked}{\void} - -Returns \true if \helpref{SetLinkClicked(true)}{wxhtmlcelleventsetlinkclicked} has previously been called; -\false otherwise. - diff --git a/docs/latex/wx/htwinhnd.tex b/docs/latex/wx/htwinhnd.tex deleted file mode 100644 index 7edeecea5e..0000000000 --- a/docs/latex/wx/htwinhnd.tex +++ /dev/null @@ -1,36 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwintaghandler.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWinTagHandler}}\label{wxhtmlwintaghandler} - -This is basically wxHtmlTagHandler except that -it is extended with protected member m\_WParser pointing to -the wxHtmlWinParser object (value of this member is identical -to wxHtmlParser's m\_Parser). - -\wxheading{Derived from} - -\helpref{wxHtmlTagHandler}{wxhtmltaghandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/html/winpars.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWinTagHandler::m\_WParser}\label{wxhtmlwintaghandlerwxhtmlwintaghandlermwparser} - -{\bf wxHtmlWinParser* m\_WParser} - -Value of this attribute is identical to value of m\_Parser. The only different -is that m\_WParser points to wxHtmlWinParser object while m\_Parser -points to wxHtmlParser object. (The same object, but overcast.) - diff --git a/docs/latex/wx/htwinprs.tex b/docs/latex/wx/htwinprs.tex deleted file mode 100644 index 52234bf207..0000000000 --- a/docs/latex/wx/htwinprs.tex +++ /dev/null @@ -1,304 +0,0 @@ -% -% automatically generated by HelpGen from -% htmlwinparser.tex at 14/Mar/99 20:13:37 -% - -\section{\class{wxHtmlWinParser}}\label{wxhtmlwinparser} - -This class is derived from \helpref{wxHtmlParser}{wxhtmlparser} and -its main goal is to parse HTML input so that it can be displayed in -\helpref{wxHtmlWindow}{wxhtmlwindow}. It uses a special -\helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler}. - -\wxheading{Notes} - -The product of parsing is a wxHtmlCell (resp. wxHtmlContainer) object. - -\wxheading{Derived from} - -\helpref{wxHtmlParser}{wxhtmlparser} - -\wxheading{Include files} - -<wx/html/winpars.h> - -\wxheading{Library} - -\helpref{wxHtml}{librarieslist} - -\wxheading{See Also} - -\helpref{Handlers overview}{handlers} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHtmlWinParser::wxHtmlWinParser}\label{wxhtmlwinparserwxhtmlwinparser} - -\func{}{wxHtmlWinParser}{\void} - -\func{}{wxHtmlWinParser}{\param{wxHtmlWindowInterface }{*wndIface}} - -Constructor. Don't use the default one, use constructor with -{\it wndIface} parameter ({\it wndIface} is a pointer to interface object for -the associated \helpref{wxHtmlWindow}{wxhtmlwindow} or other HTML rendering -window such as \helpref{wxHtmlListBox}{wxhtmllistbox}). - -\membersection{wxHtmlWinParser::AddModule}\label{wxhtmlwinparseraddmodule} - -\func{static void}{AddModule}{\param{wxHtmlTagsModule }{*module}} - -Adds \helpref{module}{handlers} to the list of wxHtmlWinParser tag handler. - -\membersection{wxHtmlWinParser::CloseContainer}\label{wxhtmlwinparserclosecontainer} - -\func{wxHtmlContainerCell*}{CloseContainer}{\void} - -Closes the container, sets actual container to the parent one -and returns pointer to it (see \helpref{Overview}{cells}). - -\membersection{wxHtmlWinParser::CreateCurrentFont}\label{wxhtmlwinparsercreatecurrentfont} - -\func{virtual wxFont*}{CreateCurrentFont}{\void} - -Creates font based on current setting (see -\helpref{SetFontSize}{wxhtmlwinparsersetfontsize}, -\helpref{SetFontBold}{wxhtmlwinparsersetfontbold}, -\helpref{SetFontItalic}{wxhtmlwinparsersetfontitalic}, -\helpref{SetFontFixed}{wxhtmlwinparsersetfontfixed}, -\helpref{SetFontUnderlined}{wxhtmlwinparsersetfontunderlined}) -and returns pointer to it. -If the font was already created only a pointer is returned. - - -\membersection{wxHtmlWinParser::GetActualColor}\label{wxhtmlwinparsergetactualcolor} - -\constfunc{const wxColour\&}{GetActualColor}{\void} - -Returns actual text colour. - -\membersection{wxHtmlWinParser::GetAlign}\label{wxhtmlwinparsergetalign} - -\constfunc{int}{GetAlign}{\void} - -Returns default horizontal alignment. - -\membersection{wxHtmlWinParser::GetCharHeight}\label{wxhtmlwinparsergetcharheight} - -\constfunc{int}{GetCharHeight}{\void} - -Returns (average) char height in standard font. It is used as DC-independent metrics. - -{\bf Note:} This function doesn't return the {\it actual} height. If you want to -know the height of the current font, call {\tt GetDC -> GetCharHeight()}. - -\membersection{wxHtmlWinParser::GetCharWidth}\label{wxhtmlwinparsergetcharwidth} - -\constfunc{int}{GetCharWidth}{\void} - -Returns average char width in standard font. It is used as DC-independent metrics. - -{\bf Note:} This function doesn't return the {\it actual} width. If you want to -know the height of the current font, call {\tt GetDC -> GetCharWidth()} - -\membersection{wxHtmlWinParser::GetContainer}\label{wxhtmlwinparsergetcontainer} - -\constfunc{wxHtmlContainerCell*}{GetContainer}{\void} - -Returns pointer to the currently opened container (see \helpref{Overview}{cells}). -Common use: - -\begin{verbatim} -m_WParser -> GetContainer() -> InsertCell(new ...); -\end{verbatim} - -\membersection{wxHtmlWinParser::GetDC}\label{wxhtmlwinparsergetdc} - -\func{wxDC*}{GetDC}{\void} - -Returns pointer to the DC used during parsing. - -\membersection{wxHtmlWinParser::GetEncodingConverter}\label{wxhtmlwinparsergetencodingconverter} - -\constfunc{wxEncodingConverter *}{GetEncodingConverter}{\void} - -Returns \helpref{wxEncodingConverter}{wxencodingconverter} class used -to do conversion between \helpref{input encoding}{wxhtmlwinparsergetinputencoding} -and \helpref{output encoding}{wxhtmlwinparsergetoutputencoding}. - -\membersection{wxHtmlWinParser::GetFontBold}\label{wxhtmlwinparsergetfontbold} - -\constfunc{int}{GetFontBold}{\void} - -Returns true if actual font is bold, false otherwise. - -\membersection{wxHtmlWinParser::GetFontFace}\label{wxhtmlwinparsergetfontface} - -\constfunc{wxString}{GetFontFace}{\void} - -Returns actual font face name. - -\membersection{wxHtmlWinParser::GetFontFixed}\label{wxhtmlwinparsergetfontfixed} - -\constfunc{int}{GetFontFixed}{\void} - -Returns true if actual font is fixed face, false otherwise. - -\membersection{wxHtmlWinParser::GetFontItalic}\label{wxhtmlwinparsergetfontitalic} - -\constfunc{int}{GetFontItalic}{\void} - -Returns true if actual font is italic, false otherwise. - -\membersection{wxHtmlWinParser::GetFontSize}\label{wxhtmlwinparsergetfontsize} - -\constfunc{int}{GetFontSize}{\void} - -Returns actual font size (HTML size varies from -2 to +4) - -\membersection{wxHtmlWinParser::GetFontUnderlined}\label{wxhtmlwinparsergetfontunderlined} - -\constfunc{int}{GetFontUnderlined}{\void} - -Returns true if actual font is underlined, false otherwise. - -\membersection{wxHtmlWinParser::GetInputEncoding}\label{wxhtmlwinparsergetinputencoding} - -\constfunc{wxFontEncoding}{GetInputEncoding}{\void} - -Returns input encoding. - -\membersection{wxHtmlWinParser::GetLink}\label{wxhtmlwinparsergetlink} - -\constfunc{const wxHtmlLinkInfo\&}{GetLink}{\void} - -Returns actual hypertext link. (This value has a non-empty -\helpref{Href}{wxhtmllinkinfogethref} string -if the parser is between {\tt <A>} and {\tt </A>} tags, -wxEmptyString otherwise.) - -\membersection{wxHtmlWinParser::GetLinkColor}\label{wxhtmlwinparsergetlinkcolor} - -\constfunc{const wxColour\&}{GetLinkColor}{\void} - -Returns the colour of hypertext link text. - -\membersection{wxHtmlWinParser::GetOutputEncoding}\label{wxhtmlwinparsergetoutputencoding} - -\constfunc{wxFontEncoding}{GetOutputEncoding}{\void} - -Returns output encoding, i.e. closest match to document's input encoding -that is supported by operating system. - -\membersection{wxHtmlWinParser::GetWindow}\label{wxhtmlwinparsergetwindow} - -\func{wxHtmlWindow*}{GetWindow}{\void} - -Returns associated window (wxHtmlWindow). This may be NULL! (You should always -test if it is non-NULL. For example {\tt TITLE} handler sets window -title only if some window is associated, otherwise it does nothing) - -\membersection{wxHtmlWinParser::OpenContainer}\label{wxhtmlwinparseropencontainer} - -\func{wxHtmlContainerCell*}{OpenContainer}{\void} - -Opens new container and returns pointer to it (see \helpref{Overview}{cells}). - -\membersection{wxHtmlWinParser::SetActualColor}\label{wxhtmlwinparsersetactualcolor} - -\func{void}{SetActualColor}{\param{const wxColour\& }{clr}} - -Sets actual text colour. Note: this DOESN'T change the colour! -You must create \helpref{wxHtmlColourCell}{wxhtmlcolourcell} yourself. - -\membersection{wxHtmlWinParser::SetAlign}\label{wxhtmlwinparsersetalign} - -\func{void}{SetAlign}{\param{int }{a}} - -Sets default horizontal alignment (see -\helpref{wxHtmlContainerCell::SetAlignHor}{wxhtmlcontainercellsetalignhor}.) -Alignment of newly opened container is set to this value. - -\membersection{wxHtmlWinParser::SetContainer}\label{wxhtmlwinparsersetcontainer} - -\func{wxHtmlContainerCell*}{SetContainer}{\param{wxHtmlContainerCell *}{c}} - -Allows you to directly set opened container. This is not recommended - you should use OpenContainer -wherever possible. - -\membersection{wxHtmlWinParser::SetDC}\label{wxhtmlwinparsersetdc} - -\func{virtual void}{SetDC}{\param{wxDC }{*dc}, \param{double }{pixel\_scale = 1.0}} - -Sets the DC. This must be called before \helpref{Parse}{wxhtmlparserparse}! -{\it pixel\_scale} can be used when rendering to high-resolution -DCs (e.g. printer) to adjust size of pixel metrics. (Many dimensions in -HTML are given in pixels -- e.g. image sizes. 300x300 image would be only one -inch wide on typical printer. With pixel\_scale = 3.0 it would be 3 inches.) - -\membersection{wxHtmlWinParser::SetFontBold}\label{wxhtmlwinparsersetfontbold} - -\func{void}{SetFontBold}{\param{int }{x}} - -Sets bold flag of actualfont. {\it x} is either true of false. - -\membersection{wxHtmlWinParser::SetFontFace}\label{wxhtmlwinparsersetfontface} - -\func{void}{SetFontFace}{\param{const wxString\& }{face}} - -Sets current font face to {\it face}. This affects either fixed size -font or proportional, depending on context (whether the parser is -inside {\tt <TT>} tag or not). - -\membersection{wxHtmlWinParser::SetFontFixed}\label{wxhtmlwinparsersetfontfixed} - -\func{void}{SetFontFixed}{\param{int }{x}} - -Sets fixed face flag of actualfont. {\it x} is either true of false. - -\membersection{wxHtmlWinParser::SetFontItalic}\label{wxhtmlwinparsersetfontitalic} - -\func{void}{SetFontItalic}{\param{int }{x}} - -Sets italic flag of actualfont. {\it x} is either true of false. - -\membersection{wxHtmlWinParser::SetFontSize}\label{wxhtmlwinparsersetfontsize} - -\func{void}{SetFontSize}{\param{int }{s}} - -Sets actual font size (HTML size varies from 1 to 7) - -\membersection{wxHtmlWinParser::SetFontUnderlined}\label{wxhtmlwinparsersetfontunderlined} - -\func{void}{SetFontUnderlined}{\param{int }{x}} - -Sets underlined flag of actualfont. {\it x} is either true of false. - -\membersection{wxHtmlWinParser::SetFonts}\label{wxhtmlwinparsersetfonts} - -\func{void}{SetFonts}{\param{const wxString\& }{normal\_face}, \param{const wxString\& }{fixed\_face}, \param{const int }{*sizes = NULL}} - -Sets fonts. See \helpref{wxHtmlWindow::SetFonts}{wxhtmlwindowsetfonts} for -detailed description. - -\membersection{wxHtmlWinParser::SetInputEncoding}\label{wxhtmlwinparsersetinputencoding} - -\func{void}{SetInputEncoding}{\param{wxFontEncoding }{enc}} - -Sets input encoding. The parser uses this information to build conversion -tables from document's encoding to some encoding supported by operating -system. - -\membersection{wxHtmlWinParser::SetLink}\label{wxhtmlwinparsersetlink} - -\func{void}{SetLink}{\param{const wxHtmlLinkInfo\& }{link}} - -Sets actual hypertext link. Empty link is represented -by \helpref{wxHtmlLinkInfo}{wxhtmllinkinfo} with {\it Href} equal -to wxEmptyString. - -\membersection{wxHtmlWinParser::SetLinkColor}\label{wxhtmlwinparsersetlinkcolor} - -\func{void}{SetLinkColor}{\param{const wxColour\& }{clr}} - -Sets colour of hypertext link. - diff --git a/docs/latex/wx/hvscrolledwindow.tex b/docs/latex/wx/hvscrolledwindow.tex deleted file mode 100644 index 4c45ccccbf..0000000000 --- a/docs/latex/wx/hvscrolledwindow.tex +++ /dev/null @@ -1,109 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: hvscrolledwindow.tex -%% Purpose: wxHVScrolledWindow Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHVScrolledWindow}}\label{wxhvscrolledwindow} - -This window inherits all functionality of both vertical and horizontal, -variable scrolled windows. It automatically handles everything needed to -scroll both axis simultaneously with both variable row heights and variable -column widths. - -This is a generalization of the \helpref{wxScrolledWindow}{wxscrolledwindow} -class which can be only used when all rows and columns are the same size. It -lacks some other wxScrolledWindow features however, notably it can't scroll -only a rectangle of the window and not its entire client area. - -To use this class, you must derive from it and implement both the -\helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight} and -\helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} pure virtual -methods to let the base class know how many rows and columns it should -display. You also need to set the total rows and columns the window contains, -but from that moment on the scrolling is handled entirely by -wxHVScrolledWindow. You only need to draw the visible part of contents in -your {\tt OnPaint()} method as usual. You should use -\helpref{GetVisibleBegin()}{wxvarhvscrollhelpergetvisiblebegin} -and \helpref{GetVisibleEnd()}{wxvarhvscrollhelpergetvisibleend} to select the -lines to display. Note that the device context origin is not shifted so the -first visible row and column always appear at the point $(0, 0)$ in physical -as well as logical coordinates. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\helpref{wxVarHVScrollHelper}{wxvarhvscrollhelper} - -\helpref{wxVarVScrollHelper}{wxvarvscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\helpref{wxVarHScrollHelper}{wxvarhscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - -<wx/vscroll.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxHVScrolledWindow::wxHVScrolledWindow}\label{wxhvscrolledwindowwxhvscrolledwindow} - -\func{}{wxHVScrolledWindow}{\void} - -Default constructor, you must call \helpref{Create()}{wxhvscrolledwindowcreate} -later. - -\func{}{wxHVScrolledWindow}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -This is the normal constructor, no need to call {\tt Create()} after using this one. - -Note that {\tt wxHSCROLL} and {\tt wxVSCROLL} are always automatically added -to our styles, there is no need to specify it explicitly. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, must not be {\tt NULL}} - -\docparam{id}{The identifier of this window, {\tt wxID\_ANY} by default} - -\docparam{pos}{The initial window position} - -\docparam{size}{The initial window size} - -\docparam{style}{The window style. There are no special style bits defined for -this class.} - -\docparam{name}{The name for this window; usually not used} - - -\membersection{wxHVScrolledWindow::Create}\label{wxhvscrolledwindowcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -Same as the \helpref{non-default constuctor}{wxhvscrolledwindowwxhvscrolledwindow} -but returns status code: {\tt true} if ok, {\tt false} if the window couldn't -be created. - -Just as with the constructor above, the {\tt wxHSCROLL} and {\tt wxVSCROLL} -styles are always used, there is no need to specify it explicitly. - diff --git a/docs/latex/wx/hworld.tex b/docs/latex/wx/hworld.tex deleted file mode 100644 index 29e595f396..0000000000 --- a/docs/latex/wx/hworld.tex +++ /dev/null @@ -1,166 +0,0 @@ -\section{wxWidgets Hello World sample}\label{helloworld} - -As many people have requested a mini-sample to be published here -so that some quick judgment concerning syntax -and basic principles can be made, you can now look at wxWidgets' -"Hello World": - -You have to include wxWidgets' header files, of course. This can -be done on a file by file basis (such as \#include "wx/window.h") -or using one global include (\#include "wx/wx.h"). This is -also useful on platforms which support precompiled headers such -as all major compilers on the Windows platform. - -\begin{verbatim} -// -// file name: hworld.cpp -// -// purpose: wxWidgets "Hello world" -// - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif -\end{verbatim} - -Practically every app should define a new class derived from wxApp. -By overriding wxApp's OnInit() the program can be initialized, -e.g. by creating a new main window. - -\begin{verbatim} -class MyApp: public wxApp -{ - virtual bool OnInit(); -}; -\end{verbatim} - -The main window is created by deriving a class from wxFrame and -giving it a menu and a status bar in its constructor. Also, any class -that wishes to respond to any "event" (such as mouse clicks or -messages from the menu or a button) must declare an event table -using the macro below. Finally, the way to react to such events -must be done in "handlers". In our sample, we react to two menu items, -one for "Quit" and one for displaying an "About" window. These -handlers should not be virtual. - -\begin{verbatim} -class MyFrame: public wxFrame -{ -public: - MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); - - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - -private: - DECLARE_EVENT_TABLE() -}; -\end{verbatim} - -In order to be able to react to a menu command, it must be given a unique -identifier such as a const or an enum. - -\begin{verbatim} -enum -{ - ID_Quit = 1, - ID_About, -}; -\end{verbatim} - -We then proceed to actually implement an event table in which the events -are routed to their respective handler functions in the class MyFrame. -There are predefined macros for routing all common events, ranging from -the selection of a list box entry to a resize event when a user resizes -a window on the screen. If -1 is given as the ID, the given handler will be -invoked for any event of the specified type, so that you could add just -one entry in the event table for all menu commands or all button commands etc. -The origin of the event can still be distinguished in the event handler as -the (only) parameter in an event handler is a reference to a wxEvent object, -which holds various information about the event (such as the ID of and a -pointer to the class, which emitted the event). - -\begin{verbatim} -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(ID_Quit, MyFrame::OnQuit) - EVT_MENU(ID_About, MyFrame::OnAbout) -END_EVENT_TABLE() -\end{verbatim} - -As in all programs there must be a "main" function. Under wxWidgets main is implemented -using this macro, which creates an application instance and starts the program. - -\begin{verbatim} -IMPLEMENT_APP(MyApp) -\end{verbatim} - -As mentioned above, wxApp::OnInit() is called upon startup and should be -used to initialize the program, maybe showing a "splash screen" and creating -the main window (or several). The frame should get a title bar text ("Hello World") -and a position and start-up size. One frame can also be declared to be the -top window. Returning true indicates a successful initialization. - -\begin{verbatim} -bool MyApp::OnInit() -{ - MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) ); - frame->Show( true ); - SetTopWindow( frame ); - return true; -} -\end{verbatim} - -In the constructor of the main window (or later on) we create a menu with two menu -items as well as a status bar to be shown at the bottom of the main window. Both have -to be "announced" to the frame with respective calls. - -\begin{verbatim} -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - wxMenu *menuFile = new wxMenu; - - menuFile->Append( ID_About, "&About..." ); - menuFile->AppendSeparator(); - menuFile->Append( ID_Quit, "E&xit" ); - - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append( menuFile, "&File" ); - - SetMenuBar( menuBar ); - - CreateStatusBar(); - SetStatusText( "Welcome to wxWidgets!" ); -} -\end{verbatim} - -Here are the actual event handlers. MyFrame::OnQuit() closes the main window -by calling Close(). The parameter true indicates that other windows have no veto -power such as after asking "Do you really want to close?". If there is no other -main window left, the application will quit. - -\begin{verbatim} -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close( true ); -} -\end{verbatim} - -MyFrame::OnAbout() will display a small window with some text in it. In this -case a typical "About" window with information about the program. - -\begin{verbatim} -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageBox( "This is a wxWidgets' Hello world sample", - "About Hello World", wxOK | wxICON_INFORMATION ); -} -\end{verbatim} - diff --git a/docs/latex/wx/hyperlink.tex b/docs/latex/wx/hyperlink.tex deleted file mode 100644 index d765e3bd10..0000000000 --- a/docs/latex/wx/hyperlink.tex +++ /dev/null @@ -1,240 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: hyperlink.tex -%% Purpose: wxHyperlinkCtrl documentation -%% Author: Otto Wyss -%% Modified by: Francesco Montorsi -%% Created: 25.4.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 wxCode, Francesco Montorsi -%% License: wxWindows -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxHyperlinkCtrl}}\label{wxhyperlinkctrl} - -This class shows a static text element which links to an URL. -Appearance and behaviour is completely customizable. In fact, when the user -clicks on the hyperlink, a \helpref{wxHyperlinkEvent}{wxhyperlinkevent} is -sent but if that event is not handled (or it's skipped; see -\helpref{wxEvent::Skip}{wxeventskip}), then a call to -\helpref{wxLaunchDefaultBrowser}{wxlaunchdefaultbrowser} is done with the -hyperlink's URL. - -Note that standard \helpref{wxWindow}{wxwindow} functions like \helpref{SetBackgroundColour}{wxwindowsetbackgroundcolour}, \helpref{SetFont}{wxwindowsetfont}, \helpref{SetCursor}{wxwindowsetcursor}, \helpref{SetLabel}{wxwindowsetlabel} can be used to customize appearance of the hyperlink. - - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - - -\wxheading{Include files} - -<wx/hyperlink.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\wxheading{Window styles} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxHL\_ALIGN\_LEFT}}{Align the text to the left.} -\twocolitem{\windowstyle{wxHL\_ALIGN\_RIGHT}}{Align the text to the right.} -\twocolitem{\windowstyle{wxHL\_ALIGN\_CENTRE}}{Center the text (horizontally).} -\twocolitem{\windowstyle{wxHL\_CONTEXTMENU}}{Pop up a context menu when the hyperlink is right-clicked. The context menu contains a \texttt{``Copy URL"} menu item which is automatically handled by the hyperlink and which just copies in the clipboard the URL (not the label) of the control.} -\twocolitem{\windowstyle{wxHL\_DEFAULT\_STYLE}}{The default style for wxHyperlinkCtrl: \texttt{wxBORDER\_NONE|wxHL\_CONTEXTMENU|wxHL\_ALIGN\_CENTRE}.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - - -\wxheading{Event handling} - -To process input from an hyperlink control, use these event handler macros to -direct input to member functions that take a -\helpref{wxHyperlinkEvent}{wxhyperlinkevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_HYPERLINK(id, func)}}{The hyperlink was (left) clicked. If this event is not handled in user's code (or it's skipped; see \helpref{wxEvent::Skip}{wxeventskip}), then a call to \helpref{wxLaunchDefaultBrowser}{wxlaunchdefaultbrowser} is done with the hyperlink's URL.} -\end{twocollist} - - -\wxheading{See also} - -\helpref{wxURL}{wxurl}, \helpref{wxHyperlinkEvent}{wxhyperlinkevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHyperlinkCtrl::wxHyperLinkCtrl}\label{wxhyperlinkctrlctor} - -\func{}{wxHyperLink}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString \&}{ label}, \param{const wxString \&}{ url}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style}, \param{const wxString\& }{name = ``hyperlink"}} - -Constructor. See \helpref{Create}{wxhyperlinkctrlcreate} for more info. - - -\membersection{wxHyperlinkCtrl::Create}\label{wxhyperlinkctrlcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString \&}{ label}, \param{const wxString \&}{ url}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style}, \param{const wxString\& }{name = ``hyperlink"}} - -Creates the hyperlink control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be \NULL.} - -\docparam{id}{Window identifier. A value of wxID\_ANY indicates a default value.} - -\docparam{label}{The label of the hyperlink.} - -\docparam{url}{The URL associated with the given label.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the wxDefaultSize is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxHyperlinkCtrl}{wxhyperlinkctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - - -\membersection{wxHyperlinkCtrl::GetHoverColour}\label{wxhyperlinkctrlgethovercolour} - -\constfunc{wxColour}{GetHoverColour}{\void} - -Returns the colour used to print the label of the hyperlink when the mouse is over the control. - - -\membersection{wxHyperlinkCtrl::SetHoverColour}\label{wxhyperlinkctrlsethovercolour} - -\func{void}{SetHoverColour}{\param{const wxColour \&}{ colour}} - -Sets the colour used to print the label of the hyperlink when the mouse is over the control. - - -\membersection{wxHyperlinkCtrl::GetNormalColour}\label{wxhyperlinkctrlgetnormalcolour} - -\constfunc{wxColour}{GetNormalColour}{\void} - -Returns the colour used to print the label when the link has never been clicked before -(i.e. the link has not been {\it visited}) and the mouse is not over the control. - - -\membersection{wxHyperlinkCtrl::SetNormalColour}\label{wxhyperlinkctrlsetnormalcolour} - -\func{void}{SetNormalColour}{\param{const wxColour \&}{ colour}} - -Sets the colour used to print the label when the link has never been clicked before -(i.e. the link has not been {\it visited}) and the mouse is not over the control. - - -\membersection{wxHyperlinkCtrl::GetVisitedColour}\label{wxhyperlinkctrlgetvisitedcolour} - -\constfunc{wxColour}{GetVisitedColour}{\void} - -Returns the colour used to print the label when the mouse is not over the control -and the link has already been clicked before (i.e. the link has been {\it visited}). - - -\membersection{wxHyperlinkCtrl::SetVisitedColour}\label{wxhyperlinkctrlsetvisitedcolour} - -\func{void}{SetVisitedColour}{\param{const wxColour \&}{ colour}} - -Sets the colour used to print the label when the mouse is not over the control -and the link has already been clicked before (i.e. the link has been {\it visited}). - - -\membersection{wxHyperlinkCtrl::GetVisited}\label{wxhyperlinkctrlgetvisited} - -\constfunc{bool}{GetVisited}{\void} - -Returns \true if the hyperlink has already been clicked by the user at least one time. - - -\membersection{wxHyperlinkCtrl::SetVisited}\label{wxhyperlinkctrlsetvisited} - -\func{void}{SetVisited}{\param{bool}{ visited = true}} - -Marks the hyperlink as visited (see \helpref{SetVisitedColour}{wxhyperlinkctrlsetvisitedcolour}). - - -\membersection{wxHyperlinkCtrl::GetURL}\label{wxhyperlinkctrlgeturl} - -\constfunc{wxString}{GetURL}{\void} - -Returns the URL associated with the hyperlink. - - -\membersection{wxHyperlinkCtrl::SetURL}\label{wxhyperlinkctrlseturl} - -\func{void}{SetURL}{\param{const wxString \&}{ url}} - -Sets the URL associated with the hyperlink. - - - - - - -\section{\class{wxHyperlinkEvent}}\label{wxhyperlinkevent} - -This event class is used for the events generated by -\helpref{wxHyperlinkCtrl}{wxhyperlinkctrl}. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/hyperlink.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event handling} - -To process input from a wxHyperlinkCtrl, use one of these event handler macros to -direct input to member function that take a -\helpref{wxHyperlinkEvent}{wxhyperlinkevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_HYPERLINK(id, func)}}{User clicked on an hyperlink.} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxHyperlinkEvent::wxHyperlinkEvent}\label{wxhyperlinkeventctor} - -\func{}{wxHyperlinkEvent}{\param{wxObject *}{ generator}, \param{int}{ id}, \param{const wxString \&}{ url}} - -The constructor is not normally used by the user code. - - -\membersection{wxHyperlinkEvent::GetURL}\label{wxhyperlinkeventgeturl} - -\constfunc{wxString}{GetURL}{\void} - -Returns the URL of the hyperlink where the user has just clicked. - - -\membersection{wxHyperlinkEvent::SetURL}\label{wxhyperlinkeventseturl} - -\func{void}{SetURL}{\param{const wxString \&}{ url}} - -Sets the URL associated with the event. - diff --git a/docs/latex/wx/icon.tex b/docs/latex/wx/icon.tex deleted file mode 100644 index 3dbb8fe78d..0000000000 --- a/docs/latex/wx/icon.tex +++ /dev/null @@ -1,368 +0,0 @@ -\section{\class{wxIcon}}\label{wxicon} - -An icon is a small rectangular bitmap usually used for denoting a -minimized application. It differs from a wxBitmap in always -having a mask associated with it for transparent drawing. On some platforms, -icons and bitmaps are implemented identically, since there is no real distinction between -a wxBitmap with a mask and an icon; and there is no specific icon format on -some platforms (X-based applications usually standardize on XPMs for small bitmaps -and icons). However, some platforms (such as Windows) make the distinction, so -a separate class is provided. - -\wxheading{Derived from} - -\helpref{wxBitmap}{wxbitmap}\\ -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/icon.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullIcon} - -\wxheading{Remarks} - -It is usually desirable to associate a pertinent icon with a frame. Icons -can also be used for other purposes, for example with \helpref{wxTreeCtrl}{wxtreectrl} -and \helpref{wxListCtrl}{wxlistctrl}. - -Icons have different formats on different platforms. -Therefore, separate icons will usually be created for the different -environments. Platform-specific methods for creating a {\bf wxIcon}\rtfsp -structure are catered for, and this is an occasion where conditional -compilation will probably be required. - -Note that a new icon must be created for every time the icon is to be -used for a new window. In Windows, the icon will not be -reloaded if it has already been used. An icon allocated to a frame will -be deleted when the frame is deleted. - -For more information please see \helpref{Bitmap and icon overview}{wxbitmapoverview}. - -\wxheading{See also} - -\helpref{Bitmap and icon overview}{wxbitmapoverview}, \helpref{supported bitmap file formats}{supportedbitmapformats}, -\helpref{wxDC::DrawIcon}{wxdcdrawicon}, \helpref{wxCursor}{wxcursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIcon::wxIcon}\label{wxiconctor} - -\func{}{wxIcon}{\void} - -Default constructor. - -\func{}{wxIcon}{\param{const wxIcon\& }{icon}} - -Copy constructor. - -\func{}{wxIcon}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates an icon from the given data, which can be of arbitrary type. - -\func{}{wxIcon}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\ - \param{int}{ depth = 1}} - -Creates an icon from an array of bits. - -\func{}{wxIcon}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}} - -Creates a new icon. - -\func{}{wxIcon}{\param{const char* const*}{ bits}} - -Creates an icon from XPM data. - -\func{}{wxIcon}{\param{const wxString\& }{name}, \param{wxBitmapType}{ type}, - \param{int}{ desiredWidth = -1}, \param{int}{ desiredHeight = -1}} - -Loads an icon from a file or resource. - -\func{}{wxIcon}{\param{const wxIconLocation\& }{loc}} - -Loads an icon from the specified \helpref{location}{wxiconlocation}. - -\wxheading{Parameters} - -\docparam{bits}{Specifies an array of pixel values.} - -\docparam{width}{Specifies the width of the icon.} - -\docparam{height}{Specifies the height of the icon.} - -\docparam{desiredWidth}{Specifies the desired width of the icon. This -parameter only has an effect in Windows (32-bit) where icon resources can contain -several icons of different sizes.} - -\docparam{desiredWidth}{Specifies the desired height of the icon. This -parameter only has an effect in Windows (32-bit) where icon resources can contain -several icons of different sizes.} - -\docparam{depth}{Specifies the depth of the icon. If this is omitted, the display depth of the -screen is used.} - -\docparam{name}{This can refer to a resource name under MS Windows, or a filename under MS Windows and X. -Its meaning is determined by the {\it flags} parameter.} - -\docparam{loc}{The object describing the location of the native icon, see -\helpref{wxIconLocation}{wxiconlocation}.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO\_RESOURCE}}{Load a Windows icon from the resource database.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -%\twocolitem{\indexit{wxBITMAP\_TYPE\_RESOURCE}}{Load a Windows resource name.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration. -If all possible wxWidgets settings are used, the Windows platform supports ICO file, ICO resource, -XPM data, and XPM file. Under wxGTK, the available formats are BMP file, XPM data, XPM file, and PNG file. -Under wxMotif, the available formats are XBM data, XBM file, XPM data, XPM file.} - -\wxheading{Remarks} - -The first form constructs an icon object with no data; an assignment or another member function such as Create -or LoadFile must be called subsequently. - -The second and third forms provide copy constructors. Note that these do not copy the -icon data, but instead a pointer to the data, keeping a reference count. They are therefore -very efficient operations. - -The fourth form constructs an icon from data whose type and value depends on -the value of the {\it type} argument. - -The fifth form constructs a (usually monochrome) icon from an array of pixel values, under both -X and Windows. - -The sixth form constructs a new icon. - -The seventh form constructs an icon from pixmap (XPM) data, if wxWidgets has been configured -to incorporate this feature. - -To use this constructor, you must first include an XPM file. For -example, assuming that the file {\tt mybitmap.xpm} contains an XPM array -of character pointers called mybitmap: - -\begin{verbatim} -#include "mybitmap.xpm" - -... - -wxIcon *icon = new wxIcon(mybitmap); -\end{verbatim} - -A macro, wxICON, is available which creates an icon using an XPM -on the appropriate platform, or an icon resource on Windows. - -\begin{verbatim} -wxIcon icon(wxICON(mondrian)); - -// Equivalent to: - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -wxIcon icon(mondrian_xpm); -#endif - -#if defined(__WXMSW__) -wxIcon icon("mondrian"); -#endif -\end{verbatim} - -The eighth form constructs an icon from a file or resource. {\it name} can refer -to a resource name under MS Windows, or a filename under MS Windows and X. - -Under Windows, {\it type} defaults to wxBITMAP\_TYPE\_ICO\_RESOURCE. -Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM. - -\wxheading{See also} - - -\membersection{wxIcon::CopyFromBitmap}\label{wxiconcopyfrombitmap} - -\func{void}{CopyFromBitmap}{\param{const wxBitmap\&}{ bmp}} - -Copies {\it bmp} bitmap to this icon. Under MS Windows the bitmap -must have mask colour set. - - -\helpref{wxIcon::LoadFile}{wxiconloadfile} - -\perlnote{Constructors supported by wxPerl are:\par -\begin{itemize} -\item{Wx::Icon->new( width, height, depth = -1 )} -\item{Wx::Icon->new( name, type, desiredWidth = -1, desiredHeight = -1 )} -\item{Wx::Icon->newFromBits( bits, width, height, depth = 1 )} -\item{Wx::Icon->newFromXPM( data )} -\end{itemize} -} - -\membersection{wxIcon::\destruct{wxIcon}}\label{wxicondtor} - -\func{}{\destruct{wxIcon}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -If the application omits to delete the icon explicitly, the icon will be -destroyed automatically by wxWidgets when the application exits. - -Do not delete an icon that is selected into a memory device context. - -\membersection{wxIcon::GetDepth}\label{wxicongetdepth} - -\constfunc{int}{GetDepth}{\void} - -Gets the colour depth of the icon. A value of 1 indicates a -monochrome icon. - -\membersection{wxIcon::GetHeight}\label{wxicongetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the icon in pixels. - -\membersection{wxIcon::GetWidth}\label{wxicongetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the icon in pixels. - -\wxheading{See also} - -\helpref{wxIcon::GetHeight}{wxicongetheight} - -\membersection{wxIcon::LoadFile}\label{wxiconloadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{wxBitmapType}{ type}} - -Loads an icon from a file or resource. - -\wxheading{Parameters} - -\docparam{name}{Either a filename or a Windows resource name. -The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO\_RESOURCE}}{Load a Windows icon from the resource database.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{See also} - -\helpref{wxIcon::wxIcon}{wxiconctor} - -\membersection{wxIcon::IsOk}\label{wxiconisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if icon data is present. - -\begin{comment} -\membersection{wxIcon::SaveFile}\label{wxiconsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{name}, \param{wxBitmapType}{ type}, \param{wxPalette* }{palette = NULL}} - -Saves an icon in the named file. - -\wxheading{Parameters} - -\docparam{name}{A filename. The meaning of {\it name} is determined by the {\it type} parameter.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Save a Windows icon file.} -%\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Save a GIF icon file.} -%\twocolitem{{\bf wxBITMAP\_TYPE\_XBM}}{Save an X bitmap file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save an XPM bitmap file.} -\end{twocollist} - -The validity of these flags depends on the platform and wxWidgets configuration.} - -\docparam{palette}{An optional palette used for saving the icon.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{Remarks} - -Depending on how wxWidgets has been configured, not all formats may be available. - -\wxheading{See also} - -\helpref{wxIcon::LoadFile}{wxiconloadfile} -\end{comment} - -\membersection{wxIcon::SetDepth}\label{wxiconsetdepth} - -\func{void}{SetDepth}{\param{int }{depth}} - -Sets the depth member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{depth}{Icon depth.} - -\membersection{wxIcon::SetHeight}\label{wxiconsetheight} - -\func{void}{SetHeight}{\param{int }{height}} - -Sets the height member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{height}{Icon height in pixels.} - -\membersection{wxIcon::SetWidth}\label{wxiconsetwidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Sets the width member (does not affect the icon data). - -\wxheading{Parameters} - -\docparam{width}{Icon width in pixels.} - -\membersection{wxIcon::operator $=$}\label{wxiconassign} - -\func{wxIcon\& }{operator $=$}{\param{const wxIcon\& }{icon}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{icon}{Icon to assign.} - -\wxheading{Return value} - -Returns 'this' object. - - diff --git a/docs/latex/wx/iconbndl.tex b/docs/latex/wx/iconbndl.tex deleted file mode 100644 index a58e3722e6..0000000000 --- a/docs/latex/wx/iconbndl.tex +++ /dev/null @@ -1,118 +0,0 @@ -\section{\class{wxIconBundle}}\label{wxiconbundle} - -This class contains multiple copies of an icon in different sizes, -see also \helpref{wxDialog::SetIcons}{wxdialogseticons} and -\helpref{wxTopLevelWindow::SetIcons}{wxtoplevelwindowseticons}. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/iconbndl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -{\bf wxNullIconBundle} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxIconBundle::wxIconBundle}\label{wxiconbundlewxiconbundle} - -\func{}{wxIconBundle}{\void} - -Default constructor. - -\func{}{wxIconBundle}{\param{const wxString\& }{file}, \param{long }{type}} - -Initializes the bundle with the icon(s) found in the file. - -\func{}{wxIconBundle}{\param{const wxIcon\& }{icon}} - -Initializes the bundle with a single icon. - -\func{}{wxIconBundle}{\param{const wxIconBundle\& }{ic}} - -Copy constructor. - - -\membersection{wxIconBundle::\destruct{wxIconBundle}}\label{wxiconbundledtor} - -\func{}{\destruct{wxIconBundle}}{\void} - -Destructor. - - -\membersection{wxIconBundle::AddIcon}\label{wxiconbundleaddicon} - -\func{void}{AddIcon}{\param{const wxString\& }{file}, \param{long }{type}} - -Adds all the icons contained in the file to the bundle; -if the collection already contains icons with the same -width and height, they are replaced by the new ones. - -\func{void}{AddIcon}{\param{const wxIcon\& }{icon}} - -Adds the icon to the collection; if the collection already -contains an icon with the same width and height, it is -replaced by the new one. - - -\membersection{wxIconBundle::GetIcon}\label{wxiconbundlegeticon} - -\constfunc{wxIcon}{GetIcon}{\param{const wxSize\& }{size}} - -Returns the icon with the given size; if no such icon exists, -returns the icon with size wxSYS\_ICON\_X/wxSYS\_ICON\_Y; -if no such icon exists, -returns the first icon in the bundle. If size = wxSize( -1, -1 ), -returns the icon with size wxSYS\_ICON\_X/wxSYS\_ICON\_Y. - -\constfunc{wxIcon}{GetIcon}{\param{wxCoord }{size = -1}} - -Same as GetIcon( wxSize( size, size ) ). - - -\membersection{wxIconBundle::GetIconOfExactSize}\label{wxiconbundlegeticonofexactsize} - -\constfunc{wxIcon}{GetIconOfExactSize}{\param{const wxSize\& }{size}} - -Returns the icon with exactly the given size or \texttt{wxNullIcon} if this -size is not available. - - -\membersection{wxIconBundle::IsEmpty}\label{wxiconbundleisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns \true if the bundle doesn't contain any icons, \false otherwise (in -which case a call to \helpref{GetIcon()}{wxiconbundlegeticon} with default -parameter should return a valid icon). - - -\membersection{wxIconBundle::operator $=$}\label{wxiconbundleoperatorassign} - -\func{wxIconBundle\&}{operator $=$}{\param{const wxIconBundle\& }{ic}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - - -\membersection{wxIconBundle::operator $==$}\label{wxiconbundleoperatorequals} - -\func{bool}{operator $==$}{\param{const wxIconBundle\& }{ic}} - -Equality operator. This returns \true if two icon bundles are equal. - - -\membersection{wxIconBundle::operator $!=$}\label{wxiconbundleoperatornotequals} - -\func{bool}{operator $!=$}{\param{const wxIconBundle\& }{ic}} - -Inequality operator. This returns \true if two icon bundles are not equal. diff --git a/docs/latex/wx/iconevt.tex b/docs/latex/wx/iconevt.tex deleted file mode 100644 index 86e8d23678..0000000000 --- a/docs/latex/wx/iconevt.tex +++ /dev/null @@ -1,61 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: iconevt.tex -%% Purpose: wxIconizeEvent documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxIconizeEvent}}\label{wxiconizeevent} - -An event being sent when the frame is iconized (minimized) or restored. - -Currently only wxMSW and wxGTK generate such events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an iconize event, use this event handler macro to direct input to a -member function that takes a wxIconizeEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_ICONIZE(func)}}{Process a wxEVT\_ICONIZE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxTopLevelWindow::Iconize}{wxtoplevelwindowiconize},\rtfsp -\helpref{wxTopLevelWindow::IsIconized}{wxtoplevelwindowisiconized} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIconizeEvent::wxIconizeEvent}\label{wxiconizeeventctor} - -\func{}{wxIconizeEvent}{\param{int }{id = 0}, \param{bool }{iconized = true}} - -Constructor. - -\membersection{wxIconizeEvent::Iconized}\label{wxiconizeeventiconized} - -\constfunc{bool}{Iconized}{\void} - -Returns {\tt true} if the frame has been iconized, {\tt false} if it has been -restored. - diff --git a/docs/latex/wx/iconloc.tex b/docs/latex/wx/iconloc.tex deleted file mode 100644 index 031178ea0c..0000000000 --- a/docs/latex/wx/iconloc.tex +++ /dev/null @@ -1,50 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: iconloc.tex -%% Purpose: wxIconLocation documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 21.06.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxIconLocation}}\label{wxiconlocation} - -wxIconLocation is a tiny class describing the location of an (external, i.e. -not embedded into the application resources) icon. For most platforms it simply -contains the file name but under some others (notably Windows) the same file -may contain multiple icons and so this class also stores the index of the icon -inside the file. - -In any case, its details should be of no interest to the application code and -most of them are not even documented here (on purpose) as it is only meant to -be used as an opaque class: the application may get the object of this class -from somewhere and the only reasonable thing to do with it later is to create -a \helpref{wxIcon}{wxicon} from it. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/iconloc.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxIcon}{wxicon}, \helpref{wxFileType::GetIcon}{wxfiletypegeticon} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIconLocation::IsOk}\label{wxiconlocationisok} - -\constfunc{bool}{IsOk}{\void} - -Returns {\tt true} if the object is valid, i.e. was properly initialized, and -{\tt false} otherwise. - diff --git a/docs/latex/wx/idleevt.tex b/docs/latex/wx/idleevt.tex deleted file mode 100644 index e354e833f9..0000000000 --- a/docs/latex/wx/idleevt.tex +++ /dev/null @@ -1,129 +0,0 @@ -\section{\class{wxIdleEvent}}\label{wxidleevent} - -This class is used for idle events, which are generated when the system becomes -idle. Note that, unless you do something specifically, the idle events are not -sent if the system remains idle once it has become it, e.g. only a single idle -event will be generated until something else resulting in more normal events -happens and only then is the next idle event sent again. If you need to ensure -a continuous stream of idle events, you can either use -\helpref{RequestMore}{wxidleeventrequestmore} method in your handler or call -\helpref{wxWakeUpIdle}{wxwakeupidle} periodically (for example from timer -event), but note that both of these approaches (and especially the first one) -increase the system load and so should be avoided if possible. - -By default, idle events are sent to all windows (and also -\helpref{wxApp}{wxapp}, as usual). If this is causing a significant -overhead in your application, you can call \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} with -the value wxIDLE\_PROCESS\_SPECIFIED, and set the wxWS\_EX\_PROCESS\_IDLE extra -window style for every window which should receive idle events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Event table macros} - -To process an idle event, use this event handler macro to direct input to a member -function that takes a wxIdleEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_IDLE(func)}}{Process a wxEVT\_IDLE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxUpdateUIEvent}{wxupdateuievent}, -\helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIdleEvent::wxIdleEvent}\label{wxidleeventctor} - -\func{}{wxIdleEvent}{\void} - -Constructor. - -\membersection{wxIdleEvent::CanSend}\label{wxidleeventcansend} - -\func{static bool}{CanSend}{\param{wxWindow*}{ window}} - -Returns {\tt true} if it is appropriate to send idle events to -this window. - -This function looks at the mode used (see \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}), -and the wxWS\_EX\_PROCESS\_IDLE style in {\it window} to determine whether idle events should be sent to -this window now. By default this will always return {\tt true} because -the update mode is initially wxIDLE\_PROCESS\_ALL. You can change the mode -to only send idle events to windows with the wxWS\_EX\_PROCESS\_IDLE extra window style set. - -\wxheading{See also} - -\helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} - -\membersection{wxIdleEvent::GetMode}\label{wxidleeventgetmode} - -\func{static wxIdleMode}{GetMode}{\void} - -Static function returning a value specifying how wxWidgets -will send idle events: to all windows, or only to those which specify that they -will process the events. - -See \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode}. - -\membersection{wxIdleEvent::RequestMore}\label{wxidleeventrequestmore} - -\func{void}{RequestMore}{\param{bool}{ needMore = true}} - -Tells wxWidgets that more processing is required. This function can be called by an OnIdle -handler for a window or window event handler to indicate that wxApp::OnIdle should -forward the OnIdle event once more to the application windows. If no window calls this function -during OnIdle, then the application will remain in a passive event loop (not calling OnIdle) until a -new event is posted to the application by the windowing system. - -\wxheading{See also} - -\helpref{wxIdleEvent::MoreRequested}{wxidleeventmorerequested} - -\membersection{wxIdleEvent::MoreRequested}\label{wxidleeventmorerequested} - -\constfunc{bool}{MoreRequested}{\void} - -Returns true if the OnIdle function processing this event requested more processing time. - -\wxheading{See also} - -\helpref{wxIdleEvent::RequestMore}{wxidleeventrequestmore} - -\membersection{wxIdleEvent::SetMode}\label{wxidleeventsetmode} - -\func{static void}{SetMode}{\param{wxIdleMode }{mode}} - -Static function for specifying how wxWidgets will send idle events: to -all windows, or only to those which specify that they -will process the events. - -{\it mode} can be one of the following values. -The default is wxIDLE\_PROCESS\_ALL. - -\begin{verbatim} -enum wxIdleMode -{ - // Send idle events to all windows - wxIDLE_PROCESS_ALL, - - // Send idle events to windows that have - // the wxWS_EX_PROCESS_IDLE flag specified - wxIDLE_PROCESS_SPECIFIED -}; -\end{verbatim} - diff --git a/docs/latex/wx/idmanager.tex b/docs/latex/wx/idmanager.tex deleted file mode 100644 index 9b73020185..0000000000 --- a/docs/latex/wx/idmanager.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{\class{wxIdManager}}\label{wxidmanager} - -wxIdManager is responsible for allocating and releasing window IDs. It -is used by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid} and -\helpref{wxWindow::UnreserveControlId}{wxwindowunreservecontrolid}, and can also -be used be used directly. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/windowid.h> included from defs.h - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -\helpref{wxWindow::UnreserveControlId}{wxwindowunreservecontrolid} -\helpref{Window IDs overview}{windowidsoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxIdManager::ReserveControlId}\label{wxidmanagerreservecontrolid} - -\func{static wxWindowID}{ReserveControlId}{\param{int}{ count = 1}} - -Called directly by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid}, -this function will create a new ID or range of IDs. The IDs will be -reserved until assigned to a \helpref{wxWindowIDRef}{windowidsoverview} -or unreserved with \helpref{UnreserveControlId}{wxidmanagerunreservecontrolid}. -Only ID values that are not assigned to a \helpref{wxWindowIDRef}{windowidsoverview} -need to be unreserved. - -\wxheading{Parameters} - -\docparam{count}{The number of sequential IDs to reserve.} - -\wxheading{Return value} - -The value of the first ID in the sequence, or \texttt{wxID\_NONE}. - -\membersection{wxIdManager::UnreserveControlId}\label{wxidmanagerunreservecontrolid} - -\func{static wxWindowID}{UnreserveControlId}{\param{wxWindowID}{ id}, \param{int}{ count = 1}} - -Called directly by \helpref{wxWindow::UnreserveControlId}{wxwindowunreservecontrolid}, -this function will unreserve an ID or range of IDs that is currently reserved. This -should only be called for IDs returned by \helpref{ReserveControlId}{wxidmanagerreservecontrolid} -that have NOT been assigned to a \helpref{wxWindowIDRef}{windowidsoverview} - -\wxheading{Parameters} - -\docparam{id}{The first of the range of IDs to unreserve.} - -\docparam{count}{The number of sequential IDs to unreserve.} - -\wxheading{Return value} - -The value of the first ID in the sequence, or \texttt{wxID\_NONE}. diff --git a/docs/latex/wx/ignore.txt b/docs/latex/wx/ignore.txt deleted file mode 100644 index 2d5a620e5e..0000000000 --- a/docs/latex/wx/ignore.txt +++ /dev/null @@ -1,7 +0,0 @@ -# this file contains classes and functions HelpGen should ignore -# in 'diff' mode -wxCursorRefData -wxCursor::SetHCURSOR -wxCursor::GetHCURSOR -wxCursor::FreeResource -wxStringData \ No newline at end of file diff --git a/docs/latex/wx/ilayout.tex b/docs/latex/wx/ilayout.tex deleted file mode 100644 index 6790574167..0000000000 --- a/docs/latex/wx/ilayout.tex +++ /dev/null @@ -1,139 +0,0 @@ -\section{\class{wxIndividualLayoutConstraint}}\label{wxindividuallayoutconstraint} - -Objects of this class are stored in the wxLayoutConstraint class -as one of eight possible constraints that a window can be involved in. - -Constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/layout.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Overview and examples}{constraintsoverview},\rtfsp -\helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\subsection{Edges and relationships}\label{edgesandrelationships} - -The {\it wxEdge}\index{wxEdge} enumerated type specifies the type of edge or dimension of a window. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLeft}{The left edge.} -\twocolitem{wxTop}{The top edge.} -\twocolitem{wxRight}{The right edge.} -\twocolitem{wxBottom}{The bottom edge.} -\twocolitem{wxCentreX}{The x-coordinate of the centre of the window.} -\twocolitem{wxCentreY}{The y-coordinate of the centre of the window.} -\end{twocollist} - -The {\it wxRelationship}\index{wxRelationship} enumerated type specifies the relationship that -this edge or dimension has with another specified edge or dimension. Normally, the user -doesn't use these directly because functions such as {\it Below} and {\it RightOf} are a convenience -for using the more general {\it Set} function. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUnconstrained}{The edge or dimension is unconstrained (the default for edges.} -\twocolitem{wxAsIs}{The edge or dimension is to be taken from the current window position or size (the -default for dimensions.} -\twocolitem{wxAbove}{The edge should be above another edge.} -\twocolitem{wxBelow}{The edge should be below another edge.} -\twocolitem{wxLeftOf}{The edge should be to the left of another edge.} -\twocolitem{wxRightOf}{The edge should be to the right of another edge.} -\twocolitem{wxSameAs}{The edge or dimension should be the same as another edge or dimension.} -\twocolitem{wxPercentOf}{The edge or dimension should be a percentage of another edge or dimension.} -\twocolitem{wxAbsolute}{The edge or dimension should be a given absolute value.} -\end{twocollist} - -\membersection{wxIndividualLayoutConstraint::wxIndividualLayoutConstraint}\label{wxindividuallayoutconstraintctor} - -\func{void}{wxIndividualLayoutConstraint}{\void} - -Constructor. Not used by the end-user. - -\membersection{wxIndividualLayoutConstraint::Above}\label{wxindividuallayoutconstraintabove} - -\func{void}{Above}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be above the given window, with an -optional margin. Implicitly, this is relative to the top edge of the other window. - -\membersection{wxIndividualLayoutConstraint::Absolute}\label{wxindividuallayoutconstraintabsolute} - -\func{void}{Absolute}{\param{int}{ value}} - -Constrains this edge or dimension to be the given absolute value. - -\membersection{wxIndividualLayoutConstraint::AsIs}\label{wxindividuallayoutconstraintasis} - -\func{void}{AsIs}{\void} - -Sets this edge or constraint to be whatever the window's value is -at the moment. If either of the width and height constraints -are {\it as is}, the window will not be resized, but moved instead. -This is important when considering panel items which are intended -to have a default size, such as a button, which may take its size -from the size of the button label. - -\membersection{wxIndividualLayoutConstraint::Below}\label{wxindividuallayoutconstraintbelow} - -\func{void}{Below}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be below the given window, with an -optional margin. Implicitly, this is relative to the bottom edge of the other window. - -\membersection{wxIndividualLayoutConstraint::Unconstrained}\label{wxindividuallayoutconstraintunconstrained} - -\func{void}{Unconstrained}{\void} - -Sets this edge or dimension to be unconstrained, that is, dependent on -other edges and dimensions from which this value can be deduced. - -\membersection{wxIndividualLayoutConstraint::LeftOf}\label{wxindividuallayoutconstraintleftof} - -\func{void}{LeftOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be to the left of the given window, with an -optional margin. Implicitly, this is relative to the left edge of the other window. - -\membersection{wxIndividualLayoutConstraint::PercentOf}\label{wxindividuallayoutconstraintpercentof} - -\func{void}{PercentOf}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ per}} - -Constrains this edge or dimension to be to a percentage of the given window, with an -optional margin. - -\membersection{wxIndividualLayoutConstraint::RightOf}\label{wxindividuallayoutconstraintrightof} - -\func{void}{RightOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}} - -Constrains this edge to be to the right of the given window, with an -optional margin. Implicitly, this is relative to the right edge of the other window. - -\membersection{wxIndividualLayoutConstraint::SameAs}\label{wxindividuallayoutconstraintsameas} - -\func{void}{SameAs}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ margin = 0}} - -Constrains this edge or dimension to be to the same as the edge of the given window, with an -optional margin. - -\membersection{wxIndividualLayoutConstraint::Set}\label{wxindividuallayoutconstraintset} - -\func{void}{Set}{\param{wxRelationship}{ rel}, \param{wxWindow *}{otherWin}, \param{wxEdge}{ otherEdge}, - \param{int}{ value = 0}, \param{int}{ margin = 0}} - -Sets the properties of the constraint. Normally called by one of the convenience -functions such as Above, RightOf, SameAs. - - diff --git a/docs/latex/wx/image.tex b/docs/latex/wx/image.tex deleted file mode 100644 index 8a7721ff5d..0000000000 --- a/docs/latex/wx/image.tex +++ /dev/null @@ -1,1508 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: image.tex -%% Purpose: wxImage documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxImage}}\label{wximage} - -This class encapsulates a platform-independent image. An image can be created -from data, or using \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage}. An image -can be loaded from a file in a variety of formats, and is extensible to new formats -via image format handlers. Functions are available to set and get image bits, so -it can be used for basic image manipulation. - -A wxImage cannot (currently) be drawn directly to a \helpref{wxDC}{wxdc}. Instead, -a platform-specific \helpref{wxBitmap}{wxbitmap} object must be created from it using -the \helpref{wxBitmap::wxBitmap(wxImage,int depth)}{wxbitmapctor} constructor. -This bitmap can then -be drawn in a device context, using \helpref{wxDC::DrawBitmap}{wxdcdrawbitmap}. - -One colour value of the image may be used as a mask colour which will lead to the automatic -creation of a \helpref{wxMask}{wxmask} object associated to the bitmap object. - -\wxheading{Alpha channel support} - -Starting from wxWidgets 2.5.0 wxImage supports alpha channel data, that is in -addition to a byte for the red, green and blue colour components for each pixel -it also stores a byte representing the pixel opacity. An alpha value of $0$ -corresponds to a transparent pixel (null opacity) while a value of $255$ -means that the pixel is 100\% opaque. - -Unlike RGB data, not all images have an alpha channel and before using -\helpref{GetAlpha}{wximagegetalpha} you should check if this image contains -an alpha channel with \helpref{HasAlpha}{wximagehasalpha}. Note that currently -only the PNG format has full alpha channel support so only the images loaded -from PNG files can have alpha and, if you initialize the image alpha channel -yourself using \helpref{SetAlpha}{wximagesetalpha}, you should save it in PNG -format to avoid losing it. - - -\wxheading{Available image handlers} - -The following image handlers are available. {\bf wxBMPHandler} is always -installed by default. To use other image formats, install the appropriate -handler with \helpref{wxImage::AddHandler}{wximageaddhandler} or call -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}. - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{\indexit{wxBMPHandler}}{For loading and saving, always installed.} -\twocolitem{\indexit{wxPNGHandler}}{For loading (including alpha support) and saving.} -\twocolitem{\indexit{wxJPEGHandler}}{For loading and saving.} -\twocolitem{\indexit{wxGIFHandler}}{Only for loading, due to legal issues.} -\twocolitem{\indexit{wxPCXHandler}}{For loading and saving (see below).} -\twocolitem{\indexit{wxPNMHandler}}{For loading and saving (see below).} -\twocolitem{\indexit{wxTIFFHandler}}{For loading and saving.} -\twocolitem{\indexit{wxTGAHandler}}{For loading only.} -\twocolitem{\indexit{wxIFFHandler}}{For loading only.} -\twocolitem{\indexit{wxXPMHandler}}{For loading and saving.} -\twocolitem{\indexit{wxICOHandler}}{For loading and saving.} -\twocolitem{\indexit{wxCURHandler}}{For loading and saving.} -\twocolitem{\indexit{wxANIHandler}}{For loading only.} -\end{twocollist} - -When saving in PCX format, {\bf wxPCXHandler} will count the number of -different colours in the image; if there are 256 or less colours, it will -save as 8 bit, else it will save as 24 bit. - -Loading PNMs only works for ASCII or raw RGB images. When saving in -PNM format, {\bf wxPNMHandler} will always save as raw RGB. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/image.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxImage::wxImage}\label{wximagector} - -\func{}{wxImage}{\void} - -Default constructor. - -\func{}{wxImage}{\param{const wxImage\& }{image}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxImage}{\param{const wxBitmap\&}{ bitmap}} - -(Deprecated form, use \helpref{wxBitmap::ConvertToImage}{wxbitmapconverttoimage} -instead.) Constructs an image from a platform-dependent bitmap. This preserves -mask information so that bitmaps and images can be converted back -and forth without loss in that respect. - -\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}, \param{bool}{ clear=true}} - -Creates an image with the given width and height. If {\it clear} is true, the new image will be initialized to black. -Otherwise, the image data will be uninitialized. - -\func{}{wxImage}{\param{int}{ width}, \param{int}{ height}, \param{unsigned char*}{ data}, \param{bool}{ static\_data = \false}} - -Creates an image from given data with the given width and height. If -{\it static\_data} is true, then wxImage will not delete the actual -image data in its destructor, otherwise it will free it by calling -{\it free()}. - -\func{}{wxImage}{\param{const wxString\& }{name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}} - -\func{}{wxImage}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}} - -Loads an image from a file. - -\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}} - -\func{}{wxImage}{\param{wxInputStream\& }{stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}} - -Loads an image from an input stream. - -\func{}{wxImage}{\param{const char* const* }{xpmData}} - -Creates an image from XPM data. - -\wxheading{Parameters} - -\docparam{width}{Specifies the width of the image.} - -\docparam{height}{Specifies the height of the image.} - -\docparam{name}{Name of the file from which to load the image.} - -\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_TGA}}{Load a TGA bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.} -\end{twocollist}} - -\docparam{mimetype}{MIME type string (for example 'image/jpeg')} - -\docparam{index}{Index of the image to load in the case that the image file contains multiple images. -This is only used by GIF, ICO and TIFF handlers. The default value (-1) means -"choose the default image" and is interpreted as the first image (index=0) by -the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.} - -\docparam{xpmData}{A pointer to XPM image data.} - -\wxheading{Remarks} - -Depending on how wxWidgets has been configured, not all formats may be available. - -Note: any handler other than BMP must be previously -initialized with \helpref{wxImage::AddHandler}{wximageaddhandler} or -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}. - -Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the -hotspot for loaded cursor file: -\begin{verbatim} - int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X); - int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y); - -\end{verbatim} - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile} - -\pythonnote{Constructors supported by wxPython are:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf wxImage(name, flag)}}{Loads an image from a file} -\twocolitem{{\bf wxNullImage()}}{Create a null image (has no size or -image data)} -\twocolitem{{\bf wxEmptyImage(width, height)}}{Creates an empty image -of the given size} -\twocolitem{{\bf wxImageFromMime(name, mimetype}}{Creates an image from -the given file of the given mimetype} -\twocolitem{{\bf wxImageFromBitmap(bitmap)}}{Creates an image from a -platform-dependent bitmap} -\end{twocollist}} -} - -\perlnote{Constructors supported by wxPerl are:\par -\begin{itemize} -\item{Wx::Image->new( bitmap )} -\item{Wx::Image->new( icon )} -\item{Wx::Image->new( width, height )} -\item{Wx::Image->new( width, height, data )} -\item{Wx::Image->new( file, type, index )} -\item{Wx::Image->new( file, mimetype, index )} -\item{Wx::Image->new( stream, type, index )} -\item{Wx::Image->new( stream, mimetype, index )} -\end{itemize} -} - - -\membersection{wxImage::\destruct{wxImage}}\label{wximagedtor} - -\func{}{\destruct{wxImage}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - - -\membersection{wxImage::AddHandler}\label{wximageaddhandler} - -\func{static void}{AddHandler}{\param{wxImageHandler*}{ handler}} - -Adds a handler to the end of the static list of format handlers. - -\docparam{handler}{A new image format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - -\func{bool}{CanRead}{\param{const wxString\&}{ filename}} - -returns true if the current image handlers can read this file - -\pythonnote{In wxPython this static method is named {\tt wxImage\_AddHandler}.} - - -\membersection{wxImage::Blur}\label{wximageblur} - -\func{wxImage}{Blur}{\param{int}{ blurRadius}} - -Blurs the image in both horizontal and vertical directions by the specified pixel -{\it blurRadius}. This should not be used when using a single mask colour -for transparency. - -\wxheading{See also} - -\helpref{BlurHorizontal}{wximagehorzblur} -\helpref{BlurVertical}{wximagevertblur} - - -\membersection{wxImage::BlurHorizontal}\label{wximagehorzblur} - -\func{wxImage}{BlurHorizontal}{\param{int}{ blurRadius}} - -Blurs the image in the horizontal direction only. This should not be used -when using a single mask colour for transparency. -\wxheading{See also} - -\helpref{Blur}{wximageblur} -\helpref{BlurVertical}{wximagevertblur} - - -\membersection{wxImage::BlurVertical}\label{wximagevertblur} - -\func{wxImage}{BlurVertical}{\param{int}{ blurRadius}} - -Blurs the image in the vertical direction only. This should not be used -when using a single mask colour for transparency. - -\wxheading{See also} - -\helpref{Blur}{wximageblur} -\helpref{BlurHorizontal}{wximagehorzblur} - - -\membersection{wxImage::CleanUpHandlers}\label{wximagecleanuphandlers} - -\func{static void}{CleanUpHandlers}{\void} - -Deletes all image handlers. - -This function is called by wxWidgets on exit. - - -\membersection{wxImage::ComputeHistogram}\label{wximagecomputehistogram} - -\constfunc{unsigned long}{ComputeHistogram}{\param{wxImageHistogram\& }{histogram}} - -Computes the histogram of the image. {\it histogram} is a reference to -wxImageHistogram object. wxImageHistogram is a specialization of -\helpref{wxHashMap}{wxhashmap} "template" and is defined as follows: - -\begin{verbatim} -class WXDLLEXPORT wxImageHistogramEntry -{ -public: - wxImageHistogramEntry() : index(0), value(0) {} - unsigned long index; - unsigned long value; -}; - -WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry, - wxIntegerHash, wxIntegerEqual, - wxImageHistogram); -\end{verbatim} - -\wxheading{Return value} - -Returns number of colours in the histogram. - - -\membersection{wxImage::ConvertAlphaToMask}\label{wximageconvertalphatomask} - -\func{bool}{ConvertAlphaToMask}{\param{unsigned char}{ threshold = $128$}} - -If the image has alpha channel, this method converts it to mask. All pixels -with alpha value less than \arg{threshold} are replaced with mask colour -and the alpha channel is removed. Mask colour is chosen automatically using -\helpref{FindFirstUnusedColour}{wximagefindfirstunusedcolour}. - -If the image image doesn't have alpha channel, -ConvertAlphaToMask does nothing. - -\wxheading{Return value} - -\false if FindFirstUnusedColour returns \false, \true otherwise. - - -\membersection{wxImage::ConvertToBitmap}\label{wximageconverttobitmap} - -\constfunc{wxBitmap}{ConvertToBitmap}{\void} - -Deprecated, use equivalent \helpref{wxBitmap constructor}{wxbitmapctor} -(which takes wxImage and depth as its arguments) instead. - - -\membersection{wxImage::ConvertToGreyscale}\label{wximageconverttogreyscale} - -\constfunc{wxImage}{ConvertToGreyscale}{\param{double}{ lr = 0.299}, \param{double}{ lg = 0.587}, \param{double}{ lb = 0.114}} - -Returns a greyscale version of the image. The returned image uses the luminance -component of the original to calculate the greyscale. Defaults to using -ITU-T BT.601 when converting to YUV, where every pixel equals -(R * {\it lr}) + (G * {\it lg}) + (B * {\it lb}). - - -\membersection{wxImage::ConvertToMono}\label{wxbitmapconverttomono} - -\constfunc{wxImage}{ConvertToMono}{\param{unsigned char}{ r}, \param{unsigned char}{ g}, \param{unsigned char}{ b}} - -Returns monochromatic version of the image. The returned image has white -colour where the original has {\it (r,g,b)} colour and black colour -everywhere else. - - -\membersection{wxImage::Copy}\label{wximagecopy} - -\constfunc{wxImage}{Copy}{\void} - -Returns an identical copy of the image. - - -\membersection{wxImage::Create}\label{wximagecreate} - -\func{bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{bool}{ clear=true}} - -Creates a fresh image. If {\it clear} is true, the new image will be initialized to black. -Otherwise, the image data will be uninitialized. - -\wxheading{Parameters} - -\docparam{width}{The width of the image in pixels.} - -\docparam{height}{The height of the image in pixels.} - -\wxheading{Return value} - -true if the call succeeded, false otherwise. - - -\membersection{wxImage::Destroy}\label{wximagedestroy} - -\func{void}{Destroy}{\void} - -Destroys the image data. - - -\membersection{wxImage::FindFirstUnusedColour}\label{wximagefindfirstunusedcolour} - -\func{bool}{FindFirstUnusedColour}{\param{unsigned char *}{ r}, \param{unsigned char *}{ g}, \param{unsigned char *}{ b}, \param{unsigned char}{ startR = 1}, \param{unsigned char}{ startG = 0}, \param{unsigned char}{ startB = 0}} - -\wxheading{Parameters} - -\docparam{r,g,b}{Pointers to variables to save the colour.} - -\docparam{startR,startG,startB}{Initial values of the colour. Returned colour -will have RGB values equal to or greater than these.} - -Finds the first colour that is never used in the image. The search begins at -given initial colour and continues by increasing R, G and B components (in this -order) by 1 until an unused colour is found or the colour space exhausted. - -\wxheading{Return value} - -Returns false if there is no unused colour left, true on success. - -\wxheading{Notes} - -Note that this method involves computing the histogram, which is -computationally intensive operation. - - -\membersection{wxImage::FindHandler}\label{wximagefindhandler} - -\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name. - -\func{static wxImageHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{long}{ imageType}} - -Finds the handler associated with the given extension and type. - -\func{static wxImageHandler*}{FindHandler}{\param{long }{imageType}} - -Finds the handler associated with the given image type. - -\func{static wxImageHandler*}{FindHandlerMime}{\param{const wxString\& }{mimetype}} - -Finds the handler associated with the given MIME type. - -\docparam{name}{The handler name.} - -\docparam{extension}{The file extension, such as ``bmp".} - -\docparam{imageType}{The image type, such as wxBITMAP\_TYPE\_BMP.} - -\docparam{mimetype}{MIME type.} - -\wxheading{Return value} - -A pointer to the handler if found, NULL otherwise. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - - -\membersection{wxImage::GetImageExtWildcard}\label{wximagegetimageextwildcard} - -\func{static wxString}{GetImageExtWildcard}{\void} - -Iterates all registered wxImageHandler objects, and returns a string containing file extension masks -suitable for passing to file open/save dialog boxes. - -\wxheading{Return value} - -The format of the returned string is "(*.ext1;*.ext2)|*.ext1;*.ext2". - -It is usually a good idea to prepend a description before passing the result to the dialog. - -Example: - -\begin{verbatim} - wxFileDialog FileDlg( this, "Choose Image", ::wxGetCwd(), "", _("Image Files ") + wxImage::GetImageExtWildcard(), wxFD_OPEN ); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - - -\membersection{wxImage::GetAlpha}\label{wximagegetalpha} - -\constfunc{unsigned char}{GetAlpha}{\param{int}{ x}, \param{int}{ y}} - -Returns the alpha value for the given pixel. This function may only be called -for the images with alpha channel, use \helpref{HasAlpha}{wximagehasalpha} to -check for this. - -The returned value is the {\it opacity} of the image, i.e. the value of $0$ -corresponds to the transparent pixels while the value of $255$ -- to the opaque -ones. - -\constfunc{unsigned char *}{GetAlpha}{\void} - -Returns pointer to the array storing the alpha values for this image. This -pointer is {\tt NULL} for the images without the alpha channel. If the image -does have it, this pointer may be used to directly manipulate the alpha values -which are stored as the \helpref{RGB}{wximagegetdata} ones. - - -\membersection{wxImage::GetBlue}\label{wximagegetblue} - -\constfunc{unsigned char}{GetBlue}{\param{int}{ x}, \param{int}{ y}} - -Returns the blue intensity at the given coordinate. - - -\membersection{wxImage::GetData}\label{wximagegetdata} - -\constfunc{unsigned char*}{GetData}{\void} - -Returns the image data as an array. This is most often used when doing -direct image manipulation. The return value points to an array of -characters in RGBRGBRGB$\ldots$ format in the top-to-bottom, left-to-right -order, that is the first RGB triplet corresponds to the pixel first pixel of -the first row, the second one --- to the second pixel of the first row and so -on until the end of the first row, with second row following after it and so -on. - -You should not delete the returned pointer nor pass it to -\helpref{wxImage::SetData}{wximagesetdata}. - - -\membersection{wxImage::GetGreen}\label{wximagegetgreen} - -\constfunc{unsigned char}{GetGreen}{\param{int}{ x}, \param{int}{ y}} - -Returns the green intensity at the given coordinate. - - -\membersection{wxImage::GetImageCount}\label{wximagegetimagecount} - -\func{static int}{GetImageCount}{\param{const wxString\&}{ filename}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}} - -\func{static int}{GetImageCount}{\param{wxInputStream\&}{ stream}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}} - -If the image file contains more than one image and the image handler is capable -of retrieving these individually, this function will return the number of -available images. - -\docparam{name}{Name of the file to query.} - -\docparam{stream}{Opened input stream with image data. Currently, the stream must support seeking.} - -\docparam{type}{May be one of the following: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_JPEG}}{Load a JPEG bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PNG}}{Load a PNG bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PCX}}{Load a PCX bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_PNM}}{Load a PNM bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_TIF}}{Load a TIFF bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load a XPM bitmap file.} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.} -\end{twocollist}} - -\wxheading{Return value} - -Number of available images. For most image handlers, this is 1 (exceptions -are TIFF and ICO formats). - - -\membersection{wxImage::GetHandlers}\label{wximagegethandlers} - -\func{static wxList\&}{GetHandlers}{\void} - -Returns the static list of image format handlers. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - - -\membersection{wxImage::GetHeight}\label{wximagegetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height of the image in pixels. - - -\membersection{wxImage::GetMaskBlue}\label{wximagegetmaskblue} - -\constfunc{unsigned char}{GetMaskBlue}{\void} - -Gets the blue value of the mask colour. - - -\membersection{wxImage::GetMaskGreen}\label{wximagegetmaskgreen} - -\constfunc{unsigned char}{GetMaskGreen}{\void} - -Gets the green value of the mask colour. - - -\membersection{wxImage::GetMaskRed}\label{wximagegetmaskred} - -\constfunc{unsigned char}{GetMaskRed}{\void} - -Gets the red value of the mask colour. - - -\membersection{wxImage::GetOrFindMaskColour}\label{wximagegetgetorsetmaskcolour} - -\constfunc{bool}{GetOrFindMaskColour}{\param{unsigned char}{ *r}, \param{unsigned char}{ *g}, \param{unsigned char}{ *b}} - -Get the current mask colour or find a suitable unused colour that could be -used as a mask colour. Returns {\tt true} if the image currently has a mask. - - -\membersection{wxImage::GetPalette}\label{wximagegetpalette} - -\constfunc{const wxPalette\&}{GetPalette}{\void} - -Returns the palette associated with the image. Currently the palette is only -used when converting to wxBitmap under Windows. Some of the wxImage handlers -have been modified to set the palette if one exists in the image file (usually -256 or less colour images in GIF or PNG format). - - -\membersection{wxImage::GetRed}\label{wximagegetred} - -\constfunc{unsigned char}{GetRed}{\param{int}{ x}, \param{int}{ y}} - -Returns the red intensity at the given coordinate. - - -\membersection{wxImage::GetSubImage}\label{wximagegetsubimage} - -\constfunc{wxImage}{GetSubImage}{\param{const wxRect\&}{ rect}} - -Returns a sub image of the current one as long as the rect belongs entirely to -the image. - - -\membersection{wxImage::GetWidth}\label{wximagegetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width of the image in pixels. - -\wxheading{See also} - -\helpref{wxImage::GetHeight}{wximagegetheight} - - -\membersection{HSVValue::HSVValue}\label{hsvvaluehsvvalue} - -\func{}{HSVValue}{\param{double }{h = 0.0}, \param{double }{s = 0.0}, \param{double }{v = 0.0}} - -Constructor for HSVValue, an object that contains values for hue, saturation and value which -represent the value of a color. It is used by \helpref{wxImage::HSVtoRGB}{wximagehsvtorgb} -and \helpref{wxImage::RGBtoHSV}{wximagergbtohsv}, which -converts between HSV color space and RGB color space. - -\pythonnote{use wxImage\_HSVValue in wxPython} - - - -\membersection{wxImage::HSVtoRGB}\label{wximagehsvtorgb} - -\func{wxImage::RGBValue}{HSVtoRGB}{\param{const HSVValue \& }{hsv}} - -Converts a color in HSV color space to RGB color space. - - -\membersection{wxImage::HasAlpha}\label{wximagehasalpha} - -\constfunc{bool}{HasAlpha}{\void} - -Returns true if this image has alpha channel, false otherwise. - -\wxheading{See also} - -\helpref{GetAlpha}{wximagegetalpha}, \helpref{SetAlpha}{wximagesetalpha} - - -\membersection{wxImage::HasMask}\label{wximagehasmask} - -\constfunc{bool}{HasMask}{\void} - -Returns true if there is a mask active, false otherwise. - - -\membersection{wxImage::GetOption}\label{wximagegetoption} - -\constfunc{wxString}{GetOption}{\param{const wxString\&}{ name}} - -Gets a user-defined option. The function is case-insensitive to {\it name}. - -For example, when saving as a JPEG file, the option {\bf quality} is -used, which is a number between 0 and 100 (0 is terrible, 100 is very good). - -\wxheading{See also} - -\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp -\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp -\helpref{wxImage::HasOption}{wximagehasoption} - - -\membersection{wxImage::GetOptionInt}\label{wximagegetoptionint} - -\constfunc{int}{GetOptionInt}{\param{const wxString\&}{ name}} - -Gets a user-defined option as an integer. The function is case-insensitive to {\it name}. - -If the given option is not present, the function returns $0$. Use -\helpref{wxImage::HasOption}{wximagehasoption} is $0$ is a possibly valid value -for the option. - -Options for wxPNGHandler -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{wxIMAGE\_OPTION\_PNG\_FORMAT}{Format for saving a PNG file.} -\twocolitem{wxIMAGE\_OPTION\_PNG\_BITDEPTH}{Bit depth for every channel (R/G/B/A).} -\end{twocollist} - -Supported values for wxIMAGE\_OPTION\_PNG\_FORMAT: -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{wxPNG\_TYPE\_COLOUR}{Stores RGB image.} -\twocolitem{wxPNG\_TYPE\_GREY}{Stores grey image, converts from RGB.} -\twocolitem{wxPNG\_TYPE\_GREY\_RED}{Stores grey image, uses red value as grey.} -\end{twocollist} - - -\wxheading{See also} - -\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp -\helpref{wxImage::GetOption}{wximagegetoption} - - -\membersection{wxImage::HasOption}\label{wximagehasoption} - -\constfunc{bool}{HasOption}{\param{const wxString\&}{ name}} - -Returns true if the given option is present. The function is case-insensitive to {\it name}. - -\wxheading{See also} - -\helpref{wxImage::SetOption}{wximagesetoption},\rtfsp -\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp -\helpref{wxImage::GetOptionInt}{wximagegetoptionint} - - -\membersection{wxImage::InitAlpha}\label{wximageinitalpha} - -\func{void}{InitAlpha}{\void} - -Initializes the image alpha channel data. It is an error to call it -if the image already has alpha data. If it doesn't, alpha data will be -by default initialized to all pixels being fully opaque. But if the image has a -a mask colour, all mask pixels will be completely transparent. - - -\membersection{wxImage::InitStandardHandlers}\label{wximageinitstandardhandlers} - -\func{static void}{InitStandardHandlers}{\void} - -Internal use only. Adds standard image format handlers. It only install BMP -for the time being, which is used by wxBitmap. - -This function is called by wxWidgets on startup, and shouldn't be called by -the user. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler}, -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers}, -\helpref{wxQuantize}{wxquantize} - - -\membersection{wxImage::InsertHandler}\label{wximageinserthandler} - -\func{static void}{InsertHandler}{\param{wxImageHandler*}{ handler}} - -Adds a handler at the start of the static list of format handlers. - -\docparam{handler}{A new image format handler object. There is usually only one instance -of a given handler class in an application session.} - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - - -\membersection{wxImage::IsTransparent}\label{wximageistransparent} - -\constfunc{bool}{IsTransparent}{\param{int }{x}, \param{int }{y}, \param{unsigned char}{ threshold = $128$}} - -Returns \true if the given pixel is transparent, i.e. either has the mask -colour if this image has a mask or if this image has alpha channel and alpha -value of this pixel is strictly less than \arg{threshold}. - - -\membersection{wxImage::LoadFile}\label{wximageloadfile} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{long}{ type = wxBITMAP\_TYPE\_ANY}, \param{int}{ index = -1}} - -\func{bool}{LoadFile}{\param{const wxString\&}{ name}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}} - -Loads an image from a file. If no handler type is provided, the library will -try to autodetect the format. - -\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{long}{ type}, \param{int}{ index = -1}} - -\func{bool}{LoadFile}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ mimetype}, \param{int}{ index = -1}} - -Loads an image from an input stream. - -\wxheading{Parameters} - -\docparam{name}{Name of the file from which to load the image.} - -\docparam{stream}{Opened input stream from which to load the image. Currently, the stream must support seeking.} - -\docparam{type}{One of the following values: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Load a Windows image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_GIF}}{Load a GIF image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Load a JPEG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Load a PCX image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Load a PNG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Load a PNM image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_TIF}}{Load a TIFF image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Load a XPM image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Load a Windows icon file (ICO).} -\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Load a Windows cursor file (CUR).} -\twocolitem{\indexit{wxBITMAP\_TYPE\_ANI}}{Load a Windows animated cursor file (ANI).} -\twocolitem{{\bf wxBITMAP\_TYPE\_ANY}}{Will try to autodetect the format.} -\end{twocollist}} - -\docparam{mimetype}{MIME type string (for example 'image/jpeg')} - -\docparam{index}{Index of the image to load in the case that the image file contains multiple images. -This is only used by GIF, ICO and TIFF handlers. The default value (-1) means -"choose the default image" and is interpreted as the first image (index=0) by -the GIF and TIFF handler and as the largest and most colourful one by the ICO handler.} - -\wxheading{Remarks} - -Depending on how wxWidgets has been configured, not all formats may be available. - -Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to get the -hotspot for loaded cursor file: -\begin{verbatim} - int hotspot_x = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X); - int hotspot_y = image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y); - -\end{verbatim} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. If the optional index parameter is out of range, -false is returned and a call to wxLogError() takes place. - -\wxheading{See also} - -\helpref{wxImage::SaveFile}{wximagesavefile} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf LoadFile(filename, type)}}{Loads an image of the given -type from a file} -\twocolitem{{\bf LoadMimeFile(filename, mimetype)}}{Loads an image of the given -mimetype from a file} -\end{twocollist}} -} - -\perlnote{Methods supported by wxPerl are:\par -\begin{itemize} -\item{bitmap->LoadFile( name, type )} -\item{bitmap->LoadFile( name, mimetype )} -\end{itemize} -} - - - -\membersection{wxImage::IsOk}\label{wximageisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if image data is present. - - -\membersection{RGBValue::RGBValue}\label{rgbvaluergbvalue} - -\func{}{RGBValue}{\param{unsigned char }{r = 0}, \param{unsigned char }{g = 0}, \param{unsigned char }{b = 0}} - -Constructor for RGBValue, an object that contains values for red, green and blue which -represent the value of a color. It is used by \helpref{wxImage::HSVtoRGB}{wximagehsvtorgb} -and \helpref{wxImage::RGBtoHSV}{wximagergbtohsv}, which -converts between HSV color space and RGB color space. - -\pythonnote{use wxImage\_RGBValue in wxPython} - - -\membersection{wxImage::RGBtoHSV}\label{wximagergbtohsv} - -\func{wxImage::HSVValue}{RGBtoHSV}{\param{const RGBValue\& }{rgb}} - -Converts a color in RGB color space to HSV color space. - - -\membersection{wxImage::RemoveHandler}\label{wximageremovehandler} - -\func{static bool}{RemoveHandler}{\param{const wxString\& }{name}} - -Finds the handler with the given name, and removes it. The handler -is not deleted. - -\docparam{name}{The handler name.} - -\wxheading{Return value} - -true if the handler was found and removed, false otherwise. - -\wxheading{See also} - -\helpref{wxImageHandler}{wximagehandler} - - -\membersection{wxImage::Mirror}\label{wximagemirror} - -\constfunc{wxImage}{Mirror}{\param{bool}{ horizontally = true}} - -Returns a mirrored copy of the image. The parameter {\it horizontally} -indicates the orientation. - - -\membersection{wxImage::Paste}\label{wximagepaste} - -\func{void}{Paste}{\param{const wxImage\& }{image}, \param{int }{x}, \param{int }{y}} - -Copy the data of the given \arg{image} to the specified position in this image. - -\membersection{wxImage::Replace}\label{wximagereplace} - -\func{void}{Replace}{\param{unsigned char}{ r1}, \param{unsigned char}{ g1}, \param{unsigned char}{ b1}, -\param{unsigned char}{ r2}, \param{unsigned char}{ g2}, \param{unsigned char}{ b2}} - -Replaces the colour specified by {\it r1,g1,b1} by the colour {\it r2,g2,b2}. - - -\membersection{wxImage::Rescale}\label{wximagerescale} - -\func{wxImage \&}{Rescale}{\param{int}{ width}, \param{int}{ height}, \param{int}{ quality = wxIMAGE\_QUALITY\_NORMAL}} - -Changes the size of the image in-place by scaling it: after a call to this function, -the image will have the given width and height. - -For a description of the {\it quality} parameter, see the \helpref{Scale}{wximagescale} function. - -Returns the (modified) image itself. - -\wxheading{See also} - -\helpref{Scale}{wximagescale} - - -\membersection{wxImage::Resize}\label{wximageresize} - -\func{wxImage \&}{Resize}{\param{const wxSize\&}{ size}, \param{const wxPoint&}{ pos}, \param{int}{ red = -1}, \param{int}{ green = -1}, \param{int}{ blue = -1}} - -Changes the size of the image in-place without scaling it by adding either a border -with the given colour or cropping as necessary. The image is pasted into a new -image with the given {\it size} and background colour at the position {\it pos} -relative to the upper left of the new image. If {\it red = green = blue = -1} -then use either the current mask colour if set or find, use, and set a -suitable mask colour for any newly exposed areas. - -Returns the (modified) image itself. - -\wxheading{See also} - -\helpref{Size}{wximagesize} - - -\membersection{wxImage::Rotate}\label{wximagerotate} - -\func{wxImage}{Rotate}{\param{double}{ angle}, \param{const wxPoint\& }{rotationCentre}, - \param{bool}{ interpolating = true}, \param{wxPoint*}{ offsetAfterRotation = NULL}} - -Rotates the image about the given point, by {\it angle} radians. Passing true -to {\it interpolating} results in better image quality, but is slower. If the -image has a mask, then the mask colour is used for the uncovered pixels in the -rotated image background. Else, black (rgb 0, 0, 0) will be used. - -Returns the rotated image, leaving this image intact. - - -\membersection{wxImage::RotateHue}\label{wximagerotatehue} - -\func{void}{RotateHue}{\param{double}{ angle}} - -Rotates the hue of each pixel in the image by {\it angle}, which is a double in -the range of -1.0 to +1.0, where -1.0 corresponds to -360 degrees and +1.0 corresponds -to +360 degrees. - - -\membersection{wxImage::Rotate90}\label{wximagerotate90} - -\constfunc{wxImage}{Rotate90}{\param{bool}{ clockwise = true}} - -Returns a copy of the image rotated 90 degrees in the direction -indicated by {\it clockwise}. - - -\membersection{wxImage::SaveFile}\label{wximagesavefile} - -\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{int}{ type}} - -\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}, \param{const wxString\&}{ mimetype}} - -Saves an image in the named file. - -\constfunc{bool}{SaveFile}{\param{const wxString\& }{name}} - -Saves an image in the named file. File type is determined from the extension of the -file name. Note that this function may fail if the extension is not recognized! You -can use one of the forms above to save images to files with non-standard extensions. - -\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int}{ type}} - -\constfunc{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{const wxString\&}{ mimetype}} - -Saves an image in the given stream. - -\wxheading{Parameters} - -\docparam{name}{Name of the file to save the image to.} - -\docparam{stream}{Opened output stream to save the image to.} - -\docparam{type}{Currently these types can be used: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf wxBITMAP\_TYPE\_BMP}}{Save a BMP image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_JPEG}}{Save a JPEG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNG}}{Save a PNG image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_PCX}}{Save a PCX image file (tries to save as 8-bit if possible, falls back to 24-bit otherwise).} -\twocolitem{{\bf wxBITMAP\_TYPE\_PNM}}{Save a PNM image file (as raw RGB always).} -\twocolitem{{\bf wxBITMAP\_TYPE\_TIFF}}{Save a TIFF image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_XPM}}{Save a XPM image file.} -\twocolitem{{\bf wxBITMAP\_TYPE\_ICO}}{Save a Windows icon file (ICO) (the size may be up to 255 wide by 127 high. A single image is saved in 8 colors at the size supplied).} -\twocolitem{{\bf wxBITMAP\_TYPE\_CUR}}{Save a Windows cursor file (CUR).} -\end{twocollist}} - -\docparam{mimetype}{MIME type.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{Remarks} - -Depending on how wxWidgets has been configured, not all formats may be available. - -Note: you can use \helpref{GetOptionInt}{wximagegetoptionint} to set the -hotspot before saving an image into a cursor file (default hotspot is in -the centre of the image): -\begin{verbatim} - image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotspotX); - image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotspotY); - -\end{verbatim} - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf SaveFile(filename, type)}}{Saves the image using the given -type to the named file} -\twocolitem{{\bf SaveMimeFile(filename, mimetype)}}{Saves the image using the given -mimetype to the named file} -\end{twocollist}} -} - -\perlnote{Methods supported by wxPerl are:\par -\begin{itemize} -\item{bitmap->SaveFile( name, type )} -\item{bitmap->SaveFile( name, mimetype )} -\end{itemize} -} - - -\membersection{wxImage::Scale}\label{wximagescale} - -\constfunc{wxImage}{Scale}{\param{int}{ width}, \param{int}{ height}, \param{int}{ quality = wxIMAGE\_QUALITY\_NORMAL}} - -Returns a scaled version of the image. This is also useful for -scaling bitmaps in general as the only other way to scale bitmaps -is to blit a wxMemoryDC into another wxMemoryDC. - -\docparam{quality}{Determines what method to use for resampling the image. Can be one of the following: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{{\bf wxIMAGE\_QUALITY\_NORMAL}}{Uses the normal default scaling method of pixel replication} -\twocolitem{{\bf wxIMAGE\_QUALITY\_HIGH}}{Uses bicubic and box averaging resampling methods for upsampling and downsampling respectively} -\end{twocollist}} - -It should be noted that although using wxIMAGE\_QUALITY\_HIGH produces much nicer -looking results it is a slower method. Downsampling will use the box averaging method -which seems to operate very fast. If you are upsampling larger images using -this method you will most likely notice that it is a bit slower and in extreme cases -it will be quite substantially slower as the bicubic algorithm has to process a lot of -data. - -It should also be noted that the high quality scaling may not work as expected -when using a single mask colour for transparency, as the scaling will blur the -image and will therefore remove the mask partially. Using the alpha channel -will work. - -Example: - -\begin{verbatim} - // get the bitmap from somewhere - wxBitmap bmp = ...; - - // rescale it to have size of 32*32 - if ( bmp.GetWidth() != 32 || bmp.GetHeight() != 32 ) - { - wxImage image = bmp.ConvertToImage(); - bmp = wxBitmap(image.Scale(32, 32)); - - // another possibility: - image.Rescale(32, 32); - bmp = image; - } - -\end{verbatim} - -\wxheading{See also} - -\helpref{Rescale}{wximagerescale} - - -\membersection{wxImage::Size}\label{wximagesize} - -\constfunc{wxImage}{Size}{\param{const wxSize\&}{ size}, \param{const wxPoint&}{ pos}, \param{int}{ red = -1}, \param{int}{ green = -1}, \param{int}{ blue = -1}} - -Returns a resized version of this image without scaling it by adding either a border -with the given colour or cropping as necessary. The image is pasted into a new -image with the given {\it size} and background colour at the position {\it pos} -relative to the upper left of the new image. If {\it red = green = blue = -1} -then the areas of the larger image not covered by this image are made -transparent by filling them with the image mask colour (which will be allocated -automatically if it isn't currently set). Otherwise, the areas will be filled -with the colour with the specified RGB components. - -\wxheading{See also} - -\helpref{Resize}{wximageresize} - - -\membersection{wxImage::SetAlpha}\label{wximagesetalpha} - -\func{void}{SetAlpha}{\param{unsigned char *}{alpha = {\tt NULL}},\param{bool}{ static\_data = \false}} - -This function is similar to \helpref{SetData}{wximagesetdata} and has similar -restrictions. The pointer passed to it may however be {\tt NULL} in which case -the function will allocate the alpha array internally -- this is useful to add -alpha channel data to an image which doesn't have any. If the pointer is not -{\tt NULL}, it must have one byte for each image pixel and be allocated with -{\tt malloc()}. wxImage takes ownership of the pointer and will free it unless -\arg{static\_data} parameter is set to \true -- in this case the caller should -do it. - -\func{void}{SetAlpha}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{alpha}} - -Sets the alpha value for the given pixel. This function should only be called -if the image has alpha channel data, use \helpref{HasAlpha}{wximagehasalpha} to -check for this. - - -\membersection{wxImage::SetData}\label{wximagesetdata} - -\func{void}{SetData}{\param{unsigned char*}{data}} - -Sets the image data without performing checks. The data given must have -the size (width*height*3) or results will be unexpected. Don't use this -method if you aren't sure you know what you are doing. - -The data must have been allocated with {\tt malloc()}, {\large {\bf NOT}} with -{\tt operator new}. - -After this call the pointer to the data is owned by the wxImage object, -that will be responsible for deleting it. -Do not pass to this function a pointer obtained through -\helpref{wxImage::GetData}{wximagegetdata}. - - -\membersection{wxImage::SetMask}\label{wximagesetmask} - -\func{void}{SetMask}{\param{bool}{ hasMask = true}} - -Specifies whether there is a mask or not. The area of the mask is determined by the current mask colour. - - -\membersection{wxImage::SetMaskColour}\label{wximagesetmaskcolour} - -\func{void}{SetMaskColour}{\param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}} - -Sets the mask colour for this image (and tells the image to use the mask). - - -\membersection{wxImage::SetMaskFromImage}\label{wximagesetmaskfromimage} - -\func{bool}{SetMaskFromImage}{\param{const wxImage\&}{ mask}, \param{unsigned char}{ mr}, \param{unsigned char}{ mg}, \param{unsigned char}{ mb}} - -\wxheading{Parameters} - -\docparam{mask}{The mask image to extract mask shape from. Must have same dimensions as the image.} - -\docparam{mr,mg,mb}{RGB value of pixels in {\it mask} that will be used to create the mask.} - -Sets image's mask so that the pixels that have RGB value of {\it mr,mg,mb} -in {\it mask} will be masked in the image. This is done by first finding an -unused colour in the image, setting this colour as the mask colour and then -using this colour to draw all pixels in the image who corresponding pixel -in {\it mask} has given RGB value. - -\wxheading{Return value} - -Returns false if {\it mask} does not have same dimensions as the image or if -there is no unused colour left. Returns true if the mask was successfully -applied. - -\wxheading{Notes} - -Note that this method involves computing the histogram, which is -computationally intensive operation. - - -\membersection{wxImage::SetOption}\label{wximagesetoption} - -\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{const wxString\&}{ value}} - -\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{int}{ value}} - -Sets a user-defined option. The function is case-insensitive to {\it name}. - -For example, when saving as a JPEG file, the option {\bf quality} is -used, which is a number between 0 and 100 (0 is terrible, 100 is very good). - -\wxheading{See also} - -\helpref{wxImage::GetOption}{wximagegetoption},\rtfsp -\helpref{wxImage::GetOptionInt}{wximagegetoptionint},\rtfsp -\helpref{wxImage::HasOption}{wximagehasoption} - - -\membersection{wxImage::SetPalette}\label{wximagesetpalette} - -\func{void}{SetPalette}{\param{const wxPalette\&}{ palette}} - -Associates a palette with the image. The palette may be used when converting -wxImage to wxBitmap (MSW only at present) or in file save operations (none as yet). - - -\membersection{wxImage::SetRGB}\label{wximagesetrgb} - -\func{void}{SetRGB}{\param{int }{x}, \param{int }{y}, \param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}} - -Sets the pixel at the given coordinate. This routine performs bounds-checks -for the coordinate so it can be considered a safe way to manipulate the -data, but in some cases this might be too slow so that the data will have to -be set directly. In that case you will have to get access to the image data -using the \helpref{GetData}{wximagegetdata} method. - - -\membersection{wxImage::SetRGB}\label{wximagesetrgbrect} - -\func{void}{SetRGB}{\param{wxRect \& }{rect}, \param{unsigned char }{red}, \param{unsigned char }{green}, \param{unsigned char }{blue}} - -Sets the colour of the pixels within the given rectangle. This routine performs -bounds-checks for the coordinate so it can be considered a safe way to manipulate the -data. - - -\membersection{wxImage::operator $=$}\label{wximageassign} - -\func{wxImage\& }{operator $=$}{\param{const wxImage\& }{image}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{image}{Image to assign.} - -\wxheading{Return value} - -Returns 'this' object. - - - -\section{\class{wxImageHandler}}\label{wximagehandler} - -This is the base class for implementing image file loading/saving, and image creation from data. -It is used within wxImage and is not normally seen by the application. - -If you wish to extend the capabilities of wxImage, derive a class from wxImageHandler -and add the handler using \helpref{wxImage::AddHandler}{wximageaddhandler} in your -application initialisation. - -\wxheading{Note (Legal Issue)} - -This software is based in part on the work of the Independent JPEG Group. - -(Applies when wxWidgets is linked with JPEG support. wxJPEGHandler uses libjpeg -created by IJG.) - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/image.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxImage}{wximage}, -\helpref{wxInitAllImageHandlers}{wxinitallimagehandlers} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxImageHandler::wxImageHandler}\label{wximagehandlerctor} - -\func{}{wxImageHandler}{\void} - -Default constructor. In your own default constructor, initialise the members -m\_name, m\_extension and m\_type. - - -\membersection{wxImageHandler::\destruct{wxImageHandler}}\label{wximagehandlerdtor} - -\func{}{\destruct{wxImageHandler}}{\void} - -Destroys the wxImageHandler object. - - -\membersection{wxImageHandler::GetName}\label{wximagehandlergetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Gets the name of this handler. - - -\membersection{wxImageHandler::GetExtension}\label{wximagehandlergetextension} - -\constfunc{const wxString\&}{GetExtension}{\void} - -Gets the file extension associated with this handler. - - -\membersection{wxImageHandler::GetImageCount}\label{wximagehandlergetimagecount} - -\func{int}{GetImageCount}{\param{wxInputStream\&}{ stream}} - -If the image file contains more than one image and the image handler is capable -of retrieving these individually, this function will return the number of -available images. - -\docparam{stream}{Opened input stream for reading image data. Currently, the stream must support seeking.} - -\wxheading{Return value} - -Number of available images. For most image handlers, this is 1 (exceptions -are TIFF and ICO formats). - - -\membersection{wxImageHandler::GetType}\label{wximagehandlergettype} - -\constfunc{long}{GetType}{\void} - -Gets the image type associated with this handler. - - -\membersection{wxImageHandler::GetMimeType}\label{wximagehandlergetmimetype} - -\constfunc{const wxString\&}{GetMimeType}{\void} - -Gets the MIME type associated with this handler. - - -\membersection{wxImageHandler::LoadFile}\label{wximagehandlerloadfile} - -\func{bool}{LoadFile}{\param{wxImage* }{image}, \param{wxInputStream\&}{ stream}, \param{bool}{ verbose=true}, \param{int}{ index=0}} - -Loads a image from a stream, putting the resulting data into {\it image}. If the image file contains -more than one image and the image handler is capable of retrieving these individually, {\it index} -indicates which image to read from the stream. - -\wxheading{Parameters} - -\docparam{image}{The image object which is to be affected by this operation.} - -\docparam{stream}{Opened input stream for reading image data.} - -\docparam{verbose}{If set to true, errors reported by the image handler will produce wxLogMessages.} - -\docparam{index}{The index of the image in the file (starting from zero).} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile}, -\helpref{wxImage::SaveFile}{wximagesavefile}, -\helpref{wxImageHandler::SaveFile}{wximagehandlersavefile} - - -\membersection{wxImageHandler::SaveFile}\label{wximagehandlersavefile} - -\func{bool}{SaveFile}{\param{wxImage* }{image}, \param{wxOutputStream\& }{stream}} - -Saves a image in the output stream. - -\wxheading{Parameters} - -\docparam{image}{The image object which is to be affected by this operation.} - -\docparam{stream}{Opened output stream for writing the data.} - -\wxheading{Return value} - -true if the operation succeeded, false otherwise. - -\wxheading{See also} - -\helpref{wxImage::LoadFile}{wximageloadfile}, -\helpref{wxImage::SaveFile}{wximagesavefile}, -\helpref{wxImageHandler::LoadFile}{wximagehandlerloadfile} - - -\membersection{wxImageHandler::SetName}\label{wximagehandlersetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the handler name. - -\wxheading{Parameters} - -\docparam{name}{Handler name.} - - -\membersection{wxImageHandler::SetExtension}\label{wximagehandlersetextension} - -\func{void}{SetExtension}{\param{const wxString\& }{extension}} - -Sets the handler extension. - -\wxheading{Parameters} - -\docparam{extension}{Handler extension.} - - -\membersection{wxImageHandler::SetMimeType}\label{wximagehandlersetmimetype} - -\func{void}{SetMimeType}{\param{const wxString\& }{mimetype}} - -Sets the handler MIME type. - -\wxheading{Parameters} - -\docparam{mimename}{Handler MIME type.} - - -\membersection{wxImageHandler::SetType}\label{wximagehandlersettype} - -\func{void}{SetType}{\param{long }{type}} - -Sets the handler type. - -\wxheading{Parameters} - -\docparam{name}{Handler type.} diff --git a/docs/latex/wx/imaglist.tex b/docs/latex/wx/imaglist.tex deleted file mode 100644 index 697aad2ea1..0000000000 --- a/docs/latex/wx/imaglist.tex +++ /dev/null @@ -1,214 +0,0 @@ -\section{\class{wxImageList}}\label{wximagelist} - -A wxImageList contains a list of images, which are stored in -an unspecified form. Images can have masks for transparent -drawing, and can be made from a variety of sources including bitmaps -and icons. - -wxImageList is used principally in conjunction with \helpref{wxTreeCtrl}{wxtreectrl} and -\rtfsp\helpref{wxListCtrl}{wxlistctrl} classes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/imaglist.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxListCtrl}{wxlistctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxImageList::wxImageList}\label{wximagelistconstr} - -\func{}{wxImageList}{\void} - -Default constructor. - -\func{}{wxImageList}{\param{int }{width}, \param{int }{height}, \param{bool }{mask = true},\rtfsp -\param{int }{initialCount = 1}} - -Constructor specifying the image size, whether image masks should be created, and the initial size of the list. - -\wxheading{Parameters} - -\docparam{width}{Width of the images in the list.} - -\docparam{height}{Height of the images in the list.} - -\docparam{mask}{true if masks should be created for all images.} - -\docparam{initialCount}{The initial size of the list.} - -\wxheading{See also} - -\helpref{wxImageList::Create}{wximagelistcreate} - -\membersection{wxImageList::Add}\label{wximagelistadd} - -\func{int}{Add}{\param{const wxBitmap\&}{ bitmap}, \param{const wxBitmap\&}{ mask = wxNullBitmap}} - -Adds a new image or images using a bitmap and optional mask bitmap. - -\func{int}{Add}{\param{const wxBitmap\&}{ bitmap}, \param{const wxColour\&}{ maskColour}} - -Adds a new image or images using a bitmap and mask colour. - -\func{int}{Add}{\param{const wxIcon\&}{ icon}} - -Adds a new image using an icon. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap representing the opaque areas of the image.} - -\docparam{mask}{Monochrome mask bitmap, representing the transparent areas of the image.} - -\docparam{maskColour}{Colour indicating which parts of the image are transparent.} - -\docparam{icon}{Icon to use as the image.} - -\wxheading{Return value} - -The new zero-based image index. - -\wxheading{Remarks} - -The original bitmap or icon is not affected by the {\bf Add} operation, and can be deleted afterwards. - -If the bitmap is wider than the images in the list, then the bitmap will automatically be split into smaller images, each matching the dimensions of the image list. This does not apply when adding icons. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Add(bitmap, mask=wxNullBitmap)}}{} -\twocolitem{{\bf AddWithColourMask(bitmap, colour)}}{} -\twocolitem{{\bf AddIcon(icon)}}{} -\end{twocollist}} -} -\membersection{wxImageList::Create}\label{wximagelistcreate} - -\func{bool}{Create}{\param{int }{width}, \param{int }{height}, \param{bool }{mask = true},\rtfsp -\param{int }{initialCount = 1}} - -Initializes the list. See \helpref{wxImageList::wxImageList}{wximagelistconstr} for details. - -\membersection{wxImageList::Draw}\label{wximagelistdraw} - -\func{bool}{Draw}{\param{int}{ index}, \param{wxDC\&}{ dc}, \param{int }{x},\rtfsp -\param{int }{y}, \param{int }{flags = wxIMAGELIST\_DRAW\_NORMAL},\rtfsp -\param{bool }{solidBackground = false}} - -Draws a specified image onto a device context. - -\wxheading{Parameters} - -\docparam{index}{Image index, starting from zero.} - -\docparam{dc}{Device context to draw on.} - -\docparam{x}{X position on the device context.} - -\docparam{y}{Y position on the device context.} - -\docparam{flags}{How to draw the image. A bitlist of a selection of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxIMAGELIST\_DRAW\_NORMAL}}{Draw the image normally.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_TRANSPARENT}}{Draw the image with transparency.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_SELECTED}}{Draw the image in selected state.} -\twocolitem{{\bf wxIMAGELIST\_DRAW\_FOCUSED}}{Draw the image in a focused state.} -\end{twocollist} -} - -\docparam{solidBackground}{For optimisation - drawing can be faster if the function is told -that the background is solid.} - -\membersection{wxImageList::GetBitmap}\label{wximagelistgetbitmap} - -\constfunc{wxBitmap}{GetBitmap}{\param{int }{index}} - -Returns the bitmap corresponding to the given index. - -\membersection{wxImageList::GetIcon}\label{wximagelistgeticon} - -\constfunc{wxIcon}{GetIcon}{\param{int }{index}} - -Returns the icon corresponding to the given index. - -\membersection{wxImageList::GetImageCount}\label{wximagelistgetimagecount} - -\constfunc{int}{GetImageCount}{\void} - -Returns the number of images in the list. - -\membersection{wxImageList::GetSize}\label{wximagelistgetsize} - -\constfunc{bool}{GetSize}{\param{int }{index}, \param{int\& }{width}, \param{int \&}{height}} - -Retrieves the size of the images in the list. Currently, the {\it index} -parameter is ignored as all images in the list have the same size. - -\wxheading{Parameters} - -\docparam{index}{currently unused, should be 0} - -\docparam{width}{receives the width of the images in the list} - -\docparam{height}{receives the height of the images in the list} - -\wxheading{Return value} - -true if the function succeeded, false if it failed (for example, if the image -list was not yet initialized). - -\membersection{wxImageList::Remove}\label{wximagelistremove} - -\func{bool}{Remove}{\param{int}{ index}} - -Removes the image at the given position. - -\membersection{wxImageList::RemoveAll}\label{wximagelistremoveall} - -\func{bool}{RemoveAll}{\void} - -Removes all the images in the list. - -\membersection{wxImageList::Replace}\label{wximagelistreplace} - -\func{bool}{Replace}{\param{int}{ index}, \param{const wxBitmap\&}{ bitmap}, \param{const wxBitmap\&}{ mask = wxNullBitmap}} - -Replaces the existing image with the new image. - -Windows only. - -\func{bool}{Replace}{\param{int}{ index}, \param{const wxIcon\&}{ icon}} - -Replaces the existing image with the new image. - -\wxheading{Parameters} - -\docparam{bitmap}{Bitmap representing the opaque areas of the image.} - -\docparam{mask}{Monochrome mask bitmap, representing the transparent areas of the image.} - -\docparam{icon}{Icon to use as the image.} - -\wxheading{Return value} - -true if the replacement was successful, false otherwise. - -\wxheading{Remarks} - -The original bitmap or icon is not affected by the {\bf Replace} operation, and can be deleted afterwards. - -\pythonnote{The second form is called {\tt ReplaceIcon} in wxPython.} - - diff --git a/docs/latex/wx/indent.bmp b/docs/latex/wx/indent.bmp deleted file mode 100644 index ddac2334f3f2f52fb12f889aaa6df3a60a2d28e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32886 zcmeHQPiS1*c~_v&O&5&<8R%O)Jbv=6Fj1%<dQ;;xCU0BX!kF<?1bgvbEun=?bJfvB z5taib-KN-R#HGk>R;8<8JM9#*@UokhfFG6-WlVXlEkuyWvkN!G0r&U&edpY{=gi1| zXUOIqY0f?8JKy<!-@kM2otdkvkN<4-2U9AmsQ-|yuh{D=Q@_LB)YK13($w#x%hxx) z`OT?Yn+sDn9{ktTm4EuTssCO4`qV$(`E2TME<Bm~pI_}weQV?IrvCiv2UCB)@|RQp za_5Ir&2#6b{_0!%Q$O7JeCqo3A5CRnmM=Z<TlPTuA}C)3y$N-aip|%4{Dmvezj*Qf zi?9Cp{rBGo;l=y-9TfH}#rMQQX3Y@;+7-qxUQ|2Qe(|fKiqDP|N>QiZ`KebfF=CdA zIn^;KdnO^}AYO?vv5i@n>H7(VvUmcU*9uZxx%O1(kU-X3CvQ))@7XoGly0(8hnk3P zY7S;-s!eB2p^11<tDR*begQ5C2J8CtdXEm^FJ?=OtI!7(9r2b5(u%}r1Q0W6nQ19} z^^M3n3Gr)AWD5LSz4c!Do>);qm_U7Bj0Qg-nI;2VD8r5spio^cxlEJL4e<+Uk4b5= zKAoNHWw#{41aJzwksidbANiEL71L?Fuu#$eaf$KWc$$1r&(?2e>vVubde0gI5a?;t zLopv9DD@mVRRTUD!G?;AiSTKQI8IJy*?JF2XgWL1IXsZB7@+Hkj!FJu0+7?#)h_eD zDj~$LxuG=upqHhHf0lmi4KIOdmO7521HkZ0-3jYP=%PxA;}5PV{|d_BjPy1t+V31- zk^)2NQ4}4l>0wEB6miHEbX}kghlcZy^O$6O0UwikqOg)ouLB4`F&NaYRUxVg0S3xC zia#W!L;25HC{mUF*K|%Eh`}huf?(+Wz?H$NWJcv<L7J6U+h3DToJ)7f|IRYOm+~b~ zJ?E7Y!u!DnLAHi89ufa&|1BiPhibj&637nnKjq_PZq)*lYv>J)djSSaMmoYNVLlX# zufqH<yq_5=%Rfx5Ofx|?*~p&aj{}Q6M0p&J|LFXO;FJcz{{v|4=LW)Y33cunY(jE@ zyg~*u+hrgG`uGoo#`$0Kg2`&}Cx%aA3iV$0G>4)A3Z~+NQf`kRr7r&ED5Epve~w}R zQWD1B7eLEqso+6OH*mT^e*hDdc2Vc3?S|fdFO$azA68k;&`jn(jTf+LYgOl0D89+5 zJ~GDY%mBV}5rZho;*t4}Nm5noPf`a<o5oNT%r;HUW_X<=-ej+#R2k^y^zfrRhW6L| z1mJW3W0!zo@dAx1jRp)-fioOeWimGv4LGSs#vj&kn(aR}h4PqM^c^VHWRJsAkuAey zEe5f&V{WHV#}A^F(Eb8MTArnKw7C8hB}_8O;dIeZc`Y2AV>S7bW=&hv^bd&ORcgif zPCw^=H&N(552Xw<iG!>(#kwGfOh=as)C(Cp|C2SuuX$sf|0UW~l3WKikZ3JsB=ztC z_6)StQ^7>Lr6Pq<?9lorkrVv>Cjqov@Xlvt-*{06%9&uw7ujYC*ran7iv~jb3y@`l z`TsWA$|C-<C(YCg>F7yY=sFlMVC6ppgkR+fTr!03Ss|MFM>F`6i&=@Hic%_Bz?7<D zN;l|WBG9u%B{C&ayV(CVH#%5<lqqZ*QO%iy;uIpm2E6%I77fCwvfj^!>?r>Vp5;h3 z|M$>x#TnxC22#Z^v2YgM<djecXi^450n6!*jR%w=|APk6z=!{Dn~y3Yg;08woW}2t z4n205MlmL4S+5NVo*j-q<WVFsxc@1MygUKheCp&{l!_t?d9;^O!%egUj2dXp8Jrl} zU#s}vU;h~lYT*czlLh3UO_Wh>plqX2dR_LjUs8sye{3FtM!U8DJ0m$@u>`@JO5yBM zHAhpR#mhndN=LS2e`yVdSt9#IgS)6IuRr8|sxVNQc$CYRmu-DVHeIBd#>)v33MLhK zA&Kw{@^VtS|FP|)Ll+<t+)4-zI$glR!vJ{@a|snkS;hG$Gl8Q}DgV5ra*AnKN;OOe zSK=CXsfhC<xoCwC68fS43sW97V^F#N8%Q$AhG$}ZjLbD!S;C;^oM#$BUf_SpiTA&! zq*AueKdl_wS=p2thOPP4N@R!S=@MlfH04yvXIpxX*#F7R{KtX*hd?&V!VaxtI%AB( z>X1SD1>7QnMQSnsT^g&8!8reFVs-h?&p&+OyfWmTsH4L(-}n*J5GXz+HCaZ1$SGdU zDE@v3sxtm$^PGkTC8)f6Rad1sgODYtn``D{q$-LMP(u8g!G->(uPJ<>3kACQ62gvm zzF`ET;L&X2gH6AnF&gpu<2=2XZ598UC6Zl=R&K%_ve#fu8>^WgRMf{Dz)G1a&j|a4 z1Xc)?|IK;QoHI+)jZ%R{lfSamj1Uqz%=*&*P|C+B{``ki=t;SX`LE(kHUv^6kdlST znk?nGOm>sVgTkKee>P1-RAKy|njo@b0`bAEbP|As7`UHL$!=kk@P3RVcsWJTHfR@r zx*%SE07PMqleMz{kxV%z!K9K+x^a+23=pbxwGqQMB^1;$8{CxGev?8~wf;(7g-mq3 z&Mz)5+H}^ik3Tqoe97qEWDS(8&VGt8#laTh7tTW1k1-#A`pNW?ykw>|-y+TE7~(KW z>)g4fkkKcGQ3tt3e8=jBhOa-!f{D)m*3PoEt(9(;Cu>XT!lgXl0(73Azn<o6c{iEO z^M$3kZkkheC(rMt%iE1?xsjY+N-yO1W;T=6O~k~6f`tvLh6=sNej3F>``!5uOu(NZ zz}ixC;nH@i4ILLYPi(E_Yd7}qt=;%=c4-#s(K$2Q=kwW{=Qq>kcDAt8*`D9+Y|a2* zMMe?cx~fC`nrMtYQN91OWOl0qfNb{C_QI!KsGUHg)veR{?AFGO*)8a`+f8!L?Lf`_ zJ*c|eNEepAv6=0Ey1D=41`(006lz8BX99=#g#`$fczpT+_IEGK|CjUqOI=A=+d6SQ z-=$yHx{GU9wy7R0TgmfHxE}cJbm5b=tz_ZS&3p&;Qv;s==z8k!ONjrJBOJv0e|-LN z+Za>f)Bn2%yO+AsXm)G0dvkeht8;S}`2FjOf0A{!FWg(+LoAk?@c-IocKXux=C<r7 zzDMQJ6bbPQ&rsTL1o}V8)3tmfH~Z7I>#O;L<=N}An``iYzDM_fccpvv=Ir&=o0fkY z-E{X{zPD@kYf}L#^RCn+#^(^-1O{CH(p2sy%>NvDek02fe^QbEd9u8g=WV<ewlfa5 z(+vLq2dsgmWpuGnmh;U{UdJ?w3+zW6<bVj@>jiv!|6}%d+Gz`ArkVX~y(!YXIxAQU z9nm?A$@SJef&e!5=bLFONzY}SQzk|6haw(?Duwtp^Ufgup(7`tXoPj?K8+!fSwNOS z<fhBW<fiJ#zRQ0Om^hAv_ytKA9^^m0R4G7Fv4de$hKC3o^SVfARUEjZ^KT7`tH@RM z{?}Pj+6Q@LGM9L9GRk8?eg4oTWE9zq^5XsUQT9vSGXK57l!RFx&$=V)Ar?>Y`;SG_ z%?<ruqqhj-@#Roj0<zjX&^At2B2gL|<x2yUB6gA~QvxKE<5oB;%D+PJ7-s(S`j<sm zYEhQc!ZikCV({D^o<zn%MJH8w*EBL(oPU1I?7vMz9iYTW5|<`rqNXocSo>EQB-?B? zZWV+YyQXS-lz#;nzydykl;@v{3~BHBCd}zq;h}(lN@rqRMscJv7{-6vOXlal<@uMF zS@eU?KB(uNN=Y0HUJ^n;GL|0Xrdm3HLzEc%UsEB}{NGbIt_DIdVm^piD)zY%QOy5T zy__|ie^d($n85uX+M}2}lHdaCn8|F9dPxYTdS27h{9kIMAcg)fykcPW@%M-WTRjsb zRhmw&KiG&HmmWH)(S|aRm>%NS%GvJoe}}*@nkZ+HxsW7Cqr~_{L7GCBQ3`5&|5X}8 zDrCj}Cy8E`{U>{-H)XMu*wwDJhiZZjikoQ%La?Y8+F$rFg$nC0uv$INqAfaL*czTN zILgW90V2`qLHseF@?v}^&f}BI8}6FqVDZLSZ)6>@Kq#E6P&&Kf^G}U4@Peucg5G}_ zrzVx+7;jn%RZxLr<jYiIV&I3&`ckP>R0DDR4IW~N<@Y~=xuVvfOI?pH@gRhPB>#CQ z4*8!PWa42Ee>aB*ozXbzwjng7#i%1wnWOmOu#95E6>cVR{51@Ba((Fj2haS@N9Lc_ zB27>xP-KW-Bgw0p=<^pvo&i<_&3m#Qe4x>^m%PMD2e8O~PASXK{x8K~x>$Yu(Jg1N zVJR6?0~X&YClXdd-H4YF+F!U)yHqISZ&Fax5`_}Yk|^!i8}$NNlQ_(vdS9py(h$D+ z$JuWf;I-mB2dV}tj`SQy9;KU~4-7vy#IJcA;QRYO7<q<KQ<wzo*-J@*;g=mTjk2h+ zgxX{Zkrg3+fh5&P-SXdSDL_il;M-PORHh9Cn+qa*iY7Guuj@}CR$-X{RD?$|zxpL^ z*k$KmPH+VSL-98#vg-Wrku57QuQDAy4!_RJ0D1kzg4$_6a{ZHq_GAA+jo6ys%cB=y z%8>EZFWDidN?%Su0X6c!HWQGgD%Zc`6nmv2Su!iMS2PheOGM*?1PB<~e>DhG;UIqg zVTFuDqa)-DOqODd((C<bIxnig?{ZwSBl}4cE5*Zp9)wgmqWN}3L3Q$BhSUi0YaR>t zAG-B_%*+<zz*Ka#3d|p`RfCDE+as93;ry3cN%}$0@(=f48m9taZPZm4mc&;zoc+uK z_?T`U%0CkUj{3B%|6@Hfngdlc(H(f>^;)*5<N(8_jL`pu_YUsAwe|1JC;U5?I(IH0 z2pxL?ofzWR%qp<d(`n}4EwJf_+gIoSb7M$+MbE7B#`754FYf>fp}N&u@8KrsqYB~Q zu(<dGb&!Xl{e_nZR^ESpt2YQOh6WvP$tw&FJcj*;{x6q+WJLIMx6UsZ)cyBfAu2s+ zQ<tzCj2+SO_Txj!`~lGc72?<YOtMz~{=k#p?db8-!~Wr(6BXj0s{8UG%Gs~69%E^G z>5qJ)e!QsIbnU69A1CUW5c=#(yW!yI-fa^<GjrG~ff`kOD#O5JD-G6R30xJe+>rB# zo(aX5B$u}r>3<>xLh<(>r}KOp<jLUonBDl2q~Gs<!t})}#4oao2M-^CWit2;V8ZN` z`>px5nlXMY%TB;EX*wDF!Ugw%z_kNM_NVm=pYSSSGWe&6o1`l@4-Xrr%8>uhFYjDI zSSEwtL&Oo>4eUSnpb0yX{mGy7`#Te}zX8c8X1}#V{95+W{J9pAbTalA@GOLHJdo|^ z3}62rm|By;Zx9#j4=JvKSj6@p93DOfc{2Eg!FH}N|ENifUnKjJ+<yp)q}#~1`%A!v zozeNP$YB4Y$*q60xwE^2ujZftUZMYiPp3@E{|!in(dos@pA&>7#GlSCQmbS_@$V5G zubJI@JmPFHbp8Jk@(*K^$-f4TOS8_w&gWEwCA7cD_P4SB;CtMLMuRF~jb;XnM|D;T zi~mNxv$)6IA3g|#UMrFd+gDncKN<Xn*}sDG?~;@p+JCc|Cl9IFWbg}tW}QQ=e>o$v zKT9uk>6ppjH|)B91vl#KnJQ8Ik^lWqn;4o5zU)u4jedXkfmXtB{_k(^d^$1whGji& z68OmCA7wFuae(tLyfhj6dq{X&0&`2)WuQ%*|JlU}uYdTK%Wm!yG+4s?dzyW;xcKSh z^52XHZ0B*CX+FIE;D6p=G8z9jXuP)F?D!t7kH3Gbr8BLIyti#K_&xgG%0>gmqZj(W zz+n0Wc`+IMMhTzInf-D8;k|eI1U{M!zRbfJ2n%cuYmp0J*!~O`pp&!Tdtj~sSECH$ zCn?^5O~(G7Ahib^-=ikO`yX7A;sRhY_=<m$cG}qtZ<b;S?VkpEmOh%?`#+eB_dgF0 z53v7fC5HGtsx(3S1)t5~{nwH;Bm1Ai{0YYYwz4mQ{fkTT|M30?a{6du@u$(aKW;CZ z*`ud{75e{a*2>az%}KrgYX~#zJZgQ|K=iQ<ME)<b%ZG;#!8Nh`=k@O#uK%3<L;D}z zfAI#>$>0}e|3-f0u#G_DcgX&O!zT|hFd6)YK$FhpD`+SeBm7#1H@}bIqsid+9O&FG z-($l8L;GKHu{A%@_dj&{`bFHKZRSVz>-z6AXf_%93$q&6zxkd8AkM#RxqJ9{V&~rm za}MwS@cyF>Bk7BH{h#li;>cv|@4@N#C4Lh|Qh^Y^$kKzI=EU$DGC5nt{ty3Cm1zH~ zC9Nm<eO#kY#{L4JD02@FFYnQOl-T}*{_ahXUju)o0N)#xl?E}>bYm$y;XVKv%0GMm zF`@O3@Y3v!hxLO7LIFPy+5c_6|9LI{fB)xi{6s8(q9mRE;*NPg#;+x~as4L7Uc>+2 z|M~FatSS`$SS<JGEFPZqc=kaA&i5bli+-pQ<zJC4zQOsAvW_g2Uotpc84a)3{ncM= zKk&2k3L^6w_A7H~1~25}TF4IGzG#Os{`)Vk{~qIySyBF{2d%lW?Y}bDtur3{_wRoF z({~~M)9k{|WqvjDTJ|fM!EBxmYmEWY`v6e<Qdfu7ot?{jj1Ojp_(j^eywe2zweSs* zA}M#c)*DQtGd{3i3S_H~@AF$8%?a^qS&F~0KpBO<QgEa!oC$f1{^;6}she;u{_sn> z`uGy@8UNV+OzZzOuYVx=Wxw9{K(PY<Q=4q1*_>;OG<5%IiuHd3Y@_TCToq|9X`?E0 z4o0Y{{E(#^hlfwvt{n(PXK{Iv*T3sO8s6M~`FsBvl%Kyi`--0zZD+eKwJrak$7<g1 zx1F*f{?qKr`6fSq>-<q=E3@W{-$eK$RE(7Vbqz+#<wAr1sZWaQ-*a^gaAOGZ3*uw{ zaZ5$BSV=~}S`NLeajnoq7X#jZAayzi58HlPAoLope_M54o9b3MrZ!bJ3&O3+&wuF= z@~lt-<XAND`G21uGP4Zr|JWKY0no9E$5(->p7_!uX7C)#BFD=b<p1IBc3adai}CsU z@^+v5FK$)FL^?u>!x2%a-1L_pOk<tr!N~j1c*s`q{;NUXj)?z$cfJWGXTK?Lb(kuY z^vdGm4?Z))?7{vwKkxh>3cWU+;nXb66nXG72UsH{Z{h!GK+9;U>i6Fh4Rs|p5Q<KE zq0dV*+7F$pzi*R&g~4kLD*qrbORipV*Z=55_{p~q^7{@ShoA(k!N^gaYc=7i0=({j zhdX)xZQw*euLeS|^|AxYzs`uQ?Kl5?6wXofK)9SrRWjPIsGt|H;Qo&*{HsBH{&hCm z%FzAge;kE#6dmgy>xMrl<)Thk8`dW=#4j=|KB_kA{PWkp%V}>?u$~>eX&_~Aa&6-t z7&j8*?;IX7|Hg!0lQnVyH1L}mj~AOf0SsOL@%o#8EjuRsg67M19JT+j!#(}tQT9KA z{i8qsd<*~A4Blyg{0FK5&$V?77d7Jbsf~}ze!3VsV6E}O%b-C?(u-~LOC0}Sz+cU= z`JeU=0swrf!=G%fhXL#WF+K)6M|}SM7XB}s=gn}t|D76T$;GyYqV-pUoA~+j$m{R7 zz@H`*f#`jAQG>=zy?z`jQLET~P{(P%ftdMNe_V-p|Bdf|n>bRd2%quk;O2mF<sVUK zr!?^ScXfNW-_|*4l>J#99{`LEpJ#6so^4Ev?8IZd|90dd`}y7E*z*4=Q2=E*0DN5w zU46X#IrZWdP=ue=o6Y*EvEdhrw|O7oHfJQb{^I8!azTh+OP=5v9?)w{{;$c)1Y+L# z_-|Z(e7UWWq5R7(_xm?6G$#Clj+dSEw(Lg?@Kk^~Uf;1q_Tw2M7kT|NE_`8doyiBN zxcRLl*&LdphWG`Dow4F`%T>X_`ybao`)xBnwjW%;AM5$A41nby6uOG*zc!S@ZWQN# zQlFW@=ig)VKhS8nazN)ln(geD2V(yt|9NY~*y0a#6{%5IGuf!u?eYVIF@AryzX`6f z;S&*yK(=!K(Y4q|i}W#R(f(gc9$r4Y5B4$P*Sz_F^5;LCe|C32<2vAAZ2$cyGh@wv z#$LvwV*b<q6Av%;MS~7Q_=hw94X!cSU%)~Z?f=Yw`Qz$d^Pp`C4CVjhi!+}?t#RQK z(2$^ot^YK;np`<(gU*52eq0)iG5>2o0E&XG__LK=-Rt+Y6cC#jANhYDYh_&aE61RO zj(-0;@%h2%^WO^c|KL#*?Bl|R`xSDkApg@Fo%uuDVxs(y?0=fwztAS@xbP{9E01m` zzJjreAlp_H$G?`{JFhKbO!zg%-Z_Br7ksw5yUq1SdSri*-sc<BG3GxotS}M~%`$WT zvvYC<XmS4C$F(_F#%8}+Y{t@lsj$H%CR%KN(zo?@ts#z}dW-iT1q4t7?K|%MUz&E# zKg4s9Om=KPKAO9Sp)uJ%Ef8}%5`hi8t{xr#<mS0n6P_6pegRQ3R11LkOh@LwLV=;! z{(GD-zWvA0owNP(@2|GpL#&`qjDO0)GCuoF9&5e-<m$ePKQrTzD=@})>|?^OIdOLI z>+k9g{O?9W{O4!ReD}Nf{ciN9XX<|IZ%6-C*(mBA5&sy5RtlE3%8A1(Pdxc}qoU&X z-usy=cg{S2_WU_sXYV|Je)hw=U%Pwu?!W)&?44)NpWVHC_Uzp=&tIH5a|SGD&pbc# z0^PG1cy{*=e$Ji&3r3%TrRiY?$CLH?iTT!tB=FDS0{m<L=XT5WkG+4iO9X$3s1a5= zfAd(r6j5i-K!Ay0=7Yw+Cth>;h(EE7;y*o&*~p4x_*2;dKz8ip&!z$Ab}u1<i3KDA zky(9F+~tn0JF)P*p31*tJ!~#yg#i4CZJhrYhM@Fgs44`0MSy?8v)-ewu5f@o934@t z=#&a-)To@~`~sote~KQ@hb#&Hy;7Keh5p}9cC2Tq>LeV)U*bYnL!>pNJ0ChlD9#G7 zFzgVV0E}=0g3w#eE>j6YBYge48z^D;n#cb^#J@!Dp$8$=BJolLco=dzm24O<Nz{q| zRH;(<H^wnO^W#_#_)a3&KhTo^poIleNJNHcwP_rSYHLy%HwHcyF(i=eix}6ZBm5K& zpsOqXXBYOT$0XCHW3uL>H-M4Z@UKP!&BTVN*WXj@sSlX=y7kS%B&z23b?YC0(8Dk; z0w@Q<KIjQwD@O#0=6t+Y#+hUZY)Vr_03CEs@C+l>O7%caD@iOqkp7}@Egn`1RL7=K zmGRHA_t5)Z4|vEOfjU1h(NaG0)WrpZ(7^CI=UV5?=SGz++4?QNy$y~(t&zhOeE$Wh zJpynkIo;ud@72Ij@6ls9o@<Fmes<GN_jHbDj^g2yo6Fh4R-S)?hoau-X8Rmw$uoSL z-dMX1X<)-^{i_39-}-}^c&$=0kXQDj!4`-3Bp_OklH<9mYg=izGt*tT--5|2`KjeB zzn*`4JIUuybvyYIAfYK90?H?$LK!zR@V^tBey5OBtN4ADG25wH*cj52P{@Kf)BZKs zzi_|1uq19gY;+~x%Cr4FJc6`)HOFH|$qP;KB-HJ-F27HwT;$(0L&OCk22@f06`}*S zj6XQhtvm@hU))`qy`FV<Z+1^FfjxnrmuI)P=$CwPse5{t>S2;Sgf*Y-=6en<O>Xrh z4%0Xh5sB6x^pgj8si>fdPfvpKY7-y+-@e(0{Y;1y&jDS2avgs89QfP$to)CO&<jsO zUE4wgz(%~pwpVm099rGF9j$*1shIu7gnAHv`5zMVt$q5R`T}Qrbt~`ew($tm{KlH) zUqVhi33cuI!WKmW4MMqz49f8SYeqxWx?xj3Uf6$BU@xTNJE~12w(#*JT;%_C;OBTa zD(DZ^I1D&^$Tg4q%x7`0Azcj(AQWddI9P521zXE#`*o@`NNMizL2BXN{Z^~lO4ge* zZL)M)&Ev^>yM?tNdWXYg!~;<~Ee^{FXh5fG6X7)KGaaA*3owCEtXv_MseBR&(*kMB z>dk72lLo@q|C2LWFn{>-Z-N8Z;;#;?O8%F$*KYWbn^W~X7n=+7BmYk;{!p1;mC#Oj zX&PPmA2S`v241_SAIa=bs+8*d9AE#KVq~=zuzAwJe?oNUAJ6dS$04UeiJ|KszyJ~z zG)9A3AWQTlv}3n5;Z5Uj{1ghKC=_Qc2_hx-e_>{as^Th*=YL$7yjyYaf1MC%G=xv1 zl>_t*9e@rT0Q_4$jL0KzRnuk!RYH9Y;pyo0@8fUoxYg5>V1SGA4z)`v6KZvo|4$hn z7^#2NDL>F+J_+Vn4-=sOyVTrNO=u}P!Y|}tU{F>6i)+G@x8IZH(Cr<5t3plstNbsI z19R}7XdUIP4$l9<+%Wz>dG^BnoGn|V{Q4)axYKXM?J~nNo`pgM^{b+y&fxzKKMU`F g`QrWI+hN|E5(zZ{i1L@^OAmbMfiFGqTlK*I1Jdi)Gynhq diff --git a/docs/latex/wx/indent.gif b/docs/latex/wx/indent.gif deleted file mode 100644 index 9a804d7f8a249f053a80d1f4d8ce2fd670f5976b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11265 zcmeI0<yRC8u*SDoQdp4gE&*4%Svn+^Zd_7I8br#aLmEV+yQI6Nr8{KlE=8n8!26#2 zH{6eRKFr6N`90^%bLNb)s*<RfB>)Hj-uwgb@$p#1WR*--lH2W8=SY@R=<RDdFYXUS z1WBHfs2}s2Emk{+)K}JH8Zq%^qwRV=$zkg*3hNoE>p|+1qh`m<dixe$$8t89p~l5} z=d^hBzP^EDZZpS%%EjyP*~NhM<kW4Su*DLa?VvDzpYeSIuaLCZbvuQ9HD}CZ<Kkkc zOIqsU>A)$q`mwmpc1-NHOTg@8z%jcXroKogxv`+cti3{EU&nd9qA0Dea<SbxD8p-C z$r;mLxn7X99TB^47qB?nxwziB9-q4H5r%0l($Ud77B)+(@LJEw!bIrJ4td4rI3M$w zZHL6VxHvDKkDt=(?Yjh={@0?q2-8=&UXr!#7=W2=l$MsXh%f3M^(x5lDrj~-{!fSF zfm3qzq3!^`w1D-DEKG>r>3_Ud0mpLAn9;`M<kVAcGmnzW$H)6wOxSu_>b76lc2KNb zNawzZS43Luv6}NDrgQOh{FGYnSo%M@)NPlr+1Y^g`XYnm#)<-)=IZ~@yj-kUXZyS| zs+||N2WCeDFx{1Y8DYmt&fD>+>(xd3|IOB1c`R&m%5Jt^QiPf91pI&e-zmWK2lBtg zc>Xv4w-W%IN5C=;tx9cPZz#@FZnNRq{QgK7i&~aSUBTc7N&&~!;kv?a35@bFw5s(* zBPpD^6=oy##bck~)}vXf4J8wqqMpaABMqffxrk6aI&lyAj6#(ZZjI6KvDs2&uHy_z zQ^mp;qXx&d(WYm!B^LcIJ?Z<ZhB85Y(%JGM1GG(UJEPh76ufI+>_$q0`&w!?z6MA& zI)Gbix4u4sRvHWB^=^GjWO<pR-d4Xi7J~a~JwUG}aw<>$!*$P%eCAA<ZX`LP5D11o zxx+zfbTt25Y4to=uj;sTSnv4b)17Xoxi=Lm@^3;`9+0|(G&(?PcC}xfEF?J%1*KoQ zeNgs%#HJ?*5Q?MCeU)M--O>5?=4=Pd@Xs{Jk#l|Su=t)T=IHo|pmGNGbkb0U=PFy- zW=ML{HA84n5_Iq_8ChiRn_%1h96;PwWUgNx+afxUHO=12jUxFivpt2}@3hy+R|gwD z-|F^_BBpIA8AD*#hlL^h(%%cio*pZkQMcHZS-M3xaWDlFTw+s4vQ*peePrb>-;SZ! zS0;zNAmOsHrCTktiPw^wL14=?AMM-mPad))Df$^?CcnI9r;gWdzGY2ALq}<HOe31@ z-q{ikGl!GXkr`)sm?)LzGC~)(Gt=!bblKMDip3rpnxlsb<g*d4b6UN*SnRO~eYqVU z^^n22FugG1lPbM=Vkf%X<#u3|<#dD-UH7$GICiT~v{Q9QkikiPTRfDvW_S?~Q(ICI zQ-O`0cHrQYzwmCi=)Ej8*ZV!`@|@y*@-zgfNGchP^=mN`K=vyH%|LlE>I7{IT>cPB zg^TWe){Fe^|NIr+P9}heU~UDD!s9@N_hXs%)ON``-+fA?k5VyzuW=_-p|Dkc?U+w_ zTJBi<KI5*s;lhR14Wxm1p)e#m?!Pfqq#6Juy=2b<kkYs%BFL2fUhz>f`T`<`G@MQ@ zXXu?10odNKCrUUPJNQFWh2@lVt?Pc2^=Jzc?2>N`bGP>GfwCifJ$v0w!H={Q^UhxH zO*sH^Pc_C@1QyW1c%d$GghmavfV}MBQsR_T@DR~6^T-VWEpF@G%Lo8wTwtlU#`351 zu!T>IhkuTnQb;80vhC86N2__z_t)dxFW-m}NsBxz&j)hUHef{-rfnTrxIUiEB$;YA ztbdYs>7DE`MPND%T5#G21GB4JW?eaJs(h*o4|0mBs)IZf96HU7Iu0i3n39fO<O#16 zKk~kt_?R-?S#buZMavT2%B?<73JVjFzIiPmk&TT&bpk+|{ykvSE_v(o%5VU|-US-g zyx%c)<P-!D&}cC#t#B3E41}pJ+gpTpv$n-5wqH#Du~VTAN@5Rwygf4OYkVCpu0r&V zsAHkn-ls-f@KhjNg8FME90C^%Hq<Q&AyX=Q0n+4+I_t}h?EygV=Vcw_Yvp!q$iy%o z-{8~v5&h*4%N;;4`jGK!T0(jXTQ!C}Z~v-ei|28EJ$vDf+8rbI_iYSx_#psoM3dd> z*T}s2VJ^x^O<J+pAM$$))X9&TV=tHD>}2vC|FV)Rd^ix|-h&sA#CUwR7%uO%DbzY% z%=dO=%z{4;%sL&Ct?-nwF*?HbhFAkTORq)tyxMeYJ3G~*WkBp)(a@yx`yk1ulJ<AH zk+;^LDy(e7KRDDml{)69j=#+{S)cuM7F)`<1RH-2j8J2HyeNDCrD%~i#pK5QUM;?( zP!X?wDoB&qzjy7^c1qXi9TajXcvLh!rtbw7y=VV>rX+LU2#nXS*Riq?<hu}k{YJAQ zzkI-+#kF7rF=Ue@Xdd3LZ+zjhrdKS~k2~o)E0{5-SF9e{-v1d|{zO8DP{JIiKT;Gg zk4Yo<mAKH?zkx~$Iu)d(29d))Z87o0Qn`dICUc9bjfn~m6-pB()sJx>T{zX_z4rSx z?puix;`j;GCm__<Xy|AEzHBC})c&dQkC8Q)TsD8qVn*LbP00y|jB#%5FVd-%A~qcF znlZGh6VvjZWS@R4&KZB+K0tH_6WAzw8o{b+zwGKfo>WXz8)e%WWS_8p$z2yWXm0l| zY#?y)AfVADSnyURajcN<durltA(V%v<1XqOq`fRtwi(SVx9ZK%brnwwO}sjy<!}<3 z!@H^{BHPjVHjuv@b`+6&Or+Wi2JY^kmP!;HyP6(q&~%j)1D@Gfds7<>Q0sNI7XJ)% zz!+rV>2-1voHi#uqlN|a+8%-2UZt)iZV$|K#OzIzJ5zj*Wfy%BN{jYy$TW&FNNHKw ztI}A)Guza;?oP9H@*BHb1_o||eI1`a+T?}MzU0zt+kwj)zyPcS1^8O0pw!a)U0DSx zT%lX}C#|)6e4c;C%n1e3XSO4$=TX=aaDm74wpaiJ-3GM{y2$9N+!v4hJZVPW@cC-| zK=R<v<oic{U^<#y^4IcoC}F4r29=>mv_BK-E?C4eVUHK<JIkO5Dw1&n(eP{nsm?CR zgVY_BSS$xVus1QZqLav?WJmQPnktLU_GDn_@z$ZMD%ZF)^P9UR+X&BUSGp(!PUce3 zrck}-gOklO)1?upPh%k6Pe&Pl%)+Gb=j^UGZ@{MDAk<}{s>Z2%%HMD4B>*h=go~!~ z=Gs|2utP-ZRKLHhx$z27uK@x8V1q2b`z!tYvzXgH-wN=<(X`x-P$mW4HyE9BxxP>a z5tvnh+BUw)?ayEDJ$K7#pNNS*;(M=myP@&8RNjpm1FV`{C~Jx^_zoFJoCB!G4%<=7 zHyP=Uf?2nE!h)Gzna~jWB1Rlpggnd$g~^Rj+Q#D|Bh7$Aculfl^I@P#)q;y`rvYu| zgtOdcz4LC)fP8;>j!>ZR2HsCB89ZbUv6)*Kiy$*J__C);?DVSU>qMMLC+TnrJ~gRe z0f;QI13v`)o92UXLZEifGDSs5tREUbXw!eglGL*9*@&P!2~SYjSrpA#&y%{oJIoRE zDr^`DlvWX+4Lu9La0z5J-;ngZ9Gxs4;u14HsNvc}?yiYTX;vu@>*nX7Urivcu)lVx zc+~t=>guY_F(f-2d(6qFN6HeGE^QAo5e_%c+{odTfuL&W2(K&UJEr`gD{W}W`cqn+ zezwk7mrc;X*u&}Wl2mO2!>v0cVj4Wb;a3EF&&c%tf<k`jo2)mRMyRqc5&$Of7PCXz z5ZD<fd@_7+hdkee(4K+!Ab~o4Xof8`QL9-)it&vImyMwh{U%r*g~PZB(L}jBariM% zdeVD9+_9k^Zy}Ud8r+A(Jl{hI>H;9b!8PaBzJ0QWFpxJ2$~TQe-s21VWGxfL?|J}K zsCBcafQY7r(ba{iQ+mUut-F=^?Bqk~H$fz4Sd!B?l6e53w*kA!0oayIx4)qR2rLpL zmH+_!$OW*nA0~EejTof}1}lmv4chm$C@A4z8J>Yd8-V7%77tsI&?J83CP-=%%9IC+ zn8xWP(fiO!9CsL%e;d+378+h>>>(N>gTRSR1j+XRBYGmkfiYM>pF$&uOl`Q-G)}CW zh{>mSVoUC|-z|y1Ys(f(vMQsBECI@Jkn|>$0*!6I=^=3$el{0zy9Lrj0V&`RnQ4e3 zOmCv>-OTr}H^bJ!$}%B9o0dZ$i5o=Q4Z`08l+W`6-BR?az{Vo6@p^z{(-6FAkYcTQ zRT*)OXacA%VE$HrUm$cfoPmoGXvm0-I0FkH{r6fpu*G2fq#%4lZE{$=tI%T-m39(2 zm%Plk*i}fty^w~ho0n`Jh!O@0-}LRp@kCKlHk5h^ARx+=eEiYGf?^4b93Dyw6nQNs zZ+AeSZ^1HdSo}RW9MQ>2#__I-)cS5f0TiFsJ7R6BxZeUFZYWWh7vUXPSiX616fB9- zAQeKX8Q})3ujg=bAbx}U0j2y=P*0@!d(uNNwjCTKe)w_B-exN~nL-Tv!4hXz0ZS$i z@C`&6YD^q{6h(UA`8QNfwk3u72x^9d<qd~W?uDW)KRY90$u~h>Zy_4fpl{6Slf&NA z_DR(oo+N4MR0SyutSn*EU_~Uh59~i#gK|XW8>!raRU+`opmL8${~+QF(ia&{w`nC@ zsM7-)oNEr39<byl#J~;flrytIEDa{gs8Z^s_6bCp2>JMpd0mWnb0n-7H+-jz?Jhk_ zAq0en2KjD+G~BT4ZaqJ8<!UNsZ8xgA!l3VGa!G#Y^7^JX4r^HHFhCWRCE=h5G>8@s zdimNaQaiizTP)2PRDUz|YqWnaSJwM7WsswEg<Le$kxTLns^<peI|Jz<15|agmki_d zVW6z<*+SxhA~A*ioSqCOIf2BH3!F@n(-7s&_sVDS_tuFd?Ph-ADH`I1_f*BdMT+$* zlEvE*`eNaKB2ylIL%+WhlVXIZM=~uq#G6v5MkMAxI%Ci-cO^~6@7<#_i2Ll*8ja|Y zxw45Kvb8`}7&s-rh(re)8^#f$R(Kv&hJzdJJyO`ZQ-%;J*qbf-dRS`99Y=8vro^zx zO@j~TDX6K5Y46a3?!^Y)GCeKDgivbAGpH6d6(5FzGZA9hh7NBJiM%V(G^)sD3uxv< zo!wGYW)#(6!VF?S<UJo{@<N5MGo~uSX4Hy-97;)?dItKXi6(l3;$Ma_RZmNm=}~|y zIo0vw%zW+&3b8n9<EjFR%9pJ1-nx}lejIAYOq@ti;t|A*D?9A22C(uaK0M*>0BDG- ziTGB&rGw=<4gTy{qy5bv3Wt8#tC_-itkrik9Wsvo?4D743`lv$)TG8s;8fqgOkv1a zWbhh`C?lWRjluv3Fy5@kDK8U^F4n!Z29L!;8G$?|^)~J$@M#=Rk+*y(EP+dagJq+( zB}6N)k((+4{J|2hj0yX%fd~?`BVMfu%UtzyRo#Rz^?=FH0`)q4!+%&B+ul*GG=4Sl zNu{jGw*=hRx8fq2QuE8{b+Ad$1tObJ!bk~2T+Ut2Dud%XM+q+^vecW366yvf9{Whi zNdNwrDFOzH+XPXJX7_N5NRzY%zRngrX_R<Zg;-)h!-S}9o0L76;7A}pBQ_%%oY3Pd zL}t!j-*$}g^yF?JDJbT9yrF^v8kZY$y(Rbp+`+g=V9ke2=~~1c7E|+yH(Dhp{N<-y zrf?`X3mp0O@&u%cq<Zp~N+u86Eics74a-5ybkdZWudktqD&j>)^X2a{gFP_I85COE zl4Gnl@6hw!K3-e^Y>&W_J<AAu=G(Z!a@67JI?{dW_o3j#bcq!R?EyjoppQ4L<g_31 zv_bNlV4N_h2OQEM+GEV$N3R?UR_jVTXI!SHrh$PxZ=eyV<nr0t0Ly-96p+>oL<lfI z!k|HJ%4W1O7OR7(`#~$(p|@V7#sGj);*ewKkn`%0i+Zya%{T4ekoO#)p8YK|F^N_{ zbxNpXF~b`llanfQwLu~%pfU;w&jZk<xT_-@JvvEW-w!2AjwmH!DV+_cXOVt$tjPN! ztm8YtqXXLd0;pNRdBAiP4pMlW30|Fp*_&P2Ui8gXaDCTq>V2D&?@vug&h#7rCjR@C zfp%EHtT=BA>^A+C<S$qYucA(JJb{z*dIlw5+4DEF!j?;yv8R{zM{mW+I5(FJ{TUXG z8HBqhJ0<xG?AF~~ZR`oNd2D+^fMqQn4weTh#DlTXBM)+WG67s+2up-)z6Ba0Av`S{ z{!8PM*b~2*CbFD^OWTa!1~8FtLN;1DuU01l9k3+P*d9m_-+!2tOox*BlHVrPu=IR> zJO&qwoAHlPkfQ)C4nV(Y9L?G(LmEnj9<VApSH1_V9V)@{Gvrvk7w?UklVWW)4~oa! z<6%bhZw5dUJ;SCbsNe>;&F{CFHjw3w!+kTGvp30DF>Bf$coEBB;5IJKS$D}j{`WVP z9U5eI1W}mAaXWJ}{aJ-;KJVo{pL;U>{kV*tl4DyE9E<Sp`dvygE1IeYXW2A(E9HJ~ z2GepIu{K+_ab8XjT+ZMf@<f3Kx0dtFmvf}B%_T8K56gq@%7qgUN|VK0cYtVR4q)7a ze|3=_g~bB+?7jk4@SbLU(U+1v(#P9OjQ|8|u<G@I`KD+1kRY#<imY#+e>|oy61Qn5 z(0M0GRoFd)+3sU<e?xs4fvQV$l4dJxdq7v@TfEv9##GZgpK3a$vE{Y5_Pz7Bo>+#c z1^Pq~Iit81?Q&}eFaZD(K>|@|?Am$VC8;dQmNjR%eG;Vrj~kXGY)Ju)jj~=ZyrSYk zLs_PAGyq_M>2h$>X2SQ)74wbOJq^R2QLLSfvL8NyFTiYh01-yu{C3^%sA(GDz&|B` z5Zs)KL##~-WTpyT;O*>C?%cx1am@=AKx(i*Mqbd>5?X8^igg8g;yq3vK-!%}4kk^+ z+t$zFgtbPx^dC4~nqj8~LP8*)B?vSJpn#gw)xdJl)075)9)ar04i?2u)s6N^d#EO$ z0RZHI+Qi{oIEZ8*ar>Gpi{ruwG`c^)tnKJ`dm>Kv8y2=Sr*UW*w+*VcTsZ#ol`V1K zEjUa-;&J8k>5fA1-fkPWA_|Ci)<HXb$RFQTIsP0Di%tt_4nD09UDU9(Roij`JiLVV zn$?I*P{7gH!&xnc@bF%jz4V~HphQ!;Kj31sQSFC~H@srOxL9FuurvziTZQ|X)DPu? zpEN?Ig`W=ersF0EsY1qM>GS?G3+VWd<5RwhP-&#Fey9tKG7JuV<U8#*t*Bo9MK-qc z>eCUup<Rwd0foz!q#MYmd-skI>%RN!*V5^-#pAj2DK<pQLIL^WU*FlKtp)fz1DmLr zooT~x5>n|Bz=Vz$Pj9iC{>>kh@nYlGKWP%-+-(TVZ<kHX;w3dU5~5lQbZl?f(X^;} zC)cWW{*>V?%JKKSpmzQ@3OP9B!;c>W?j>_x0D(=Y0AmTutBV@V-~WWqVvnjH+^<lC zVNz^zJgPW_Iah8|SFU(l-%hPISs{$b>s!Lj+dF+Z7$`ySlG**z?#uRw!wpHutt7#k z%N#>E`k4z7R80CC;CilxzZ;(G{r)^7<{#yslmE`aCR0<O2V8#1BGaAd*QZ?fFCn+D zC;!yXQ2?rtWD9pc=x<B3eyHc|MEqlY^@xN71pSI&8m6BHyMGC_Im2nLxuTN&6B2)p zmGH+(284D4WaHfzPf{?VGkrdVe|4!I{(7|%cgN!Rj*1!L<_1Q%2GXB{ai>9m8Au|Q zfV?EF0?uFpgYXkN=`c#|?STk~S>%AqjFnP6om3En%7clN2&s}I_!*8v#%)lhlIRKE zQqRB@iHJ>y%Bd1XM4gFRSq?{tv&UtaMd@;7X1?^a@S@f~){BOupY5ui=V=o$n$fz? zs00&$l_zq-XXncYE5j<!?3p+eCz4gmJ@h1mewlX%it+Kh<F7Tyk=`AyOZ?tP)E+k{ z7w7o9D3M+h*?Ox@T4nx~<VNW+V%7NaFoLDUiq4FGoQR{!^e=+uZ{50>$%cWw)zFiV z^g?9(tPf`wnCad)T{^Dx69*y}Gs*WsyK2_$4aI80N31|fD&@{s%LMngXT`e-x!4X@ zf|k|nk<JJ3X%N-2{e-`|ZbuQB087?AU>a{jRN%BbkwD?OY|K3)qAfK&)G9PLKGC{N zyzJshZ>$$yEZ)$uyjmydLr1&<me%-i0(HF_XE8QW9w=ObKm|C^AUL2>pUl(m_6!u- zUsuSetp{(LXS_rwj-ox}!s#9A2?cY4>_G^QVM^JMvuPR+`KQs43#Kci(=S$T-!e2< z0FhUKLz8fPUe5J2@6l5Nj-*5?Fn;Apn1c5Tz7ea8^|S22>&81)&AcBV3P~vo>lflk z{(jymDr9vz^%Q75rC61hSMYTaP;{x0!bipzr~EEGy4K)5>l6Jc{slo<O$OTeapHKL zMt$RFm}pj97vHcLWiyWp9wX(yWCeCkU1JrR+Tw3;Bu#`C%IxYw<w9y<8l<DPivElF z9{C@+#jcy>9B`;AJ7?o8USfowgq1}_hbrM<^o^ygi?0ejXS`$3WXr|mUzmCT))M08 z!@_FYvCOPdR0OTeQH)unH?Qo#Lqs+q$^s;Ej*(@kFcn}b$|8Dfg)3j2$G5QCU4q7U zGs!(!xCvY45o;?d3>MU2Q7C-N6vpBkC8EWrID~(k{g;1Yw@2+f7(30Rz5wUbi6Rap z;>d>5>V59%%Y$+m{_h7`S`EyVO7Zps;WW&`8B1TjbS&3o6<g4V$*gx{=BUo~8S7x( z&{bo03|i7-gd<@U3L@{L^<+;U?)03JxiJGjL2z_=$tZ|Oc`q2g?($y3<;;sCV$L=9 z8Ft!`OT->VG84!)=SkiUKWxf9=X3njbxoA^I_TXpL+#cD^#D2#x>WN`+W%+E!MZmM zeJ$O)Et#lb0_<d0>A)+Qvi#c<T601}PAT+#B@}vyiUU$dwZ8xN4;ux*67AVDp3tT5 zLC`-cZGz})hZwv3KI?q%<16?*%9>ah4Y->IK;e17Kv+*_01GFvL1Y-4f+e1QtK3~6 zqh%ONG|jPsFkyO(Mch-(H$nRq26Q$)$|Jxh5I{JgoGd_a7zn5nLKwc7iPrLBhRP`N zQrIfOVX=&wUXA??W=}$~#jFSkXM2+&FT&X7Y4D><l!TjS;!Km636=!PdcWI0Tfrm8 z`qJ=`L2fHlUQm_zrH8_!qH{D@l9iOKO+{kVB_>=~bIZ(!n>OR6zM0_II^0+0ktr-z za%-1$?^~Z>_e^T3-aOXInE<OfF`KJNs>P3D<&9b=pRghWV(nP~6Q)*CU7eLB{84Ni zJMcGJzo>w-!8h-vL9IH@pB{23V0bR^_Z!gnjTAN2(WeEonHvg54~YW>Ew*EZA0gzt z2O{ahjQJ`4Pm4;ar-2fWBuUq-cG48M6GRA|<dK1b=IIeqeX$F4fEUv<sk0F?hlWh< zRd!J}N44r<m#m~lW}Ydov91Mvp;xIze6Mf{P~611cM4qatyVQ|rTQ2kSsBl(&#Gog zML}VvoZ!mE!YH}R{HIvlB3jIY2D39+$UYXw#pN8(o$e?9FQu~o3};gf7T(K0J$O-7 zrkAsBpSOB!r9rf<vLCBmn(*V8)A0LTUNc#^?VY9e*wM?PAn!DPFH>6Gr;k%yi;)$E zQsw$s{(6;%WS^76xUzmwXT}GOrVA3=D3|vywmi;PebU$i@;d4j&Nfy1MSoV#JsSSJ zPg=qH<cFTFgwf)toju#pjtp_8@n0U{$`d>SZKf}}BjQ8#_V>JY;ZA*FN92V9if_Do z*fF7Y9}TstSgZ|KzJ6_9Y<I{i@Em!kh*>l!5ge@29x#6Dbe`C{e^qW0*<rCQCse&_ zmhf8Oa$&mr`m?mNyq7A;a@p}xkxrKjy5DK;p8mRc?aC#($7v%~uqkrUtISVV#rWFb zwwu-A*!|(z+6dpLUfgFR8dpPxUp1E!*~#HfRJ2xUE}y<o)@!d5W;}bWLZ^l#g}b|b zG`6H~G0a!+-iw$im?#QrtwX|IRF9fk0dy$_xyXOS=pX5vDz!@UyYTegrf-mcUKn*L za!UyJ-}>m7UJJi=dzGLrlUA=&R2^8alu5AHt47t2wa)DqNMpTX_ebUJY5gZpo~=<5 zlW}Y5!xc2`E3u2lVaMtt<Vt`wl+|!pGe;o1%JKF0cKFmNBx&ZJR_6ZL{cGo1Lk@n` zvAlKKc(}RkYnq?-9kad@x=JU>9h3);j?|-B279GXX&hGwDN7qdEApoB?dV#>%W8ah zas)81nCEUjwdC+)X+1em_g`G%f(l1S1)`o&R86t>mt$LfppJNyD_>so_DRSO%=pdx zX#{3=8puTDTx#Gq+}V8Df<@~>KGnRspH`mKcDLTrw30I}?A4i@eP|$kJ$_qKgC#*` z{()X^>D=GS8!KKX<U{7F!=P!^jJZLWB>6MK8kPZLUiZAoOhrW6^C5>qS1r2mMy9K` zT=IlxNx$aMBMKgsulYQdcTLBhYl_o->>3h|_`FZj)aH>T;WQNNGbB}0HtR{{l_-&P zq{v`5@-E~@@l*3UT77}}{GKz%0`dKMOI+13L^#~}jgvPj+U~A9xGNGUA5_!7Ni_SG z=r$W3R0`T;c@OKB4>}iI{=4zIkEGup1r{|z@6r7V9)I;X3`V!eshM~%iQ%!woBe7J zsjCv{ceEW@DArY_PXgeNCu-{D&4Fp`g4Z%-hXn?LshT~R_T+nS^xz{GM+2dUH;;c_ z*Yy$f!l1|nTmo`*$W`Dkf1)TE;54>0C12{pMN4Ydn3I1?=A-_@{kyQ^ef}*<HOm7I z^m%7OHw2C+UY>umDMh>4B{kM{R+xg1>UsPCBUC|iqkDj>gs?O8FMLE(NXQSc3_T!} zsVoGti7u!Gz{{vO6GI^?QYmMM6dWL+5{yd_x&{s%+zQ@sk}~QL73|}GGgbt9$(hH( z^tIqAeqty-pyzQV24Wuq0R*%A%HbmrXMZ0>aCl_a!C=^-6p;~vyH)o2Zr6aDG<{-^ zxKZEgT+Pr+G=2||a1+3E*fl7IBlJV+Pylzc0WGeMej*yh4Uxu$baOb%7LD=p$;1CG zlRq#Dy`_2Pz!Iyq{gr^WpLSKA=TZ)TSe8?=2hu5{CK&xxp&v3V%l-oakn9^69=NF; zNX~nD;n5qx)T4aZB^NNrGtjRKk$EAAC#8S@ccPz$Nl)ITN*6S@s8z(RG&xH!9y;<H zUVc4Y8N~9E#;25}?*YOS!BU-a2jI}qLn%%;;-3>`G9VZN#}V=xlv*8dh*ip%m7iUS zhaq}HVIU5kXp_|#->?vlA_UQ+Zvt#snmbCC&!$(aFl|CyRI##2X&{X^g~dFyF4;ak zc~j|yLe#Gdz_T(ikpiM>L_!MGeUbUu^%BiN+7nS167CR!uRW61s(eNx`($AF&k+K? z2{iHQqf$_QHvR3tf3an%(g!cOPiT221cLTZC66@Gqo9y=r@4tlh;cqMwXCbWLomlz z(Y#0nSlOL2tb|_+GA>f`k?nR13*jzPk=T-2oa?UZ91u}KaB?bVoC6?@Pw6>hJ_i$V zZ$_I4#!&F!(tcN<hk-Z|2q5s=bqX(q_OR^JJVmcz1X!@#zae@TQS8T68wwg}0DW?c zw&kgMeJr-zPLT$fcpP3~_xBt~^C*61lT?WweXm<+3&N#aZn>qZV5%(ex%krUn9$+R zl<^%fphB>-%M{N2Of30Xp(w$iN-VbuYa5GD7N~CVzVVxS({Pc@UeUO6YJ1jQ)k#(% zpMOy;|5OF-gtZ^rTqR#7f!xKa2sOT(z)SI$ENt34;}@M%L79Aa3MI$tB1+b6HvYWj z_%#j!f*oEh$7Yl3$y(^yNn#J?5gsHsyThoE<@IXexO2ghnY^vuR65JVwPYo<SVKu7 zA8<ugo>AD=K2=t!A<3OW+%yV$NvZ0^yGejFIM)R2asN_B^1qw8m8{|Zl6P)Kfhzz% z&6sW&BQN!QR1lYIj_9i+3|E|hXkQkM(lKjadu4tPn4-rt;RtC{gx5G^PQ0CKJDJWG zy5wNpnNX4ZLg!uL@Sz6(%@m_X3zG(NF^dPk0Lc)DWH06~_S5<EVb;@MrCgvo6)na; zF-!D@lW#)fkw@cNP=S<JmyC{${K@1Ke{C)Ex!Vt2!%<W-VXQyTS?hOnE-Tf*ALoH& zI)DA9e{Rdj?&-17QOkS3pjXpV${1A&XNuT~QJK)q3{X*jvhecfEPO&QmU_-YX!gCh zuC|7*zp1WXy+&|b(Vdq}S4OmmHPVO-Db*xn^)vrNy*^@1^O#kS`AQ%AT^$D*JHEal z_r%wO$9f6XDmFFSMexq}YhG>p@Fh+C>D{6w<VU{0f*+PIOI)6OJ_Pmk{b^gX;-UA3 zG0;uNa!;GsF71ym*bQ=6Xe|CUHEK_vwxl*7u#I1mSPYU{wlH7hBQx4%HiENFgjN~6 zU1<I@ZzLB!6ZxhgDn-qyVJ3~bW({vfg14$Fq}}Ub5^Sq!Rk>&$K4{dWiSuBLuE71t zT4JeRX2pxa4i-Bn)g8cS@%JvTh8aBlxcDz?fz15-MA!slN*pVgBbqE3^;-wtRM+mW z-!YGgU(*e@6_a^mC>pp_>5Y81(7+y8mv+L@^0F<=(>O3rD^h-iyJ4lIX*tXLYqt05 zBdLbbk8wRgZ=*)oi%M|jS32|BHDPlh!+6D|kyL%=Ct9TnMwN7WrD0|pclrd{DuJ_F z`>eEGd$=26$f-3QsJB52uhHzoT8`~%b=P7<oQ6M(Nny5jQI*kkfO<pK+!E=0U)LG~ zmNCS9bv=7>7Hgd?ZdE?JZ9=Y`L1CR=x9q{mg11WVkk066!MG~q)rq1JvT4P3b^Ya7 zbM*E~nd+2iQ~4-cAB0fzGR|bxe4}D-?MvXshLCZYqOm2*dXQRqC+_kO#}__3Rg+g6 z=)GzHw4+7nJIG?<q-l|SaB*S66wk-pDFyZ3F+V1dJ8n?7EL-pDr>^P3S{&V@mU;Fh zR?c$9mB}{mO09V%DIv#`H?0lFuh31)lrAe&IToPmbsFi-cA<?sGn6jws;eLBIqo*q zNh@uYAi#UuM#IX)d^@oTlO!b;^U;b}$vm`SyJB{Vl)UENny~wBDWgm81-T7B{ia5? zftI4#(tvgT;BKel00Xp2(o<%1fg8ukgkXIq;ivUA*)j+FGAo@;<4+U$A(*w`x~IHF zZs>r)gO!SfDe=O@b2@W@eLe80vCz8B`cIo7zn!Rw7RwUcpCR)S(tDm0C^k(q_D5aX z>oxN@+v+#!tl=+ACriu6_X_hQEOPW-*=e96*6gt`t${;r4|+C)Cbo~7Mxsu3E*eVq z@piOpUnHv6+SFc2Puj_xq7dY-h1W6f*eoNNU-M|TdhW+?n}2%7JCz$})119~MQism z&D7Cc!{1;{xa3Qqbg}3pvH$M_gFkJ1x2=*&+wTYMCg%6AuQrpzH(+UdZaJ$`AMDcx zZM{qh*Zjmjd$0csx1zeX$AuofBX?*g+Y?$eF+O>oT2iJ=W9z)!zUQs~nO^f&&^}Y? zkXipQbkD&p%}iJE;2F8&czFI@z;ki~gFmbGZ|w}IOV+KFcC2%bZRi&Q_TguhZA)v% zeEwZum<)4Z0LKi6I)lAXyFD47J%rt%T=vG6MrB_25>Nbz(F5S|tsKd|5Hpj`ijU?L zYOyuJXDV^XW`1J5qsj5!rs4HVB_@kS;lvWAkkWIhC?xZt6a5K$`;mbKl9O-Q)#s2~ zNi1d4*^<stbRlL>tU#b%N>2dSO#IDsoQ0a*&!=6xbH&@=4N#pEZ5Tf1kC}Csl?<9B z1WD%r0sdbh@y_)*Kf<bigjXML3NcM+4iG5r@(k_N-xVD1@5#zBTmIdf4|?4ichDGq zyhQIxw`g$@A$94q8RW8V2r7qXm|NiG{~<rUV?V7QTDVto+ME25N+*2ab26E8D8cqL zF$5&Q&+B~5iZ(f$Cfod#c2HS#pbo_(H=kKMw`r}fEUi7B&7;4DF%}Wdx)5vGN`G`F z6m}xra3G_wAphq|L3H*j`M0-&d2(y+{b%-x_1~v1jv8-%;!wB>6uT|cn_zNqD}z`* zE=F;rhl-)m_unsMetABfjuwP@v2TK84?I7lhssBVio$`ik(c*4m$F)yVu(wXUl&rj zUK%$S8dH}qe_bLIykvh}=x|)#1H5$@E>&7Cbw#cW{#_z#E)A3~6<%Ly{JSt)^41jb z))l$5VDLgwT%$OAP`ROkz9GRFzz5W|-P`Nekv<<_;1^NXjxE<t->#jPuHPJ7yWCv6 tV&AxIpnI5ZJVb6hm2bQZZ@gdM_`JP&8+qgV>E<1F>5ZSv4H^KD_#aXoTA=^{ diff --git a/docs/latex/wx/indlgevt.tex b/docs/latex/wx/indlgevt.tex deleted file mode 100644 index 45c8b77e95..0000000000 --- a/docs/latex/wx/indlgevt.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxInitDialogEvent}}\label{wxinitdialogevent} - -A wxInitDialogEvent is sent as a dialog or panel is being initialised. -Handlers for this event can transfer data to the window. -The default handler calls \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxInitDialogEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_INIT\_DIALOG(func)}}{Process a wxEVT\_INIT\_DIALOG event.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxInitDialogEvent::wxInitDialogEvent}\label{wxinitdialogeventctor} - -\func{}{wxInitDialogEvent}{\param{int }{id = 0}} - -Constructor. - - diff --git a/docs/latex/wx/inputstr.tex b/docs/latex/wx/inputstr.tex deleted file mode 100644 index 8fa169ef5d..0000000000 --- a/docs/latex/wx/inputstr.tex +++ /dev/null @@ -1,158 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxInputStream}}\label{wxinputstream} - -wxInputStream is an abstract base class which may not be used directly. - -\wxheading{Derived from} - -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- -\membersection{wxInputStream::wxInputStream}\label{wxinputstreamctor} - -\func{}{wxInputStream}{\void} - -Creates a dummy input stream. - -\membersection{wxInputStream::\destruct{wxInputStream}}\label{wxinputstreamdtor} - -\func{}{\destruct{wxInputStream}}{\void} - -Destructor. - -\membersection{wxInputStream::CanRead}\label{wxinputstreamcanread} - -\constfunc{bool}{CanRead}{\void} - -Returns true if some data is available in the stream right now, so that -calling \helpref{Read()}{wxinputstreamread} wouldn't block. - -\membersection{wxInputStream::GetC}\label{wxinputstreamgetc} - -\func{char}{GetC}{\void} - -Returns the first character in the input queue and removes it, -blocking until it appears if necessary. - -\wxheading{Note} - -If EOF, return value is undefined and LastRead() will return 0 and not 1. - -\membersection{wxInputStream::Eof}\label{wxinputstreameof} - -\constfunc{bool}{Eof}{\void} - -Returns true after an attempt has been made to read past the end of the -stream. - -\wxheading{Note} - -In wxWidgets 2.6.x and below some streams returned Eof() when the last -byte had been read rather than when an attempt had been made to read -past the last byte. If you want to avoid depending on one behaviour or -the other then call \helpref{LastRead()}{wxinputstreamlastread} to -check the number of bytes actually read. - -\membersection{wxInputStream::LastRead}\label{wxinputstreamlastread} - -\constfunc{size\_t}{LastRead}{\void} - -Returns the last number of bytes read. - -\membersection{wxInputStream::Peek}\label{wxinputstreampeek} - -\func{char}{Peek}{\void} - -Returns the first character in the input queue without removing it. - -\wxheading{Note} - -Blocks until something appears in the stream if necessary, if nothing -ever does (i.e. EOF) LastRead() will return 0 (and the return value is -undefined), otherwise LastRead() returns 1. - -\membersection{wxInputStream::Read}\label{wxinputstreamread} - -\func{wxInputStream\&}{Read}{\param{void *}{buffer}, \param{size\_t}{ size}} - -Reads the specified amount of bytes and stores the data in {\it buffer}. - -\wxheading{Warning} - -The buffer absolutely needs to have at least the specified size. - -\wxheading{Return value} - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\func{wxInputStream\&}{Read}{\param{wxOutputStream\&}{ stream\_out}} - -Reads data from the input queue and stores it in the specified output stream. -The data is read until an error is raised by one of the two streams. - -\wxheading{Return value} - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\membersection{wxInputStream::SeekI}\label{wxinputstreamseeki} - -\func{off\_t}{SeekI}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode = wxFromStart}} - -Changes the stream current position. - -\wxheading{Parameters} - -\docparam{pos}{Offset to seek to.} - -\docparam{mode}{One of {\bf wxFromStart}, {\bf wxFromEnd}, {\bf wxFromCurrent}.} - -\wxheading{Return value} - -The new stream position or wxInvalidOffset on error. - -\membersection{wxInputStream::TellI}\label{wxinputstreamtelli} - -\constfunc{off\_t}{TellI}{\void} - -Returns the current stream position. - -\membersection{wxInputStream::Ungetch}\label{wxinputstreamungetch} - -\func{size\_t}{Ungetch}{\param{const char*}{ buffer}, \param{size\_t}{ size}} - -This function is only useful in {\it read} mode. It is the manager of the "Write-Back" -buffer. This buffer acts like a temporary buffer where data which has to be -read during the next read IO call are put. This is useful when you get a big -block of data which you didn't want to read: you can replace them at the top -of the input queue by this way. - -Be very careful about this call in connection with calling SeekI() on the same -stream. Any call to SeekI() will invalidate any previous call to this method -(otherwise you could SeekI() to one position, "unread" a few bytes there, SeekI() -to another position and data would be either lost or corrupted). - -\wxheading{Return value} - -Returns the amount of bytes saved in the Write-Back buffer. - -\func{bool}{Ungetch}{\param{char }{c}} - -This function acts like the previous one except that it takes only one -character: it is sometimes shorter to use than the generic function. - diff --git a/docs/latex/wx/ipaddr.tex b/docs/latex/wx/ipaddr.tex deleted file mode 100644 index ffbd80f3bc..0000000000 --- a/docs/latex/wx/ipaddr.tex +++ /dev/null @@ -1,146 +0,0 @@ -% ---------------------------------------------------------------------------- -% CLASS: wxIPaddress -% ---------------------------------------------------------------------------- -\section{\class{wxIPaddress}}\label{wxipaddress} - -wxIPaddress is an abstract base class for all internet protocol address -objects. Currently, only \helpref{wxIPV4address}{wxipv4address} -is implemented. An experimental implementation for IPV6, wxIPV6address, -is being developed. - -\wxheading{Derived from} - -\helpref{wxSockAddress}{wxsockaddress}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -% ---------------------------------------------------------------------------- -% MEMBERS -% ---------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% Hostname -% - -\membersection{wxIPaddress::Hostname}\label{wxipaddresshostname} - -\func{virtual bool}{Hostname}{\param{const wxString\&}{ hostname}} - -Set the address to {\it hostname}, which can be a host name -or an IP-style address in a format dependent on implementation. - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid hostname or invalid IP address). - -\func{virtual wxString}{Hostname}{\void} - -Returns the hostname which matches the IP address. - -% -% IPAddress -% - -\membersection{wxIPaddress::IPAddress}\label{wxipaddressipaddress} - -\func{virtual wxString}{IPAddress}{\void} - -Returns a wxString containing the IP address. - -% -% Service -% - -\membersection{wxIPaddress::Service}\label{wxipaddressservice} - -\func{virtual bool}{Service}{\param{const wxString\&}{ service}} - -Set the port to that corresponding to the specified {\it service}. - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid service). - -\func{virtual bool}{Service}{\param{unsigned short}{ service}} - -Set the port to that corresponding to the specified {\it service}. - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid service). - -\func{virtual unsigned short}{Service}{\void} - -Returns the current service. - -% -% AnyAddress -% - -\membersection{wxIPaddress::AnyAddress}\label{wxIPaddressanyaddress} - -\func{virtual bool}{AnyAddress}{\void} - -Internally, this is the same as setting the IP address -to {\bf INADDR\_ANY}. - -On IPV4 implementations, 0.0.0.0 - -On IPV6 implementations, :: - -\wxheading{Return value} - -Returns true on success, false if something went wrong. - -% -% BroadcastAddress -% - -\membersection{wxIPaddress::BroadcastAddress}\label{wxipaddressbroadcastaddress} - -\func{virtual bool}{BroadcastAddress}{\void} - -Internally, this is the same as setting the IP address -to {\bf INADDR\_BROADCAST}. - -On IPV4 implementations, 255.255.255.255 - -\wxheading{Return value} - -Returns true on success, false if something went wrong. - -% -% LocalHost -% - -\membersection{wxIPaddress::LocalHost}\label{wxipaddresslocalhost} - -\func{virtual bool}{LocalHost}{\void} - -Set address to localhost. - -On IPV4 implementations, 127.0.0.1 - -On IPV6 implementations, ::1 - -\wxheading{Return value} - -Returns true on success, false if something went wrong. - -\membersection{wxIPaddress::IsLocalHost}\label{wxipaddressislocalhost} - -\func{virtual bool}{IsLocalHost}{\void} - -Determines if current address is set to localhost. - -\wxheading{Return value} - -Returns true if address is localhost, false if internet address. - diff --git a/docs/latex/wx/ipcclint.tex b/docs/latex/wx/ipcclint.tex deleted file mode 100644 index a229357d96..0000000000 --- a/docs/latex/wx/ipcclint.tex +++ /dev/null @@ -1,86 +0,0 @@ -\section{\class{wxClient}}\label{wxclient} - -A wxClient object represents the client part of a client-server -DDE-like (Dynamic Data Exchange) conversation. The actual -DDE-based implementation using wxDDEClient is available on Windows -only, but a platform-independent, socket-based version of this -API is available using wxTCPClient, which has the same API. - -To create a client which can communicate with a suitable server, -you need to derive a class from wxConnection and another from -wxClient. The custom wxConnection class will intercept -communications in a `conversation' with a server, and the custom -wxClient is required so that a user-overridden -\helpref{wxClient::OnMakeConnection}{wxclientonmakeconnection} -member can return a wxConnection of the required class, when a -connection is made. Look at the IPC sample and the -\helpref{Interprocess communications overview}{ipcoverview} for -an example of how to do this. - -\wxheading{Derived from} - -wxClientBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/ipc.h> - -\wxheading{See also} - -\helpref{wxServer}{wxserver}, -\helpref{wxConnection}{wxconnection}, \helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxClient::wxClient}\label{wxclientctor} - -\func{}{wxClient}{\void} - -Constructs a client object. - -\membersection{wxClient::MakeConnection}\label{wxclientmakeconnection} - -\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} - -Tries to make a connection with a server by host (machine name -under UNIX - use 'localhost' for same machine; ignored when using -native DDE in Windows), service name and topic string. If the -server allows a connection, a wxConnection object will be -returned. The type of wxConnection returned can be altered by -overriding the -\helpref{wxClient::OnMakeConnection}{wxclientonmakeconnection} -member to return your own derived connection object. - -Under Unix, the service name may be either an integer port -identifier in which case an Internet domain socket will be used -for the communications, or a valid file name (which shouldn't -exist and will be deleted afterwards) in which case a Unix domain -socket is created. - -{\bf SECURITY NOTE:} Using Internet domain sockets if extremely -insecure for IPC as there is absolutely no access control for -them, use Unix domain sockets whenever possible! - -\membersection{wxClient::OnMakeConnection}\label{wxclientonmakeconnection} - -\func{wxConnectionBase *}{OnMakeConnection}{\void} - -Called by \helpref{wxClient::MakeConnection}{wxclientmakeconnection}, by -default this simply returns a new wxConnection object. Override -this method to return a wxConnection descendant customised for the -application. - -The advantage of deriving your own connection class is that it -will enable you to intercept messages initiated by the server, -such as \helpref{wxConnection::OnAdvise}{wxconnectiononadvise}. You -may also want to store application-specific data in instances of -the new class. - -\membersection{wxClient::ValidHost}\label{wxclientvalidhost} - -\func{bool}{ValidHost}{\param{const wxString\& }{host}} - -Returns true if this is a valid host name, false otherwise. This always -returns true under MS Windows. - diff --git a/docs/latex/wx/ipcconn.tex b/docs/latex/wx/ipcconn.tex deleted file mode 100644 index fee3d59ff9..0000000000 --- a/docs/latex/wx/ipcconn.tex +++ /dev/null @@ -1,245 +0,0 @@ -\section{\class{wxConnection}}\label{wxconnection} - -A wxConnection object represents the connection between a client -and a server. It is created by making a connection using a\rtfsp -\helpref{wxClient}{wxclient} object, or by the acceptance of a -connection by a\rtfsp \helpref{wxServer}{wxserver} object. The -bulk of a DDE-like (Dynamic Data Exchange) conversation is -controlled by calling members in a {\bf wxConnection} object or -by overriding its members. The actual DDE-based implementation -using wxDDEConnection is available on Windows only, but a -platform-independent, socket-based version of this API is -available using wxTCPConnection, which has the same API. - -An application should normally derive a new connection class from -wxConnection, in order to override the communication event -handlers to do something interesting. - -\wxheading{Derived from} - -wxConnectionBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/ipc.h> - -\wxheading{Types} - -\index{wxIPCFormat}wxIPCFormat is defined as follows: - -\begin{verbatim} -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UTF16TEXT = 13, /* CF_UNICODE */ - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_UTF8TEXT = 17, - wxIPC_UTF32TEXT = 18, -#if SIZEOF_WCHAR_T == 2 - wxIPC_UNICODETEXT = wxIPC_UTF16TEXT, -#elif SIZEOF_WCHAR_T == 4 - wxIPC_UNICODETEXT = wxIPC_UTF32TEXT, -#endif - wxIPC_PRIVATE = 20 -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxClient}{wxclient}, \helpref{wxServer}{wxserver}, -\helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxConnection::wxConnection}\label{wxconnectionctor} - -\func{}{wxConnection}{\void} - -\func{}{wxConnection}{\param{void* }{buffer}, \param{size\_t}{ size}} - -Constructs a connection object. If no user-defined connection -object is to be derived from wxConnection, then the constructor -should not be called directly, since the default connection -object will be provided on requesting (or accepting) a -connection. However, if the user defines his or her own derived -connection object, the \helpref{wxServer::OnAcceptConnection}{wxserveronacceptconnection}\rtfsp -and/or \helpref{wxClient::OnMakeConnection}{wxclientonmakeconnection} -members should be replaced by functions which construct the new -connection object. - -If the arguments of the wxConnection constructor are void then -the wxConnection object manages its own connection buffer, -allocating memory as needed. A programmer-supplied buffer cannot -be increased if necessary, and the program will assert if it is -not large enough. The programmer-supplied buffer is included -mainly for backwards compatibility. - -\membersection{wxConnection::Advise}\label{wxconnectionadvise} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the server application to advise the client of a change -in the data associated with the given item. Causes the client -connection's \helpref{wxConnection::OnAdvise}{wxconnectiononadvise} member -to be called. Returns true if successful. - -\membersection{wxConnection::Execute}\label{wxconnectionexecute} - -\func{bool}{Execute}{\param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Execute}{\param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wxString& }{data}} - -Called by the client application to execute a command on the -server. Can also be used to transfer arbitrary data to the server -(similar to \helpref{wxConnection::Poke}{wxconnectionpoke} in -that respect). Causes the server connection's \helpref{wxConnection::OnExec}{wxconnectiononexec} -member to be called. Returns true if successful. - -\membersection{wxConnection::Disconnect}\label{wxconnectiondisconnect} - -\func{bool}{Disconnect}{\void} - -Called by the client or server application to disconnect from the -other program; it causes the \helpref{wxConnection::OnDisconnect}{wxconnectionondisconnect} -message to be sent to the corresponding connection object in the -other program. Returns true if successful or already disconnected. -The application that calls {\bf Disconnect} must explicitly delete -its side of the connection. - -\membersection{wxConnection::OnAdvise}\label{wxconnectiononadvise} - -\func{virtual bool}{OnAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the client application when the server notifies -it of a change in the data associated with the given item, using -\helpref{Advise}{wxconnectionadvise}. - -\membersection{wxConnection::OnDisconnect}\label{wxconnectionondisconnect} - -\func{virtual bool}{OnDisconnect}{\void} - -Message sent to the client or server application when the other -application notifies it to end the connection. The default -behaviour is to delete the connection object and return true, so -applications should generally override {\bf OnDisconnect} -(finally calling the inherited method as well) so that they know -the connection object is no longer available. - -\membersection{wxConnection::OnExec}\label{wxconnectiononexec} - -\func{virtual bool}{OnExec}{\param{const wxString\& }{topic}, \param{const wxString\& }{data}} - -Message sent to the server application when the client notifies -it to execute the given data, using \helpref{Execute}{wxconnectionexecute}. -Note that there is no item associated with this message. - -\membersection{wxConnection::OnPoke}\label{wxconnectiononpoke} - -\func{virtual bool}{OnPoke}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client notifies it to -accept the given data. - -\membersection{wxConnection::OnRequest}\label{wxconnectiononrequest} - -\func{virtual const void*}{OnRequest}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{size\_t * }{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client calls -\helpref{wxConnection::Request}{wxconnectionrequest}. The -server's \helpref{OnRequest}{wxconnectiononrequest} method -should respond by returning a character string, or NULL to -indicate no data, and setting *size. The character string must of -course persist after the call returns. - -\membersection{wxConnection::OnStartAdvise}\label{wxconnectiononstartadvise} - -\func{virtual bool}{OnStartAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to start an `advise loop' for the given topic and item. The -server can refuse to participate by returning false. - -\membersection{wxConnection::OnStopAdvise}\label{wxconnectiononstopadvise} - -\func{virtual bool}{OnStopAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to stop an `advise loop' for the given topic and item. The -server can refuse to stop the advise loop by returning false, although -this doesn't have much meaning in practice. - -\membersection{wxConnection::Poke}\label{wxconnectionpoke} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the client application to poke data into the server. -Can be used to transfer arbitrary data to the server. Causes the -server connection's \helpref{wxConnection::OnPoke}{wxconnectiononpoke} member to -be called. If size is -1 the size is computed from the string -length of data. - -Returns true if successful. - -\membersection{wxConnection::Request}\label{wxconnectionrequest} - -\func{const void*}{Request}{\param{const wxString\& }{item}, \param{size\_t *}{size}, \param{wxIPCFormat }{format = wxIPC\_TEXT}} - -Called by the client application to request data from the server. -Causes the server connection's \helpref{wxConnection::OnRequest}{wxconnectiononrequest} -member to be called. Size may be NULL or a pointer to a variable -to receive the size of the requested item. - -Returns a character string (actually a pointer to the -connection's buffer) if successful, NULL otherwise. This buffer -does not need to be deleted. - -\membersection{wxConnection::StartAdvise}\label{wxconnectionstartadvise} - -\func{bool}{StartAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -started with the server. Causes the server connection's -\helpref{wxConnection::OnStartAdvise}{wxconnectiononstartadvise}\rtfsp -member to be called. Returns true if the server okays it, false -otherwise. - -\membersection{wxConnection::StopAdvise}\label{wxconnectionstopadvise} - -\func{bool}{StopAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -stopped. Causes the server connection's \helpref{wxConnection::OnStopAdvise}{wxconnectiononstopadvise} -member to be called. Returns true if the server okays it, false -otherwise. - diff --git a/docs/latex/wx/ipcservr.tex b/docs/latex/wx/ipcservr.tex deleted file mode 100644 index 5bcad63735..0000000000 --- a/docs/latex/wx/ipcservr.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{\class{wxServer}}\label{wxserver} - -A wxServer object represents the server part of a client-server -DDE-like (Dynamic Data Exchange) conversation. The actual -DDE-based implementation using wxDDEServer is available on Windows -only, but a platform-independent, socket-based version of this -API is available using wxTCPServer, which has the same API. - -To create a server which can communicate with a suitable client, -you need to derive a class from wxConnection and another from -wxServer. The custom wxConnection class will intercept -communications in a `conversation' with a client, and the custom -wxServer is required so that a user-overridden \helpref{wxServer::OnAcceptConnection}{wxserveronacceptconnection} -member can return a wxConnection of the required class, when a -connection is made. Look at the IPC sample and the \helpref{Interprocess communications overview}{ipcoverview} for -an example of how to do this. - -\wxheading{Derived from} - -wxServerBase - -\wxheading{Include files} - -<wx/ipc.h> - -\wxheading{See also} - -\helpref{wxClient}{wxclient}, -\helpref{wxConnection}{wxddeconnection}, \helpref{IPC -overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxServer::wxServer}\label{wxserverctor} - -\func{}{wxServer}{\void} - -Constructs a server object. - -\membersection{wxServer::Create}\label{wxservercreate} - -\func{bool}{Create}{\param{const wxString\& }{service}} - -Registers the server using the given service name. Under Unix, -the service name may be either an integer port identifier in -which case an Internet domain socket will be used for the -communications, or a valid file name (which shouldn't exist and -will be deleted afterwards) in which case a Unix domain socket is -created. false is returned if the call failed (for example, the -port number is already in use). - -\membersection{wxServer::OnAcceptConnection}\label{wxserveronacceptconnection} - -\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}} - -When a client calls {\bf MakeConnection}, the server receives the -message and this member is called. The application should derive a -member to intercept this message and return a connection object of -either the standard wxConnection type, or (more likely) of a -user-derived type. - -If the topic is {\bf STDIO}, the application may wish to refuse the -connection. Under UNIX, when a server is created the -OnAcceptConnection message is always sent for standard input and -output, but in the context of DDE messages it doesn't make a lot -of sense. - diff --git a/docs/latex/wx/ipvaddr.tex b/docs/latex/wx/ipvaddr.tex deleted file mode 100644 index 74bc9787b3..0000000000 --- a/docs/latex/wx/ipvaddr.tex +++ /dev/null @@ -1,113 +0,0 @@ -% ---------------------------------------------------------------------------- -% CLASS: wxIPV4address -% ---------------------------------------------------------------------------- -\section{\class{wxIPV4address}}\label{wxipv4address} - -\wxheading{Derived from} - -\helpref{wxIPaddress}{wxipaddress}\\ -\helpref{wxSockAddress}{wxsockaddress}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -% ---------------------------------------------------------------------------- -% MEMBERS -% ---------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% Hostname -% - -\membersection{wxIPV4address::Hostname}\label{wxipv4addresshostname} - -\func{bool}{Hostname}{\param{const wxString\&}{ hostname}} - -Set the address to {\it hostname}, which can be a host name -or an IP-style address in dot notation (a.b.c.d) - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid hostname or invalid IP address). - -\func{wxString}{Hostname}{\void} - -Returns the hostname which matches the IP address. - -% -% IPAddress -% - -\membersection{wxIPV4address::IPAddress}\label{wxipv4addressipaddress} - -\func{wxString}{IPAddress}{\void} - -Returns a wxString containing the IP address in dot quad (127.0.0.1) format. - -% -% Service -% - -\membersection{wxIPV4address::Service}\label{wxipv4addressservice} - -\func{bool}{Service}{\param{const wxString\&}{ service}} - -Set the port to that corresponding to the specified {\it service}. - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid service). - -\func{bool}{Service}{\param{unsigned short}{ service}} - -Set the port to that corresponding to the specified {\it service}. - -\wxheading{Return value} - -Returns true on success, false if something goes wrong -(invalid service). - -\func{unsigned short}{Service}{\void} - -Returns the current service. - -% -% AnyAddress -% - -\membersection{wxIPV4address::AnyAddress}\label{wxipv4addressanyaddress} - -\func{bool}{AnyAddress}{\void} - -Set address to any of the addresses of the current machine. Whenever -possible, use this function instead of \helpref{wxIPV4address::LocalHost}{wxipv4addresslocalhost}, -as this correctly handles multi-homed hosts and avoids other small -problems. Internally, this is the same as setting the IP address -to {\bf INADDR\_ANY}. - -\wxheading{Return value} - -Returns true on success, false if something went wrong. - -% -% LocalHost -% - -\membersection{wxIPV4address::LocalHost}\label{wxipv4addresslocalhost} - -\func{bool}{LocalHost}{\void} - -Set address to localhost (127.0.0.1). Whenever possible, use the -\helpref{wxIPV4address::AnyAddress}{wxipv4addressanyaddress}, -function instead of this one, as this will correctly handle multi-homed -hosts and avoid other small problems. - -\wxheading{Return value} - -Returns true on success, false if something went wrong. - diff --git a/docs/latex/wx/joyevent.tex b/docs/latex/wx/joyevent.tex deleted file mode 100644 index b45d47b63f..0000000000 --- a/docs/latex/wx/joyevent.tex +++ /dev/null @@ -1,128 +0,0 @@ -\section{\class{wxJoystickEvent}}\label{wxjoystickevent} - -This event class contains information about mouse events, particularly -events received by windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a mouse event, use these event handler macros to direct input to member -functions that take a wxJoystickEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_JOY\_BUTTON\_DOWN(func)}}{Process a wxEVT\_JOY\_BUTTON\_DOWN event.} -\twocolitem{{\bf EVT\_JOY\_BUTTON\_UP(func)}}{Process a wxEVT\_JOY\_BUTTON\_UP event.} -\twocolitem{{\bf EVT\_JOY\_MOVE(func)}}{Process a wxEVT\_JOY\_MOVE event.} -\twocolitem{{\bf EVT\_JOY\_ZMOVE(func)}}{Process a wxEVT\_JOY\_ZMOVE event.} -\twocolitem{{\bf EVT\_JOYSTICK\_EVENTS(func)}}{Processes all joystick events.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxJoystick}{wxjoystick} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxJoystickEvent::wxJoystickEvent}\label{wxjoystickeventctor} - -\func{}{wxJoystickEvent}{\param{WXTYPE}{ eventType = 0}, \param{int}{ state = 0}, - \param{int}{ joystick = wxJOYSTICK1}, \param{int }{change = 0}} - -Constructor. - -\membersection{wxJoystickEvent::ButtonDown}\label{wxjoystickeventbuttondown} - -\constfunc{bool}{ButtonDown}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns true if the event was a down event from the specified button (or any button). - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::ButtonIsDown}\label{wxjoystickeventbuttonisdown} - -\constfunc{bool}{ButtonIsDown}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns true if the specified button (or any button) was in a down state. - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::ButtonUp}\label{wxjoystickeventbuttonup} - -\constfunc{bool}{ButtonUp}{\param{int}{ button = wxJOY\_BUTTON\_ANY}} - -Returns true if the event was an up event from the specified button (or any button). - -\wxheading{Parameters} - -\docparam{button}{Can be wxJOY\_BUTTONn where n is 1, 2, 3 or 4; or wxJOY\_BUTTON\_ANY to -indicate any button down event.} - -\membersection{wxJoystickEvent::GetButtonChange}\label{wxjoystickeventgetbuttonchange} - -\constfunc{int}{GetButtonChange}{\void} - -Returns the identifier of the button changing state. This is a wxJOY\_BUTTONn identifier, where -n is one of 1, 2, 3, 4. - -\membersection{wxJoystickEvent::GetButtonState}\label{wxjoystickeventgetbuttonstate} - -\constfunc{int}{GetButtonState}{\void} - -Returns the down state of the buttons. This is a bitlist of wxJOY\_BUTTONn identifiers, where -n is one of 1, 2, 3, 4. - -\membersection{wxJoystickEvent::GetJoystick}\label{wxjoystickeventgetjoystick} - -\constfunc{int}{GetJoystick}{\void} - -Returns the identifier of the joystick generating the event - one of wxJOYSTICK1 and wxJOYSTICK2. - -\membersection{wxJoystickEvent::GetPosition}\label{wxjoystickeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the x, y position of the joystick event. - -\membersection{wxJoystickEvent::GetZPosition}\label{wxjoystickeventgetzposition} - -\constfunc{int}{GetZPosition}{\void} - -Returns the z position of the joystick event. - -\membersection{wxJoystickEvent::IsButton}\label{wxjoystickeventisbutton} - -\constfunc{bool}{IsButton}{\void} - -Returns true if this was a button up or down event ({\it not} 'is any button down?'). - -\membersection{wxJoystickEvent::IsMove}\label{wxjoystickeventismove} - -\constfunc{bool}{IsMove}{\void} - -Returns true if this was an x, y move event. - -\membersection{wxJoystickEvent::IsZMove}\label{wxjoystickeventiszmove} - -\constfunc{bool}{IsZMove}{\void} - -Returns true if this was a z move event. - diff --git a/docs/latex/wx/joystick.tex b/docs/latex/wx/joystick.tex deleted file mode 100644 index 1b1ca2cb85..0000000000 --- a/docs/latex/wx/joystick.tex +++ /dev/null @@ -1,324 +0,0 @@ -\section{\class{wxJoystick}}\label{wxjoystick} - -wxJoystick allows an application to control one or more joysticks. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/joystick.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{See also} - -\helpref{wxJoystickEvent}{wxjoystickevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxJoystick::wxJoystick}\label{wxjoystickctor} - -\func{}{wxJoystick}{\param{int}{ joystick = wxJOYSTICK1}} - -Constructor. {\it joystick} may be one of wxJOYSTICK1, wxJOYSTICK2, indicating the joystick -controller of interest. - -\membersection{wxJoystick::\destruct{wxJoystick}}\label{wxjoystickdtor} - -\func{}{\destruct{wxJoystick}}{\void} - -Destroys the wxJoystick object. - -\membersection{wxJoystick::GetButtonState}\label{wxjoystickgetbuttonstate} - -\constfunc{int}{GetButtonState}{\void} - -Returns the state of the joystick buttons. Every button is mapped to a single -bit in the returned integer, with the first button being mapped to the least -significant bit, and so on. -A bitlist of wxJOY\_BUTTONn identifiers, where n is 1, 2, 3 or 4 -is available for historical reasons. - -\constfunc{bool}{GetButtonState}{\param{unsigned}{ id}} - -Returns the state of the specified joystick button. - -\wxheading{Parameters} - -\docparam{id}{The button id to report, from 0 to \helpref{GetNumberButtons()}{wxjoystickgetnumberbuttons} - 1} - -\membersection{wxJoystick::GetManufacturerId}\label{wxjoystickgetmanufacturerid} - -\constfunc{int}{GetManufacturerId}{\void} - -Returns the manufacturer id. - -\membersection{wxJoystick::GetMovementThreshold}\label{wxjoystickgetmovementthreshold} - -\constfunc{int}{GetMovementThreshold}{\void} - -Returns the movement threshold, the number of steps outside which the joystick is deemed to have -moved. - -\membersection{wxJoystick::GetNumberAxes}\label{wxjoystickgetnumberaxes} - -\constfunc{int}{GetNumberAxes}{\void} - -Returns the number of axes for this joystick. - -\membersection{wxJoystick::GetNumberButtons}\label{wxjoystickgetnumberbuttons} - -\constfunc{int}{GetNumberButtons}{\void} - -Returns the number of buttons for this joystick. - -\membersection{wxJoystick::GetNumberJoysticks}\label{wxjoystickgetnumberjoysticks} - -\func{static int}{GetNumberJoysticks}{\void} - -Returns the number of joysticks currently attached to the computer. - -\membersection{wxJoystick::GetPollingMax}\label{wxjoystickgetpollingmax} - -\constfunc{int}{GetPollingMax}{\void} - -Returns the maximum polling frequency. - -\membersection{wxJoystick::GetPollingMin}\label{wxjoystickgetpollingmin} - -\constfunc{int}{GetPollingMin}{\void} - -Returns the minimum polling frequency. - -\membersection{wxJoystick::GetProductId}\label{wxjoystickgetproductid} - -\constfunc{int}{GetProductId}{\void} - -Returns the product id for the joystick. - -\membersection{wxJoystick::GetProductName}\label{wxjoystickgetproductname} - -\constfunc{wxString}{GetProductName}{\void} - -Returns the product name for the joystick. - -\membersection{wxJoystick::GetPosition}\label{wxjoystickgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the x, y position of the joystick. - -\constfunc{int}{GetPosition}{\param{unsigned}{ axis}} - -Returns the position of the specified joystick axis. - -\wxheading{Parameters} - -\docparam{axis}{The joystick axis to report, from 0 to \helpref{GetNumberAxes()}{wxjoystickgetnumberaxes} - 1.} - -\membersection{wxJoystick::GetPOVPosition}\label{wxjoystickgetpovposition} - -\constfunc{int}{GetPOVPosition}{\void} - -Returns the point-of-view position, expressed in continuous, one-hundredth of a degree units, -but limited to return 0, 9000, 18000 or 27000. -Returns -1 on error. - -\membersection{wxJoystick::GetPOVCTSPosition}\label{wxjoystickgetpovctsposition} - -\constfunc{int}{GetPOVCTSPosition}{\void} - -Returns the point-of-view position, expressed in continuous, one-hundredth of a degree units. -Returns -1 on error. - -\membersection{wxJoystick::GetRudderMax}\label{wxjoystickgetruddermax} - -\constfunc{int}{GetRudderMax}{\void} - -Returns the maximum rudder position. - -\membersection{wxJoystick::GetRudderMin}\label{wxjoystickgetruddermin} - -\constfunc{int}{GetRudderMin}{\void} - -Returns the minimum rudder position. - -\membersection{wxJoystick::GetRudderPosition}\label{wxjoystickgetrudderposition} - -\constfunc{int}{GetRudderPosition}{\void} - -Returns the rudder position. - -\membersection{wxJoystick::GetUMax}\label{wxjoystickgetumax} - -\constfunc{int}{GetUMax}{\void} - -Returns the maximum U position. - -\membersection{wxJoystick::GetUMin}\label{wxjoystickgetumin} - -\constfunc{int}{GetUMin}{\void} - -Returns the minimum U position. - -\membersection{wxJoystick::GetUPosition}\label{wxjoystickgetuposition} - -\constfunc{int}{GetUPosition}{\void} - -Gets the position of the fifth axis of the joystick, if it exists. - -\membersection{wxJoystick::GetVMax}\label{wxjoystickgetvmax} - -\constfunc{int}{GetVMax}{\void} - -Returns the maximum V position. - -\membersection{wxJoystick::GetVMin}\label{wxjoystickgetvmin} - -\constfunc{int}{GetVMin}{\void} - -Returns the minimum V position. - -\membersection{wxJoystick::GetVPosition}\label{wxjoystickgetvposition} - -\constfunc{int}{GetVPosition}{\void} - -Gets the position of the sixth axis of the joystick, if it exists. - -\membersection{wxJoystick::GetXMax}\label{wxjoystickgetxmax} - -\constfunc{int}{GetXMax}{\void} - -Returns the maximum x position. - -\membersection{wxJoystick::GetXMin}\label{wxjoystickgetxmin} - -\constfunc{int}{GetXMin}{\void} - -Returns the minimum x position. - -\membersection{wxJoystick::GetYMax}\label{wxjoystickgetymax} - -\constfunc{int}{GetYMax}{\void} - -Returns the maximum y position. - -\membersection{wxJoystick::GetYMin}\label{wxjoystickgetymin} - -\constfunc{int}{GetYMin}{\void} - -Returns the minimum y position. - -\membersection{wxJoystick::GetZMax}\label{wxjoystickgetzmax} - -\constfunc{int}{GetZMax}{\void} - -Returns the maximum z position. - -\membersection{wxJoystick::GetZMin}\label{wxjoystickgetzmin} - -\constfunc{int}{GetZMin}{\void} - -Returns the minimum z position. - -\membersection{wxJoystick::GetZPosition}\label{wxjoystickgetzposition} - -\constfunc{int}{GetZPosition}{\void} - -Returns the z position of the joystick. - -\membersection{wxJoystick::HasPOV}\label{wxjoystickhaspov} - -\constfunc{bool}{HasPOV}{\void} - -Returns true if the joystick has a point of view control. - -\membersection{wxJoystick::HasPOV4Dir}\label{wxjoystickhaspovfdir} - -\constfunc{bool}{HasPOV4Dir}{\void} - -Returns true if the joystick point-of-view supports discrete values (centered, forward, backward, left, and right). - -\membersection{wxJoystick::HasPOVCTS}\label{wxjoystickhaspovcts} - -\constfunc{bool}{HasPOVCTS}{\void} - -Returns true if the joystick point-of-view supports continuous degree bearings. - -\membersection{wxJoystick::HasRudder}\label{wxjoystickhasrudder} - -\constfunc{bool}{HasRudder}{\void} - -Returns true if there is a rudder attached to the computer. - -\membersection{wxJoystick::HasU}\label{wxjoystickhasu} - -\constfunc{bool}{HasU}{\void} - -Returns true if the joystick has a U axis. - -\membersection{wxJoystick::HasV}\label{wxjoystickhasv} - -\constfunc{bool}{HasV}{\void} - -Returns true if the joystick has a V axis. - -\membersection{wxJoystick::HasZ}\label{wxjoystickhasz} - -\constfunc{bool}{HasZ}{\void} - -Returns true if the joystick has a Z axis. - -\membersection{wxJoystick::IsOk}\label{wxjoystickisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the joystick is functioning. - -\membersection{wxJoystick::ReleaseCapture}\label{wxjoystickreleasecapture} - -\func{bool}{ReleaseCapture}{\void} - -Releases the capture set by {\bf SetCapture}. - -\wxheading{Return value} - -true if the capture release succeeded. - -\wxheading{See also} - -\helpref{wxJoystick::SetCapture}{wxjoysticksetcapture}, \helpref{wxJoystickEvent}{wxjoystickevent} - -\membersection{wxJoystick::SetCapture}\label{wxjoysticksetcapture} - -\func{bool}{SetCapture}{\param{wxWindow*}{ win}, \param{int}{ pollingFreq = 0}} - -Sets the capture to direct joystick events to {\it win}. - -\wxheading{Parameters} - -\docparam{win}{The window that will receive joystick events.} - -\docparam{pollingFreq}{If zero, movement events are sent when above the -threshold. If greater than zero, events are received every {\it pollingFreq} milliseconds.} - -\wxheading{Return value} - -true if the capture succeeded. - -\wxheading{See also} - -\helpref{wxJoystick::ReleaseCapture}{wxjoystickreleasecapture}, \helpref{wxJoystickEvent}{wxjoystickevent} - -\membersection{wxJoystick::SetMovementThreshold}\label{wxjoysticksetmovementthreshold} - -\func{void}{SetMovementThreshold}{\param{int}{ threshold}} - -Sets the movement threshold, the number of steps outside which the joystick is deemed to have -moved. - - diff --git a/docs/latex/wx/keycode.tex b/docs/latex/wx/keycode.tex deleted file mode 100644 index 1ecb5a069f..0000000000 --- a/docs/latex/wx/keycode.tex +++ /dev/null @@ -1,156 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: keycode.tex -%% Purpose: wxKeyCode values enumerated -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Keycodes}\label{keycodes} - -\wxheading{Include files} - -<wx/defs.h> - -Keypresses are represented by an enumerated type, wxKeyCode. The possible -values are the ASCII character codes, plus the following: - -{\small -\begin{verbatim} - WXK_BACK = 8 - WXK_TAB = 9 - WXK_RETURN = 13 - WXK_ESCAPE = 27 - WXK_SPACE = 32 - WXK_DELETE = 127 - - // These are by design not compatible with unicode characters. - // If you want to get a unicode character from a key event use - // wxKeyEvent::GetUnicodeKey instead. - WXK_START = 300 - WXK_LBUTTON - WXK_RBUTTON - WXK_CANCEL - WXK_MBUTTON - WXK_CLEAR - WXK_SHIFT - WXK_ALT - WXK_CONTROL - WXK_MENU - WXK_PAUSE - WXK_CAPITAL - WXK_END - WXK_HOME - WXK_LEFT - WXK_UP - WXK_RIGHT - WXK_DOWN - WXK_SELECT - WXK_PRINT - WXK_EXECUTE - WXK_SNAPSHOT - WXK_INSERT - WXK_HELP - WXK_NUMPAD0 - WXK_NUMPAD1 - WXK_NUMPAD2 - WXK_NUMPAD3 - WXK_NUMPAD4 - WXK_NUMPAD5 - WXK_NUMPAD6 - WXK_NUMPAD7 - WXK_NUMPAD8 - WXK_NUMPAD9 - WXK_MULTIPLY - WXK_ADD - WXK_SEPARATOR - WXK_SUBTRACT - WXK_DECIMAL - WXK_DIVIDE - WXK_F1 - WXK_F2 - WXK_F3 - WXK_F4 - WXK_F5 - WXK_F6 - WXK_F7 - WXK_F8 - WXK_F9 - WXK_F10 - WXK_F11 - WXK_F12 - WXK_F13 - WXK_F14 - WXK_F15 - WXK_F16 - WXK_F17 - WXK_F18 - WXK_F19 - WXK_F20 - WXK_F21 - WXK_F22 - WXK_F23 - WXK_F24 - WXK_NUMLOCK - WXK_SCROLL - WXK_PAGEUP, - WXK_PAGEDOWN, - - WXK_NUMPAD_SPACE, - WXK_NUMPAD_TAB, - WXK_NUMPAD_ENTER, - WXK_NUMPAD_F1, - WXK_NUMPAD_F2, - WXK_NUMPAD_F3, - WXK_NUMPAD_F4, - WXK_NUMPAD_HOME, - WXK_NUMPAD_LEFT, - WXK_NUMPAD_UP, - WXK_NUMPAD_RIGHT, - WXK_NUMPAD_DOWN, - WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_PAGEDOWN, - WXK_NUMPAD_END, - WXK_NUMPAD_BEGIN, - WXK_NUMPAD_INSERT, - WXK_NUMPAD_DELETE, - WXK_NUMPAD_EQUAL, - WXK_NUMPAD_MULTIPLY, - WXK_NUMPAD_ADD, - WXK_NUMPAD_SEPARATOR, - WXK_NUMPAD_SUBTRACT, - WXK_NUMPAD_DECIMAL, - WXK_NUMPAD_DIVIDE, - - // the following key codes are only generated under Windows currently - WXK_WINDOWS_LEFT, - WXK_WINDOWS_RIGHT, - WXK_WINDOWS_MENU, - WXK_COMMAND, - - // Hardware-specific buttons - WXK_SPECIAL1 = 193, - WXK_SPECIAL2, - WXK_SPECIAL3, - WXK_SPECIAL4, - WXK_SPECIAL5, - WXK_SPECIAL6, - WXK_SPECIAL7, - WXK_SPECIAL8, - WXK_SPECIAL9, - WXK_SPECIAL10, - WXK_SPECIAL11, - WXK_SPECIAL12, - WXK_SPECIAL13, - WXK_SPECIAL14, - WXK_SPECIAL15, - WXK_SPECIAL16, - WXK_SPECIAL17, - WXK_SPECIAL18, - WXK_SPECIAL19, - WXK_SPECIAL20 -\end{verbatim} -} diff --git a/docs/latex/wx/keyevent.tex b/docs/latex/wx/keyevent.tex deleted file mode 100644 index 1366c835a6..0000000000 --- a/docs/latex/wx/keyevent.tex +++ /dev/null @@ -1,325 +0,0 @@ -\section{\class{wxKeyEvent}}\label{wxkeyevent} - -This event class contains information about keypress (character) events. - -Notice that there are three different kinds of keyboard events in wxWidgets: -key down and up events and char events. The difference between the first two -is clear - the first corresponds to a key press and the second to a key -release - otherwise they are identical. Just note that if the key is -maintained in a pressed state you will typically get a lot of (automatically -generated) down events but only one up so it is wrong to assume that there is -one up event corresponding to each down one. - -Both key events provide untranslated key codes while the char event carries -the translated one. The untranslated code for alphanumeric keys is always -an upper case value. For the other keys it is one of {\tt WXK\_XXX} values -from the \helpref{keycodes table}{keycodes}. The translated key is, in -general, the character the user expects to appear as the result of the key -combination when typing the text into a text entry zone, for example. - -A few examples to clarify this (all assume that {\sc Caps Lock} is unpressed -and the standard US keyboard): when the {\tt 'A'} key is pressed, the key down -event key code is equal to {\tt ASCII A} $== 65$. But the char event key code -is {\tt ASCII a} $== 97$. On the other hand, if you press both {\sc Shift} and -{\tt 'A'} keys simultaneously , the key code in key down event will still be -just {\tt 'A'} while the char event key code parameter will now be {\tt 'A'} -as well. - -Although in this simple case it is clear that the correct key code could be -found in the key down event handler by checking the value returned by -\helpref{ShiftDown()}{wxkeyeventshiftdown}, in general you should use -{\tt EVT\_CHAR} for this as for non-alphanumeric keys the translation is -keyboard-layout dependent and can only be done properly by the system itself. - -Another kind of translation is done when the control key is pressed: for -example, for {\sc Ctrl-A} key press the key down event still carries the -same key code {\tt 'a'} as usual but the char event will have key code of -$1$, the ASCII value of this key combination. - -You may discover how the other keys on your system behave interactively by -running the \helpref{text}{sampletext} wxWidgets sample and pressing some keys -in any of the text controls shown in it. - -{\bf Note:} If a key down ({\tt EVT\_KEY\_DOWN}) event is caught and -the event handler does not call {\tt event.Skip()} then the corresponding -char event ({\tt EVT\_CHAR}) will not happen. This is by design and -enables the programs that handle both types of events to be a bit -simpler. - -{\bf Note for Windows programmers:} The key and char events in wxWidgets are -similar to but slightly different from Windows {\tt WM\_KEYDOWN} and -{\tt WM\_CHAR} events. In particular, Alt-x combination will generate a char -event in wxWidgets (unless it is used as an accelerator). - -{\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in -key event function, otherwise menu shortcuts may cease to work under Windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a key event, use these event handler macros to direct input to member -functions that take a wxKeyEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_KEY\_DOWN(func)}}{Process a wxEVT\_KEY\_DOWN event (any key has been pressed).} -\twocolitem{{\bf EVT\_KEY\_UP(func)}}{Process a wxEVT\_KEY\_UP event (any key has been released).} -\twocolitem{{\bf EVT\_CHAR(func)}}{Process a wxEVT\_CHAR event.} -%\twocolitem{{\bf EVT\_CHAR\_HOOK(func)}}{Process a wxEVT\_CHAR\_HOOK event.} -\end{twocollist}% - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxKeyEvent::m\_altDown}\label{wxkeyeventmaltdown} - -\member{bool}{m\_altDown} - -\textbf{Deprecated: } Please use \helpref{GetModifiers}{wxkeyeventgetmodifiers} -instead! - -true if the Alt key is pressed down. - - -\membersection{wxKeyEvent::m\_controlDown}\label{wxkeyeventmcontroldown} - -\member{bool}{m\_controlDown} - -\textbf{Deprecated: } Please use \helpref{GetModifiers}{wxkeyeventgetmodifiers} -instead! - -true if control is pressed down. - - -\membersection{wxKeyEvent::m\_keyCode}\label{wxkeyeventmkeycode} - -\member{long}{m\_keyCode} - -\textbf{Deprecated: } Please use \helpref{GetKeyCode}{wxkeyeventgetkeycode} -instead! - -Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers. - - -\membersection{wxKeyEvent::m\_metaDown}\label{wxkeyeventmmetadown} - -\member{bool}{m\_metaDown} - -\textbf{Deprecated: } Please use \helpref{GetModifiers}{wxkeyeventgetmodifiers} -instead! - -true if the Meta key is pressed down. - - -\membersection{wxKeyEvent::m\_shiftDown}\label{wxkeyeventmshiftdown} - -\member{bool}{m\_shiftDown} - -\textbf{Deprecated: } Please use \helpref{GetModifiers}{wxkeyeventgetmodifiers} -instead! - -true if shift is pressed down. - - -\membersection{wxKeyEvent::m\_x}\label{wxkeyeventmx} - -\member{int}{m\_x} - -\textbf{Deprecated: } Please use \helpref{GetX}{wxkeyeventgetx} instead! - -X position of the event. - - -\membersection{wxKeyEvent::m\_y}\label{wxkeyeventmy} - -\member{int}{m\_y} - -\textbf{Deprecated: } Please use \helpref{GetY}{wxkeyeventgety} instead! - -Y position of the event. - - -\membersection{wxKeyEvent::wxKeyEvent}\label{wxkeyeventctor} - -\func{}{wxKeyEvent}{\param{WXTYPE}{ keyEventType}} - -Constructor. Currently, the only valid event types are wxEVT\_CHAR and wxEVT\_CHAR\_HOOK. - - -\membersection{wxKeyEvent::AltDown}\label{wxkeyeventaltdown} - -\constfunc{bool}{AltDown}{\void} - -Returns true if the Alt key was down at the time of the key event. - -Notice that \helpref{GetModifiers}{wxkeyeventgetmodifiers} is easier to use -correctly than this function so you should consider using it in new code. - - -\membersection{wxKeyEvent::CmdDown}\label{wxkeyeventcmddown} - -\constfunc{bool}{CmdDown}{\void} - -\textsc{Cmd} is a pseudo key which is the same as Control for PC and Unix -platforms but the special \textsc{Apple} (a.k.a as \textsc{Command}) key under -Macs: it makes often sense to use it instead of, say, ControlDown() because Cmd -key is used for the same thing under Mac as Ctrl elsewhere (but Ctrl still -exists, just not used for this purpose under Mac). So for non-Mac platforms -this is the same as \helpref{ControlDown()}{wxkeyeventcontroldown} and under -Mac this is the same as \helpref{MetaDown()}{wxkeyeventmetadown}. - - -\membersection{wxKeyEvent::ControlDown}\label{wxkeyeventcontroldown} - -\constfunc{bool}{ControlDown}{\void} - -Returns true if the control key was down at the time of the key event. - -Notice that \helpref{GetModifiers}{wxkeyeventgetmodifiers} is easier to use -correctly than this function so you should consider using it in new code. - - -\membersection{wxKeyEvent::GetKeyCode}\label{wxkeyeventgetkeycode} - -\constfunc{int}{GetKeyCode}{\void} - -Returns the virtual key code. ASCII events return normal ASCII values, -while non-ASCII events return values such as {\bf WXK\_LEFT} for the -left cursor key. See \helpref{Keycodes}{keycodes} for a full list of -the virtual key codes. - -Note that in Unicode build, the returned value is meaningful only if the -user entered a character that can be represented in current locale's default -charset. You can obtain the corresponding Unicode character using -\helpref{GetUnicodeKey}{wxkeyeventgetunicodekey}. - - -\membersection{wxKeyEvent::GetModifiers}\label{wxkeyeventgetmodifiers} - -\constfunc{int}{GetModifiers}{\void} - -Return the bitmask of modifier keys which were pressed when this event -happened. See \helpref{key modifier constants}{keymodifiers} for the full list -of modifiers. - -Notice that this function is easier to use correctly than, for example, -\helpref{ControlDown}{wxkeyeventcontroldown} because when using the latter you -also have to remember to test that none of the other modifiers is pressed: - -\begin{verbatim} - if ( ControlDown() && !AltDown() && !ShiftDown() && !MetaDown() ) - ... handle Ctrl-XXX ... -\end{verbatim} - -and forgetting to do it can result in serious program bugs (e.g. program not -working with European keyboard layout where \textsc{AltGr} key which is seen by -the program as combination of \textsc{Ctrl} and \textsc{Alt} is used). On the -other hand, you can simply write - -\begin{verbatim} - if ( GetModifiers() == wxMOD_CONTROL ) - ... handle Ctrl-XXX ... -\end{verbatim} - -with this function. - - -\membersection{wxKeyEvent::GetPosition}\label{wxkeyeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -\constfunc{void}{GetPosition}{\param{long *}{x}, \param{long *}{y}} - -Obtains the position (in client coordinates) at which the key was pressed. - - -\membersection{wxKeyEvent::GetRawKeyCode}\label{wxkeyeventgetrawkeycode} - -\constfunc{wxUint32}{GetRawKeyCode}{\void} - -Returns the raw key code for this event. This is a platform-dependent scan code -which should only be used in advanced applications. - -{\bf NB:} Currently the raw key codes are not supported by all ports, use -{\tt\#ifdef wxHAS\_RAW\_KEY\_CODES} to determine if this feature is available. - - -\membersection{wxKeyEvent::GetRawKeyFlags}\label{wxkeyeventgetrawkeyflags} - -\constfunc{wxUint32}{GetRawKeyFlags}{\void} - -Returns the low level key flags for this event. The flags are -platform-dependent and should only be used in advanced applications. - -{\bf NB:} Currently the raw key flags are not supported by all ports, use -{\tt \#ifdef wxHAS\_RAW\_KEY\_CODES} to determine if this feature is available. - - -\membersection{wxKeyEvent::GetUnicodeKey}\label{wxkeyeventgetunicodekey} - -\constfunc{wxChar}{GetUnicodeKey}{\void} - -Returns the Unicode character corresponding to this key event. - -This function is only available in Unicode build, i.e. when -\texttt{wxUSE\_UNICODE} is $1$. - - -\membersection{wxKeyEvent::GetX}\label{wxkeyeventgetx} - -\constfunc{long}{GetX}{\void} - -Returns the X position (in client coordinates) of the event. - - -\membersection{wxKeyEvent::GetY}\label{wxkeyeventgety} - -\constfunc{long}{GetY}{\void} - -Returns the Y (in client coordinates) position of the event. - - -\membersection{wxKeyEvent::HasModifiers}\label{wxkeyeventhasmodifiers} - -\constfunc{bool}{HasModifiers}{\void} - -Returns true if either {\sc Ctrl} or {\sc Alt} keys was down -at the time of the key event. Note that this function does not take into -account neither {\sc Shift} nor {\sc Meta} key states (the reason for ignoring -the latter is that it is common for {\sc NumLock} key to be configured as -{\sc Meta} under X but the key presses even while {\sc NumLock} is on should -be still processed normally). - - -\membersection{wxKeyEvent::MetaDown}\label{wxkeyeventmetadown} - -\constfunc{bool}{MetaDown}{\void} - -Returns true if the Meta key was down at the time of the key event. - -Notice that \helpref{GetModifiers}{wxkeyeventgetmodifiers} is easier to use -correctly than this function so you should consider using it in new code. - - -\membersection{wxKeyEvent::ShiftDown}\label{wxkeyeventshiftdown} - -\constfunc{bool}{ShiftDown}{\void} - -Returns true if the shift key was down at the time of the key event. - -Notice that \helpref{GetModifiers}{wxkeyeventgetmodifiers} is easier to use -correctly than this function so you should consider using it in new code. - diff --git a/docs/latex/wx/keymod.tex b/docs/latex/wx/keymod.tex deleted file mode 100644 index 245039d2af..0000000000 --- a/docs/latex/wx/keymod.tex +++ /dev/null @@ -1,34 +0,0 @@ -\section{Key Modifiers}\label{keymodifiers} - -\wxheading{Include files} - -<wx/defs.h> - -The following key modifier constants are defined: - -{\small -\begin{verbatim} - enum wxKeyModifier - { - wxMOD_NONE = 0x0000, - wxMOD_ALT = 0x0001, - wxMOD_CONTROL = 0x0002, - wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL, - wxMOD_SHIFT = 0x0004, - wxMOD_META = 0x0008, - #if defined(__WXMAC__) || defined(__WXCOCOA__) - wxMOD_CMD = wxMOD_META, - #else - wxMOD_CMD = wxMOD_CONTROL, - #endif - wxMOD_ALL = 0xffff - }; -\end{verbatim} -} - -Notice that \texttt{wxMOD\_CMD} should be used instead of -\texttt{wxMOD\_CONTROL} in portable code to account for the fact that although -\textsc{Control} modifier exists under Mac OS, it is not used for the same -purpose as under Windows or Unix there while the special Mac-specific -\textsc{Command} modifier is used in exactly the same way. - diff --git a/docs/latex/wx/langcodes.tex b/docs/latex/wx/langcodes.tex deleted file mode 100644 index ecd2f791ab..0000000000 --- a/docs/latex/wx/langcodes.tex +++ /dev/null @@ -1,246 +0,0 @@ -\section{Language identifiers}\label{languagecodes} - -The following wxLanguage constants may be used to specify the language -in \helpref{wxLocale::Init}{wxlocaleinit} and are returned by -\helpref{wxLocale::GetSystemLanguage}{wxlocalegetsystemlanguage}: - -%% --- --- --- generated code begins here --- --- --- - -%% This enum is generated by misc/languages/genlang.py -%% When making changes, please put them into misc/languages/langtabl.txt -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLANGUAGE\_DEFAULT}{user's default language as obtained from the operating system} -\twocolitem{wxLANGUAGE\_UNKNOWN}{returned by \helpref{GetSystemLanguage}{wxlocalegetsystemlanguage} if it fails to detect the default language} -\twocolitem{wxLANGUAGE\_USER\_DEFINED}{user defined languages' integer identifiers should start from this} -\twocolitem{wxLANGUAGE\_ABKHAZIAN}{} -\twocolitem{wxLANGUAGE\_AFAR}{} -\twocolitem{wxLANGUAGE\_AFRIKAANS}{} -\twocolitem{wxLANGUAGE\_ALBANIAN}{} -\twocolitem{wxLANGUAGE\_AMHARIC}{} -\twocolitem{wxLANGUAGE\_ARABIC}{} -\twocolitem{wxLANGUAGE\_ARABIC\_ALGERIA}{} -\twocolitem{wxLANGUAGE\_ARABIC\_BAHRAIN}{} -\twocolitem{wxLANGUAGE\_ARABIC\_EGYPT}{} -\twocolitem{wxLANGUAGE\_ARABIC\_IRAQ}{} -\twocolitem{wxLANGUAGE\_ARABIC\_JORDAN}{} -\twocolitem{wxLANGUAGE\_ARABIC\_KUWAIT}{} -\twocolitem{wxLANGUAGE\_ARABIC\_LEBANON}{} -\twocolitem{wxLANGUAGE\_ARABIC\_LIBYA}{} -\twocolitem{wxLANGUAGE\_ARABIC\_MOROCCO}{} -\twocolitem{wxLANGUAGE\_ARABIC\_OMAN}{} -\twocolitem{wxLANGUAGE\_ARABIC\_QATAR}{} -\twocolitem{wxLANGUAGE\_ARABIC\_SAUDI\_ARABIA}{} -\twocolitem{wxLANGUAGE\_ARABIC\_SUDAN}{} -\twocolitem{wxLANGUAGE\_ARABIC\_SYRIA}{} -\twocolitem{wxLANGUAGE\_ARABIC\_TUNISIA}{} -\twocolitem{wxLANGUAGE\_ARABIC\_UAE}{} -\twocolitem{wxLANGUAGE\_ARABIC\_YEMEN}{} -\twocolitem{wxLANGUAGE\_ARMENIAN}{} -\twocolitem{wxLANGUAGE\_ASSAMESE}{} -\twocolitem{wxLANGUAGE\_AYMARA}{} -\twocolitem{wxLANGUAGE\_AZERI}{} -\twocolitem{wxLANGUAGE\_AZERI\_CYRILLIC}{} -\twocolitem{wxLANGUAGE\_AZERI\_LATIN}{} -\twocolitem{wxLANGUAGE\_BASHKIR}{} -\twocolitem{wxLANGUAGE\_BASQUE}{} -\twocolitem{wxLANGUAGE\_BELARUSIAN}{} -\twocolitem{wxLANGUAGE\_BENGALI}{} -\twocolitem{wxLANGUAGE\_BHUTANI}{} -\twocolitem{wxLANGUAGE\_BIHARI}{} -\twocolitem{wxLANGUAGE\_BISLAMA}{} -\twocolitem{wxLANGUAGE\_BRETON}{} -\twocolitem{wxLANGUAGE\_BULGARIAN}{} -\twocolitem{wxLANGUAGE\_BURMESE}{} -\twocolitem{wxLANGUAGE\_CAMBODIAN}{} -\twocolitem{wxLANGUAGE\_CATALAN}{} -\twocolitem{wxLANGUAGE\_CHINESE}{} -\twocolitem{wxLANGUAGE\_CHINESE\_SIMPLIFIED}{} -\twocolitem{wxLANGUAGE\_CHINESE\_TRADITIONAL}{} -\twocolitem{wxLANGUAGE\_CHINESE\_HONGKONG}{} -\twocolitem{wxLANGUAGE\_CHINESE\_MACAU}{} -\twocolitem{wxLANGUAGE\_CHINESE\_SINGAPORE}{} -\twocolitem{wxLANGUAGE\_CHINESE\_TAIWAN}{} -\twocolitem{wxLANGUAGE\_CORSICAN}{} -\twocolitem{wxLANGUAGE\_CROATIAN}{} -\twocolitem{wxLANGUAGE\_CZECH}{} -\twocolitem{wxLANGUAGE\_DANISH}{} -\twocolitem{wxLANGUAGE\_DUTCH}{} -\twocolitem{wxLANGUAGE\_DUTCH\_BELGIAN}{} -\twocolitem{wxLANGUAGE\_ENGLISH}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_UK}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_US}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_AUSTRALIA}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_BELIZE}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_BOTSWANA}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_CANADA}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_CARIBBEAN}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_DENMARK}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_EIRE}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_JAMAICA}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_NEW\_ZEALAND}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_PHILIPPINES}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_SOUTH\_AFRICA}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_TRINIDAD}{} -\twocolitem{wxLANGUAGE\_ENGLISH\_ZIMBABWE}{} -\twocolitem{wxLANGUAGE\_ESPERANTO}{} -\twocolitem{wxLANGUAGE\_ESTONIAN}{} -\twocolitem{wxLANGUAGE\_FAEROESE}{} -\twocolitem{wxLANGUAGE\_FARSI}{} -\twocolitem{wxLANGUAGE\_FIJI}{} -\twocolitem{wxLANGUAGE\_FINNISH}{} -\twocolitem{wxLANGUAGE\_FRENCH}{} -\twocolitem{wxLANGUAGE\_FRENCH\_BELGIAN}{} -\twocolitem{wxLANGUAGE\_FRENCH\_CANADIAN}{} -\twocolitem{wxLANGUAGE\_FRENCH\_LUXEMBOURG}{} -\twocolitem{wxLANGUAGE\_FRENCH\_MONACO}{} -\twocolitem{wxLANGUAGE\_FRENCH\_SWISS}{} -\twocolitem{wxLANGUAGE\_FRISIAN}{} -\twocolitem{wxLANGUAGE\_GALICIAN}{} -\twocolitem{wxLANGUAGE\_GEORGIAN}{} -\twocolitem{wxLANGUAGE\_GERMAN}{} -\twocolitem{wxLANGUAGE\_GERMAN\_AUSTRIAN}{} -\twocolitem{wxLANGUAGE\_GERMAN\_BELGIUM}{} -\twocolitem{wxLANGUAGE\_GERMAN\_LIECHTENSTEIN}{} -\twocolitem{wxLANGUAGE\_GERMAN\_LUXEMBOURG}{} -\twocolitem{wxLANGUAGE\_GERMAN\_SWISS}{} -\twocolitem{wxLANGUAGE\_GREEK}{} -\twocolitem{wxLANGUAGE\_GREENLANDIC}{} -\twocolitem{wxLANGUAGE\_GUARANI}{} -\twocolitem{wxLANGUAGE\_GUJARATI}{} -\twocolitem{wxLANGUAGE\_HAUSA}{} -\twocolitem{wxLANGUAGE\_HEBREW}{} -\twocolitem{wxLANGUAGE\_HINDI}{} -\twocolitem{wxLANGUAGE\_HUNGARIAN}{} -\twocolitem{wxLANGUAGE\_ICELANDIC}{} -\twocolitem{wxLANGUAGE\_INDONESIAN}{} -\twocolitem{wxLANGUAGE\_INTERLINGUA}{} -\twocolitem{wxLANGUAGE\_INTERLINGUE}{} -\twocolitem{wxLANGUAGE\_INUKTITUT}{} -\twocolitem{wxLANGUAGE\_INUPIAK}{} -\twocolitem{wxLANGUAGE\_IRISH}{} -\twocolitem{wxLANGUAGE\_ITALIAN}{} -\twocolitem{wxLANGUAGE\_ITALIAN\_SWISS}{} -\twocolitem{wxLANGUAGE\_JAPANESE}{} -\twocolitem{wxLANGUAGE\_JAVANESE}{} -\twocolitem{wxLANGUAGE\_KANNADA}{} -\twocolitem{wxLANGUAGE\_KASHMIRI}{} -\twocolitem{wxLANGUAGE\_KASHMIRI\_INDIA}{} -\twocolitem{wxLANGUAGE\_KAZAKH}{} -\twocolitem{wxLANGUAGE\_KERNEWEK}{} -\twocolitem{wxLANGUAGE\_KINYARWANDA}{} -\twocolitem{wxLANGUAGE\_KIRGHIZ}{} -\twocolitem{wxLANGUAGE\_KIRUNDI}{} -\twocolitem{wxLANGUAGE\_KONKANI}{} -\twocolitem{wxLANGUAGE\_KOREAN}{} -\twocolitem{wxLANGUAGE\_KURDISH}{} -\twocolitem{wxLANGUAGE\_LAOTHIAN}{} -\twocolitem{wxLANGUAGE\_LATIN}{} -\twocolitem{wxLANGUAGE\_LATVIAN}{} -\twocolitem{wxLANGUAGE\_LINGALA}{} -\twocolitem{wxLANGUAGE\_LITHUANIAN}{} -\twocolitem{wxLANGUAGE\_MACEDONIAN}{} -\twocolitem{wxLANGUAGE\_MALAGASY}{} -\twocolitem{wxLANGUAGE\_MALAY}{} -\twocolitem{wxLANGUAGE\_MALAYALAM}{} -\twocolitem{wxLANGUAGE\_MALAY\_BRUNEI\_DARUSSALAM}{} -\twocolitem{wxLANGUAGE\_MALAY\_MALAYSIA}{} -\twocolitem{wxLANGUAGE\_MALTESE}{} -\twocolitem{wxLANGUAGE\_MANIPURI}{} -\twocolitem{wxLANGUAGE\_MAORI}{} -\twocolitem{wxLANGUAGE\_MARATHI}{} -\twocolitem{wxLANGUAGE\_MOLDAVIAN}{} -\twocolitem{wxLANGUAGE\_MONGOLIAN}{} -\twocolitem{wxLANGUAGE\_NAURU}{} -\twocolitem{wxLANGUAGE\_NEPALI}{} -\twocolitem{wxLANGUAGE\_NEPALI\_INDIA}{} -\twocolitem{wxLANGUAGE\_NORWEGIAN\_BOKMAL}{} -\twocolitem{wxLANGUAGE\_NORWEGIAN\_NYNORSK}{} -\twocolitem{wxLANGUAGE\_OCCITAN}{} -\twocolitem{wxLANGUAGE\_ORIYA}{} -\twocolitem{wxLANGUAGE\_OROMO}{} -\twocolitem{wxLANGUAGE\_PASHTO}{} -\twocolitem{wxLANGUAGE\_POLISH}{} -\twocolitem{wxLANGUAGE\_PORTUGUESE}{} -\twocolitem{wxLANGUAGE\_PORTUGUESE\_BRAZILIAN}{} -\twocolitem{wxLANGUAGE\_PUNJABI}{} -\twocolitem{wxLANGUAGE\_QUECHUA}{} -\twocolitem{wxLANGUAGE\_RHAETO\_ROMANCE}{} -\twocolitem{wxLANGUAGE\_ROMANIAN}{} -\twocolitem{wxLANGUAGE\_RUSSIAN}{} -\twocolitem{wxLANGUAGE\_RUSSIAN\_UKRAINE}{} -\twocolitem{wxLANGUAGE\_SAMOAN}{} -\twocolitem{wxLANGUAGE\_SANGHO}{} -\twocolitem{wxLANGUAGE\_SANSKRIT}{} -\twocolitem{wxLANGUAGE\_SCOTS\_GAELIC}{} -\twocolitem{wxLANGUAGE\_SERBIAN}{} -\twocolitem{wxLANGUAGE\_SERBIAN\_CYRILLIC}{} -\twocolitem{wxLANGUAGE\_SERBIAN\_LATIN}{} -\twocolitem{wxLANGUAGE\_SERBO\_CROATIAN}{} -\twocolitem{wxLANGUAGE\_SESOTHO}{} -\twocolitem{wxLANGUAGE\_SETSWANA}{} -\twocolitem{wxLANGUAGE\_SHONA}{} -\twocolitem{wxLANGUAGE\_SINDHI}{} -\twocolitem{wxLANGUAGE\_SINHALESE}{} -\twocolitem{wxLANGUAGE\_SISWATI}{} -\twocolitem{wxLANGUAGE\_SLOVAK}{} -\twocolitem{wxLANGUAGE\_SLOVENIAN}{} -\twocolitem{wxLANGUAGE\_SOMALI}{} -\twocolitem{wxLANGUAGE\_SPANISH}{} -\twocolitem{wxLANGUAGE\_SPANISH\_ARGENTINA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_BOLIVIA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_CHILE}{} -\twocolitem{wxLANGUAGE\_SPANISH\_COLOMBIA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_COSTA\_RICA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_DOMINICAN\_REPUBLIC}{} -\twocolitem{wxLANGUAGE\_SPANISH\_ECUADOR}{} -\twocolitem{wxLANGUAGE\_SPANISH\_EL\_SALVADOR}{} -\twocolitem{wxLANGUAGE\_SPANISH\_GUATEMALA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_HONDURAS}{} -\twocolitem{wxLANGUAGE\_SPANISH\_MEXICAN}{} -\twocolitem{wxLANGUAGE\_SPANISH\_MODERN}{} -\twocolitem{wxLANGUAGE\_SPANISH\_NICARAGUA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_PANAMA}{} -\twocolitem{wxLANGUAGE\_SPANISH\_PARAGUAY}{} -\twocolitem{wxLANGUAGE\_SPANISH\_PERU}{} -\twocolitem{wxLANGUAGE\_SPANISH\_PUERTO\_RICO}{} -\twocolitem{wxLANGUAGE\_SPANISH\_URUGUAY}{} -\twocolitem{wxLANGUAGE\_SPANISH\_US}{} -\twocolitem{wxLANGUAGE\_SPANISH\_VENEZUELA}{} -\twocolitem{wxLANGUAGE\_SUNDANESE}{} -\twocolitem{wxLANGUAGE\_SWAHILI}{} -\twocolitem{wxLANGUAGE\_SWEDISH}{} -\twocolitem{wxLANGUAGE\_SWEDISH\_FINLAND}{} -\twocolitem{wxLANGUAGE\_TAGALOG}{} -\twocolitem{wxLANGUAGE\_TAJIK}{} -\twocolitem{wxLANGUAGE\_TAMIL}{} -\twocolitem{wxLANGUAGE\_TATAR}{} -\twocolitem{wxLANGUAGE\_TELUGU}{} -\twocolitem{wxLANGUAGE\_THAI}{} -\twocolitem{wxLANGUAGE\_TIBETAN}{} -\twocolitem{wxLANGUAGE\_TIGRINYA}{} -\twocolitem{wxLANGUAGE\_TONGA}{} -\twocolitem{wxLANGUAGE\_TSONGA}{} -\twocolitem{wxLANGUAGE\_TURKISH}{} -\twocolitem{wxLANGUAGE\_TURKMEN}{} -\twocolitem{wxLANGUAGE\_TWI}{} -\twocolitem{wxLANGUAGE\_UIGHUR}{} -\twocolitem{wxLANGUAGE\_UKRAINIAN}{} -\twocolitem{wxLANGUAGE\_URDU}{} -\twocolitem{wxLANGUAGE\_URDU\_INDIA}{} -\twocolitem{wxLANGUAGE\_URDU\_PAKISTAN}{} -\twocolitem{wxLANGUAGE\_UZBEK}{} -\twocolitem{wxLANGUAGE\_UZBEK\_CYRILLIC}{} -\twocolitem{wxLANGUAGE\_UZBEK\_LATIN}{} -\twocolitem{wxLANGUAGE\_VALENCIAN}{} -\twocolitem{wxLANGUAGE\_VIETNAMESE}{} -\twocolitem{wxLANGUAGE\_VOLAPUK}{} -\twocolitem{wxLANGUAGE\_WELSH}{} -\twocolitem{wxLANGUAGE\_WOLOF}{} -\twocolitem{wxLANGUAGE\_XHOSA}{} -\twocolitem{wxLANGUAGE\_YIDDISH}{} -\twocolitem{wxLANGUAGE\_YORUBA}{} -\twocolitem{wxLANGUAGE\_ZHUANG}{} -\twocolitem{wxLANGUAGE\_ZULU}{} -\end{twocollist}\itemsep=0pt - -%% --- --- --- generated code ends here --- --- --- diff --git a/docs/latex/wx/layalgor.tex b/docs/latex/wx/layalgor.tex deleted file mode 100644 index cfbcb42af9..0000000000 --- a/docs/latex/wx/layalgor.tex +++ /dev/null @@ -1,152 +0,0 @@ -\section{\class{wxLayoutAlgorithm}}\label{wxlayoutalgorithm} - -wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames. -It sends a wxCalculateLayoutEvent event -to children of the frame, asking them for information about -their size. For MDI parent frames, the algorithm allocates -the remaining space to the MDI client window (which contains the MDI child frames). -For SDI (normal) frames, a 'main' window is specified as taking up the -remaining space. - -Because the event system is used, this technique can be applied to any windows, -which are not necessarily 'aware' of the layout classes (no virtual functions -in wxWindow refer to wxLayoutAlgorithm or its events). However, you -may wish to use \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} for your subwindows -since this class provides handlers for the required events, and accessors -to specify the desired size of the window. The sash behaviour in the base class -can be used, optionally, to make the windows user-resizable. - -wxLayoutAlgorithm is typically used in IDE (integrated development environment) applications, -where there are several resizable windows in addition to the MDI client window, or -other primary editing window. Resizable windows might include toolbars, a project -window, and a window for displaying error and warning messages. - -When a window receives an OnCalculateLayout event, it should call SetRect in -the given event object, to be the old supplied rectangle minus whatever space the -window takes up. It should also set its own size accordingly. -wxSashLayoutWindow::OnCalculateLayout generates an OnQueryLayoutInfo event -which it sends to itself to determine the orientation, alignment and size of the window, -which it gets from internal member variables set by the application. - -The algorithm works by starting off with a rectangle equal to the whole frame client area. -It iterates through the frame children, generating OnCalculateLayout events which subtract -the window size and return the remaining rectangle for the next window to process. It -is assumed (by wxSashLayoutWindow::OnCalculateLayout) that a window stretches the full dimension -of the frame client, according to the orientation it specifies. For example, a horizontal window -will stretch the full width of the remaining portion of the frame client area. -In the other orientation, the window will be fixed to whatever size was specified by -OnQueryLayoutInfo. An alignment setting will make the window 'stick' to the left, top, right or -bottom of the remaining client area. This scheme implies that order of window creation is important. -Say you wish to have an extra toolbar at the top of the frame, a project window to the left of -the MDI client window, and an output window above the status bar. You should therefore create -the windows in this order: toolbar, output window, project window. This ensures that the toolbar and -output window take up space at the top and bottom, and then the remaining height in-between is used for -the project window. - -wxLayoutAlgorithm is quite independent of the way in which -OnCalculateLayout chooses to interpret a window's size and alignment. Therefore you -could implement a different window class with a new OnCalculateLayout event handler, -that has a more sophisticated way of laying out the windows. It might allow -specification of whether stretching occurs in the specified orientation, for example, -rather than always assuming stretching. (This could, and probably should, be added to the existing -implementation). - -{\it Note:} wxLayoutAlgorithm has nothing to do with wxLayoutConstraints. It is an alternative -way of specifying layouts for which the normal constraint system is unsuitable. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/laywin.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event handling} - -The algorithm object does not respond to events, but itself generates the -following events in order to calculate window sizes. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event, -to get size, orientation and alignment from a window. See \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}.} -\twocolitem{{\bf EVT\_CALCULATE\_LAYOUT(func)}}{Process a wxEVT\_CALCULATE\_LAYOUT event, -which asks the window to take a 'bite' out of a rectangle provided by the algorithm. -See \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}.} -\end{twocollist} - -\wxheading{Data types} - -{\small -\begin{verbatim} -enum wxLayoutOrientation { - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment { - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM, -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp -\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxSashWindow}{wxsashwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLayoutAlgorithm::wxLayoutAlgorithm}\label{wxlayoutalgorithmctor} - -\func{}{wxLayoutAlgorithm}{\void} - -Default constructor. - -\membersection{wxLayoutAlgorithm::\destruct{wxLayoutAlgorithm}}\label{wxlayoutalgorithmdtor} - -\func{}{\destruct{wxLayoutAlgorithm}}{\void} - -Destructor. - -\membersection{wxLayoutAlgorithm::LayoutFrame}\label{wxlayoutalgorithmlayoutframe} - -\constfunc{bool}{LayoutFrame}{\param{wxFrame* }{frame}, \param{wxWindow*}{ mainWindow = NULL}} - -Lays out the children of a normal frame. {\it mainWindow} is set to occupy the remaining space. - -This function simply calls \helpref{wxLayoutAlgorithm::LayoutWindow}{wxlayoutalgorithmlayoutwindow}. - -\membersection{wxLayoutAlgorithm::LayoutMDIFrame}\label{wxlayoutalgorithmlayoutmdiframe} - -\constfunc{bool}{LayoutMDIFrame}{\param{wxMDIParentFrame* }{frame}, \param{wxRect*}{ rect = NULL}} - -Lays out the children of an MDI parent frame. If {\it rect} is non-NULL, the -given rectangle will be used as a starting point instead of the frame's client area. - -The MDI client window is set to occupy the remaining space. - -\membersection{wxLayoutAlgorithm::LayoutWindow}\label{wxlayoutalgorithmlayoutwindow} - -\constfunc{bool}{LayoutWindow}{\param{wxWindow* }{parent}, \param{wxWindow*}{ mainWindow = NULL}} - -Lays out the children of a normal frame or other window. - -{\it mainWindow} is set to occupy the remaining space. If this is not specified, then -the last window that responds to a calculate layout event in query mode will get the remaining space -(that is, a non-query OnCalculateLayout event will not be sent to this window and the window will be set -to the remaining size). - diff --git a/docs/latex/wx/layout.tex b/docs/latex/wx/layout.tex deleted file mode 100644 index 353e091dd3..0000000000 --- a/docs/latex/wx/layout.tex +++ /dev/null @@ -1,112 +0,0 @@ -\section{\class{wxLayoutConstraints}}\label{wxlayoutconstraints} - -{\bf Note:} constraints are now deprecated and you should use \helpref{sizers}{sizeroverview} instead. - -Objects of this class can be associated with a window to define its -layout constraints, with respect to siblings or its parent. - -The class consists of the following eight constraints of class wxIndividualLayoutConstraint, -some or all of which should be accessed directly to set the appropriate -constraints. - -\begin{itemize}\itemsep=0pt -\item {\bf left:} represents the left hand edge of the window -\item {\bf right:} represents the right hand edge of the window -\item {\bf top:} represents the top edge of the window -\item {\bf bottom:} represents the bottom edge of the window -\item {\bf width:} represents the width of the window -\item {\bf height:} represents the height of the window -\item {\bf centreX:} represents the horizontal centre point of the window -\item {\bf centreY:} represents the vertical centre point of the window -\end{itemize} - -Most constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. -The exceptions are {\it width} and {\it height}, which are set to wxAsIs to -ensure that if the user does not specify a constraint, the existing -width and height will be used, to be compatible with panel items which often -have take a default size. If the constraint is wxAsIs, the dimension will -not be changed. - -\perlnote{In wxPerl the constraints are accessed as -\begin{verbatim} - constraint = Wx::LayoutConstraints->new(); - constraint->centreX->AsIs(); - constraint->centreY->Unconstrained(); -\end{verbatim} -} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/layout.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Overview and examples}{constraintsoverview},\rtfsp -\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}, \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLayoutConstraints::wxLayoutConstraints}\label{wxlayoutconstraintsctor} - -\func{}{wxLayoutConstraints}{\void} - -Constructor. - -\membersection{wxLayoutConstraints::bottom}\label{wxlayoutconstraintsbottom} - -\member{wxIndividualLayoutConstraint}{bottom} - -Constraint for the bottom edge. - -\membersection{wxLayoutConstraints::centreX}\label{wxlayoutconstraintscentrex} - -\member{wxIndividualLayoutConstraint}{centreX} - -Constraint for the horizontal centre point. - -\membersection{wxLayoutConstraints::centreY}\label{wxlayoutconstraintscentrey} - -\member{wxIndividualLayoutConstraint}{centreY} - -Constraint for the vertical centre point. - -\membersection{wxLayoutConstraints::height}\label{wxlayoutconstraintsheight} - -\member{wxIndividualLayoutConstraint}{height} - -Constraint for the height. - -\membersection{wxLayoutConstraints::left}\label{wxlayoutconstraintsleft} - -\member{wxIndividualLayoutConstraint}{left} - -Constraint for the left-hand edge. - -\membersection{wxLayoutConstraints::right}\label{wxlayoutconstraintsright} - -\member{wxIndividualLayoutConstraint}{right} - -Constraint for the right-hand edge. - -\membersection{wxLayoutConstraints::top}\label{wxlayoutconstraintstop} - -\member{wxIndividualLayoutConstraint}{top} - -Constraint for the top edge. - -\membersection{wxLayoutConstraints::width}\label{wxlayoutconstraintswidth} - -\member{wxIndividualLayoutConstraint}{width} - -Constraint for the width. - - diff --git a/docs/latex/wx/libs.bmp b/docs/latex/wx/libs.bmp deleted file mode 100644 index fb0f9e3655fa0eae8d23c657f2bdb1e48d3ca884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100370 zcmeHQO>7)Tb}mYzk%p4Tv<?C$F%Z#*AOsvh0c0gdA{tqz1Oz1iAPzRel}wqt4p%^E z`O1qO#e|g^9tborhq)vOWbZ&1Zwz}O%Q`GTfXMo^Fnlm32ND7a4|UmKkr+Z=^-p!Z z>U!N>J>4_iWS4%r{_DN3UcIV%J@e+T|K{x7DaOMc`1fb<@2`$Awg_2MtirQd_n)WO zw<nqXZ^q7H>}2&MtMn@DkN&p7{{3Gn?8pDAu)n|d=j>1Z;*Z&X|7V5WdGB3T`LV)& z`^|6J`bX=m@=q1^>xaK)KR)}BefsIAY*>a8ff9idff9idff9idff9idff9idff9id zff9idff9lIBXIEf=U;vVWM=t%bA25~(f!xYH9$LHD0>bl%<}2l;xvzExyI(;?)qI@ zZZdqfUf$M+R=%+r$HXl(EPXit{Wylt^%yiZrQDR*(4t#VY?f$_(kr2{$+f;2%S$R6 zn_TOg5*vDXl-T4Jn^NC!eba7R8;!HpvemZEAF~*%@zdb>Qr~cFW@Z|l<wa}T+TPge z&RI4zM+KXZd;I4uz~<4TIqUJ3HN&Rb79itd^Va(M7qH+%8fR)Gpmhx|`7XRTereb} zo&h#fQ#Dvl@V6#o16T9sVT`cGSsDrAvo})Bu=_m7O=qq)YyD=++H4?f-dw+H%T0zx zfG{J&NF1lr81zkd%Q|N**R1Y~Te95bS{J9od_*sR%_c0TP1vV8FEvVRWVrY~<psvI zj?l%qKHtbJj1b@Z->}9qHb1qoDa83Ej3tAzC#S<I%h-7GV?XnK_6uXlpzQVHVYAnd z;x8rp4NHj41oh3J9)(Rx_iz?l-{fXZjSrj9Imo5HDY2pFY;4$sU(0B@ISTrQo*rJ( z`sts(B>&z1+Wj-h_nKpqn{aG2FT&ld3Ero2f{pS%yal)K&+WhK{cupTEZtp+>OEXh zM754tuIQU1aT<;Z&9KCVMoPtIg1Zw<<b+C8Y$m9ICxAfswd`nP6Mii#v7yCP#pY<~ zn*z$s`0O{d&_IbQH@VQoV>=fYP;PRHO)m6JPO&*!YbyL&cC__Ps470<y4Vbxqor>m zun~qn+u+A?p>OhHzflZ-xxglTI>%P}2QczMaQ|PQq_uBsJeLEN2#kh6xcz3dzKh;E z{61B5?na}(#D>PNfY{{3enVqA!IGTZ!zYLUJ#>jpi4BbaT{1Sg3Af+S1WvHT5S!g< zwOR*qi}(c6i9q0Qh|K`*%N&~`K9#G!luQSkJqWy~B0d@V0IHOrj$S#j-w-pGYPK;p zsg9oS&Pr_P`6;m}A~ut^-{e<rsLg<$=d?>oY-mKY#%8xpj~!l8K)Err-$WmyDTE4$ zO*FHJsp#tY#>Vw|F>9TL@5`R;oS)*yW5l6Ee>AhGWps6^Zxlt{pptPVxW2J{Uew@= z=!<~O?72pF0@&=rjkgX=`%k8%)$;7q92?i?#l{PBZL72VHAe>ICP1u1%z(98D-shB zRRWsuxN?)ndpgI)^?A`*g74>pa|at5a3>SbxS#+7$wb)X@tzLYcs?&I_zpU&x~@_z z)`tL`szeW_vC$zVY=YfPJ_oSzd|p^f@csPmoF_K~ZPAMa$&GEiA-WRT$qzxIi!365 zjpy^C`-1HcWY%3%#AsRAZ=&%gh{-ma>l-)NK6bjx5&KjY<m4ZlMeAIf9kU|NH%Aj2 zPkx*y(i#*XRjR-&KmT%*0Gn6<M&qQ#rs(#YEU`(c@93E!Ye>2{XL57+v59qb(H?>d zhz+veXz53aLaRzhDV7VgeajUxj~lNk#H^Nnl!>Yvaf7-sYMEAL=_Rinh1<6s7)2Ul zR$B>WqUuIOqi&2^rd3(R#!nL?AZDW#1*%STsn5;<Hp=eQzrW}F)v^s-L^F$+imt9l zCPlZT)ButBioQX7X&Xl~i~5MJt{o*8nI$&#G-QnpwKNe$u?|6~#aI%?*c?s!4cE#@ zSBzzH_#in|O2%@N1z?8~n<HhvF<euI)hU_N$_=`fQ7tpgA8k!#iA_p<kAPl@4Gmt_ z*u*-zXb(XJl$)b#zlokKq&KzIQ6{QRi?5~xb)zZIKFfGbA!fDoqfAuYh#l08QOmR{ zkA_XOq9`;ro}n+?+UHM2G_z>JqpSN}<JjcCKjqu`oEWB0lZs|GC2TZfk2y=&`NFMz zK2=8u8=vWzF+*&$8c7{0)*(o3l*9B9vftza{b*Ut1(_2e;!t99xa~Ki$qCx7lXs<+ zo5|a6k~73xW{FKoeUHZA2(441Un@5$^*sW2qcx4DKi1JjdkBi|do<cJXnln2H^%58 z`Pa@Z%0$)mgYEO|hf3K)&}DXklAr4&Viv*Rk&QA@b*~0~w!jzYfpQwyeGagBx`Hd_ zK82W#RurhZp1HMq!{L)txD3*4$O{S;qM0?7n_eB>`c7jI_89yuFze&Y+^5pVW*2bj zttgDQ`oleCohdbPm`ooVzMcZh2Qt)kmP0TUk_@rYY9!p{57pf|*T*P)voZvIT(FRV z{f70Xk&fbsfCA!r=*Wk)2d7V{AiyuyKKO~6c?8o>TUGu`@hHH7XOh3_hiFNbNM|P* zINvD7Brw><3mwuSe}}Q)@>!?`)>*NjN(Y+*rg4-1lm*t=QN(7CX->dBrW}=vg-jf~ zUo890f<|xcu$7{rG0eh#^FZ@c;rr}i;jlsHVy(VGnW#F&Y)`X%_B88^YM+;U#4Lir zqY!1H>Rt`?sXc2iskQQ-M$Bq&OXk?@>z2=#`Nu+~5MiSh+G%ra2IxaTZUX%51jCAU z#8{dC7af#-c9*CSJdW8-Gr>mv6cCxNE94s_$v*u8rMI46qQnR?GQr06D}%oSs7bX6 zq7<gIN%naA<?z2q;GvH}t)UMyE7}oad}jp>q18xg&x5gGqrn<yA;N*i9z_;4McO?D zF>C%oy_{l0lGR>83}>1kiNNz}S=5BZp-%ZktlBlC19G#hsl>BJAtMf{a-E!FLy{Fs zZZ!8Gndi81k_dI)Mwze#a$~A*5WlJvqQdxzykbMHsg)SKO$?j;zl%W~u3|1X<dnq{ z-$`NfE2g=*V<-YCb8LF@n(8+E1s+S^L}L@nenU=>PmU9FChU_IJMl$;_oxhWY!F#9 z5-pV6WMRLtiKx}A*^ceebmL6TnrT=wQ?)kt#>g7hqbZAL+MDMOA2Rk2Q9x+Q&9Uim zedCa2J>m{C!4sk#D7is*2CdwnOjKP%v7N=S=}b*o?afAatF!fT*T$ySwXu0@ZFRRc zES|}+`2%C8o>3iz<#TLYZ^Z0aqy1>k>a-TQhfv09R_hUzBEq37iLB1t=GL~g?Lb4G zZxFL;Z#Hcx6IG{3=R|bR9J9JFTOG#0+iT5wciEb<Y-~6rKoifj+RraA_VIAI50~_x zLvQ<VQ<t9yUw!ozw|A(|eYk^jY+P@|wa#LD>#=pNF~d8Be;ZpmY<fOfn~l!$46_|O zLxXm8Y3Xgw4BXS@=RnTqw<S@&!fQiFhE010Rx}U;cyJg%l+Q7N4P$nu)jq{o6{Kb# z?#28QJL+=)`E|(GJvlb6H{zQ0B44eu@Xx`9r}T2;k_E*!VNeS~8;0Rr!b<@394KkO zoD;=EGHlMZHyYh{frN7$hRz&!Ybvm@nE*E0^*zuwZw-g8lU((=^T7un+yfGHPmYc2 zjkv}a7sn+W8?J9$vTSTRkhVj6`u_d<oK<+p&jFF|zuHfR&DY>7xDCo~`$eu=x{VjD z#m;hj>zrlln{A<QhOkRj&37r7GT$4qz=n$>OaWj-$&E`E$EN%BmWNH90}~9S0ucqt zuvvuBXS;LO*;#AzOl`B#wl=C(duGbsr_L|)OfEN^pwAe4=ldXK5jlX3=Z%<S1Nw&J zQnlvbN$VSztPRjNotGLOHY@tE1O#faC_va4+i%*=OuAIa4}s0_U?JJr&+|rH1F!jy zmO<ZG))}@1+Z4S|xde3PHX0URm3E-cH>CYWU^ANiW^)dP=lBGIkIiuS?LVqh6PXsA zLHDpvLHDjVVtXLnnzGL~E*X!`Sl}1j4b=IDq(NXq)*uV`9*%;VwhLu!$gb!D2^)UC zfi7Kd#CGR8YyxC?G*WUy4jyau=v$LSc*J;5W1^(-By6BNj)fQaOz5!bX{U%+UXl8x zq7$><l=pCNV#U*wn=#$Pm&L$15=(B-mP83xbiU!5n#es|M#r0?P|hZS%^2_DBk7xH zY*M%1jC2o|CqEchxgo`wlABEIH~fw!1>Ng$$6p5A!>b?vPnEUqh03$8kUhrXg+NfT z=}9E<DBQB0Kz(cq9b?qqY?@Fes;(oM=M5Ah=p@|3Pds}7<@cz*$b7m}QKGc%i2^lJ zS8BRR#H<X1SUqxPj90|auOhtdX>g9g-QfoR_3e8&l<0{I%Vqd=ID;#@5)k3gRS&-p zpPBydm-n5&ef>ZP8<|8=fQAsc`re#e6`Oik<q_`TvWh`eI^(HXMr83WNM=O=8baiT zv1>>KzlZmSpBY+4@wqr)00sIG;gIg(eJc7?LozE0&=4XwMQr#z{M2xb8$S(#IW~q< zmJ7K7K)(Ii7_gD=;jkQ2mm66lk&|pZLA<9N%1zex8$LmG5=E&Xdu)vLjYJ)e#?maf ziI>WW+<f5C<31CSrS#z>W33)-%fR`juCIo3)0Z3EKkQTZ9v-c4PzTxAZzi>-5NnVa zO>WS3t#%zhors8E_Tvx0Yew(kYJWY`^9|}?lGq?ZVkFG5Ni=1GlEaP7X!<4^8*u{_ zcxob}O^~KTUDg=nCKLOOvastq-bT$c$HrLSpks_yZcrwwPO+C0x%o<=&zLO4tPF!# zJ#r>}ZI|g7@E@J_1FOr0X~h|~^C2poG1RP{F!b5xKFZqX6Ns>p&wHW(4Iy&<9)huf zVpppNtBjtbjDe_hdRMcI$s(B*1!xG78^+w8ZQ=7>;`YNTdu68fn>Ur<_2WMg;gG#2 z?0litKEDH!Sy6z75V?L2DaB0h4AH|P!lSDPYmm%}0yKok4fZr*PVupkHPVP+D9v+- zO&0bWh3k099AZNfp55xv51BqTs{KYkZj#*WR*#;V^s&*8lQcIa`%R+Z^NtPLk`i&4 zypgH>CizIoT22z1WE79DRf!Fabu>2O21<8wcuKOc-y9Zn&@o0UHz*TT&p8IF{l=JF z#H<X1yLymQ=6!CzF?^?QOi^kLWNs35im;K-drrab^YBrPZ&uu{Th9jdA0~MSGGZ}Z zY~-OGY_L=2wR?klR_<g??Kd*5`Z!y^2L=1<>*%SktIb7nBiC>Wz?&od>AMBJ`k=15 zZI;`N5>NkJ%xt%LyI>%k2Ex3j0gVyZ3|oEXucF=QL0v2`gF)g{O&^=PpWlOl_wV9o z99rBuQP`~AWBw|7a%wN=w%K5?u&U`}6E<3`vMBq_H!I)yPMNs`1>82r8Ya5Zc(6H0 zWtVjY3e-!lE;wWT%-qS22ODyk2o~c+-2Hq9oHE}N^%oxQpAw05BYDS0b9BK@nV+t} zfhU`gcWiX0CDxa62X$$IrHj#c>^I5Rl!Ss{eBsLzB0k(X{q!e(s(`U{v3dHMw2BU@ z3(pFOh);65*dV9OTDQ&q$oY>MVH0V;*+tIJ7o-K2e<Xqw?%WIJkvRxRoxZ_NnRRZP z$-awTKw{%rKe1Eh9>2C7m4L7b+HU}cB^e6xiXm4zEOCU5%#<iVPMNiCo8@La&dmYw zLmyhS93MfvagKt3K&43(fWIdx_#ai{F}0DCPJ|6h<rb(XC}FOEKy5Dy!X!X#<fM0} z<Zlax#5eP;y#xd*o1#GZu&T_eZeN3bcJXIu<rX-;neU&ZB9-eX*yLAkQnlX%zEmO4 z{K#@M_BADDTwNwcX|bOtSX23xo8;JN_nidT<X7J$$40wG5@2%}<t8m`V#`f|^i5)H ze&3gMS&q*)V_#FBEZ{?Jj?Xtn*hJcI)GtN`_VB%5G4_j~+<5+r!N)4AagW8^<!Xm< zzmOY^v*1G(7T);J#p&8_Y;0Ud!LFxH?xT`3Y&*#K7Q9v~c2X`kuK!~2B{vJ0bmzJ@ zHthyD4F<24i{K{}KpsCf^3sotBO#OZjc32HvGE)QgWo*hmSba!4;vn=G4`)$5V%rv z$H1=t;<g3eUOA+^mHp&;`tg?ID{_<H)wsy<Mmc#(p4$;N;=BjsiUPie3rE2UHos?V z39jS(TC@X~^<TJb0{_BM@MZ&J!v)TP3go6h*Z^xHAZ&a`!M5DI?8(g<W3K~${7nS> zs;1{LmG4uYqhMCG<xG~Fn)Mq`ZpOZc3-+kUKA&GV2nf6k?<opEZaQ<dS<Vo!Z(~#S zuo?ab_mSW4^G2S3X6GI*90h})UPs@Yfz<^9vkjhgYs>DM%J)57K;U8GJw*XvBRLA@ z>`iUY@Ks^!V!liLyzez~o?LDgfqU>@4E1VUYr{S@#TuZ&xf|n+#$(&#d!cl(%%Y5q z?<m;TH^&<11vc>EAMiu>k=#<Y-@tDUfQ;Ay5aPgkfhTjmPZ`;7xE2NWs#Z(FW;g_m zj0~F6xwy@a$zV(zo9yg2fDNde+LYz5DO+HESnJDzqn?Yoh&T$y!^wS)-|i<?gG{e+ zT<quNJ>14_?Dm_n@8QYiMm`q{K|5M<vv*%Gjw5Md<0u$KxoDC()HhG0I|BkIEo|U? z6Dy2=506|^nPU@MZt|yZWNb#a-yq4e69d@j<At$f6KTJZu|YznUsDR3{5`l6>>u3; zLSx{+IDhx4SlIaX8wDFVsR0JEq;oM>JLA_Xda`2WlGyA?&4oZIdpHwLn&ILt)t92m zxp@4$kwlAWl*C5vh{Q&&q>mR_ZVpWCH}Zz8)kzp5Rc^+vaWOfGQ$jq{9z=n<rqqhT zbdlvo=0-puXY#lxNPrDK-xNyU$S@e$Z}{4Zv!?L5I8XajcJ`aN*eG(7BYh)QgDfA$ zaj~B#SX23xo8;KUvERg5Q;OW===7T$8!g{QOKwK8-)Ql}D>ldHn@G8l&&7x<E#F5= zZZgNF!1_kU#@K$Nl`SNFdA^6IZNHIkQ}NDzirnPre1j)Zlal2IDJNMbeEW?#HnNEa z;)enoaoz(!1!#(+W*I*X?mSEV9!!qTHw49gHYqoL6&V{v3gk+MFYeoKkdr9>zJK54 zRw@v7KK`R@q^<App~Rg;fma1P*xnR8?>2J5;bS`%N4AqF_f4Md=En01As58zsSuUy zRe?SZ6GC>czPkcmT<l<bZ?QkE3CS$IM}^RnaZ&60gNNQSi5zMdaOthM)mr_ba37VW z_ozs!GOJ+ZOO3CiwR<it5E1U9vh*I68S9Z98?6T9B<h=$s&F5L3L?iWN`>9$z)8(Y zTxw+}QG;pLt9uRQ0xz%d&nKq_b+JtJ+(`Bt*-6ySY393+k_+^`6fpOP>YyIsOHDc# z%TA&W;P;rtw>IR00-`{W%zD!icOD6w0eCYM{lMiw#543BCB_(kWbMJ}2q!fXHan-* zej-R*V1C2Gdyf)a$&sgTf5^Xk5fUV94j2>5X!yYX(uUKp@ZO`e{70__2^-`jY9Lu! zP=R)wB4+NKe&8<?EdvrZ!<N5{!0sY7EV}n7E$0U(qI{{z*vL+zkozdPKs!zmGox37 zZ@+=tlw`0(?xW;_BEq1jc|rT?R$q6BK1Z=6RYC<)ezBuQs{uKQlHEt4f*b-O`EpXC zVZ<7(hJp8iSpH=4DD|*0QZC!OA09NrDOPMLsi`coj8?-y>J&%oqC?Zju8cQ|Q+=v$ zCNL$8eIF!&y-x)HY>yi`^Nz?730%`l4Nek6+^)M-Xu2ge?saEB&GFvFKYeNc{-yLE z>!bed1Zxt3!bZhgP6xZ^IfDu@#C+XtkN_L}UekZ~NB)wy^65#xg%fM_U0S4vIW~k4 zKsEtq3~cbHuzb47&+!e+v7uU|i47qHkS$>&*>B>=4MjKk`OgH{Q24vp==2T6s>G-y zX5crBYJjkj&&8$OV7W2GhLjsp7gH@Jt8YrVk(EcXHT7=~-F7k76eR_RRo^^dZ}n|- zVqin*$wRqMfxZD3S=BE%I5Dsx<!0jgW`4eT<>IAgrMb{txY2B0sBo2%!ansGWADJ$ zXk$~UG_PI0`Rc{XH!IEgdB*q{{@E|Ta&zIr#jBND&B|4F<&F26&66CO5wUUXH;y|f zj?Lxc$D6lbUA=sBewAZmk04<~$_@2-Ec<-p_#(5;RU2?PcMpu=`;_orRs(-!R_hV> z1JhwM&{p?Oi62)M7H&3QyWXr^x$r6{y2Aep#l{u1EA09_yVYdy?@sk%pvf*=z1{}L zK2M>;D<`VWE3Y-1H(r76gV=Dnap>-}z$*zrbrxt3`5q?6hWjEr2i~?8JJ8e%G&X(< zaCK7Kwzf959`T_z8}P8GJHzqgC!4odo0a+7Anb9laRu#ztJmh6mo8SCm#!YadOd*6 z0A};_0%L1{&HRN6t5-oFZ{KKEUJGL5(%s$!=X2oA20YO%T3b=rxW33X8XQ(H(AWU} z!h4zB!gK7^;BH|EY_8s_Tx-7mmp0L>x8q>r3fhh4rTOON>lIinAT<GOhW-2C@#vjC zUsHE(U%7bY#%lA`>&=tZAT~bTKqmLL)@|6#hVE0s7g;=P06(wA##Rj$lZ#EK#n&T& z&6SHV@i$L4E0y^xZ@dx*8&A;q>bP2|Tm^`9*nGl0WjVU|TJ!SFJ9k!_cWyP0zj8sR zZ(O=za=F~N9)3d4H)q=*WbblcLUHBBYtdeY79KW^t0h9;y!w7~{=JK@G>>1OZ!U24 z0rMOb0{f@}|G}aYf@W)u3S%dA*zA4C*jwHnervUP685R)wO5+e_gevMKyF;GYt|!M z-+0)B?cv+t*l*LGd;rr6^qPV?UW*sMu5EYcguZ!9%MC|@2e#_aTyat!7|Ii{5rXDm z!{uhx?f_L?^PD;IHRXn@mHE|bGl&h)?Rs6?+yX*<xe3E&87eMz=0M-X!UphnTeN34 zYT&QT-lt&X^K;SIoM^_x#uKz#Lf-&d5b%-ccOSb@N!al7&GFUXngY5Pfy3F(vMn$* z@UsT=M(k5|4cM+gZ3BmH2$dVJ&hn<yz?Dv(P3RkMQt=Zr>PrO3jTbJx@9a}oFI~Q& z*{8fV5;k5-=josQeBL&;I&)kMrobmCU=w=2aao1!-fvH11Ngh4-RL+CWNcEl-@M1q zH#a~*z0thGKynB;V_@UcZJj?h!%uQC&Nm*b=t*Pa<0l#bHePPpa)YH{6l^>S1=VgO zbPrc6+i4mb34cw?{9;4VohCLE{ti(2#fG9gmcBt!kXUX~);H;`sZwrKEOq-75(3)i zPx|i}`rfwcKVeTmfxos~;x8(RO(*7i27ds!GoS$=;S2%)*WGI5d$lz6&D0AxbWqUh z8<lX8mf4fy()mV}0|L&0=u(XcY|QnI+7%#e2j=xDk!(k4Dx9u#`UbzIWc;gLcDS#0 z?xuA_xi7>iZ1DT=+tYh)5Duegy2(3(N`^?+3AzXPeRvBemzMg$c8VAf>`Cne5t@ip zO^PaKKcQv(Dg#YlP8Nv`mbCWt9(;F?{}p)qy*n{w-IA+SYG;lOC20LVA!^asnA5H3 zVshv9IZfcD!5kZ`WugU5eb1ng8<lSA7UgrA02_Qx$VP6mz{Z&F1lZtJSR8DO=}v%+ zf`7DZs>hY+C1Sh?<E$x#Zb}1>w5E*l&j~gP-O+P8y4*zLpA&3KxpB03jD0G4PDhuU zXxS{~#@Atin6YX#ZV*Qom->cYQ>DJ4u~Fov)HnY6F7H$BWh2Hu6}^XyzE4HV<`BDc zBCUP?94FAl%(XkYkGkKP8ykz<Of}?iE)F(|=_Ek6nvnz>JVssZQvNk5ZZD2;4;)~; zS+Gxa5cN9~(Xu&ojC|t%`)Zegw6UNKJu{#8><9W(>5iV$0fsvUHczB4z3}MI0#uBi np%4{)IgK%-icR#Kf?qDj&KF_ri!peLRfLE+k!V4S82kSLscQ$o diff --git a/docs/latex/wx/libs.dia b/docs/latex/wx/libs.dia deleted file mode 100644 index f351511085..0000000000 --- a/docs/latex/wx/libs.dia +++ /dev/null @@ -1,1208 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/"> - <dia:diagramdata> - <dia:attribute name="background"> - <dia:color val="#ffffff"/> - </dia:attribute> - <dia:attribute name="pagebreak"> - <dia:color val="#000099"/> - </dia:attribute> - <dia:attribute name="paper"> - <dia:composite type="paper"> - <dia:attribute name="name"> - <dia:string>#A4#</dia:string> - </dia:attribute> - <dia:attribute name="tmargin"> - <dia:real val="2.8222000598907471"/> - </dia:attribute> - <dia:attribute name="bmargin"> - <dia:real val="2.8222000598907471"/> - </dia:attribute> - <dia:attribute name="lmargin"> - <dia:real val="2.8222000598907471"/> - </dia:attribute> - <dia:attribute name="rmargin"> - <dia:real val="2.8222000598907471"/> - </dia:attribute> - <dia:attribute name="is_portrait"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:attribute name="scaling"> - <dia:real val="1"/> - </dia:attribute> - <dia:attribute name="fitto"> - <dia:boolean val="false"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - <dia:attribute name="grid"> - <dia:composite type="grid"> - <dia:attribute name="width_x"> - <dia:real val="1"/> - </dia:attribute> - <dia:attribute name="width_y"> - <dia:real val="1"/> - </dia:attribute> - <dia:attribute name="visible_x"> - <dia:int val="1"/> - </dia:attribute> - <dia:attribute name="visible_y"> - <dia:int val="1"/> - </dia:attribute> - <dia:composite type="color"/> - </dia:composite> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#d8e5e5"/> - </dia:attribute> - <dia:attribute name="guides"> - <dia:composite type="guides"> - <dia:attribute name="hguides"/> - <dia:attribute name="vguides"/> - </dia:composite> - </dia:attribute> - </dia:diagramdata> - <dia:layer name="Background" visible="true"> - <dia:object type="UML - SmallPackage" version="0" id="O0"> - <dia:attribute name="obj_pos"> - <dia:point val="-8.8999,2.55"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-8.9499,1.6;-6.3499,4"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-8.8999,2.55"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxGL#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-8.5999,3.3925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O1"> - <dia:attribute name="obj_pos"> - <dia:point val="-8.8999,10"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-8.9499,9.05;-4.7499,11.45"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-8.8999,10"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="4.0999999999999996"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxAdvanced#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-8.5999,10.8425"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O2"> - <dia:attribute name="obj_pos"> - <dia:point val="-13.9499,5.95"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-13.9999,5;-11.1999,7.4"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-13.9499,5.95"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.7000000000000002"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxHTML#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-13.6499,6.7925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O3"> - <dia:attribute name="obj_pos"> - <dia:point val="1.1501,2.65"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="1.1001,1.7;3.7001,4.1"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="1.1501,2.65"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00cfff"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxNet#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="1.4501,3.4925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O4"> - <dia:attribute name="obj_pos"> - <dia:point val="11.1,2.65"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="11.05,1.7;13.65,4.1"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="11.1,2.65"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00cfff"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxXML#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="11.4,3.4925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O5"> - <dia:attribute name="obj_pos"> - <dia:point val="6.0501,2.55"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="6.0001,1.6;8.8001,4"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="6.0501,2.55"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.7000000000000002"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00cfff"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxODBC#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="6.3501,3.3925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O6"> - <dia:attribute name="obj_pos"> - <dia:point val="1.1501,9.975"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="1.1001,9.025;4.6001,11.425"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="1.1501,9.975"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="3.3999999999999999"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxDbGrid#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="1.4501,10.8175"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O7"> - <dia:attribute name="obj_pos"> - <dia:point val="1.1501,10.675"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-5.2499,9.8875;1.2001,11.4875"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="1.1501,10.675"/> - <dia:point val="-1.8249,10.675"/> - <dia:point val="-1.8249,10.7"/> - <dia:point val="-4.7999,10.7"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - <dia:enum val="0"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O6" connection="3"/> - <dia:connection handle="1" to="O1" connection="4"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O8"> - <dia:attribute name="obj_pos"> - <dia:point val="4.5501,9.975"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="4.5001,3.45;7.0501,10.025"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="4.5501,9.975"/> - <dia:point val="4.5501,8.18"/> - <dia:point val="6.6001,8.18"/> - <dia:point val="6.6001,3.9"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="1"/> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O6" connection="2"/> - </dia:connections> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O9"> - <dia:attribute name="obj_pos"> - <dia:point val="6.15,13.95"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="6.1,13;8.7,15.4"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="6.15,13.95"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxXRC#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="6.45,14.7925"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O10"> - <dia:attribute name="obj_pos"> - <dia:point val="8.65,14.65"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="8.6,3.6;12.8,15.45"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="8.65,14.65"/> - <dia:point val="12.35,14.65"/> - <dia:point val="12.35,4.05"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O9" connection="4"/> - <dia:connection handle="1" to="O4" connection="6"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O11"> - <dia:attribute name="obj_pos"> - <dia:point val="6.15,14.65"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-9.3499,10.95;6.2,15.45"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="6.15,14.65"/> - <dia:point val="-8.8999,14.65"/> - <dia:point val="-8.8999,11.4"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O9" connection="3"/> - <dia:connection handle="1" to="O1" connection="5"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O12"> - <dia:attribute name="obj_pos"> - <dia:point val="6.15,15.35"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-13.0499,6.9;6.2,16.15"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="6.15,15.35"/> - <dia:point val="-12.5999,15.35"/> - <dia:point val="-12.5999,7.35"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O9" connection="5"/> - <dia:connection handle="1" to="O2" connection="6"/> - </dia:connections> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O13"> - <dia:attribute name="obj_pos"> - <dia:point val="6.1951,9.995"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="6.1451,9.045;8.7451,11.445"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="6.1951,9.995"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxQA#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="6.4951,10.8375"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O14"> - <dia:attribute name="obj_pos"> - <dia:point val="8.6951,10.695"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="8.6451,3.6;14.05,11.495"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="8.6951,10.695"/> - <dia:point val="13.6,10.695"/> - <dia:point val="13.6,4.05"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O13" connection="4"/> - <dia:connection handle="1" to="O4" connection="7"/> - </dia:connections> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O15"> - <dia:attribute name="obj_pos"> - <dia:point val="-3.8899,2.565"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-3.9399,1.615;-0.7899,4.015"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-3.8899,2.565"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="3.0500000000000003"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxMedia#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-3.5899,3.4075"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O16"> - <dia:attribute name="obj_pos"> - <dia:point val="-3.8349,16.93"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-3.8849,15.98;-1.2849,18.38"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-3.8349,16.93"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxAUI#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-3.5349,17.7725"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="Standard - Text" version="1" id="O17"> - <dia:attribute name="obj_pos"> - <dia:point val="-2.5849,17.63"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-2.5849,17.23;-2.5849,18.43"/> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="sans" style="0" name="Helvetica"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-2.5849,17.63"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - <dia:attribute name="valign"> - <dia:enum val="3"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O16" connection="8"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O18"> - <dia:attribute name="obj_pos"> - <dia:point val="-3.8349,17.63"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-7.2999,10.95;-3.7849,18.04"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-3.8349,17.63"/> - <dia:point val="-6.7774,17.63"/> - <dia:point val="-6.7774,17.24"/> - <dia:point val="-6.8499,17.24"/> - <dia:point val="-6.8499,11.4"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O16" connection="3"/> - <dia:connection handle="1" to="O1" connection="6"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O19"> - <dia:attribute name="obj_pos"> - <dia:point val="-3.8349,18.33"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-14.3999,6.9;-3.7849,19.13"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-3.8349,18.33"/> - <dia:point val="-13.9499,18.33"/> - <dia:point val="-13.9499,7.35"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O16" connection="5"/> - <dia:connection handle="1" to="O2" connection="5"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O20"> - <dia:attribute name="obj_pos"> - <dia:point val="-1.3349,17.63"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-1.3849,3.6;11.55,18.43"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-1.3349,17.63"/> - <dia:point val="11.1,17.63"/> - <dia:point val="11.1,4.05"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O16" connection="4"/> - <dia:connection handle="1" to="O4" connection="5"/> - </dia:connections> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O21"> - <dia:attribute name="obj_pos"> - <dia:point val="-8.8899,6.005"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-8.9399,5.055;-4.7399,7.455"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-8.8899,6.005"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="4.0999999999999996"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxRichtext#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-8.5899,6.8475"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O22"> - <dia:attribute name="obj_pos"> - <dia:point val="-4.7899,7.405"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-5.2499,7.355;-3.5274,10.45"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-4.7899,7.405"/> - <dia:point val="-3.6274,7.405"/> - <dia:point val="-3.6274,10"/> - <dia:point val="-4.7999,10"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - <dia:enum val="0"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O21" connection="7"/> - <dia:connection handle="1" to="O1" connection="2"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O23"> - <dia:attribute name="obj_pos"> - <dia:point val="-8.8899,6.705"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-11.6999,5.8775;-8.8399,7.4775"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-8.8899,6.705"/> - <dia:point val="-9.6774,6.705"/> - <dia:point val="-9.6774,6.65"/> - <dia:point val="-11.2499,6.65"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - <dia:enum val="0"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O21" connection="3"/> - <dia:connection handle="1" to="O2" connection="4"/> - </dia:connections> - </dia:object> - <dia:object type="UML - Dependency" version="1" id="O24"> - <dia:attribute name="obj_pos"> - <dia:point val="-4.7899,6.705"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-4.8399,2.9;11.55,6.755"/> - </dia:attribute> - <dia:attribute name="orth_points"> - <dia:point val="-4.7899,6.705"/> - <dia:point val="9.9226,6.705"/> - <dia:point val="9.9226,3.35"/> - <dia:point val="11.1,3.35"/> - </dia:attribute> - <dia:attribute name="orth_orient"> - <dia:enum val="0"/> - <dia:enum val="1"/> - <dia:enum val="0"/> - </dia:attribute> - <dia:attribute name="orth_autoroute"> - <dia:boolean val="false"/> - </dia:attribute> - <dia:attribute name="text_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="name"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="draw_arrow"> - <dia:boolean val="true"/> - </dia:attribute> - <dia:connections> - <dia:connection handle="0" to="O21" connection="4"/> - <dia:connection handle="1" to="O4" connection="3"/> - </dia:connections> - </dia:object> - <dia:object type="UML - SmallPackage" version="0" id="O25"> - <dia:attribute name="obj_pos"> - <dia:point val="-13.8899,2.505"/> - </dia:attribute> - <dia:attribute name="obj_bb"> - <dia:rectangle val="-13.9399,1.555;-11.3399,3.955"/> - </dia:attribute> - <dia:attribute name="elem_corner"> - <dia:point val="-13.8899,2.505"/> - </dia:attribute> - <dia:attribute name="elem_width"> - <dia:real val="2.5"/> - </dia:attribute> - <dia:attribute name="elem_height"> - <dia:real val="1.3999999999999999"/> - </dia:attribute> - <dia:attribute name="line_colour"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="fill_colour"> - <dia:color val="#00ff00"/> - </dia:attribute> - <dia:attribute name="stereotype"> - <dia:string>##</dia:string> - </dia:attribute> - <dia:attribute name="text"> - <dia:composite type="text"> - <dia:attribute name="string"> - <dia:string>#wxSTC#</dia:string> - </dia:attribute> - <dia:attribute name="font"> - <dia:font family="monospace" style="0" name="Courier"/> - </dia:attribute> - <dia:attribute name="height"> - <dia:real val="0.80000000000000004"/> - </dia:attribute> - <dia:attribute name="pos"> - <dia:point val="-13.5899,3.3475"/> - </dia:attribute> - <dia:attribute name="color"> - <dia:color val="#000000"/> - </dia:attribute> - <dia:attribute name="alignment"> - <dia:enum val="0"/> - </dia:attribute> - </dia:composite> - </dia:attribute> - </dia:object> - </dia:layer> -</dia:diagram> diff --git a/docs/latex/wx/libs.gif b/docs/latex/wx/libs.gif deleted file mode 100644 index 707f2cee86fee0c0bce339c083f36ee4928b2b19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9187 zcmV<9BOKgENk%w1VK@R|0kZ%A2L=ZOpadCC8U%@^1kU^|Q(PM{9|X7IY;|@7`~=U? z&x?wS1akzuzP$YY{H(03A^8LV00000EC2ui05}3+0Rsg8(8)OsxH#+0aid@;j$~<y zild~f%D!&g&gyC3c&_h!@BhG{aKx$=kH#djHEcScLrZ5$#iXEEP<1=adM5~jcuX#v z&*STN&2Im=aE*IT?^zP~ynfH`Thw(x7#4&8g@=ZTh!}xUagQI3K}$-NlrWM$gNmGp zo}2)gla{2HMu1rs0e!5kd4Hms0Isxs7qLF7tGfxjzP-S|0kF6{kB`MV7X-}B&d<=% zx5+!lacp<B+ISX`)HfH~+tc4Ss^Yc8<u;q2?wyID>n6+5_V>-?^Yj<*{_yg?oI~eI z-M$gw2)fdDP((I`tPC~`Q4gQRXACDwsCcnsMvW8yICix7@ySDod?bQ&kPs!Gk{SoP z)YEMxMF1m5!aOK4r@fsMd-{Y1REW%(+yJ0j*%B$9qWexdRml|RP<&9!3B8&xpv{n0 zxk~ezYL?Si0K9!|>NM-Rqe!WO+$z>BHM(5wY7HwEBUvnPXUYv~_G|*Z)TG8$`jrCS ztB7$u9vV5>WS^CDC>G4PG0VbdGsg<-vZm+HeaCvfoKtix);j+}A&qiyL$*j=XWCr4 z^J>1SnduG$+oSBN!Tn+bJvHrV+%tzaq7BjZZQ#MB(<y#YJ8|r(y^o--(E2{;F2&E` zUE6nK?j(<2Pwq_p9Qat}H(_7hy-oBe+1CdDc?6mE8+~0Jh#&z1wt?S04ORfaDu$Ui z4}cIwC=hdtErr~I8e;L_Px=wIAcG|u#UW>E{kLLzDMmG+VF_4xA$Wa-2*rr1orW5S zF#<s#IyUY_<6%L*^<sM-&V^%LN#6BjUQzCKVu;pc8Ap@%Etw%>Gr$mL5~Iynp?@x3 zS!FR79N^}gaK<U;oEMm4XAF|?NYt9uXz3>vT)Oe+pd3hM2pWhc+E1d4A{uBDdMfuG zp_FcrNu>4hsRMsU7UY~Lm2&V;A&k5h>Zu&Gm_?g&w(9Deb(Uhuqidkr4k)AQh!6m; z_DUz1vWlshnVk}eW*rz7%Zjcg=n}yHv(QE>?X=Vi6U?>N`cmW@w)zR`lqbe^X}4Mq zt89VCZs+B>FKOz;knC!+tt_^>^NzbhU<%~8-FkA!BEwP`FD>)#xbDDD;p+&(9XbeZ zxFmiHad--IJ27QZa>}rQc^-@~vn0UFa73Th`tZe>N{ljO70a@+xHyQ+Zoy9^%P`2} zc|0=7wB~#A%Q$QC^UDc#Omue{>l`o5PT2f$%R&;nv#~t~p)bWMA8p*YTIUxqN&;LU zKmZ)z5kS~d)0A$PQ!fkk4;mW=n$k=wGc?LUJ9anGd2h7$#CFBqhX4$iEkGX3nR&P$ zC3o!7*%z#$^d5avAhRB3l3mOH<Z7!b;@=Qg{^L~#6mUTS!u2yi>Zc#T%mGrYp0d$h zM;x=%1_*pu0%P}Lz*EcW(L2Fw3(9#O!%$fG@d@K1_)EXncrf$QS1kzW;fns?00y{O z!0J|U5B}@i6CgeTrAyk#)j1};2Ll414Se)97XA|E@)qy#9`w(@%i_aBT!7w|3*1qz zM*n+C@4|+Mu=URZ3@{4@_7Jwk@lSt4cn|<kCmgKACu_{;p6i5Dy44MUgWY3B`NDES z1~uaVIQbrgpw<8bAi#6G5{m(3x55FqZU8trS>U8LjNJ{70S2%i9wG<;3+_&U>A;}L z-lxPO*64{?grY)3CjqJdFrbRj`(0rs^hM2mF#!w!VBsQ&zgMgxjVY0$)v(v54npXI zTyusDRcHY8^^sS0>>yu)NWMRgutz~aKn4o%fD=3jh9qQA9|>Rq7b4AElp~wwwD>;y z%`Ja8WSbu3H;W@CQH$ZA9v2;O6jJg|d8Y)PA$B)L;Mww)2fSb?n+6;a=A(q>;~)T9 zXi3wh5Jec6Aqf2l$vqZeha()MB?XxQ*G)+~3JAj@7eE4$_>zP&EFUwzM@&PwsggoW zn(ojDfCySJjY`aA7U35~>#d4I6Ut{BaXAZB63`C#)Z`}xNH|(%;Fbe5n-n-yw;YIM zkLK$m>=+bHOUAJO00$suAZ<sx`T!A#BZT20r5P4TS|y`@^x6{?uz-bbZ~>@zsO%!j z%wziTn8Q3F5T~h9b8twY0-Htd8VE~HCU1#6GZh~q=*~RAGY<jm=K!6THl{YwsRiX{ z77@D7!%&E!a=hL%VAo99J=2FBECA|)=sHN|1CJeThUttcSG6`{hkTr73rmU<ymGV& zFKB57Y<LBckTr&8g{CtMz(I-{!iDMl+5rpGJNfxeY+daI+SZ8{dwz}&KvgIfkE%I; zQWdoMq)-uSDZn$Lv4Lw$C<56TN6+@4C&SEbNC9a_UIj4&^?~d9u=CMjzOJt$L;&i5 z89uzSP@=~FP2cPw#eoHwE(40hPHsVZ+(V+z5VE@{WVd#^wlQv(`@0`y6R1!_NKOOd zSY=?ON>t5im7T<bpac)vi^zc$y&1<pv45yV~)4ef^1Wzax!lhI5hxxUMk!5zRq_ zln^sbok=|L%tbz+Cj*ACS{qBr0hBYik-Z&f+tyH@nYUf1eX%%N3=ZOM_qdd-=yxyb zz4~}}Ps^+wB6sir12l3356CVC5OCztHKVw)gXA&A2}qKX*QYX8n{8`Gy(7stZCOq# z8-zm0ahh<FVKLn}!RrhlK1qAnyI5uv$xRSgcd$3SNrTgT<`D8QrElH9Ur%s3WzqP0 zVQyaknG#)3hY5Me41TmSdq8Iiu=Kk9fN3}5ysz>mnq$Ld^p{u6XtV&>XOdRma8o_# z98}r?3&21DG|dlI7tN=n-r1qKCF+0j;CV9Mb**iUq9EIP&H$*h0%q+{P9tcDj28B7 zyG)}|m%0_w-ZZg`oyTo!n9|918L@|$>yc%<PrZ)uwHdeNK5ZM$-oEt?UTq9#(+Aq0 zZd|AnZS8f(@zisCx38NW?{D*f-tHc^I`iFb>ZW_q{;sW~6>e-+XJ!QrXCIV?MJ{VJ zJireZMWI<7R*O-5T)s-V%2QrBjZ=x^9e>2feHL?Ml&MiT&$-Ua5UVlUJ2`N!d6v5W zZSjHoXjAaWmC}<A52^~CQUJf+%BN0s(fxzzOV7F?P)_x(`)ZX(5Bo|nPWG~!{p@H@ zyV})myr*;FAYu@^-Q2zfx!e8jc#oRa_m1^M>_Y)P&-<qNPAbC3L-2@Cyy6!Rg;<B1 z@f27<oqZsAAXFamn9scCHGf?LY(DOA^L*$xPx{iEKJ0+E!b*zVWF4fw;ji~W>`zbo z+S~pcA66>>THg?a=fLrk-vRI`e}UlN{`kmGz86d<`3<hb_qTICK&8(E2`m5l*w4N! zQ~-7xK;H(b5B%IqK7sI)U;F4!KkYxvSZ(rtAKyR0hcWPe8#w*~^_RaPOqYNE_51(- zv`1&fM}58bcsgJ@2%ty>P<@NUfD4d&02qN1czShGfkyWP@y8D-5E+)zC){^|6BvRb zhzkv{b+-U&^N@igz<yn{dpf{={osN*z=EtKgClr@ICyl5gaDu606VA=7`Fq=Cjqg> zgE_!_189UeFoduM07{sHP#A?1Q4_ZSc%qkhJ(qfR^Ll!bh21BGU>Js$HVtHWejrhT zS6G8lhlVWSc_>H%Y$zd7Cx&!bhfVN<J?Mi@n0R<70eyG^fB1(c@Pk(%h<130i1;p_ z@&I*4gMw!eR(Lyr5QjDZ3%5XtiI|C+_yfi_0i9@fTF6SGCw?Rlih9%kGoe_9Gq;JX z*oupXhtr^fV6cZEAd7xTi?L{cC?Eqea0J3a14ZD9!Z?iOU;#%q4UX6>HaG#87&0=5 zj9a&9wnB{5SdBu!dO9$9<nW0jz>VA}0@@f5-{?1ew{)d)8ZH$ob7+n17znnwX@-IW zP7_}sxCZH1DXZ9y`UnN@xGST;E%HchFy<q`)@b{9kj2oCBH$XXVF3Z@W%alr<%TZ# zh>+-408gk93V9RPqb?A6bOlK~>u8Y@_=Vo5i>^0wATy8S5RqOma@b~uB>8_P35Y0( zEG`KaA4!k`c|jF9lh;?1gLsqb;*r&slYjwcz44PknS4T70zo+cE=DOgNI4rl**Q%q zhEI7NQyCgnX%b4wBv~1TTgek?=yN-Xj#t@PV+n?3xp?-(lG^Z=CIFLS)|ODnh{Na> za=AHQsfb7NhIl!cyK$Do^^ivil402&Oi7rIIc@P+V`=FbA?YcN`Iwj)kdes_YpG~z zIgwP8nW8y^Mz(#Xf|ykKi>g@(yV04_Gm@j}m>VfHo9Re&XLHlBnB^gpv5A+nsW<;< znw;4$<p>Zhcbmw00kGMd>Gzvp(UEYIBz-wB$C;eBd6~@F1Q_`h&gnPMX*~W`Ih7f4 zcbT1g!JR~T156;C>2+=5shi|EW4vjeUqF|&n4ZSdl_3}Z2;&)_x<sGrV4oDwodKqw z{Pvd;0-F9wJlF}K0BI9Z*)awhX79P64db9v5`rt~nr(rgEvTRtTAmnsniCj};F%$q zQ#P4HUv7f~4WLLB*`L9)5ay<DBPx}`7?-NFPjeGSENTlW@&K5IpGXIyl!F0Iv^g`n zMIw5mlAxEu$d}B~Kf5zjmX%O*vp_#Okl;9^gtZ?#x<ph;qqYzrP3okY2zuXwno9&m z+<-+`ia7yLMq7HMAiz>CWdO9Mh`KXW1ocLX^GOq=2Tb%;WMd}q)j+dUUvPvZgQ{g{ z8l@fzoRT?8hf_+hq(mFQN&O^7TV<yzpiQy{Q^C0Zi%3w3%t23vGe26?sPnWq_R~(j z(^Y5WT2(4f{~4*RxJpv`5(3p#aY|6j^QkGSWT$hF%Qyi;iUH%8prhoerlhHZ0Ic_O zUtA@o@kFfEqpK3wQvGL}waE`l)lOHnL|K(Ztff_6f`4B637*qohwy&L8c_PgscvMi z@+4b{ic9>8798Lq$O^Fk>JS4P0s%{~8z8U=i?AA?uno(w8Q`!H3$dzaumuYO2Wznl ztFaHuu@mdD6^pSO(5xlEtJ3*XsU=$J3a8Y%t^tu`8o*?Zzya%IRqu4Jg<(bLTCF?F zNm!MwFEXzZ8?u&ju|>PFB8#*~+p$T@v`hQ{u}urLPfN5CqO?`(v{x&&SxdDoXtiC7 zwO^~XVav5Or~xDkk3gW3CtIfLWnVq}wg$yti1QaO>Qankm8hjj0_3NlF+8BrsIkha z0^?d1BviVil;_5+=*N%><B*l=p7MdGgY^J03T7-?S%Lbj`&y{iYBnvwxv%85o(onD zs<<YwotwwF6Pjg3acRuDFd^C=%W1j~s(I@PnW6-_GgttXYoxIYskB>^C0do!87~$3 zySrJs!Ml)?>LVK(o|9^qA)2_$>yN{`x-xdW$ZIUKTfKIpp~TCfxe>kaxxGH=y$++H zhFPED8y)0pzM+Y}CNqpW3caoAyW30uz4AK&Q0j`kx^CJFzfsh^`<s1gilf76om6nY z0-Qg}Tfn7fvH@v$g;$)T(wYjK!9!bo5UhL>d;^zfd1pI?8LYt+YY5-k!KC-WmAJk; zaKI`Y!-B`cCNO)lM~X6>!(yi!Y74>~%!xm&!$KT(svDg?MSu*5#6vuysH=HJ%m(HM zdt$r904kt>)x&L&d;I4E?6<{Ke4|#Jp>4o?v9^Fcz<dz+#UmQVmXVXOk{MOV#uBIi z4e-FdDaYZO1vF@kJg~>fnw<p7t$0kLYrup>=zv5>ivSwPx;n_9;=){Z1*X_+lI+Op z$H<Xt$wx;kY*@!?r~{ZNn4^jR$!OZYyILYYcngL&lss67ifo>wti~$=!-uJi8yE`B zNN9|4i6#omL^_iRxBv;*jR_dc!winai~z!%krCXy-dT!e=r`7rit>QNu^G#!Otu*t zwPfqW&YXuM0E_al%HfQQ<NV6ZX<aEyk{6)N%uIytEX=}8%<}BcwnxJjdyMjs%g(6J z62Q;0OqSogc=#Lw;pmCk_?$!-(21zYgb|#$%b7mI(3|*xi1@?+6*G|BY!uzm=UKa7 z;kX_>(y?&6^+wVtO^gnm(k#6e11-aJY{xC_(lhM@*j&>){L(Re(>Q%}z1-72z|)$j zT#;%|o=n9;orx>$e^M&{1TtNXN!`#ojd-;D9hx~uP8!u0J=HV(%}tHfH>%Z#xYXz2 z)h9dAV&{v!xYlFR)^?}PwTF>%tz2|H*LGdkcs<uXhXpa+*LCdIEAZEX9oU3z(oT}c zX#1T$-7VQkE_-b-(>N)JZM}-^ytiU_WPN*)Q!Sj`*;wLhskd{C(ht7@(I;JFXidbf znc4Te+7W5d1~ZveQQ0q?BvtK!IW60wS-h>_$f@UL8(r444H6=~*t(sWyxpRfecTga z*xyTy$ql59?b<$Kg}_aLT)o27&79HArN6=4kjL7S0^VN{)3w*#pz0aFU2Vawc;fBS z<ZTmTO&IZg9rca>h1s3D+bwqUZQqG`8rIF;6xiNdecu}S%Z!KKDar;!9ozpcf=2z+ zPGaB_(ce6=-(H{|>n%3~u6<vfwsxoBb8B}NUe*-Oo(}imHgVg+E74%B+9ys8b?eF_ zjNdVS+D;JQ9A4Ul46ZM3+$ydSLW*6tSmTH%;+~n|1Bc{D!sBa-+CRSBLB0=nHV6oy z25?P#O#azWu;HQ6;onfui4D?HPL&5Cxr4B$9*p7l^jTA`5n@i+Wd0nk?bdd_n!t$X zYAwm4dOD;^CQjK-@HFUzL+D>r=!kykOqAD*e%FrP=*p$x;gBuZQt7@>CxZ>xnl9nY zYudQ&;=?`vDJ3j)#=1d`bbmx1=%el}E4Atw@Z>07+ZvtPi(M}keCvG2u6Wh}MHUYh z@XlJ^PJ}b;@I>s!UhK#|?47;r%nmJ*-Y+{x+6WxcA)ViL)4+52vZXGwi`%}`x#ZrC z4x;1S91Y#!exM;xw;q;#Og=KtE^1&d+~$t$ep!lwHL9HM-{xx{?fxY>U5)*&yC-n( z2=2`SEa_uvUO(;RdwK2@8YR}1?-zdX;J%-94)6}oy4F77auXd(I^wOK@tYIx7eew{ z*}fv5SxtU}yp5z^)d!GMzGa%;ykzmG7vXCz7)jc%)al(OP`3n(cP+0_k^@?PnyusD z^G?10s1U(K@niryPYVlgdLRA+67S{%H1j)yPeD4QMxNkPdO%j1xvNU9^b<gc<MfVt zL2N|xDXtKf6;+&LbtZ2xR~_o`O%sP3x~_UQ0i<8t@bZf4NryVPkpopsFFkF);N9q@ zc^2qYggjxyvH~Qljk+R>TDZa!TS`9(Y~iQC(>skiJXYlQzB~0@GTEIT<#hf&@sqjz zQ%3evP;F07a~k-wdKiUcMS$C;Xf*qr@Ahb(X;)9*mTE+qYOky{MiQj;l+XBF=K9D3 z`}ivR;@-S*zWR9YB73k}p^HYb1Uy#6TJnSTwzT{_+x-1H4cTP3!AA*1z?!BC=pgX_ z=p$hNB7pxP;OMxKTKbAV5CGDYsZu<(-S=t$a7MB;PjplOV@rZo5`u{_7_h@&w|7HD zP^d@^hecx$1xzBFsH74aN-afItcjZCcD>(Is0Rp;KOauole@q|m36xFhUb0&1fBIb zE%YG-6u-Z~zCS#xzm&tPu){^h9tMC(0SyKLoQxNoxEVXNO}Wr5ur9HmvN9dJj5;4! z#>SGB$CFw`M_UtIy{TQ=x35xDt=VGa<Sf*U$;!)2jj}hIxP+S)3K})gF>g@{fQJG- zga(sA0~VGALG^cb_x1PolZS=-{Ca!*{`(Yt`cnAo$4r`;Z9L+@sD=a61copFUj5h* zZPJ)y%7TS*2EbB{XcG)1Y%wjwHduEItYldr1xuJNQNV0zg{A?SCvM_&K*Yq(oIh6% z%ZQAaMx;m$LPVHjWDQLLa9C_Z#?Hl2AZtLK@R2G;5)bmwLBJ>JS+r?KEX8o)Q-F_e zK3RAs?cFvsdNioRI!7%DwyLaRc>3bwjRXudDNYIYFPNjnB0nxMH0fl@nb(Hm;Fbp5 zO*|3^pi~v*v{hMaoV>)kYiY+N8X!>jrhr+^xizzG+}rnW;FvY8$VSn#;nplf75B|T z_p+jpqd!Ngj=FB%z_oAZ-dnhW1+_yISm5*ed83@WuV){Qa(3;h+Y6`vE=3uA^!fEe zYTw^~@aakj?~Q%-GmyXk65I|yWNP`30hHEr?!dDcr0~M$;8SqJ?kpr>fdb6K@Inna z<j_M?N;EN+07v8kMHgeNP`wpv^sYr2b96vO8~cON3*vgzZbBW2D)Pw3coee7ACcTo z$tAgKk_!i;ywS;1aKv&;ETFXVL@l{|lEyD33^PSCza&!3FbrVxO)tDGGr=k0+%3&H zhdlF(AoGmPP6Hbd5m2?{^mD#F3BB`B|LTN}(GJ{Hbj-5`CDc$zrA&0vB=O9Y#mB15 z)X}pnW0O?CHq{Z+PXXkV!VoY~EE8F4rS;ZXbG21hTzB=gS6os5<?pi>iY4|~W0OU8 zS!E@X)IeeLi#A#kWwG{JY_ru?+gA_V_FHhnr6W{v%gq*6RneXC)ezuucOH1(l{emX z=$-dod-Hv^+x!9|$X|f}6*ypm2R4|pof1}fVTNxCN<V7Pn>Jk;7bs9Si}}@fV~&fA z__~Q-HTAiXJ2v@bl(D0j1WR)ZdD2>1CKmviQ?~hLoa0=1$DK_nIhl|58|325hR*qD zq?2|;sh;<<Zc=jA)GX?KmA3k7lkEe#X{?p$rDn9g?s{yp#}2yeE*_u*x6IUjgKf0q zmfPgB=T0H&@pPjafQRk&`)@nz20YbqT^6C1!4p>;OTh>KSGzWK;8yGL5h7pwa?D4R zI&)?67@BX*JRiZ2zBxDj^lk+u8wl39w!$aGQI~yoMWY29%LbgYPMvce%Y9$oX&2t~ zpBZnuaozGLWCZ0YYo3JXhnHS)<lj5q_59QkkvN2D4yNkq!=JnQPS>?F_7Z^jD|Xd+ zzFmCyl_vkMm*I>adPLNEevA9#_aE!|73z9`3Z4llr<MY4;eh{Rpw)!+J^`A~PDC3W zW%f}D3N}!KHbYeaD+j*xaL$7pBw>s?h`sYX4QA*WVF_JGA+3e*g{hJl3TJr3jkQp2 z9@HTYeP}!%da!suB%=Imh`AmXQHc&b;^mUKL@4I}Y;z@iVic`7z4n!@idW>~>}=O9 z6?RdKN*f}Q>NiF-rZIg@ypsgg_{Jg;K?!q|V;y^9M>_UIkAY)jX3n^{EW&Yh=CT%` zwkVkaX6}%JbkQ5|^+<RLgO70fBlY^o$WwVrPloIn1k+N<#4Qq&)dCYInTDP+N=Jm3 z9Oaf+1*%DEM3g>b<#RlVmRYuPOr<>EEg=!aT5d*{0Mw+bm<Y@o4)bcS^g%9J7)-wj z5roRT88iQcG-qNHn$%ooF@KXykZp5(;^b!1ta*oJPIH6cEGNIt>6Z-#(rn~xrxd-} z9C{uzDZWHf80$H`cY+|F)luh>K>1IEriYjRlpN^R+?Y^^B66W`VrLZ&3OIR2G>7-R zQY<t1P)lm`WC0Ba9!+{jJ@T`B6ip-&8!FN}5mKhUP#02ED$ABS@ue`e-b@bxNq9)o zTRR(JDvhMbo${1^99_{CPe{O|+Vq)9-Ds<}7(+xNGn`b_7)cSuuBhshIu+$Anyebu z`=HgF&@^gU#pG4?kX2_|b*oFy3Rb$-b#ZVt6T1r9K)LEwMyx7~LgXS1(hTOBfV}BQ z)hbvsGSwBEu)zxoqlv|abe~{+EMz@~2Ig?!DWIuA0Hh)c8AJ${2Wo4MF6!BTE`>1= z$wmxZu##3h#8Xb~Y?pG%FFB^P3c(HkZV`lAGve+M3dbETbB&wa=L$Ev#a%9Rt1I2> zQuh|l&8~8{Yu)c+H@w>A1$W2Wlcj(rwKYJ@1`O~K3pf%SEK07->f2oK8Y927Fz-|^ z(_5V8LKie0aN!CpRAUG@!318gfg6nAH7Yp544$xqD-2=6Q8>dE-Y|wYBjFBXh7piB z#25s_3cD2M0#DiPh!dgV55t&eAdWGI$NF2&zUw9Q+Oc^2NrHLx7+yk#2a(rd<R4d# z$1_>7PMZ9aCs!uQK%TOab<E@|J2}fx-m;Y6#gWp$S5_4<ZCvb<7}YkjT|>q)o3-rb z1iK5#^n7hJ0SsG<hC(nTk%MUeSWM=KBxbeHy0aBP8p=ZB*%8f@!&|(P5KDXjG;ncE zX8p^i*1jmwuHCevQ+3yxlCje!9JQzU+M$<X)zeE`HJ47Usa69q*2V+%tc#RsTNAq0 zx#qP_cin4X1MbxeDs`}pEiK7T^l}+Jc3p?P$yHXWzx>@V%cgDZYOCPd+Rip}k-Keg z<5#@p?e=}A>s@k>o7(EeHoLj)?r@*`+vNtgxw|{>ls?;-to`e%u1Dh;%h<&S7BMg` zTyTI7{J{tpxWPjl9fcnp;tsE|hXZcoi(5S64<~WM6Hf7r`&8t-WoW6Y?0_J*xyUL% zGRu>U@{_0h%`2aI%WMAsa+z}(&R*U*mAmZoo?AKSF#oyGX|D65^E~N5U%Jt4j`XK1 zU0+iND%I^(t&-o6+0Fi8V2y!8uXFuqVW;5@$u9P47W?cQMf(!hj%)F)z3q-Yw%q65 zF;&~z?sw<=r1su-z{3gdfhT<74S#sVCw|sqLBIkK(0Ir@-tmx+eB~=&9>pte>#)V! z$i<O)MBADiih&U6rJ|VAmmc+|H+={s2YSs69z%a`AUV?99@6v<_8C%pu}f(C4Uy*c zyI<)?wcgn40AE4ECqD19K0~r9KS9iIzTuw#!ssjZKe?~I^;rt`J4=82pYOgOi!FQU zW&if<p?>*`4{Y`S2cP`zUmx<_8vo@3K=<^gKmMmbfBthn^g9pn^N;omKm;t30_=|i zOh5;8kp;v({d+(Pgh1^xKme>joY_3jia_?uKn>&|-y<P)pcT?PK@?0u6;y`;c)ZDb zK^Kfc7qq{`8^EE`JI|A;;S0dEqdf+C2LTX(_Y%S&96}>3LL?+YC1kzTYeLnt91ZNj z5lkH#)SC<R6Yh(`-UB};@xU@^KnIjUE<_S9{1PxsKru8saj3$~C_^hbLj-)ge)As! zITAOFk}Rx1A9SGtP=^e{kULxwI1IqNvo+CCz$?s?K@7oMQ-B9xL&^w5Sa`2i=nOhY ziA7{YO~eBKNmR2+v<6tn!%ZB;E)c)al7P{IFSwYCGpIx#$V5_%MF$YS*|IE=kOMTE ztyY{b7l1`s^fbn!JOpT&V4S>RM1f*_ykoQnWt=>9h!FJ}jcu?2%({kZKrL770n%te z%ELTnl)+^*pk`D?VjRcED@SldM`2V)V`N8iL`HKA#}Y`!bA-oqw8wSC$9B}mcl^eD z^v8XK6At{nL)bqO=)5;D$Pqxu5KzcjWCYbhh+XUkTm;2eWQ5ma$O$|FjdaM4M1haw z$btmPkrc^4@W_%hfsj<mlq`Xjbjg-H$e3KnnS98T^r#=Yhsbk0VwAkb<4I)nNsE!k zun<cB+PJ`u5VMew2x_RvZ0tq85lU|~AgLtE5ztA=14@3_Nvm`Kto+HY{K}#1Nv<Tz ztPIPlG)u5l%drf~vUJO{WJ|52%D3FgxWvg-E5JRYEo<b8#F&c3fUh+1#a|4yR$D*` zI1bWcjtWSuxVXen1i``_tSQu>PP7qGoJ>v=y+oW7!qiNNsm$8z%rBHo(40NdWT4Be zk<UEM6q>`jTFn*7OxGMm*));Xtjz$tO%BOT-K0O>l)oMPO$rRo{Bua+JP>*e%XoCh zdIZRR6vumn&gYcQf3(hk#LnoP$L8e6>g3Mp)Xt+cK@}`d^E}V<gu>(;k(ZRon>0y~ zJwVC#WXbu2$@+B9_$0~uq{;oX$^3**I*`x*q|Y22x#3(-^bpIroX50;%e8dSwzSI! zmCy*K%e$n|1ue?Dw9pCV&<bVH4F%Dx<i@isQLr@8p+wQDR8dGoP#1ks7>!XGolzRC tQ5(Hc9L-T3-BBLxQ6K$LAPrI>9a17KQX@T5Bu!E!T~a1(QniQx06TPqyBz=k diff --git a/docs/latex/wx/libs.tex b/docs/latex/wx/libs.tex deleted file mode 100644 index 26ebef5a9c..0000000000 --- a/docs/latex/wx/libs.tex +++ /dev/null @@ -1,138 +0,0 @@ -\chapter{Libraries list}\label{librarieslist} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -wxWidgets can be built either as a single large -library (this is called the {\it monolithic build}) or as several smaller -libraries ({\it multilib build}). Multilib build is the default. - -wxWidgets library is divided into libraries briefly described below. This -diagram show dependencies between them: - -\begin{center} -\image{}{libs.gif} -\end{center} - -Please note that arrows indicate the "depends from" relation and that -all blue boxes depend from wxBase library (i.e. they are non-GUI libraries), and -all green boxes depend from wxCore library (i.e. they are GUI libraries). - -{\large {\bf wxBase}} - -Every wxWidgets application must link against this library. It contains -mandatory classes that any wxWidgets code depends on (e.g. - \helpref{wxString}{wxstring}) and portability classes that abstract -differences between platforms. wxBase can be used to develop console mode -applications, it does not require any GUI libraries or running X Window System -on Unix. - -{\large {\bf wxCore}} - -Basic GUI classes such as GDI classes or controls are in this library. All -wxWidgets GUI applications must link against this library, only console mode -applications don't. - -Requires wxBase. - -{\large {\bf wxAui}} - -This contains the Advanced User Interface docking library. - -Requires wxAdvanced, wxHTML, wxXML, wxCore, wxBase. - -{\large {\bf wxNet}} - -Classes for network access: - -\begin{itemize} -\item{ wxSocket classes (\helpref{wxSocketClient}{wxsocketclient}, - \helpref{wxSocketServer}{wxsocketserver} and related classes) } -\item{ \helpref{wxSocketOutputStream}{wxsocketoutputstream} and - \helpref{wxSocketInputStream}{wxsocketinputstream} } -\item{ sockets-based IPC classes (\helpref{wxTCPServer}{wxddeserver}, - \helpref{wxTCPClient}{wxddeclient} and - \helpref{wxTCPConnection}{wxddeconnection}) } -\item{ \helpref{wxURL}{wxurl} } -\item{ wxInternetFSHandler (a \helpref{wxFileSystem handler}{fs}) } -\end{itemize} - -Requires wxBase. - -{\large {\bf wxRichText}} - -This contains generic rich text control functionality. - -Requires wxAdvanced, wxHTML, wxXML, wxCore, wxBase. - -{\large {\bf wxXML}} - -This library contains simple classes for parsing XML documents. - -Requires wxBase. - -{\large {\bf wxAdvanced}} - -Advanced or rarely used GUI classes: - -\begin{itemize}\itemsep=0pt -\item{ \helpref{wxCalendarCtrl}{wxcalendarctrl} } -\item{ \helpref{wxGrid classes}{gridoverview} } -\item{ \helpref{wxJoystick}{wxjoystick} } -\item{ \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} } -\item{ \helpref{wxSplashScreen}{wxsplashscreen} } -\item{ \helpref{wxTaskBarIcon}{wxtaskbaricon} } -\item{ \helpref{wxSound}{wxsound} } -\item{ \helpref{wxWizard}{wxwizard} } -\item{ \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} } -\item{ \helpref{wxSashWindow}{wxsashwindow} } -\item{ ...others } -\end{itemize} - -Requires wxCore and wxBase. - -{\large {\bf wxMedia}} - -Miscellaneous classes related to multimedia. Currently this library only -contains \helpref{wxMediaCtrl}{wxmediactrl} but more classes will be added in -the future. - -Requires wxCore and wxBase. - -{\large {\bf wxGL}} - -This library contains \helpref{wxGLCanvas}{wxglcanvas} class for integrating -OpenGL library with wxWidgets. Unlike all others, this library is {\em not} - part of the monolithic library, it is always built as separate library. - -Requires wxCore and wxBase. - -{\large {\bf wxHTML}} - -Simple HTML renderer and other \helpref{HTML rendering classes}{wxhtml} are -contained in this library, as well as - \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}, - \helpref{wxBestHelpController}{wxhelpcontroller} and - \helpref{wxHtmlListBox}{wxhtmllistbox}. - -Requires wxCore and wxBase. - -{\large {\bf wxQA}} - -This is the library containing extra classes for quality assurance. Currently -it only contains \helpref{wxDebugReport}{wxdebugreport} and related classes, -but more will be added to it in the future. - -Requires wxXML, wxCore, wxBase. - -{\large {\bf wxXRC}} - -This library contains \helpref{wxXmlResource}{wxxmlresource} class that -provides access to XML resource files in XRC format - -Requires wxAdvanced, wxHTML, wxXML, wxCore, wxBase. - -{\large {\bf wxSTC}} - -STC (Styled Text Control) is a wrapper around Scintilla, a syntax-highlighting text editor. - -Requires wxCore, wxBase. diff --git a/docs/latex/wx/list.tex b/docs/latex/wx/list.tex deleted file mode 100644 index b5064e8072..0000000000 --- a/docs/latex/wx/list.tex +++ /dev/null @@ -1,419 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: list.tex -%% Purpose: wxList -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxList<T>}}\label{wxlist} - -The wxList<T> class provides linked list functionality. It has been rewritten -to be type safe and to provide the full API of the STL std::list container and -should be used like it. The exception is that wxList<T> actually stores -pointers and therefore its iterators return pointers and not references -to the actual objets in the list (see example below) and {\it value\_type} -is defined as {\it T*}. wxList<T> destroys an object after removing it only -if \helpref{DeleteContents}{wxlistdeletecontents} has been called. - -wxList<T> is not a real template and it requires that you declare and define -each wxList<T> class in your program. This is done with {\it WX\_DECLARE\_LIST} -and {\it WX\_DEFINE\_LIST} macros (see example). We hope that we'll be able -to provide a proper template class providing both the STL std::list -and the old wxList API in the future. - -Please refer to the STL std::list documentation for further -information on how to use the class. Below we documented both -the supported STL and the legacy API that originated from the -old wxList class and which can still be used alternatively for -the the same class. - -Note that if you compile wxWidgets in STL mode (wxUSE\_STL defined as 1) -then wxList<T> will actually derive from std::list and just add a legacy -compatibility layer for the old wxList class. - -\wxheading{Example} - -\begin{verbatim} - // this part might be in a header or source (.cpp) file - class MyListElement - { - ... // whatever - }; - - // this macro declares and partly implements MyList class - WX_DECLARE_LIST(MyListElement, MyList); - - ... - - // the only requirement for the rest is to be AFTER the full declaration of - // MyListElement (for WX_DECLARE_LIST forward declaration is enough), but - // usually it will be found in the source file and not in the header - - #include <wx/listimpl.cpp> - WX_DEFINE_LIST(MyList); - - - MyList list; - MyListElement element; - list.Append(&element); // ok - list.Append(17); // error: incorrect type - - // let's iterate over the list in STL syntax - MyList::iterator iter; - for (iter = list.begin(); iter != list.end(); ++iter) - { - MyListElement *current = *iter; - - ...process the current element... - } - - // the same with the legacy API from the old wxList class - MyList::compatibility_iterator node = list.GetFirst(); - while (node) - { - MyListElement *current = node->GetData(); - - ...process the current element... - - node = node->GetNext(); - } - -\end{verbatim} - -For compatibility with previous versions wxList and wxStringList classes are -still defined, but their usage is deprecated and they will disappear in the -future versions completely. The use of the latter is especially discouraged as -it is not only unsafe but is also much less efficient than -\helpref{wxArrayString}{wxarraystring} class. - -\wxheading{Include files} - -<wx/list.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxArray<T>}{wxarray}, -\helpref{wxVector<T>}{wxvector} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxList<T>::wxList<T>}\label{wxlistctor} - -\func{}{wxList<T>}{\void} - -\func{}{wxList<T>}{\param{size\_t}{ count}, \param{T *}{elements[]}} - -Constructors. - -\membersection{wxList<T>::\destruct{wxList<T>}}\label{wxlistdtor} - -\func{}{\destruct{wxList<T>}}{\void} - -Destroys the list, but does not delete the objects stored in the list -unless you called DeleteContents({\tt true} ). - -\membersection{wxList<T>::Append}\label{wxlistappend} - -\func{wxList<T>::compatibility\_iterator }{Append}{\param{T *}{object}} - -Appends the pointer to \rtfsp{\it object} to the list. - -\membersection{wxList<T>::Clear}\label{wxlistclear1} - -\func{void}{Clear}{\void} - -Clears the list, but does not delete the objects stored in the list -unless you called DeleteContents({\tt true} ). - -\membersection{wxList<T>::DeleteContents}\label{wxlistdeletecontents} - -\func{void}{DeleteContents}{\param{bool}{ destroy}} - -If {\it destroy} is {\tt true}, instructs the list to call {\it delete} -on objects stored in the list whenever they are removed. -The default is {\tt false}. - -\membersection{wxList<T>::DeleteNode}\label{wxlistdeletenode} - -\func{bool}{DeleteNode}{\param{const compatibility\_iterator &}{iter}} - -Deletes the given element refered to by {\tt iter} from the list, -returning {\tt true} if successful. - -\membersection{wxList<T>::DeleteObject}\label{wxlistdeleteobject} - -\func{bool}{DeleteObject}{\param{T *}{object}} - -Finds the given {\it object} and removes it from the list, returning -{\tt true} if successful. The application must delete the actual object -separately. - -\membersection{wxList<T>::Erase}\label{wxlisterase} - -\func{void}{Erase}{\param{const compatibility\_iterator &}{iter}} - -Removes element refered to be {\tt iter}. - -\membersection{wxList<T>::Find}\label{wxlistfind} - -\constfunc{wxList<T>::compatibility\_iterator}{Find}{\param{T *}{ object}} - -Returns the iterator refering to {\it object} or NULL if none found. - -\membersection{wxList<T>::GetCount}\label{wxlistgetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of elements in the list. - -\membersection{wxList<T>::GetFirst}\label{wxlistgetfirst} - -\constfunc{wxList<T>::compatibility\_iterator}{GetFirst}{\void} - -Returns the first iterator in the list (NULL if the list is empty). - -\membersection{wxList<T>::GetLast}\label{wxlistgetlast} - -\constfunc{wxList<T>::compatibility\_iterator}{GetLast}{\void} - -Returns the last iterator in the list (NULL if the list is empty). - -\membersection{wxList<T>::IndexOf}\label{wxlistindexof} - -\constfunc{int}{IndexOf}{\param{T*}{ obj }} - -Returns the index of {\it obj} within the list or {\tt wxNOT\_FOUND} if -{\it obj} is not found in the list. - -\membersection{wxList<T>::Insert}\label{wxlistinsert1} - -\func{wxList<T>::compatibility\_iterator}{Insert}{\param{T *}{object}} - -Insert object at the front of list. - -\func{wxList<T>::compatibility\_iterator}{Insert}{\param{size\_t }{position}, \param{T *}{object}} - -Insert object before {\it position}, i.e. the index of the new item in the -list will be equal to {\it position}. {\it position} should be less than or -equal to \helpref{GetCount}{wxlistgetcount}; if it is equal to it, this is the -same as calling \helpref{Append}{wxlistappend}. - -\func{wxList<T>::compatibility\_iterator}{Insert}{\param{compatibility\_iterator}{iter}, \param{T *}{object}} - -Inserts the object before the object refered to be {\it iter}. - -\membersection{wxList<T>::IsEmpty}\label{wxlistisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns {\tt true} if the list is empty, {\tt false} otherwise. - -% Use different label name to avoid clashing with wxListItem label -\membersection{wxList<T>::Item}\label{wxlistitemfunc} - -\constfunc{wxList<T>::compatibility\_iterator}{Item}{\param{size\_t }{index}} - -Returns the iterator refering to the object at the given -{\tt index} in the list. - -\membersection{wxList<T>::Member}\label{wxlistmember} - -\constfunc{wxList<T>::compatibility\_iterator}{Member}{\param{T *}{ object}} - -{\bf NB:} This function is deprecated, use \helpref{Find}{wxlistfind} instead. - -\membersection{wxList<T>::Nth}\label{wxlistnth} - -\constfunc{wxList<T>::compatibility\_iterator}{Nth}{\param{int }{n}} - -{\bf NB:} This function is deprecated, use \helpref{Item}{wxlistitemfunc} instead. - -Returns the {\it nth} node in the list, indexing from zero (NULL if the list is empty -or the nth node could not be found). - -\membersection{wxList<T>::Number}\label{wxlistnumber} - -\constfunc{int}{Number}{\void} - -{\bf NB:} This function is deprecated, use \helpref{GetCount}{wxlistgetcount} instead. - -Returns the number of elements in the list. - -\membersection{wxList<T>::Sort}\label{wxlistsort} - -\func{void}{Sort}{\param{wxSortCompareFunction}{ compfunc}} - -\begin{verbatim} - // Type of compare function for list sort operation (as in 'qsort') - typedef int (*wxSortCompareFunction)(const void *elem1, const void *elem2); -\end{verbatim} - -Allows the sorting of arbitrary lists by giving a function to compare -two list elements. We use the system {\bf qsort} function for the actual -sorting process. - - - -\membersection{wxList<T>::assign}\label{wxlistassign} - -\func{void}{assign}{\param{const\_iterator }{first}, \param{const const\_iterator\& }{last}} - - -\func{void}{assign}{\param{size\_type }{n}, \param{const\_reference }{v = value\_type()}} - - -\membersection{wxList<T>::back}\label{wxlistback} - -\func{reference}{back}{\void} - -\constfunc{const\_reference}{back}{\void} - -Returns the last item of the list. - -\membersection{wxList<T>::begin}\label{wxlistbegin} - -\func{iterator}{begin}{\void} - -\constfunc{const\_iterator}{begin}{\void} - -Returns a (const) iterator pointing to the beginning of the list. - -\membersection{wxList<T>::clear}\label{wxlistclear} - -\func{void}{clear}{\void} - -Removes all items from the list. - -\membersection{wxList<T>::empty}\label{wxlistempty} - -\constfunc{bool}{empty}{\void} - -Returns {\it true} if the list is empty. - -\membersection{wxList<T>::end}\label{wxlistend} - -\func{iterator}{end}{\void} - -\constfunc{const\_iterator}{end}{\void} - -Returns a (const) iterator pointing at the end of the list. - -\membersection{wxList<T>::erase}\label{wxlisterase2} - -\func{iterator}{erase}{\param{const iterator\& }{it}} - -Erases the item pointed to by {\it it}. - -\func{iterator}{erase}{\param{const iterator\& }{first}, \param{const iterator\& }{last}} - -Erases the items from {\it first} to {\it last}. - -\membersection{wxList<T>::front}\label{wxlistfront} - -\func{reference}{front}{\void} - -\constfunc{const\_reference}{front}{\void} - -Returns the first item in the list. - -\membersection{wxList<T>::insert}\label{wxlistinsert} - -\func{iterator}{insert}{\param{const iterator\& }{it}, \param{const\_reference }{v = value\_type()}} - -\func{void}{insert}{\param{const iterator\& }{it}, \param{size\_type }{n}, \param{const\_reference }{v = value\_type()}} - -\func{void}{insert}{\param{const iterator\& }{it}, \param{const\_iterator }{first}, \param{const const\_iterator\& }{last}} - -Inserts an item (or several) at the given position. - -\membersection{wxList<T>::max\_size}\label{wxlistmaxsize} - -\constfunc{size\_type}{max\_size}{\void} - -Returns the largest possible size of the list. - -\membersection{wxList<T>::pop\_back}\label{wxlistpopback} - -\func{void}{pop\_back}{\void} - -Removes the last item from the list. - -\membersection{wxList<T>::pop\_front}\label{wxlistpopfront} - -\func{void}{pop\_front}{\void} - -Removes the first item from the list. - -\membersection{wxList<T>::push\_back}\label{wxlistpushback} - -\func{void}{push\_back}{\param{const\_reference }{v = value\_type()}} - -Adds an item to end of the list. - -\membersection{wxList<T>::push\_front}\label{wxlistpushfront} - -\func{void}{push\_front}{\param{const\_reference }{v = value\_type()}} - -Adds an item to the front of the list. - -\membersection{wxList<T>::rbegin}\label{wxlistrbegin} - -\func{reverse\_iterator}{rbegin}{\void} - -\constfunc{const\_reverse\_iterator}{rbegin}{\void} - -Returns a (const) reverse iterator pointing to the beginning of the -reversed list. - -\membersection{wxList<T>::remove}\label{wxlistremove} - -\func{void}{remove}{\param{const\_reference }{v}} - -Removes an item from the list. - -\membersection{wxList<T>::rend}\label{wxlistrend} - -\func{reverse\_iterator}{rend}{\void} - -\constfunc{const\_reverse\_iterator}{rend}{\void} - -Returns a (const) reverse iterator pointing to the end of the -reversed list. - -\membersection{wxList<T>::resize}\label{wxlistresize} - -\func{void}{resize}{\param{size\_type }{n}, \param{value\_type }{v = value\_type()}} - -Resizes the list. If the the list is enlarges items with -the value {\it v} are appended to the list. - -\membersection{wxList<T>::reverse}\label{wxlistreverse} - -\func{void}{reverse}{\void} - -Reverses the list. - -\membersection{wxList<T>::size}\label{wxlistsize} - -\constfunc{size\_type}{size}{\void} - -Returns the size of the list. - -\membersection{wxList<T>::splice}\label{wxlistsplice} - -\func{void}{splice}{\param{const iterator\& }{it}, \param{wxList<T>\& }{l}} - -\func{void}{splice}{\param{const iterator\& }{it}, \param{wxList<T>\& }{l}, \param{const iterator\& }{first}} - -\func{void}{splice}{\param{const iterator\& }{it}, \param{wxList<T>\& }{l}, \param{const iterator\& }{first}, \param{const iterator\& }{last}} - -Moves part of the list into another list, starting from {\it first} and -ending at {\it last} if specified. diff --git a/docs/latex/wx/listattr.tex b/docs/latex/wx/listattr.tex deleted file mode 100644 index 1422f337ef..0000000000 --- a/docs/latex/wx/listattr.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxListItemAttr}}\label{wxlistitemattr} - -Represents the attributes (color, font, \ldots) of a -\helpref{wxListCtrl}{wxlistctrl} \helpref{wxListItem}{wxlistctrl}. - -\wxheading{Include files} - -<wx/listctrl.h> - -\wxheading{See also} - -\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListCtrl}{wxlistctrl}, \helpref{wxListItem}{wxlistitem} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListItemAttr::wxListItemAttr}\label{wxlistitemattrctor} - -\func{}{wxListItemAttr}{\void} - -Default constructor. - -\func{}{wxListItemAttr}{\param{const wxColour&}{ colText}, \param{const wxColour&}{ colBack}, \param{const wxFont&}{ font}} - -Construct a wxListItemAttr with the specified foreground and -background colors and font. - -\membersection{wxListItemAttr::GetBackgroundColour}\label{wxlistitemattrgetbackgroundcolour} - -\constfunc{const wxColour\&}{GetBackgroundColour}{\void} - -Returns the currently set background color. - - -\membersection{wxListItemAttr::GetFont}\label{wxlistitemattrgetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Returns the currently set font. - - -\membersection{wxListItemAttr::GetTextColour}\label{wxlistitemattrgettextcolour} - -\constfunc{const wxColour\&}{GetTextColour}{\void} - -Returns the currently set text color. - - -\membersection{wxListItemAttr::HasBackgroundColour}\label{wxlistitemattrhasbackgroundcolour} - -\constfunc{bool}{HasBackgroundColour}{\void} - -Returns \true if the currently set background color is valid. - - -\membersection{wxListItemAttr::HasFont}\label{wxlistitemattrhasfont} - -\constfunc{bool}{HasFont}{\void} - -Returns \true if the currently set font is valid. - - -\membersection{wxListItemAttr::HasTextColour}\label{wxlistitemattrhastextcolour} - -\constfunc{bool}{HasTextColour}{\void} - -Returns \true if the currently set text color is valid. - - -\membersection{wxListItemAttr::SetBackgroundColour}\label{wxlistitemattrsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets a new background color. - - -\membersection{wxListItemAttr::SetFont}\label{wxlistitemattrsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets a new font. - - -\membersection{wxListItemAttr::SetTextColour}\label{wxlistitemattrsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colour}} - -Sets a new text color. - diff --git a/docs/latex/wx/listbevt.inc b/docs/latex/wx/listbevt.inc deleted file mode 100644 index 49b00d3f96..0000000000 --- a/docs/latex/wx/listbevt.inc +++ /dev/null @@ -1,13 +0,0 @@ -\wxheading{Event handling} - -To process input from a listbook control, use the following event handler macros to direct input to member -functions that take a wxListbookEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LISTBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a -wxEVT\_COMMAND\_LISTBOOK\_PAGE\_CHANGED event.} -\twocolitem{{\bf EVT\_LISTBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. -Processes a wxEVT\_COMMAND\_LISTBOOK\_PAGE\_CHANGING event. This event can be \helpref{vetoed}{wxnotifyeventveto}.} -\end{twocollist} - diff --git a/docs/latex/wx/listbook.tex b/docs/latex/wx/listbook.tex deleted file mode 100644 index 4c73d53014..0000000000 --- a/docs/latex/wx/listbook.tex +++ /dev/null @@ -1,77 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: listbook.tex -%% Purpose: wxListbook documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 22.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxListbook}}\label{wxlistbook} - -wxListbook is a class similar to \helpref{wxNotebook}{wxnotebook} but which -uses a \helpref{wxListCtrl}{wxlistctrl} to show the labels instead of the -tabs. - -There is no documentation for this class yet but its usage is -identical to wxNotebook (except for the features clearly related to tabs -only), so please refer to that class documentation for now. You can also -use the \helpref{notebook sample}{samplenotebook} to see wxListbook in action. - -\wxheading{Derived from} - -wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listbook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt - -\twocolitem{\windowstyle{wxLB\_DEFAULT}}{Choose the default location for the -labels depending on the current platform (left everywhere except Mac where -it is top).} -\twocolitem{\windowstyle{wxLB\_TOP}}{Place labels above the page area.} -\twocolitem{\windowstyle{wxLB\_LEFT}}{Place labels on the left side.} -\twocolitem{\windowstyle{wxLB\_RIGHT}}{Place labels on the right side.} -\twocolitem{\windowstyle{wxLB\_BOTTOM}}{Place labels below the page area.} - -\end{twocollist} - -\input listbevt.inc - -\wxheading{See also} - -\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebook}{wxnotebook}, \helpref{notebook sample}{samplenotebook} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListbook::wxListbook}\label{wxlistbookctor} - -\func{}{wxListbook}{\void} - -Default constructor. - -\func{}{wxListbook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxEmptyStr}} - -Constructs a listbook control. - -\membersection{wxListbook::GetListView}\label{wxlistbookgetlistview} - -\constfunc{wxListView *}{GetListView}{\void} - -Returns the \helpref{wxListView}{wxlistview} associated with the control. diff --git a/docs/latex/wx/listbox.tex b/docs/latex/wx/listbox.tex deleted file mode 100644 index 8cdea83876..0000000000 --- a/docs/latex/wx/listbox.tex +++ /dev/null @@ -1,275 +0,0 @@ -\section{\class{wxListBox}}\label{wxlistbox} - -A listbox is used to select one or more of a list of strings. The -strings are displayed in a scrolling box, with the selected string(s) -marked in reverse video. A listbox can be single selection (if an item -is selected, the previous selection is removed) or multiple selection -(clicking an item toggles the item on or off independently of other -selections). - -List box elements are numbered from zero. Their number may be limited -under some platforms. - -A listbox callback gets an event wxEVT\_COMMAND\_LISTBOX\_SELECTED for single clicks, and -wxEVT\_COMMAND\_LISTBOX\_DOUBLE\_CLICKED for double clicks. - -\wxheading{Derived from} - -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listbox.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLB\_SINGLE}}{Single-selection list.} -\twocolitem{\windowstyle{wxLB\_MULTIPLE}}{Multiple-selection list: the user can toggle multiple -items on and off.} -\twocolitem{\windowstyle{wxLB\_EXTENDED}}{Extended-selection list: the user can -select multiple items using the SHIFT key and the mouse or special key combinations.} -\twocolitem{\windowstyle{wxLB\_HSCROLL}}{Create horizontal scrollbar if contents are too wide (Windows only).} -\twocolitem{\windowstyle{wxLB\_ALWAYS\_SB}}{Always show a vertical scrollbar.} -\twocolitem{\windowstyle{wxLB\_NEEDED\_SB}}{Only create a vertical scrollbar if needed.} -\twocolitem{\windowstyle{wxLB\_SORT}}{The listbox contents are sorted in alphabetical order.} -\end{twocollist} - -Note that {\tt wxLB\_SINGLE}, {\tt wxLB\_MULTIPLE} and {\tt wxLB\_EXTENDED} -styles are mutually exclusive and you can specify at most one of them (single -selection is the default). - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LISTBOX(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_SELECTED event, -when an item on the list is selected or the selection changes.} -\twocolitem{{\bf EVT\_LISTBOX\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_LISTBOX\_DOUBLECLICKED event, -when the listbox is double-clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxChoice}{wxchoice}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxListCtrl}{wxlistctrl}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListBox::wxListBox}\label{wxlistboxctor} - -\func{}{wxListBox}{\void} - -Default constructor. - -\func{}{wxListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -\func{}{wxListBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Constructor, creating and showing a list box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxListBox}{wxlistbox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxListBox::Create}{wxlistboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxListBox constructor in wxPython reduces the {\tt n} -and {\tt choices} arguments are to a single argument, which is -a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - -\membersection{wxListBox::\destruct{wxListBox}}\label{wxlistboxdtor} - -\func{void}{\destruct{wxListBox}}{\void} - -Destructor, destroying the list box. - -\membersection{wxListBox::Create}\label{wxlistboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``listBox"}} - -Creates the listbox for two-step construction. See \helpref{wxListBox::wxListBox}{wxlistboxctor}\rtfsp -for further details. - -\membersection{wxListBox::Deselect}\label{wxlistboxdeselect} - -\func{void}{Deselect}{\param{int}{ n}} - -Deselects an item in the list box. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item to deselect.} - -\wxheading{Remarks} - -This applies to multiple selection listboxes only. - -\membersection{wxListBox::GetSelections}\label{wxlistboxgetselections} - -\constfunc{int}{GetSelections}{\param{wxArrayInt\& }{selections}} - -Fill an array of ints with the positions of the currently selected items. - -\wxheading{Parameters} - -\docparam{selections}{A reference to an wxArrayInt instance that is used to store the result of the query.} - -\wxheading{Return value} - -The number of selections. - -\wxheading{Remarks} - -Use this with a multiple selection listbox. - -\wxheading{See also} - -\helpref{wxControlWithItems::GetSelection}{wxcontrolwithitemsgetselection},\rtfsp -\helpref{wxControlWithItems::GetStringSelection}{wxcontrolwithitemsgetstringselection},\rtfsp -\helpref{wxControlWithItems::SetSelection}{wxcontrolwithitemssetselection} - -\pythonnote{The wxPython version of this method takes no parameters -and returns a tuple of the selected items.} - -\perlnote{In wxPerl this method takes no parameters and return the -selected items as a list.} - -\membersection{wxListBox::InsertItems}\label{wxlistboxinsertitems} - -\func{void}{InsertItems}{\param{int}{ nItems}, \param{const wxString}{ *items}, \param{unsigned int}{ pos}} - -\func{void}{InsertItems}{\param{const wxArrayString\&}{ nItems}, \param{unsigned int}{ pos}} - -Insert the given number of strings before the specified position. - -\wxheading{Parameters} - -\docparam{nItems}{Number of items in the array {\it items}} - -\docparam{items}{Labels of items to be inserted} - -\docparam{pos}{Position before which to insert the items: for example, if {\it pos} is 0 the items -will be inserted in the beginning of the listbox} - -\pythonnote{The first two parameters are collapsed into a single -parameter for wxPython, which is a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt nItems} -and {\tt items}.} - -\membersection{wxListBox::HitTest}\label{wxlistboxhittest} - -\constfunc{int}{HitTest}{\param{const wxPoint&}{ point}} - -Returns the item located at \arg{point}, or \texttt{wxNOT\_FOUND} if there -is no item located at \arg{point}. - -\newsince{2.7.0}. It is currently implemented for wxMSW, wxMac and wxGTK2 -ports. - -\wxheading{Parameters} - -\docparam{point}{Point of item (in client coordinates) to obtain} - -\wxheading{Return value} - -Item located at \arg{point}, or \texttt{wxNOT\_FOUND} if unimplemented -or the item does not exist. - -\membersection{wxListBox::IsSelected}\label{wxlistboxisselected} - -\constfunc{bool}{IsSelected}{\param{int}{ n}} - -Determines whether an item is selected. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\wxheading{Return value} - -true if the given item is selected, false otherwise. - -\membersection{wxListBox::Set}\label{wxlistboxset} - -\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}, \param{void}{ **clientData = {\tt NULL}}} - -\func{void}{Set}{\param{const wxArrayString\&}{ choices}, \param{void}{ **clientData = {\tt NULL}}} - -Clears the list box and adds the given strings to it. - -\wxheading{Parameters} - -\docparam{n}{The number of strings to set.} - -\docparam{choices}{An array of strings to set.} - -\docparam{clientData}{Options array of client data pointers} - -\wxheading{Remarks} - -You may free the array from the calling program after this function has been -called. - -\membersection{wxListBox::SetFirstItem}\label{wxlistboxsetfirstitem} - -\func{void}{SetFirstItem}{\param{int}{ n}} - -\func{void}{SetFirstItem}{\param{const wxString\& }{string}} - -Set the specified item to be the first visible item. - -\wxheading{Parameters} - -\docparam{n}{The zero-based item index.} - -\docparam{string}{The string that should be visible.} - diff --git a/docs/latex/wx/listctrl.tex b/docs/latex/wx/listctrl.tex deleted file mode 100644 index ac0fdfb739..0000000000 --- a/docs/latex/wx/listctrl.tex +++ /dev/null @@ -1,1138 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: listctrl.tex -%% Purpose: wxListCtrl docs -%% Author: -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxListCtrl}}\label{wxlistctrl} - -A list control presents lists in a number of formats: list view, report view, -icon view and small icon view. In any case, elements are numbered from zero. -For all these modes, the items are stored in the control and must be added to -it using \helpref{InsertItem}{wxlistctrlinsertitem} method. - -A special case of report view quite different from the other modes of the list -control is a virtual control in which the items data (including text, images -and attributes) is managed by the main program and is requested by the control -itself only when needed which allows to have controls with millions of items -without consuming much memory. To use virtual list control you must use -\helpref{SetItemCount}{wxlistctrlsetitemcount} first and overload at least -\helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally -\helpref{OnGetItemImage}{wxlistctrlongetitemimage} or \helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage} and -\helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information -about the items when the control requests it. Virtual list control can be used -as a normal one except that no operations which can take time proportional to -the number of items in the control happen -- this is required to allow having a -practically infinite number of items. For example, in a multiple selection -virtual list control, the selections won't be sent when many items are selected -at once because this could mean iterating over all the items. - -Using many of wxListCtrl features is shown in the -\helpref{corresponding sample}{samplelistctrl}. - -To intercept events from a list control, use the event table macros described -in \helpref{wxListEvent}{wxlistevent}. - -{\bf Mac Note:} Starting with 2.8, wxListCtrl uses a native implementation for -report mode, and uses a generic implementation for other modes. You can use the -generic implementation for report mode as well by setting the -mac.listctrl.always\_use\_generic \helpref{wxSystemOption}{wxsystemoptions} to -1. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLC\_LIST}}{Multicolumn list view, with optional small icons. -Columns are computed automatically, i.e. you don't set columns as in wxLC\_REPORT. In other words, -the list wraps, unlike a wxListBox.} -\twocolitem{\windowstyle{wxLC\_REPORT}}{Single or multicolumn report view, with optional header.} -\twocolitem{\windowstyle{wxLC\_VIRTUAL}}{The application provides items text on demand. May only be used with wxLC\_REPORT.} -\twocolitem{\windowstyle{wxLC\_ICON}}{Large icon view, with optional labels.} -\twocolitem{\windowstyle{wxLC\_SMALL\_ICON}}{Small icon view, with optional labels.} -\twocolitem{\windowstyle{wxLC\_ALIGN\_TOP}}{Icons align to the top. Win32 default, Win32 only. } -\twocolitem{\windowstyle{wxLC\_ALIGN\_LEFT}}{Icons align to the left. } -\twocolitem{\windowstyle{wxLC\_AUTOARRANGE}}{Icons arrange themselves. Win32 only. } -\twocolitem{\windowstyle{wxLC\_EDIT\_LABELS}}{Labels are editable: the application will be notified when editing starts.} -\twocolitem{\windowstyle{wxLC\_NO\_HEADER}}{No header in report mode. } -\twocolitem{\windowstyle{wxLC\_SINGLE\_SEL}}{Single selection (default is multiple).} -\twocolitem{\windowstyle{wxLC\_SORT\_ASCENDING}}{Sort in ascending order (must still supply a comparison callback in SortItems.} -\twocolitem{\windowstyle{wxLC\_SORT\_DESCENDING}}{Sort in descending order (must still supply a comparison callback in SortItems.} -\twocolitem{\windowstyle{wxLC\_HRULES}}{Draws light horizontal rules between rows in report mode.} -\twocolitem{\windowstyle{wxLC\_VRULES}}{Draws light vertical rules between columns in report mode.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a list control, use these event handler macros to direct input to member -functions that take a \helpref{wxListEvent}{wxlistevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.} -%\twocolitem{{\bf EVT\_LIST\_GET\_INFO(id, func)}}{Request information from the application, usually the item text.} -%\twocolitem{{\bf EVT\_LIST\_SET\_INFO(id, func)}}{Information is being supplied (not implemented).} -\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).} -\twocolitem{{\bf EVT\_LIST\_ITEM\_FOCUSED(id, func)}}{The currently focused item has changed.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_MIDDLE\_CLICK(id, func)}}{The middle mouse button has been clicked on an item.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_RIGHT\_CLICK(id, func)}}{The right mouse button has been clicked on an item.} -\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.} -\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.} -\twocolitem{{\bf EVT\_LIST\_COL\_RIGHT\_CLICK(id, func)}}{A column ({\bf m\_col}) has been right-clicked.} -\twocolitem{{\bf EVT\_LIST\_COL\_BEGIN\_DRAG(id, func)}}{The user started resizing a column - can be vetoed.} -\twocolitem{{\bf EVT\_LIST\_COL\_DRAGGING(id, func)}}{The divider between columns is being dragged.} -\twocolitem{{\bf EVT\_LIST\_COL\_END\_DRAG(id, func)}}{A column has been resized by the user.} -\twocolitem{{\bf EVT\_LIST\_CACHE\_HINT(id, func)}}{Prepare cache for a virtual list control} -\end{twocollist}% - -\wxheading{Column ordering} - -In report view, the control has several columns which are identified by their -internal indices. By default, these indices correspond to their order on -screen, i.e. the column $0$ appears first (in the left-to-right or maybe -right-to-left if the current language uses this writing direction), the column -$1$ next and so on. However it is possible to reorder the columns visual order -using \helpref{SetColumnsOrder}{wxlistctrlsetcolumnsorder} method and the -user can also rearrange the columns interactively by dragging them. In this -case, the index of the column is not the same as its order and the functions -\helpref{GetColumnOrder}{wxlistctrlgetcolumnorder} and -\helpref{GetColumnIndexFromOrder}{wxlistctrlgetcolumnindexfromorder} should be -used to translate between them. - -Please notice that current column reordering is implemented only in wxMSW. - -\wxheading{See also} - -\helpref{wxListCtrl overview}{wxlistctrloverview}, \helpref{wxListView}{wxlistview}, \helpref{wxListBox}{wxlistbox},\rtfsp -\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxImageList}{wximagelist}, \helpref{wxListEvent}{wxlistevent}, -\helpref{wxListItem}{wxlistitem} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxListCtrl::wxListCtrl}\label{wxlistctrlctor} - -\func{}{wxListCtrl}{\void} - -Default constructor. - -\func{}{wxListCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxListCtrlNameStr}} - -Constructor, creating and showing a list control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxListCtrl}{wxlistctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxListCtrl::Create}{wxlistctrlcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxListCtrl::\destruct{wxListCtrl}}\label{wxlistctrldtor} - -\func{void}{\destruct{wxListCtrl}}{\void} - -Destructor, destroying the list control. - - -\membersection{wxListCtrl::Arrange}\label{wxlistctrlarrange} - -\func{bool}{Arrange}{\param{int }{flag = wxLIST\_ALIGN\_DEFAULT}} - -Arranges the items in icon or small icon view. This only has effect on Win32. {\it flag} is one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_ALIGN\_DEFAULT}{Default alignment.} -\twocolitem{wxLIST\_ALIGN\_LEFT}{Align to the left side of the control.} -\twocolitem{wxLIST\_ALIGN\_TOP}{Align to the top side of the control.} -\twocolitem{wxLIST\_ALIGN\_SNAP\_TO\_GRID}{Snap to grid.} -\end{twocollist} - - -\membersection{wxListCtrl::AssignImageList}\label{wxlistctrlassignimagelist} - -\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}} - -Sets the image list associated with the control and -takes ownership of it (i.e. the control will, unlike when using -SetImageList, delete the list when destroyed). {\it which} is one of -wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented). - -\wxheading{See also} - -\helpref{wxListCtrl::SetImageList}{wxlistctrlsetimagelist} - - -\membersection{wxListCtrl::ClearAll}\label{wxlistctrlclearall} - -\func{void}{ClearAll}{} - -Deletes all items and all columns. - - -\membersection{wxListCtrl::Create}\label{wxlistctrlcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLC\_ICON}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxListCtrlNameStr}} - -Creates the list control. See \helpref{wxListCtrl::wxListCtrl}{wxlistctrlctor} for further details. - - -\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems} - -\func{bool}{DeleteAllItems}{} - -Deletes all items in the list control. - -{\bf NB:} This function does {\it not} send the -{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items -from the control would be too slow then (unlike \helpref{DeleteItem}{wxlistctrldeleteitem}). - - -\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn} - -\func{bool}{DeleteColumn}{\param{int }{col}} - -Deletes a column. - - -\membersection{wxListCtrl::DeleteItem}\label{wxlistctrldeleteitem} - -\func{bool}{DeleteItem}{\param{long }{item}} - -Deletes the specified item. This function sends the -{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted. - -See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems} - - -\membersection{wxListCtrl::EditLabel}\label{wxlistctrledit} - -\func{void}{EditLabel}{\param{long }{item}} - -Starts editing the label of the given item. This function generates a -EVT\_LIST\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no -text control will appear for in-place editing. - -If the user changed the label (i.e. s/he does not press ESC or leave -the text control without changes, a EVT\_LIST\_END\_LABEL\_EDIT event -will be sent which can be vetoed as well. - - -\membersection{wxListCtrl::EnsureVisible}\label{wxlistctrlensurevisible} - -\func{bool}{EnsureVisible}{\param{long }{item}} - -Ensures this item is visible. - - -\membersection{wxListCtrl::FindItem}\label{wxlistctrlfinditem} - -\func{long}{FindItem}{\param{long }{start}, \param{const wxString\& }{str}, \param{bool }{partial = false}} - -Find an item whose label matches this string, starting from {\it start} or -the beginning if {\it start} is -1. The string comparison is case -insensitive. If {\it partial} is true then this method will look for -items which begin with {\it str}. - -\func{long}{FindItem}{\param{long }{start}, \param{long }{data}} - -Find an item whose data matches this data, starting from {\it start} or -the beginning if 'start' is -1. - -\func{long}{FindItem}{\param{long }{start}, \param{const wxPoint\& }{pt}, \param{int }{direction}} - -Find an item nearest this position in the specified direction, starting from -{\it start} or the beginning if {\it start} is -1. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf FindItem(start, str, partial=false)}}{} -\twocolitem{{\bf FindItemData(start, data)}}{} -\twocolitem{{\bf FindItemAtPos(start, point, direction)}}{} -\end{twocollist}} -} - -\perlnote{In wxPerl there are three methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf FindItem( start, str, partial = false ) }}{} -\twocolitem{{\bf FindItemData( start, data ) }}{} -\twocolitem{{\bf FindItemAtPos( start, point, direction )}}{} -\end{twocollist} -}} - - -\membersection{wxListCtrl::GetColumn}\label{wxlistctrlgetcolumn} - -\constfunc{bool}{GetColumn}{\param{int }{col}, \param{wxListItem\& }{item}} - -Gets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - -\perlnote{In wxPerl this method takes only the {\bf col} parameter and - returns a Wx::ListItem ( or undef ).} - - -\membersection{wxListCtrl::GetColumnCount}\label{wxlistctrlgetcolumncount} - -\constfunc{int}{GetColumnCount}{\void} - -Returns the number of columns. - - -\membersection{wxListCtrl::GetColumnWidth}\label{wxlistctrlgetcolumnwidth} - -\constfunc{int}{GetColumnWidth}{\param{int }{col}} - -Gets the column width (report view only). - - -\membersection{wxListCtrl::GetColumnIndexFromOrder}\label{wxlistctrlgetcolumnindexfromorder} - -\constfunc{int}{GetColumnIndexFromOrder}{\param{int }{order}} - -Gets the column number by visual order index (report view only). - - -\membersection{wxListCtrl::GetColumnOrder}\label{wxlistctrlgetcolumnorder} - -\constfunc{int}{GetColumnOrder}{\param{int }{col}} - -Gets the column visual order index (valid in report view only). - - -\membersection{wxListCtrl::GetColumnsOrder}\label{wxlistctrlgetcolumnsorder} - -\constfunc{wxArrayInt}{GetColumnsOrder}{\void} - -Returns the array containing the orders of all columns. On error, an empty -array is returned. - - -\membersection{wxListCtrl::GetCountPerPage}\label{wxlistctrlgetcountperpage} - -\constfunc{int}{GetCountPerPage}{\void} - -Gets the number of items that can fit vertically in the -visible area of the list control (list or report view) -or the total number of items in the list control (icon -or small icon view). - - -\membersection{wxListCtrl::GetEditControl}\label{wxlistctrlgeteditcontrol} - -\constfunc{wxTextCtrl *}{GetEditControl}{\void} - -Returns the edit control being currently used to edit a label. Returns {\tt NULL} -if no label is being edited. - -{\bf NB:} It is currently only implemented for wxMSW and the generic version, -not for the native Mac OS X version. - - -\membersection{wxListCtrl::GetImageList}\label{wxlistctrlgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\param{int }{which}} - -Returns the specified image list. {\it which} may be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxIMAGE\_LIST\_NORMAL}}{The normal (large icon) image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_SMALL}}{The small icon image list.} -\twocolitem{\windowstyle{wxIMAGE\_LIST\_STATE}}{The user-defined state image list (unimplemented).} -\end{twocollist} - - -\membersection{wxListCtrl::GetItem}\label{wxlistctrlgetitem} - -\constfunc{bool}{GetItem}{\param{wxListItem\& }{info}} - -Gets information about the item. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - -You must call {\it info.SetId()} to the ID of item you're interested in -before calling this method. - -\pythonnote{The wxPython version of this method takes an integer parameter -for the item ID, an optional integer for the column number, and -returns the wxListItem object.} - -\perlnote{In wxPerl this method takes as parameter the {\bf ID} of the item -and ( optionally ) the column, and returns a Wx::ListItem object.} - - -\membersection{wxListCtrl::GetItemBackgroundColour}\label{wxlistctrlgetitembackgroundcolour} - -\constfunc{wxColour}{GetItemBackgroundColour}{\param{long }{item}} - -Returns the colour for this item. If the item has no specific colour, returns -an invalid colour (and not the default background control of the control -itself). - -\wxheading{See also} - -\helpref{GetItemTextColour}{wxlistctrlgetitemtextcolour} - - -\membersection{wxListCtrl::GetItemCount}\label{wxlistctrlgetitemcount} - -\constfunc{int}{GetItemCount}{\void} - -Returns the number of items in the list control. - - -\membersection{wxListCtrl::GetItemData}\label{wxlistctrlgetitemdata} - -\constfunc{long}{GetItemData}{\param{long }{item}} - -Gets the application-defined data associated with this item. - - -\membersection{wxListCtrl::GetItemFont}\label{wxlistctrlgetitemfont} - -\constfunc{wxFont}{GetItemFont}{\param{long }{item}} - -Returns the item's font. - - -\membersection{wxListCtrl::GetItemPosition}\label{wxlistctrlgetitemposition} - -\constfunc{bool}{GetItemPosition}{\param{long }{item}, \param{wxPoint\& }{pos}} - -Returns the position of the item, in icon or small icon view. - -\pythonnote{The wxPython version of this method accepts only the item -ID and returns the wxPoint.} - -\perlnote{In wxPerl this method takes only the {\bf item} parameter and -returns a Wx::Point ( or undef ).} - - -\membersection{wxListCtrl::GetItemRect}\label{wxlistctrlgetitemrect} - -\constfunc{bool}{GetItemRect}{\param{long }{item}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}} - -Returns the rectangle representing the item's size and position, in physical -coordinates. - -{\it code} is one of wxLIST\_RECT\_BOUNDS, wxLIST\_RECT\_ICON, wxLIST\_RECT\_LABEL. - -\pythonnote{The wxPython version of this method accepts only the item -ID and code and returns the wxRect.} - -\perlnote{In wxPerl this method takes only the {\bf item} parameter and -returns a Wx::Rect ( or undef ).} - - - -\membersection{wxListCtrl::GetSubItemRect}\label{wxlistctrlgetsubitemrect} - -\constfunc{bool}{GetSubItemRect}{\param{long }{item}, \param{long }{subItem}, \param{wxRect\& }{rect}, \param{int }{code = wxLIST\_RECT\_BOUNDS}} - -Returns the rectangle representing the size and position, in physical -coordinates, of the given subitem, i.e. the part of the row \arg{item} in the -column \arg{subItem}. - -This method is only meaningfull when the wxListCtrl is in the report mode. If -\arg{subItem} parameter is equal to the special value -\texttt{wxLIST\_GETSUBITEMRECT\_WHOLEITEM} the return value is the same as -for \helpref{GetItemRect}{wxlistctrlgetitemrect}. - -\arg{code} can be one of \texttt{wxLIST\_RECT\_BOUNDS}, -\texttt{wxLIST\_RECT\_ICON} or \texttt{wxLIST\_RECT\_LABEL}. - -\newsince{2.7.0} - - -\membersection{wxListCtrl::GetItemSpacing}\label{wxlistctrlgetitemspacing} - -\constfunc{wxSize}{GetItemSpacing}{\void} - -Retrieves the spacing between icons in pixels: horizontal spacing is returned -as \texttt{x} component of the \helpref{wxSize}{wxsize} object and the vertical -spacing as its \texttt{y} component. - - - -\membersection{wxListCtrl::GetItemState}\label{wxlistctrlgetitemstate} - -\constfunc{int}{GetItemState}{\param{long }{item}, \param{long }{stateMask}} - -Gets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -The {\bf stateMask} indicates which state flags are of interest. - - -\membersection{wxListCtrl::GetItemText}\label{wxlistctrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\param{long }{item}} - -Gets the item text for this item. - - -\membersection{wxListCtrl::GetItemTextColour}\label{wxlistctrlgetitemtextcolour} - -\constfunc{wxColour}{GetItemTextColour}{\param{long }{item}} - -Returns the colour for this item. If the item has no specific colour, returns -an invalid colour (and not the default foreground control of the control itself -as this wouldn't allow distinguishing between items having the same colour as -the current control foreground and items with default colour which, hence, have -always the same colour as the control). - - -\membersection{wxListCtrl::GetNextItem}\label{wxlistctrlgetnextitem} - -\constfunc{long}{GetNextItem}{\param{long }{item}, \param{int }{geometry = wxLIST\_NEXT\_ALL}, \param{int }{state = wxLIST\_STATE\_DONTCARE}} - -Searches for an item with the given geometry or state, starting from -{\it item} but excluding the {\it item} itself. If {\it item} is -1, -the first item that matches the specified flags will be returned. - -Returns the first item with given state following {\it item} or -1 if -no such item found. - -This function may be used to find all selected items in the control like this: - -\begin{verbatim} - long item = -1; - for ( ;; ) - { - item = listctrl->GetNextItem(item, - wxLIST_NEXT_ALL, - wxLIST_STATE_SELECTED); - if ( item == -1 ) - break; - - // this item is selected - do whatever is needed with it - wxLogMessage("Item %ld is selected.", item); - } -\end{verbatim} - -{\it geometry} can be one of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_NEXT\_ABOVE}{Searches for an item above the specified item.} -\twocolitem{wxLIST\_NEXT\_ALL}{Searches for subsequent item by index.} -\twocolitem{wxLIST\_NEXT\_BELOW}{Searches for an item below the specified item.} -\twocolitem{wxLIST\_NEXT\_LEFT}{Searches for an item to the left of the specified item.} -\twocolitem{wxLIST\_NEXT\_RIGHT}{Searches for an item to the right of the specified item.} -\end{twocollist} - -{\bf NB:} this parameter is only supported by wxMSW currently and ignored on -other platforms. - -{\it state} can be a bitlist of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is.} -\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item indicates it is a drop target.} -\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.} -\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxLIST\_STATE\_CUT}{The item is selected as part of a cut and paste operation.} -\end{twocollist} - - -\membersection{wxListCtrl::GetSelectedItemCount}\label{wxlistctrlgetselecteditemcount} - -\constfunc{int}{GetSelectedItemCount}{\void} - -Returns the number of selected items in the list control. - - -\membersection{wxListCtrl::GetTextColour}\label{wxlistctrlgettextcolour} - -\constfunc{wxColour}{GetTextColour}{\void} - -Gets the text colour of the list control. - - -\membersection{wxListCtrl::GetTopItem}\label{wxlistctrlgettopitem} - -\constfunc{long}{GetTopItem}{\void} - -Gets the index of the topmost visible item when in -list or report view. - - - -\membersection{wxListCtrl::GetViewRect}\label{wxlistctrlgetviewrect} - -\constfunc{wxRect}{GetViewRect}{\void} - -Returns the rectangle taken by all items in the control. In other words, if the -controls client size were equal to the size of this rectangle, no scrollbars -would be needed and no free space would be left. - -Note that this function only works in the icon and small icon views, not in -list or report views (this is a limitation of the native Win32 control). - - - -\membersection{wxListCtrl::HitTest}\label{wxlistctrlhittest} - -\constfunc{long}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}, \param{long *}{ptrSubItem}} - -Determines which item (if any) is at the specified point, -giving details in {\it flags}. Returns index of the item or {\tt wxNOT\_FOUND} -if no item is at the specified point. -{\it flags} will be a combination of the following flags: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_HITTEST\_ABOVE}{Above the client area.} -\twocolitem{wxLIST\_HITTEST\_BELOW}{Below the client area.} -\twocolitem{wxLIST\_HITTEST\_NOWHERE}{In the client area but below the last item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.} -\twocolitem{wxLIST\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.} -\twocolitem{wxLIST\_HITTEST\_TOLEFT}{To the right of the client area.} -\twocolitem{wxLIST\_HITTEST\_TORIGHT}{To the left of the client area.} -\twocolitem{wxLIST\_HITTEST\_ONITEM}{Combination of wxLIST\_HITTEST\_ONITEMICON, wxLIST\_HITTEST\_ONITEMLABEL, -wxLIST\_HITTEST\_ONITEMSTATEICON.} -\end{twocollist} - -If \arg{ptrSubItem} is not \NULL and the wxListCtrl is in the report -mode the subitem (or column) number will also be provided. -This feature is only available in version 2.7.0 or higher and is currently only -implemented under wxMSW and requires at least comctl32.dll of verion 4.70 on -the host system or the value stored in \arg{ptrSubItem} will be always -1. To -compile this feature into wxWidgets library you need to have access to -commctrl.h of version 4.70 that is provided by Microsoft. - -\pythonnote{A tuple of values is returned in the wxPython version of -this method. The first value is the item id and the second is the -flags value mentioned above.} - -\perlnote{In wxPerl this method only takes the {\bf point} parameter - and returns a 2-element list {\tt ( item, flags )}.} - - -\membersection{wxListCtrl::InsertColumn}\label{wxlistctrlinsertcolumn} - -\func{long}{InsertColumn}{\param{long }{col}, \param{wxListItem\& }{info}} - -\func{long}{InsertColumn}{\param{long }{col}, \param{const wxString\& }{heading}, \param{int }{format = wxLIST\_FORMAT\_LEFT},\rtfsp -\param{int }{width = -1}} - -For report view mode (only), inserts a column. For more details, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf InsertColumn(col, heading, format=wxLIST\_FORMAT\_LEFT, -width=-1)}}{Creates a column using a header string only.} -\twocolitem{{\bf InsertColumnItem(col, item)}}{Creates a column using a -wxListItem.} -\end{twocollist}} -} - - -\membersection{wxListCtrl::InsertItem}\label{wxlistctrlinsertitem} - -\func{long}{InsertItem}{\param{wxListItem\& }{info}} - -Inserts an item, returning the index of the new item if successful, --1 otherwise. - -\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}} - -Inserts a string item. - -\func{long}{InsertItem}{\param{long }{index}, \param{int }{imageIndex}} - -Inserts an image item. - -\func{long}{InsertItem}{\param{long }{index}, \param{const wxString\& }{label}, \param{int }{imageIndex}} - -Insert an image/string item. - -\wxheading{Parameters} - -\docparam{info}{wxListItem object} - -\docparam{index}{Index of the new item, supplied by the application} - -\docparam{label}{String label} - -\docparam{imageIndex}{index into the image list associated with this control and view style} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf InsertItem(item)}}{Inserts an item using a wxListItem.} -\twocolitem{{\bf InsertStringItem(index, label)}}{Inserts a string item.} -\twocolitem{{\bf InsertImageItem(index, imageIndex)}}{Inserts an image item.} -\twocolitem{{\bf InsertImageStringItem(index, label, imageIndex)}}{Insert an image/string item.} -\end{twocollist}} -} - -\perlnote{In wxPerl there are four methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf InsertItem( item )}}{Inserts a Wx::ListItem} -\twocolitem{{\bf InsertStringItem( index, label )}}{Inserts a string item} -\twocolitem{{\bf InsertImageItem( index, imageIndex )}}{Inserts an image item} -\twocolitem{{\bf InsertImageStringItem( index, label, imageIndex )}}{Inserts - an item with a string and an image} -\end{twocollist} -}} - - -\membersection{wxListCtrl::OnGetItemAttr}\label{wxlistctrlongetitemattr} - -\constfunc{virtual wxListItemAttr *}{OnGetItemAttr}{\param{long }{item}} - -This function may be overloaded in the derived class for a control with -{\tt wxLC\_VIRTUAL} style. It should return the attribute for the -for the specified {\tt item} or {\tt NULL} to use the default appearance -parameters. - -wxListCtrl will not delete the pointer or keep a reference of it. You can -return the same wxListItemAttr pointer for every OnGetItemAttr call. - -The base class version always returns {\tt NULL}. - -\wxheading{See also} - -\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\ -\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\ -\helpref{OnGetItemText}{wxlistctrlongetitemtext} - - -\membersection{wxListCtrl::OnGetItemImage}\label{wxlistctrlongetitemimage} - -\constfunc{virtual int}{OnGetItemImage}{\param{long }{item}} - -This function must be overloaded in the derived class for a control with -{\tt wxLC\_VIRTUAL} style having an \helpref{image list}{wxlistctrlsetimagelist} -(if the control doesn't have an image list, it is not necessary to overload - it). It should return the index of the items image in the controls image list -or $-1$ for no image. -In a control with {\tt wxLC\_REPORT} style, OnGetItemImage only gets called for -the first column of each line. - -The base class version always returns $-1$. - -\wxheading{See also} - -\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\ -\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\ -\helpref{OnGetItemAttr}{wxlistctrlongetitemattr} - -\membersection{wxListCtrl::OnGetItemColumnImage}\label{wxlistctrlongetitemcolumnimage} - -\constfunc{virtual int}{OnGetItemColumnImage}{\param{long }{item}, \param{long }{column}} - -Overload this function in the derived class for a control with -{\tt wxLC\_VIRTUAL} and {\tt wxLC\_REPORT} styles in order to specify the image -index for the given line and column. - -The base class version always calls OnGetItemImage for the first column, else -it returns $-1$. - -\wxheading{See also} - -\helpref{OnGetItemText}{wxlistctrlongetitemtext},\\ -\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\ -\helpref{OnGetItemAttr}{wxlistctrlongetitemattr} - -\membersection{wxListCtrl::OnGetItemText}\label{wxlistctrlongetitemtext} - -\constfunc{virtual wxString}{OnGetItemText}{\param{long }{item}, \param{long }{column}} - -This function {\bf must} be overloaded in the derived class for a control with -{\tt wxLC\_VIRTUAL} style. It should return the string containing the text of -the given {\it column} for the specified {\tt item}. - -\wxheading{See also} - -\helpref{SetItemCount}{wxlistctrlsetitemcount},\\ -\helpref{OnGetItemImage}{wxlistctrlongetitemimage},\\ -\helpref{OnGetItemColumnImage}{wxlistctrlongetitemcolumnimage},\\ -\helpref{OnGetItemAttr}{wxlistctrlongetitemattr} - - -\membersection{wxListCtrl::RefreshItem}\label{wxlistctrlrefreshitem} - -\func{void}{RefreshItem}{\param{long }{item}} - -Redraws the given {\it item}. This is only useful for the virtual list controls -as without calling this function the displayed value of the item doesn't change -even when the underlying data does change. - -\wxheading{See also} - -\helpref{RefreshItems}{wxlistctrlrefreshitems} - - - -\membersection{wxListCtrl::RefreshItems}\label{wxlistctrlrefreshitems} - -\func{void}{RefreshItems}{\param{long }{itemFrom}, \param{long }{itemTo}} - -Redraws the items between {\it itemFrom} and {\it itemTo}. The starting item -must be less than or equal to the ending one. - -Just as \helpref{RefreshItem}{wxlistctrlrefreshitem} this is only useful for -virtual list controls. - - - -\membersection{wxListCtrl::ScrollList}\label{wxlistctrlscrolllist} - -\func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}} - -Scrolls the list control. If in icon, small icon or report view mode, -{\it dx} specifies the number of pixels to scroll. If in list view mode, -{\it dx} specifies the number of columns to scroll. {\it dy} always specifies -the number of pixels to scroll vertically. - -{\bf NB:} This method is currently only implemented in the Windows version. - - -\membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{col}} - -Sets the background colour (GetBackgroundColour already implicit in -wxWindow class). - - -\membersection{wxListCtrl::SetColumn}\label{wxlistctrlsetcolumn} - -\func{bool}{SetColumn}{\param{int }{col}, \param{wxListItem\& }{item}} - -Sets information about this column. See \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem} for more -information. - - -\membersection{wxListCtrl::SetColumnWidth}\label{wxlistctrlsetcolumnwidth} - -\func{bool}{SetColumnWidth}{\param{int }{col}, \param{int }{width}} - -Sets the column width. - -{\it width} can be a width in pixels or wxLIST\_AUTOSIZE (-1) or wxLIST\_AUTOSIZE\_USEHEADER (-2). -wxLIST\_AUTOSIZE will resize the column to the length of its longest item. wxLIST\_AUTOSIZE\_USEHEADER -will resize the column to the length of the header (Win32) or 80 pixels (other platforms). - -In small or normal icon view, {\it col} must be -1, and the column width is set for all columns. - - -\membersection{wxListCtrl::SetColumnsOrder}\label{wxlistctrlsetcolumnsorder} - -\constfunc{bool}{SetColumnOrder}{\param{const wxArrayInt\& }{orders}} - -Sets the order of all columns at once. The \arg{orders} array must have the -same number elements as the number of columns and contain each position exactly -once. - -This function is valid in report view only. - - -\membersection{wxListCtrl::SetImageList}\label{wxlistctrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}, \param{int }{which}} - -Sets the image list associated with the control. {\it which} is one of -wxIMAGE\_LIST\_NORMAL, wxIMAGE\_LIST\_SMALL, wxIMAGE\_LIST\_STATE (the last is unimplemented). - -This method does not take ownership of the image list, you have to -delete it yourself. - -\wxheading{See also} - -\helpref{wxListCtrl::AssignImageList}{wxlistctrlassignimagelist} - - - -\membersection{wxListCtrl::SetItem}\label{wxlistctrlsetitem} - -\func{bool}{SetItem}{\param{wxListItem\& }{info}} - -\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const }{wxString\& label}, \param{int }{imageId = -1}} - -Sets information about the item. - -wxListItem is a class with the following members: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{long m\_mask}{Indicates which fields are valid. See the list of valid mask flags below.} -\twocolitem{long m\_itemId}{The zero-based item position.} -\twocolitem{int m\_col}{Zero-based column, if in report mode.} -\twocolitem{long m\_state}{The state of the item. See the list of valid state flags below.} -\twocolitem{long m\_stateMask}{A mask indicating which state flags are valid. See the list of valid state flags below.} -\twocolitem{wxString m\_text}{The label/header text.} -\twocolitem{int m\_image}{The zero-based index into an image list.} -\twocolitem{long m\_data}{Application-defined data.} -\twocolitem{int m\_format}{For columns only: the format. Can be wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or -wxLIST\_FORMAT\_CENTRE.} -\twocolitem{int m\_width}{For columns only: the column width.} -\end{twocollist} - -The {\bf m\_mask} member contains a bitlist specifying which of the other fields are valid. The flags are: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_MASK\_STATE}{The {\bf m\_state} field is valid.} -\twocolitem{wxLIST\_MASK\_TEXT}{The {\bf m\_text} field is valid.} -\twocolitem{wxLIST\_MASK\_IMAGE}{The {\bf m\_image} field is valid.} -\twocolitem{wxLIST\_MASK\_DATA}{The {\bf m\_data} field is valid.} -\twocolitem{wxLIST\_MASK\_WIDTH}{The {\bf m\_width} field is valid.} -\twocolitem{wxLIST\_MASK\_FORMAT}{The {\bf m\_format} field is valid.} -\end{twocollist} - -The {\bf m\_stateMask} and {\bf m\_state} members take flags from the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. } -\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. } -\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.} -\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. } -\end{twocollist} - -The wxListItem object can also contain item-specific colour and font -information: for this you need to call one of SetTextColour(), -SetBackgroundColour() or SetFont() functions on it passing it the colour/font -to use. If the colour/font is not specified, the default list control -colour/font is used. - -\func{long}{SetItem}{\param{long }{index}, \param{int }{col}, \param{const wxString\& }{label}, \param{int }{imageId = -1}} - -Sets a string field at a particular column. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf SetItem(item)}}{Sets information about the given wxListItem.} -\twocolitem{{\bf SetStringItem(index, col, label, imageId)}}{Sets a -string or image at a given location.} -\end{twocollist}} -} - -\membersection{wxListCtrl::SetItemBackgroundColour}\label{wxlistctrlsetitembackgroundcolour} - -\func{void}{SetItemBackgroundColour}{\param{long }{item}, \param{const wxColour\& }{col}} - -Sets the background colour for this item. This function only works in report view. - -The colour can be retrieved using -\helpref{GetItemBackgroundColour}{wxlistctrlgetitembackgroundcolour}. - - - -\membersection{wxListCtrl::SetItemCount}\label{wxlistctrlsetitemcount} - -\func{void}{SetItemCount}{\param{long }{count}} - -This method can only be used with virtual list controls. It is used to indicate -to the control the number of items it contains. After calling it, the main -program should be ready to handle calls to various item callbacks (such as -\helpref{OnGetItemText}{wxlistctrlongetitemtext}) for all items in the range -from $0$ to {\it count}. - - -\membersection{wxListCtrl::SetItemData}\label{wxlistctrlsetitemdata} - -\func{bool}{SetItemData}{\param{long }{item}, \param{long }{data}} - -Associates application-defined data with this item. - -Notice that this function cannot be used to associate pointers with the control -items, use \helpref{SetItemPtrData}{wxlistctrlsetitemptrdata} instead. - - -\membersection{wxListCtrl::SetItemFont}\label{wxlistctrlsetitemfont} - -\func{void}{SetItemFont}{\param{long }{item}, \param{const wxFont\& }{font}} - -Sets the item's font. - - -\membersection{wxListCtrl::SetItemImage}\label{wxlistctrlsetitemimage} - -\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}} - -Sets the image associated with the item. The image is an index into the -image list associated with the list control. In report view, this only sets -the image for the first column. - -\func{bool}{SetItemImage}{\param{long }{item}, \param{int }{image}, \param{int }{selImage}} - -Sets the unselected and selected images associated with the item. The images are indices into the -image list associated with the list control. This form is deprecated: {\it selImage} is not -used. - - -\membersection{wxListCtrl::SetItemColumnImage}\label{wxlistctrlsetitemcolumnimage} - -\func{bool}{SetItemColumnImage}{\param{long }{item}, \param{long }{column}, \param{int }{image}} - -Sets the image associated with the item. In report view, you can specify the column. -The image is an index into the image list associated with the list control. - - -\membersection{wxListCtrl::SetItemPosition}\label{wxlistctrlsetitemposition} - -\func{bool}{SetItemPosition}{\param{long }{item}, \param{const wxPoint\& }{pos}} - -Sets the position of the item, in icon or small icon view. Windows only. - - -\membersection{wxListCtrl::SetItemPtrData}\label{wxlistctrlsetitemptrdata} - -\func{bool}{SetItemPtrData}{\param{long }{item}, \param{wxUIntPtr }{data}} - -Associates application-defined data with this item. The \arg{data} parameter may -be either an integer or a pointer cast to the \texttt{wxUIntPtr} type which is -guaranteed to be large enough to be able to contain all integer types and -pointers. - -\newsince{2.8.4} - - -\membersection{wxListCtrl::SetItemState}\label{wxlistctrlsetitemstate} - -\func{bool}{SetItemState}{\param{long }{item}, \param{long }{state}, \param{long }{stateMask}} - -Sets the item state. For a list of state flags, see \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - -The {\bf stateMask} indicates which state flags are valid. - - -\membersection{wxListCtrl::SetItemText}\label{wxlistctrlsetitemtext} - -\func{void}{SetItemText}{\param{long }{item}, \param{const wxString\& }{text}} - -Sets the item text for this item. - - -\membersection{wxListCtrl::SetItemTextColour}\label{wxlistctrlsetitemtextcolour} - -\func{void}{SetItemTextColour}{\param{long }{item}, \param{const wxColour\& }{col}} - -Sets the colour for this item. This function only works in report view. - -The colour can be retrieved using -\helpref{GetItemTextColour}{wxlistctrlgetitemtextcolour}. - - -\membersection{wxListCtrl::SetSingleStyle}\label{wxlistctrlsetsinglestyle} - -\func{void}{SetSingleStyle}{\param{long }{style}, \param{bool }{add = true}} - -Adds or removes a single window style. - - -\membersection{wxListCtrl::SetTextColour}\label{wxlistctrlsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{col}} - -Sets the text colour of the list control. - - -\membersection{wxListCtrl::SetWindowStyleFlag}\label{wxlistctrlsetwindowstyleflag} - -\func{void}{SetWindowStyleFlag}{\param{long }{style}} - -Sets the whole window style, deleting all items. - -\membersection{wxListCtrl::SortItems}\label{wxlistctrlsortitems} - -\func{bool}{SortItems}{\param{wxListCtrlCompare }{fnSortCallBack}, \param{long }{data}} - -Call this function to sort the items in the list control. Sorting is done -using the specified {\it fnSortCallBack} function. This function must have the -following prototype: - -\begin{verbatim} -int wxCALLBACK wxListCompareFunction(long item1, long item2, long sortData) -\end{verbatim} - -It is called each time when the two items must be compared and should return 0 -if the items are equal, negative value if the first item is less than the -second one and positive value if the first one is greater than the second one -(the same convention as used by {\tt qsort(3)}). - -\wxheading{Parameters} - -\docparam{item1}{client data associated with the first item ({\bf NOT} the index).} - -\docparam{item2}{client data associated with the second item ({\bf NOT} the index).} - -\docparam{data}{the value passed to SortItems() itself.} - -Notice that the control may only be sorted on client data associated with the -items, so you {\bf must} use \helpref{SetItemData}{wxlistctrlsetitemdata} if -you want to be able to sort the items in the control. - -Please see the \helpref{listctrl sample}{samplelistctrl} for an example of -using this function. - -\pythonnote{wxPython uses the sortData parameter to pass the Python -function to call, so it is not available for programmer use. Call -SortItems with a reference to a callable object that expects two -parameters.} - -\perlnote{In wxPerl the comparison function must take just two parameters; -however, you may use a closure to achieve an effect similar to the -SortItems third parameter.} - diff --git a/docs/latex/wx/listevt.tex b/docs/latex/wx/listevt.tex deleted file mode 100644 index 8d944ca89e..0000000000 --- a/docs/latex/wx/listevt.tex +++ /dev/null @@ -1,159 +0,0 @@ -\section{\class{wxListEvent}}\label{wxlistevent} - -A list event holds information about events associated with wxListCtrl objects. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listctrl.h> - -\wxheading{Event table macros} - -To process input from a list control, use these event handler macros to direct input to member -functions that take a wxListEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LIST\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_LIST\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_LIST\_DELETE\_ALL\_ITEMS(id, func)}}{Delete all items.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_SELECTED(id, func)}}{The item has been selected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_DESELECTED(id, func)}}{The item has been deselected.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_ACTIVATED(id, func)}}{The item has been activated (ENTER or double click).} -\twocolitem{{\bf EVT\_LIST\_ITEM\_FOCUSED(id, func)}}{The currently focused item has changed.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_MIDDLE\_CLICK(id, func)}}{The middle mouse button has been clicked on an item.} -\twocolitem{{\bf EVT\_LIST\_ITEM\_RIGHT\_CLICK(id, func)}}{The right mouse button has been clicked on an item.} -\twocolitem{{\bf EVT\_LIST\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_LIST\_INSERT\_ITEM(id, func)}}{An item has been inserted.} -\twocolitem{{\bf EVT\_LIST\_COL\_CLICK(id, func)}}{A column ({\bf m\_col}) has been left-clicked.} -\twocolitem{{\bf EVT\_LIST\_COL\_RIGHT\_CLICK(id, func)}}{A column ({\bf m\_col}) (which can be $-1$ if the click occurred outside any column) has been right-clicked.} -\twocolitem{{\bf EVT\_LIST\_COL\_BEGIN\_DRAG(id, func)}}{The user started resizing a column - can be vetoed.} -\twocolitem{{\bf EVT\_LIST\_COL\_DRAGGING(id, func)}}{The divider between columns is being dragged.} -\twocolitem{{\bf EVT\_LIST\_COL\_END\_DRAG(id, func)}}{A column has been resized by the user.} -\twocolitem{{\bf EVT\_LIST\_CACHE\_HINT(id, func)}}{Prepare cache for a virtual list control} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxListCtrl}{wxlistctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxListEvent::wxListEvent}\label{wxlisteventctor} - -\func{}{wxListEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}} - -Constructor. - - -\membersection{wxListEvent::GetCacheFrom}\label{wxlisteventgetcachefrom} - -\constfunc{long}{GetCacheFrom}{\void} - -For {\tt EVT\_LIST\_CACHE\_HINT} event only: return the first item which the -list control advises us to cache. - - -\membersection{wxListEvent::GetCacheTo}\label{wxlisteventgetcacheto} - -\constfunc{long}{GetCacheTo}{\void} - -For {\tt EVT\_LIST\_CACHE\_HINT} event only: return the last item (inclusive) -which the list control advises us to cache. - - -\membersection{wxListEvent::GetKeyCode}\label{wxlisteventgetkeycode} - -\constfunc{int}{GetKeyCode}{\void} - -Key code if the event is a keypress event. - - -\membersection{wxListEvent::GetIndex}\label{wxlisteventgetindex} - -\constfunc{long}{GetIndex}{\void} - -The item index. - - -\membersection{wxListEvent::GetColumn}\label{wxlisteventgetcolumn} - -\constfunc{int}{GetColumn}{\void} - -The column position: it is only used with {\tt COL} events. For the column -dragging events, it is the column to the left of the divider being dragged, for -the column click events it may be $-1$ if the user clicked in the list control -header outside any column. - - -\membersection{wxListEvent::GetPoint}\label{wxlisteventgetpoint} - -\constfunc{wxPoint}{GetPoint}{\void} - -The position of the mouse pointer if the event is a drag event. - - - -\membersection{wxListEvent::GetLabel}\label{wxlisteventgetlabel} - -\constfunc{const wxString\&}{GetLabel}{\void} - -The (new) item label for \texttt{EVT\_LIST\_END\_LABEL\_EDIT} event. - - -\membersection{wxListEvent::GetText}\label{wxlisteventgettext} - -\constfunc{const wxString\&}{GetText}{\void} - -The text. - - -\membersection{wxListEvent::GetImage}\label{wxlisteventgetimage} - -\constfunc{int}{GetImage}{\void} - -The image. - - -\membersection{wxListEvent::GetData}\label{wxlisteventgetdata} - -\constfunc{long}{GetData}{\void} - -The data. - - -\membersection{wxListEvent::GetMask}\label{wxlisteventgetmask} - -\constfunc{long}{GetMask}{\void} - -The mask. - - -\membersection{wxListEvent::GetItem}\label{wxlisteventgetitem} - -\constfunc{const wxListItem\&}{GetItem}{\void} - -An item object, used by some events. See also \helpref{wxListCtrl::SetItem}{wxlistctrlsetitem}. - - -\membersection{wxListEvent::IsEditCancelled}\label{wxlisteventiseditcancelled} - -\constfunc{bool}{IsEditCancelled}{\void} - -This method only makes sense for \texttt{EVT\_LIST\_END\_LABEL\_EDIT} message -and returns \true if it the label editing has been cancelled by the user -(\helpref{GetLabel}{wxlisteventgetlabel} returns an empty string in this case -but it doesn't allow the application to distinguish between really cancelling the edit and -the admittedly rare case when the user wants to rename it to an empty string). - - diff --git a/docs/latex/wx/listitem.tex b/docs/latex/wx/listitem.tex deleted file mode 100644 index 1e9919b042..0000000000 --- a/docs/latex/wx/listitem.tex +++ /dev/null @@ -1,210 +0,0 @@ -\section{\class{wxListItem}}\label{wxlistitem} - -This class stores information about a wxListCtrl item or column. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listctrl.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListItem::wxListItem}\label{wxlistitemwxlistitem} - -\func{}{wxListItem}{\void} - -Constructor. - -\membersection{wxListItem::Clear}\label{wxlistitemclear} - -\func{void}{Clear}{\void} - -Resets the item state to the default. - -\membersection{wxListItem::GetAlign}\label{wxlistitemgetalign} - -\constfunc{wxListColumnFormat}{GetAlign}{\void} - -Returns the alignment for this item. Can be one of -wxLIST\_FORMAT\_LEFT, wxLIST\_FORMAT\_RIGHT or wxLIST\_FORMAT\_CENTRE. - -\membersection{wxListItem::GetBackgroundColour}\label{wxlistitemgetbackgroundcolour} - -\constfunc{wxColour}{GetBackgroundColour}{\void} - -Returns the background colour for this item. - -\membersection{wxListItem::GetColumn}\label{wxlistitemgetcolumn} - -\constfunc{int}{GetColumn}{\void} - -Returns the zero-based column; meaningful only in report mode. - -\membersection{wxListItem::GetData}\label{wxlistitemgetdata} - -\constfunc{long}{GetData}{\void} - -Returns client data associated with the control. Please note that -client data is associated with the item and not with subitems. - -\membersection{wxListItem::GetFont}\label{wxlistitemgetfont} - -\constfunc{wxFont}{GetFont}{\void} - -Returns the font used to display the item. - -\membersection{wxListItem::GetId}\label{wxlistitemgetid} - -\constfunc{long}{GetId}{\void} - -Returns the zero-based item position. - -\membersection{wxListItem::GetImage}\label{wxlistitemgetimage} - -\constfunc{int}{GetImage}{\void} - -Returns the zero-based index of the image -associated with the item into the image list. - -\membersection{wxListItem::GetMask}\label{wxlistitemgetmask} - -\constfunc{long}{GetMask}{\void} - -Returns a bit mask indicating which fields of the structure are valid; -can be any combination of the following values: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_MASK\_STATE}{{\bf GetState} is valid.} -\twocolitem{wxLIST\_MASK\_TEXT}{{\bf GetText} is valid.} -\twocolitem{wxLIST\_MASK\_IMAGE}{{\bf GetImage} is valid.} -\twocolitem{wxLIST\_MASK\_DATA}{{\bf GetData} is valid.} -\twocolitem{wxLIST\_MASK\_WIDTH}{{\bf GetWidth} is valid.} -\twocolitem{wxLIST\_MASK\_FORMAT}{{\bf GetFormat} is valid.} -\end{twocollist} - -\membersection{wxListItem::GetState}\label{wxlistitemgetstate} - -\constfunc{long}{GetState}{\void} - -Returns a bit field representing the state of the item. Can be any -combination of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxLIST\_STATE\_DONTCARE}{Don't care what the state is. Win32 only. } -\twocolitem{wxLIST\_STATE\_DROPHILITED}{The item is highlighted to receive a drop event. Win32 only. } -\twocolitem{wxLIST\_STATE\_FOCUSED}{The item has the focus.} -\twocolitem{wxLIST\_STATE\_SELECTED}{The item is selected.} -\twocolitem{wxLIST\_STATE\_CUT}{The item is in the cut state. Win32 only. } -\end{twocollist} - -\membersection{wxListItem::GetText}\label{wxlistitemgettext} - -\constfunc{const wxString\&}{GetText}{\void} - -Returns the label/header text. - -\membersection{wxListItem::GetTextColour}\label{wxlistitemgettextcolour} - -\constfunc{wxColour}{GetTextColour}{\void} - -Returns the text colour. - -\membersection{wxListItem::GetWidth}\label{wxlistitemgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Meaningful only for column headers in report mode. Returns the column width. - -\membersection{wxListItem::SetAlign}\label{wxlistitemsetalign} - -\func{void}{SetAlign}{\param{wxListColumnFormat }{align}} - -Sets the alignment for the item. See also -\helpref{wxListItem::GetAlign}{wxlistitemgetalign} - -\membersection{wxListItem::SetBackgroundColour}\label{wxlistitemsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}} - -Sets the background colour for the item. - -\membersection{wxListItem::SetColumn}\label{wxlistitemsetcolumn} - -\func{void}{SetColumn}{\param{int }{col}} - -Sets the zero-based column. Meaningful only in report mode. - -\membersection{wxListItem::SetData}\label{wxlistitemsetdata} - -\func{void}{SetData}{\param{long }{data}} - -\func{void}{SetData}{\param{void* }{data}} - -Sets client data for the item. Please note that -client data is associated with the item and not with subitems. - -\membersection{wxListItem::SetFont}\label{wxlistitemsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font for the item. - -\membersection{wxListItem::SetId}\label{wxlistitemsetid} - -\func{void}{SetId}{\param{long }{id}} - -Sets the zero-based item position. - -\membersection{wxListItem::SetImage}\label{wxlistitemsetimage} - -\func{void}{SetImage}{\param{int }{image}} - -Sets the zero-based index of the image associated with the item -into the image list. - -\membersection{wxListItem::SetMask}\label{wxlistitemsetmask} - -\func{void}{SetMask}{\param{long }{mask}} - -Sets the mask of valid fields. See \helpref{wxListItem::GetMask}{wxlistitemgetmask}. - -\membersection{wxListItem::SetState}\label{wxlistitemsetstate} - -\func{void}{SetState}{\param{long }{state}} - -Sets the item state flags (note that the valid state flags are influenced -by the value of the state mask, see -\helpref{wxListItem::SetStateMask}{wxlistitemsetstatemask}). -See \helpref{wxListItem::GetState}{wxlistitemgetstate} for valid flag -values. - -\membersection{wxListItem::SetStateMask}\label{wxlistitemsetstatemask} - -\func{void}{SetStateMask}{\param{long }{stateMask}} - -Sets the bitmask that is used to determine which of the state flags -are to be set. See also \helpref{wxListItem::SetState}{wxlistitemsetstate}. - -\membersection{wxListItem::SetText}\label{wxlistitemsettext} - -\func{void}{SetText}{\param{const wxString\& }{text}} - -Sets the text label for the item. - -\membersection{wxListItem::SetTextColour}\label{wxlistitemsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colText}} - -Sets the text colour for the item. - -\membersection{wxListItem::SetWidth}\label{wxlistitemsetwidth} - -\func{void}{SetWidth}{\param{int }{width}} - -Meaningful only for column headers in report mode. Sets the column width. - diff --git a/docs/latex/wx/listview.tex b/docs/latex/wx/listview.tex deleted file mode 100644 index c2d670bd1e..0000000000 --- a/docs/latex/wx/listview.tex +++ /dev/null @@ -1,149 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: listview.tex -%% Purpose: wxListView documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 07.11.02 -%% RCS-ID: $Id$ -%% Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxListView}}\label{wxlistview} - -This class currently simply presents a simpler to use interface for the -\helpref{wxListCtrl}{wxlistctrl} -- it can be thought of as a {\it fa\c{c}ade} -for that complicated class. Using it is preferable to using -\helpref{wxListCtrl}{wxlistctrl} directly whenever possible because in the -future some ports might implement wxListView but not the full set of wxListCtrl -features. - -Other than different interface, this class is identical to wxListCtrl. In -particular, it uses the same events, same window styles and so on. - -\wxheading{Derived from} - -\helpref{wxListCtrl}{wxlistctrl}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/listctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -%%%%%%%%%%%%% Methods in alphabetic order %%%%%%%%%%%%% -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxListView::ClearColumnImage}\label{wxlistviewclearcolumnimage} - -\func{void}{ClearColumnImage}{\param{int }{col}} - -Resets the column image -- after calling this function, no image will be shown. - -\wxheading{Parameters} - -\docparam{col}{the column to clear image for} - -\wxheading{See also} - -\helpref{SetColumnImage}{wxlistviewsetcolumnimage} - - -\membersection{wxListView::Focus}\label{wxlistviewfocus} - -\func{void}{Focus}{\param{long }{index}} - -Sets focus to the item with the given {\it index}. - - -\membersection{wxListView::GetFirstSelected}\label{wxlistviewgetfirstselected} - -\constfunc{long}{GetFirstSelected}{\void} - -Returns the first selected item in a (presumably) multiple selection control. -Together with \helpref{GetNextSelected}{wxlistviewgetnextselected} it can be -used to iterate over all selected items in the control. - -\wxheading{Return value} - -The first selected item, if any, $-1$ otherwise. - - -\membersection{wxListView::GetFocusedItem}\label{wxlistviewgetfocuseditem} - -\constfunc{long}{GetFocusedItem}{\void} - -Returns the currently focused item or $-1$ if none. - -\wxheading{See also} - -\helpref{IsSelected}{wxlistviewisselected},\\ -\helpref{Focus}{wxlistviewfocus} - - -\membersection{wxListView::GetNextSelected}\label{wxlistviewgetnextselected} - -\constfunc{long}{GetNextSelected}{\param{long }{item}} - -Used together with \helpref{GetFirstSelected}{wxlistviewgetfirstselected} to -iterate over all selected items in the control. - -\wxheading{Return value} - -Returns the next selected item or $-1$ if there are no more of them. - - -\membersection{wxListView::IsSelected}\label{wxlistviewisselected} - -\constfunc{bool}{IsSelected}{\param{long }{index}} - -Returns {\tt true} if the item with the given {\it index} is selected, -{\tt false} otherwise. - -\wxheading{See also} - -\helpref{GetFirstSelected}{wxlistviewgetfirstselected},\\ -\helpref{GetNextSelected}{wxlistviewgetnextselected} - - -\membersection{wxListView::Select}\label{wxlistviewselect} - -\func{void}{Select}{long n, \param{bool }{on = true}} - -Selects or unselects the given item. - -\wxheading{Parameters} - -\docparam{n}{the item to select or unselect} - -\docparam{on}{if {\tt true} (default), selects the item, otherwise unselects it} - -\wxheading{See also} - -\helpref{SetItemState}{wxlistctrlsetitemstate} - - -\membersection{wxListView::SetColumnImage}\label{wxlistviewsetcolumnimage} - -\func{void}{SetColumnImage}{\param{int }{col}, \param{int }{image}} - -Sets the column image for the specified column. To use the column images, the -control must have a valid image list with at least one image. - -\wxheading{Parameters} - -\docparam{col}{the column to set image for} - -\docparam{image}{the index of the column image in the controls image list} - -\wxheading{See also} - -\helpref{ClearColumnImage}{wxlistviewclearcolumnimage},\\ -\helpref{SetImageList}{wxlistctrlsetimagelist} - diff --git a/docs/latex/wx/locale.tex b/docs/latex/wx/locale.tex deleted file mode 100644 index dfc2de40b6..0000000000 --- a/docs/latex/wx/locale.tex +++ /dev/null @@ -1,461 +0,0 @@ -\section{\class{wxLocale}}\label{wxlocale} - -wxLocale class encapsulates all language-dependent settings and is a -generalization of the C locale concept. - -In wxWidgets this class manages message catalogs which contain the translations -of the strings used to the current language. - -\perlnote{In wxPerl you can't use the '\_' function name, so -the {\tt Wx::Locale} module can export the {\tt gettext} and -{\tt gettext\_noop} under any given name. - -\begin{verbatim} - # this imports gettext ( equivalent to Wx::GetTranslation - # and gettext_noop ( a noop ) - # into your module - use Wx::Locale qw(:default); - - # .... - - # use the functions - print gettext( ``Panic!'' ); - - button = Wx::Button->new( window, -1, gettext( ``Label'' ) ); -\end{verbatim} - -If you need to translate a lot of strings, then adding gettext( ) around -each one is a long task ( that is why \_( ) was introduced ), so just choose -a shorter name for gettext: - -\begin{verbatim} - # - use Wx::Locale 'gettext' => 't', - 'gettext_noop' => 'gettext_noop'; - - # ... - - # use the functions - print t( ``Panic!!'' ); - - # ... -\end{verbatim} -}% - -\wxheading{Derived from} - -No base class - -\wxheading{See also} - -\helpref{Internationalization overview}{internationalization},\\ -\helpref{Internat sample}{sampleinternat},\\ -\helpref{wxXLocale}{wxxlocale} - -\wxheading{Include files} - -<wx/intl.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - - -\membersection{Supported languages}\label{wxlanguage} - -See \helpref{list of recognized language constants}{languagecodes}. -These constants may be used to specify the language -in \helpref{Init}{wxlocaleinit} and are returned by -\helpref{GetSystemLanguage}{wxlocalegetsystemlanguage}: - - -\membersection{wxLocale::wxLocale}\label{wxlocaledefctor} - -\func{}{wxLocale}{\void} - -This is the default constructor and it does nothing to initialize the object: -\helpref{Init()}{wxlocaleinit} must be used to do that. - -\func{}{wxLocale}{\param{int }{language}, \param{int }{flags = - wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}} - -See \helpref{Init()}{wxlocaleinit} for parameters description. - -\func{}{wxLocale}{\param{const wxString\& }{name}, \param{const wxString\& }{short = wxEmptyString}, \param{const wxString\& }{locale = wxEmptyString}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}} - -See \helpref{Init()}{wxlocaleinit} for parameters description. - -The call of this function has several global side effects which you should -understand: first of all, the application locale is changed - note that this -will affect many of standard C library functions such as printf() or strftime(). -Second, this wxLocale object becomes the new current global locale for the -application and so all subsequent calls to wxGetTranslation() will try to -translate the messages using the message catalogs for this locale. - - - -\membersection{wxLocale::\destruct{wxLocale}}\label{wxlocaledtor} - -\func{}{\destruct{wxLocale}}{\void} - -The destructor, like the constructor, also has global side effects: the previously -set locale is restored and so the changes described in -\helpref{Init}{wxlocaleinit} documentation are rolled back. - - -\membersection{wxLocale::AddCatalog}\label{wxlocaleaddcatalog} - -\func{bool}{AddCatalog}{\param{const wxString\& }{domain}} - -\func{bool}{AddCatalog}{\param{const wxString\& }{domain}, \param{wxLanguage}{msgIdLanguage}, \param{const wxString\& }{msgIdCharset}} - -Add a catalog for use with the current locale: it is searched for in standard -places (current directory first, then the system one), but you may also prepend -additional directories to the search path with -\helpref{AddCatalogLookupPathPrefix()}{wxlocaleaddcataloglookuppathprefix}. - -All loaded catalogs will be used for message lookup by -\helpref{GetString()}{wxlocalegetstring} for the current locale. - -Returns true if catalog was successfully loaded, false otherwise (which might -mean that the catalog is not found or that it isn't in the correct format). - -The second form of this method takes two additional arguments, -\arg{msgIdLanguage} and \arg{msgIdCharset}. - -\arg{msgIdLanguage} specifies the language of "msgid" strings in source code -(i.e. arguments to \helpref{GetString}{wxlocalegetstring}, -\helpref{wxGetTranslation}{wxgettranslation} and the -\helpref{\_()}{underscore} macro). It is used if AddCatalog cannot find any -catalog for current language: if the language is same as source code language, -then strings from source code are used instead. - -\arg{msgIdCharset} lets you specify the charset used for msgids in sources -in case they use 8-bit characters (e.g. German or French strings). This -argument has no effect in Unicode build, because literals in sources are -Unicode strings; you have to use compiler-specific method of setting the right -charset when compiling with Unicode. - -By default (i.e. when you use the first form), msgid strings are assumed -to be in English and written only using 7-bit ASCII characters. - -If you have to deal with non-English strings or 8-bit characters in the source -code, see the instructions in -\helpref{Writing non-English applications}{nonenglishoverview}. - - -\membersection{wxLocale::AddCatalogLookupPathPrefix}\label{wxlocaleaddcataloglookuppathprefix} - -\func{void}{AddCatalogLookupPathPrefix}{\param{const wxString\& }{prefix}} - -Add a prefix to the catalog lookup path: the message catalog files will be -looked up under prefix/<lang>/LC\_MESSAGES, prefix/<lang> and prefix -(in this order). - -This only applies to subsequent invocations of AddCatalog(). - -\membersection{wxLocale::AddLanguage}\label{wxlocaleaddlanguage} - -\func{static void}{AddLanguage}{\param{const wxLanguageInfo\& }{info}} - -Adds custom, user-defined language to the database of known languages. This -database is used in conjunction with the first form of -\helpref{Init}{wxlocaleinit}. - -wxLanguageInfo is defined as follows: - -\begin{verbatim} -struct WXDLLEXPORT wxLanguageInfo -{ - int Language; // wxLanguage id - wxString CanonicalName; // Canonical name, e.g. fr_FR -#ifdef __WIN32__ - wxUint32 WinLang, WinSublang; // Win32 language identifiers - // (LANG_xxxx, SUBLANG_xxxx) -#endif - wxString Description; // human-readable name of the language -}; -\end{verbatim} - - -{\it Language} should be greater than wxLANGUAGE\_USER\_DEFINED. - -\perlnote{In wxPerl Wx::LanguageInfo has only one method:\par -Wx::LanguageInfo->new( language, canonicalName, WinLang, WinSubLang, Description )} - - -\membersection{wxLocale::FindLanguageInfo}\label{wxlocalefindlanguageinfo} - -\func{static wxLanguageInfo *}{FindLanguageInfo}{\param{const wxString\& }{locale}} - -This function may be used to find the language description structure for the -given locale, specified either as a two letter ISO language code (for example, -"pt"), a language code followed by the country code ("pt\_BR") or a full, human -readable, language description ("Portuguese-Brazil"). - -Returns the information for the given language or {\tt NULL} if this language -is unknown. Note that even if the returned pointer is valid, the caller should -{\it not} delete it. - -\wxheading{See also} - -\helpref{GetLanguageInfo}{wxlocalegetlanguageinfo} - - -\membersection{wxLocale::GetCanonicalName}\label{wxlocalegetcanonicalname} - -\constfunc{wxString}{GetCanonicalName}{\void} - -Returns the canonical form of current locale name. Canonical form is the -one that is used on UNIX systems: it is a two- or five-letter string in xx or -xx\_YY format, where xx is ISO 639 code of language and YY is ISO 3166 code of -the country. Examples are "en", "en\_GB", "en\_US" or "fr\_FR". - -This form is internally used when looking up message catalogs. - -Compare \helpref{GetSysName}{wxlocalegetsysname}. - - - - -\membersection{wxLocale::GetLanguage}\label{wxlocalegetlanguage} - -\constfunc{int}{GetLanguage}{\void} - -Returns \helpref{wxLanguage}{wxlanguage} constant of current language. -Note that you can call this function only if you used the form of -\helpref{Init}{wxlocaleinit} that takes wxLanguage argument. - - -\membersection{wxLocale::GetLanguageInfo}\label{wxlocalegetlanguageinfo} - -\constfunc{static wxLanguageInfo *}{GetLanguageInfo}{\param{int }{lang}} - -Returns a pointer to wxLanguageInfo structure containing information about the -given language or {\tt NULL} if this language is unknown. Note that even if the -returned pointer is valid, the caller should {\it not} delete it. - -See \helpref{AddLanguage}{wxlocaleaddlanguage} for the wxLanguageInfo -description. - -As with \helpref{Init}{wxlocaleinit}, \texttt{wxLANGUAGE\_DEFAULT} has the -special meaning if passed as an argument to this function and in this case the -result of \helpref{GetSystemLanguage()}{wxlocalegetsystemlanguage} is used. - - -\membersection{wxLocale::GetLanguageName}\label{wxlocalegetlanguagename} - -\constfunc{static wxString}{GetLanguageName}{\param{int }{lang}} - -Returns English name of the given language or empty string if this -language is unknown. - -See \helpref{GetLanguageInfo}{wxlocalegetlanguageinfo} for a remark about -special meaning of \texttt{wxLANGUAGE\_DEFAULT}. - - -\membersection{wxLocale::GetLocale}\label{wxlocalegetlocale} - -\constfunc{const wxString\& }{GetLocale}{\void} - -Returns the locale name as passed to the constructor or -\helpref{Init()}{wxlocaleinit}. This is full, human-readable name, -e.g. "English" or "French". - - - -\membersection{wxLocale::GetName}\label{wxlocalegetname} - -\constfunc{const wxString\& }{GetName}{\void} - -Returns the current short name for the locale (as given to the constructor or -the Init() function). - - -\membersection{wxLocale::GetString}\label{wxlocalegetstring} - -\constfunc{const wxString\& }{GetString}{\param{const wxString\& }{origString}, \param{const wxString\& }{domain = wxEmptyString}} - -\constfunc{const wxString\& }{GetString}{\param{const wxString\& }{origString}, \param{const wxString\& }{origString2}, \param{size\_t }{n}, \param{const wxString\& }{domain = NULL}} - -Retrieves the translation for a string in all loaded domains unless the szDomain -parameter is specified (and then only this catalog/domain is searched). - -Returns original string if translation is not available -(in this case an error message is generated the first time -a string is not found; use \helpref{wxLogNull}{wxlogoverview} to suppress it). - -The second form is used when retrieving translation of string that has -different singular and plural form in English or different plural forms in some -other language. It takes two extra arguments: \arg{origString} -parameter must contain the singular form of the string to be converted. -It is also used as the key for the search in the catalog. -The \arg{origString2} parameter is the plural form (in English). -The parameter \arg{n} is used to determine the plural form. If no -message catalog is found \arg{origString} is returned if `n == 1', -otherwise \arg{origString2}. -See \urlref{GNU gettext manual}{http://www.gnu.org/manual/gettext/html\_chapter/gettext\_10.html\#SEC150} for additional information on plural forms handling. - -This method is called by the \helpref{wxGetTranslation}{wxgettranslation} -function and \helpref{\_()}{underscore} macro. - -\wxheading{Remarks} - -Domains are searched in the last to first order, i.e. catalogs -added later override those added before. - - -\membersection{wxLocale::GetHeaderValue}\label{wxlocalegetheadervalue} - -\constfunc{wxString}{GetHeaderValue}{\param{const wxString\& }{header}, \param{const wxString\& }{domain = wxEmptyString}} - -Returns the header value for header \arg{header}. The search for \arg{header} is case sensitive. If an \arg{domain} -is passed, this domain is searched. Else all domains will be searched until a header has been found. -The return value is the value of the header if found. Else this will be empty. - -\membersection{wxLocale::GetSysName}\label{wxlocalegetsysname} - -\constfunc{wxString}{GetSysName}{\void} - -Returns current platform-specific locale name as passed to setlocale(). - -Compare \helpref{GetCanonicalName}{wxlocalegetcanonicalname}. - - - -\membersection{wxLocale::GetSystemEncoding}\label{wxlocalegetsystemencoding} - -\constfunc{static wxFontEncoding}{GetSystemEncoding}{\void} - -Tries to detect the user's default font encoding. -Returns \helpref{wxFontEncoding}{wxfont} value or -{\bf wxFONTENCODING\_SYSTEM} if it couldn't be determined. - - -\membersection{wxLocale::GetSystemEncodingName}\label{wxlocalegetsystemencodingname} - -\constfunc{static wxString}{GetSystemEncodingName}{\void} - -Tries to detect the name of the user's default font encoding. This string isn't -particularly useful for the application as its form is platform-dependent and -so you should probably use -\helpref{GetSystemEncoding}{wxlocalegetsystemencoding} instead. - -Returns a user-readable string value or an empty string if it couldn't be -determined. - - -\membersection{wxLocale::GetSystemLanguage}\label{wxlocalegetsystemlanguage} - -\constfunc{static int}{GetSystemLanguage}{\void} - -Tries to detect the user's default language setting. -Returns \helpref{wxLanguage}{wxlanguage} value or - {\bf wxLANGUAGE\_UNKNOWN} if the language-guessing algorithm failed. - - - -\membersection{wxLocale::Init}\label{wxlocaleinit} - - -\func{bool}{Init}{\param{int }{language = wxLANGUAGE\_DEFAULT}, \param{int }{flags = - wxLOCALE\_LOAD\_DEFAULT | wxLOCALE\_CONV\_ENCODING}} - -\func{bool}{Init}{\param{const wxString\& }{name}, \param{const wxString\& }{short = wxEmptyString}, \param{const wxString\& }{locale = wxEmptyString}, \param{bool }{bLoadDefault = true}, \param{bool }{bConvertEncoding = false}} - -The second form is deprecated, use the first one unless you know what you are -doing. - - -\wxheading{Parameters} - -\docparam{language}{\helpref{wxLanguage}{wxlanguage} identifier of the locale. -wxLANGUAGE\_DEFAULT has special meaning -- wxLocale will use system's default -language (see \helpref{GetSystemLanguage}{wxlocalegetsystemlanguage}).} - -\docparam{flags}{Combination of the following: - - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLOCALE\_LOAD\_DEFAULT}}{Load the message catalog -for the given locale containing the translations of standard wxWidgets messages -automatically.} -\twocolitem{\windowstyle{wxLOCALE\_CONV\_ENCODING}}{Automatically convert message -catalogs to platform's default encoding. Note that it will do only basic -conversion between well-known pair like iso8859-1 and windows-1252 or -iso8859-2 and windows-1250. See \helpref{Writing non-English applications}{nonenglishoverview} for detailed -description of this behaviour. Note that this flag is meaningless in Unicode build.} -\end{twocollist} -} - -\docparam{name}{The name of the locale. Only used in diagnostic messages.} - -\docparam{short}{The standard 2 letter locale abbreviation; it is used as the -directory prefix when looking for the message catalog files.} - -\docparam{locale}{The parameter for the call to setlocale(). Note that it is -platform-specific.} - -\docparam{bLoadDefault}{May be set to false to prevent loading of the message catalog -for the given locale containing the translations of standard wxWidgets messages. -This parameter would be rarely used in normal circumstances.} - -\docparam{bConvertEncoding}{May be set to true to do automatic conversion of message -catalogs to platform's native encoding. Note that it will do only basic -conversion between well-known pair like iso8859-1 and windows-1252 or -iso8859-2 and windows-1250. -See \helpref{Writing non-English applications}{nonenglishoverview} for detailed -description of this behaviour.} - - -The call of this function has several global side effects which you should -understand: first of all, the application locale is changed - note that this -will affect many of standard C library functions such as printf() or strftime(). -Second, this wxLocale object becomes the new current global locale for the -application and so all subsequent calls to -\helpref{wxGetTranslation()}{wxgettranslation} will try to -translate the messages using the message catalogs for this locale. - -Returns true on success or false if the given locale couldn't be set. - - -\membersection{wxLocale::IsAvailable}\label{wxlocaleisavailable} - -\func{static bool}{IsAvailable}{\param{int }{lang}} - -Check whether the operating system and/or C run time environment supports -this locale. For example in Windows 2000 and Windows XP, support for many -locales is not installed by default. Returns \true if the locale is -supported. - -The argument \arg{lang} is the wxLanguage identifier. To obtain this for a -given a two letter ISO language code, use -\helpref{FindLanguageInfo}{wxlocalefindlanguageinfo} to obtain its -wxLanguageInfo structure. See \helpref{AddLanguage}{wxlocaleaddlanguage} for -the wxLanguageInfo description. - -\newsince{2.7.1}. - - -\membersection{wxLocale::IsLoaded}\label{wxlocaleisloaded} - -\constfunc{bool}{IsLoaded}{\param{const char* }{domain}} - -Check if the given catalog is loaded, and returns true if it is. - -According to GNU gettext tradition, each catalog -normally corresponds to 'domain' which is more or less the application name. - -See also: \helpref{AddCatalog}{wxlocaleaddcatalog} - - -\membersection{wxLocale::IsOk}\label{wxlocaleisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the locale could be set successfully. - diff --git a/docs/latex/wx/log.tex b/docs/latex/wx/log.tex deleted file mode 100644 index f33ec0f41e..0000000000 --- a/docs/latex/wx/log.tex +++ /dev/null @@ -1,893 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: log.tex -%% Purpose: wxLog and related classes documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: some time ago -%% RCS-ID: $Id$ -%% Copyright: (c) 1997-2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLog}}\label{wxlog} - -wxLog class defines the interface for the {\it log targets} used by wxWidgets -logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}. -The only situations when you need to directly use this class is when you want -to derive your own log target because the existing ones don't satisfy your -needs. Another case is if you wish to customize the behaviour of the standard -logging classes (all of which respect the wxLog settings): for example, set -which trace messages are logged and which are not or change (or even remove -completely) the timestamp on the messages. - -Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and -you may not even know about its existence. - -See \helpref{log overview}{wxlogoverview} for the descriptions of wxWidgets -logging facilities. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Global functions} - -The functions in this section work with and manipulate the active log target. -The \helpref{OnLog()}{wxlogonlog} is called by the {\it wxLogXXX()} functions -and invokes the \helpref{DoLog()}{wxlogdolog} of the active log target if any. -Get/Set methods are used to install/query the current active target and, -finally, \helpref{DontCreateOnDemand()}{wxlogdontcreateondemand} disables the -automatic creation of a standard log target if none actually exists. It is -only useful when the application is terminating and shouldn't be used in other -situations because it may easily lead to a loss of messages. - -\helpref{OnLog}{wxlogonlog}\\ -\helpref{GetActiveTarget}{wxloggetactivetarget}\\ -\helpref{SetActiveTarget}{wxlogsetactivetarget}\\ -\helpref{DontCreateOnDemand}{wxlogdontcreateondemand}\\ -\helpref{Suspend}{wxlogsuspend}\\ -\helpref{Resume}{wxlogresume} - -\membersection{Logging functions}\label{loggingfunctions} - -There are two functions which must be implemented by any derived class to -actually process the log messages: \helpref{DoLog}{wxlogdolog} and -\helpref{DoLogString}{wxlogdologstring}. The second function receives a string -which just has to be output in some way and the easiest way to write a new log -target is to override just this function in the derived class. If more control -over the output format is needed, then the first function must be overridden -which allows to construct custom messages depending on the log level or even -do completely different things depending on the message severity (for example, -throw away all messages except warnings and errors, show warnings on the -screen and forward the error messages to the user's (or programmer's) cell -phone - maybe depending on whether the timestamp tells us if it is day or -night in the current time zone). - -There also functions to support message buffering. Why are they needed? -Some of wxLog implementations, most notably the standard wxLogGui class, -buffer the messages (for example, to avoid showing the user a zillion of modal -message boxes one after another -- which would be really annoying). -\helpref{Flush()}{wxlogflush} shows them all and clears the buffer contents. -This function doesn't do anything if the buffer is already empty. - -\helpref{Flush}{wxlogflush}\\ -\helpref{FlushActive}{wxlogflushactive} - -\membersection{Customization}\label{wxlogcustomization} - -The functions below allow some limited customization of wxLog behaviour -without writing a new log target class (which, aside of being a matter of -several minutes, allows you to do anything you want). - -The verbose messages are the trace messages which are not disabled in the -release mode and are generated by \helpref{wxLogVerbose}{wxlogverbose}. They -are not normally shown to the user because they present little interest, but -may be activated, for example, in order to help the user find some program -problem. - -As for the (real) trace messages, their handling depends on the settings of -the (application global) {\it trace mask}. There are two ways to specify it: -either by using \helpref{SetTraceMask}{wxlogsettracemask} and -\helpref{GetTraceMask}{wxloggettracemask} and using -\helpref{wxLogTrace}{wxlogtrace} which takes an integer mask or by using -\helpref{AddTraceMask}{wxlogaddtracemask} for string trace masks. - -The difference between bit-wise and string trace masks is that a message using -integer trace mask will only be logged if all bits of the mask are set in the -current mask while a message using string mask will be logged simply if the -mask had been added before to the list of allowed ones. - -For example, - -\begin{verbatim} -// wxTraceOleCalls is one of standard bit masks -wxLogTrace(wxTraceRefCount | wxTraceOleCalls, "Active object ref count: %d", nRef); -\end{verbatim} -will do something only if the current trace mask contains both -{\tt wxTraceRefCount} and {\tt wxTraceOle}, but - -\begin{verbatim} -// wxTRACE_OleCalls is one of standard string masks -wxLogTrace(wxTRACE_OleCalls, "IFoo::Bar() called"); -\end{verbatim} - -will log the message if it was preceded by - -\begin{verbatim} -wxLog::AddTraceMask(wxTRACE_OleCalls); -\end{verbatim} - -Using string masks is simpler and allows to easily add custom ones, so this is -the preferred way of working with trace messages. The integer trace mask is -kept for compatibility and for additional (but very rarely needed) flexibility -only. - -The standard trace masks are given in \helpref{wxLogTrace}{wxlogtrace} -documentation. - -Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp -to all the messages. The format of the time stamp may be changed: it can be -any string with \% specifications fully described in the documentation of the -standard {\it strftime()} function. For example, the default format is -"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] " -(without quotes) for the current date. Setting an empty string as the time -format disables timestamping of the messages completely. - -{\bf NB:} Timestamping is disabled for Visual C++ users in debug builds by -default because otherwise it would be impossible to directly go to the line -from which the log message was generated by simply clicking in the debugger -window on the corresponding error message. If you wish to enable it, please use -\helpref{SetTimestamp}{wxlogsettimestamp} explicitly. - -\helpref{AddTraceMask}{wxlogaddtracemask}\\ -\helpref{RemoveTraceMask}{wxlogremovetracemask}\\ -\helpref{ClearTraceMasks}{wxlogcleartracemasks}\\ -\helpref{GetTraceMasks}{wxloggettracemasks}\\ -\helpref{IsAllowedTraceMask}{wxlogisallowedtracemask}\\ -\helpref{SetVerbose}{wxlogsetverbose}\\ -\helpref{GetVerbose}{wxloggetverbose}\\ -\helpref{SetTimestamp}{wxlogsettimestamp}\\ -\helpref{GetTimestamp}{wxloggettimestamp}\\ -\helpref{SetTraceMask}{wxlogsettracemask}\\ -\helpref{GetTraceMask}{wxloggettracemask}\\ -\helpref{SetRepetitionCounting}{wxlogsetrepetitioncounting}\\ -\helpref{GetRepetitionCounting}{wxloggetrepetitioncounting} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxLog::AddTraceMask}\label{wxlogaddtracemask} - -\func{static void}{AddTraceMask}{\param{const wxString\& }{mask}} - -Add the {\it mask} to the list of allowed masks for -\helpref{wxLogTrace}{wxlogtrace}. - -\wxheading{See also} - -\helpref{RemoveTraceMask}{wxlogremovetracemask} -\helpref{GetTraceMasks}{wxloggettracemasks} - -\membersection{wxLog::ClearTraceMasks}\label{wxlogcleartracemasks} - -\func{static void}{ClearTraceMasks}{\void} - -Removes all trace masks previously set with -\helpref{AddTraceMask}{wxlogaddtracemask}. - -\wxheading{See also} - -\helpref{RemoveTraceMask}{wxlogremovetracemask} - -\membersection{wxLog::GetTraceMasks}\label{wxloggettracemasks} - -\func{static const wxArrayString \&}{GetTraceMasks}{\void} - -Returns the currently allowed list of string trace masks. - -\wxheading{See also} - -\helpref{AddTraceMask}{wxlogaddtracemask}. - -\membersection{wxLog::OnLog}\label{wxlogonlog} - -\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const wxString\& }{ message}} - -Forwards the message at specified level to the {\it DoLog()} function of the -active log target if there is any, does nothing otherwise. - -\membersection{wxLog::GetActiveTarget}\label{wxloggetactivetarget} - -\func{static wxLog *}{GetActiveTarget}{\void} - -Returns the pointer to the active log target (may be NULL). - -\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget} - -\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}} - -Sets the specified log target as the active one. Returns the pointer to the -previous active log target (may be NULL). To suppress logging use a new -instance of wxLogNull not NULL. If the active log target is set to NULL a -new default log target will be created when logging occurs. - -\membersection{wxLog::Suspend}\label{wxlogsuspend} - -\func{static void}{Suspend}{\void} - -Suspends the logging until \helpref{Resume}{wxlogresume} is called. Note that -the latter must be called the same number of times as the former to undo it, -i.e. if you call Suspend() twice you must call Resume() twice as well. - -Note that suspending the logging means that the log sink won't be be flushed -periodically, it doesn't have any effect if the current log target does the -logging immediately without waiting for \helpref{Flush}{wxlogflush} to be -called (the standard GUI log target only shows the log dialog when it is -flushed, so Suspend() works as expected with it). - -\wxheading{See also} - -\helpref{Resume}{wxlogresume},\\ -\helpref{wxLogNull}{wxlogoverview} - -\membersection{wxLog::Resume}\label{wxlogresume} - -\func{static void}{Resume}{\void} - -Resumes logging previously suspended by a call to -\helpref{Suspend}{wxlogsuspend}. All messages logged in the meanwhile will be -flushed soon. - -\membersection{wxLog::DoLog}\label{wxlogdolog} - -\func{virtual void}{DoLog}{\param{wxLogLevel }{level}, \param{const wxString\& }{msg}, \param{time\_t }{timestamp}} - -Called to process the message of the specified severity. {\it msg} is the text -of the message as specified in the call of {\it wxLogXXX()} function which -generated it and {\it timestamp} is the moment when the message was generated. - -The base class version prepends the timestamp to the message, adds a prefix -corresponding to the log level and then calls -\helpref{DoLogString}{wxlogdologstring} with the resulting string. - -\membersection{wxLog::DoLogString}\label{wxlogdologstring} - -\func{virtual void}{DoLogString}{\param{const wxString\& }{msg}, \param{time\_t }{timestamp}} - -Called to log the specified string. The timestamp is already included in the -string but still passed to this function. - -A simple implementation may just send the string to {\tt stdout} or, better, -{\tt stderr}. - -\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand} - -\func{static void}{DontCreateOnDemand}{\void} - -Instructs wxLog to not create new log targets on the fly if there is none -currently. (Almost) for internal use only: it is supposed to be called by the -application shutdown code. - -Note that this function also calls -\helpref{ClearTraceMasks}{wxlogcleartracemasks}. - -\membersection{wxLog::Flush}\label{wxlogflush} - -\func{virtual void}{Flush}{\void} - -Shows all the messages currently in buffer and clears it. If the buffer -is already empty, nothing happens. - -\membersection{wxLog::FlushActive}\label{wxlogflushactive} - -\func{static void}{FlushActive}{\void} - -Flushes the current log target if any, does nothing if there is none. - -\wxheading{See also} - -\helpref{Flush}{wxlogflush} - -\membersection{wxLog::SetVerbose}\label{wxlogsetverbose} - -\func{static void}{SetVerbose}{\param{bool }{ verbose = true}} - -Activates or deactivates verbose mode in which the verbose messages are -logged as the normal ones instead of being silently dropped. - -\membersection{wxLog::GetVerbose}\label{wxloggetverbose} - -\func{static bool}{GetVerbose}{\void} - -Returns whether the verbose mode is currently active. - -\membersection{wxLog::SetLogLevel}\label{wxlogsetloglevel} - -\func{static void}{SetLogLevel}{\param{wxLogLevel }{ logLevel}} - -Specifies that log messages with $level > logLevel$ should be ignored -and not sent to the active log target. - -\membersection{wxLog::GetLogLevel}\label{wxloggetloglevel} - -\func{static wxLogLevel}{GetLogLevel}{\void} - -Returns the current log level limit. - -\membersection{wxLog::SetRepetitionCounting}\label{wxlogsetrepetitioncounting} - -\func{static void}{SetRepetitionCounting}{\param{bool }{ repetCounting = true}} - -Enables logging mode in which a log message is logged once, and in case exactly -the same message successively repeats one or more times, only the number of -repetitions is logged. - -\membersection{wxLog::GetRepetitionCounting}\label{wxloggetrepetitioncounting} - -\func{static bool}{GetRepetitionCounting}{\void} - -Returns whether the repetition counting mode is enabled. - - -\membersection{wxLog::SetTimestamp}\label{wxlogsettimestamp} - -\func{static void}{SetTimestamp}{\param{const wxString\&}{ format}} - -Sets the timestamp format prepended by the default log targets to all -messages. The string may contain any normal characters as well as \% -prefixed format specificators, see {\it strftime()} manual for details. -Passing an empty string to this function disables message time stamping. - -\membersection{wxLog::DisableTimestamp}\label{wxlogdisabletimestamp} - -\func{void}{SetTimestamp}{\param{const wxString\&}{ format}} - -Disables time stamping of the log messages. - -\newsince{2.9} - -\membersection{wxLog::GetTimestamp}\label{wxloggettimestamp} - -\func{static const wxString\&}{GetTimestamp}{\void} - -Returns the current timestamp format string. - -\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask} - -\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}} - -Sets the trace mask, see \helpref{Customization}{wxlogcustomization} -section for details. - -\membersection{wxLog::GetTraceMask}\label{wxloggettracemask} - -\func{static wxTraceMask}{GetTraceMask}{\void} - -Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section -for details. - -\membersection{wxLog::IsAllowedTraceMask}\label{wxlogisallowedtracemask} - -\func{static bool}{IsAllowedTraceMask}{\param{const wxString\& }{mask}} - -Returns true if the {\it mask} is one of allowed masks for -\helpref{wxLogTrace}{wxlogtrace}. - -See also: \helpref{AddTraceMask}{wxlogaddtracemask}, -\helpref{RemoveTraceMask}{wxlogremovetracemask} - -\membersection{wxLog::RemoveTraceMask}\label{wxlogremovetracemask} - -\func{static void}{RemoveTraceMask}{\param{const wxString\& }{mask}} - -Remove the {\it mask} from the list of allowed masks for -\helpref{wxLogTrace}{wxlogtrace}. - -See also: \helpref{AddTraceMask}{wxlogaddtracemask} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogBuffer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogBuffer}}\label{wxlogbuffer} - -wxLogBuffer is a very simple implementation of log sink which simply collects -all the logged messages in a string (except the debug messages which are output -in the usual way immediately as we're presumably not interested in collecting -them for later). The messages from different log function calls are separated -by the new lines. - -All the messages collected so far can be shown to the user (and the current -buffer cleared) by calling the overloaded \helpref{Flush()}{wxlogbufferflush} -method. - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogBuffer::GetBuffer}\label{wxlogbuffergetbuffer} - -\func{const wxString\& }{GetBuffer}{\void} - -Returns the current buffer contains. Messages from different log function calls -are separated with the new lines in the buffer. - -The buffer can be cleared by \helpref{Flush()}{wxlogbufferflush} which will -also show the current contents to the user. - - -\membersection{wxLogBuffer::Flush}\label{wxlogbufferflush} - -\func{virtual void}{Flush}{\void} - -Shows all the messages collected so far to the user (using a message box in the -GUI applications or by printing them out to the console in text mode) and -clears the internal buffer. - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogChain %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogChain}}\label{wxlogchain} - -This simple class allows to chain log sinks, that is to install a new sink but -keep passing log messages to the old one instead of replacing it completely as -\helpref{SetActiveTarget}{wxlogsetactivetarget} does. - -It is especially useful when you want to divert the logs somewhere (for -example to a file or a log window) but also keep showing the error messages -using the standard dialogs as \helpref{wxLogGui}{wxlogoverview} does by default. - -Example of usage: - -\begin{verbatim} -wxLogChain *logChain = new wxLogChain(new wxLogStderr); - -// all the log messages are sent to stderr and also processed as usually -... - -// don't delete logChain directly as this would leave a dangling -// pointer as active log target, use SetActiveTarget() instead -delete wxLog::SetActiveTarget(...something else or NULL...); - -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogChain::wxLogChain}\label{wxlogchainctor} - -\func{}{wxLogChain}{\param{wxLog *}{logger}} - -Sets the specified {\tt logger} (which may be {\tt NULL}) as the default log -target but the log messages are also passed to the previous log target if any. - -\membersection{wxLogChain::\destruct{wxLogChain}}\label{wxlogchaindtor} - -\func{}{\destruct{wxLogChain}}{\void} - -Destroys the previous log target. - -\membersection{wxLogChain::DetachOldLog}\label{wxlogchaindetacholdlog} - -\func{void}{DetachOldLog}{\void} - -Detaches the old log target so it won't be destroyed when the wxLogChain object -is destroyed. - -\membersection{wxLogChain::GetOldLog}\label{wxlogchaingetoldlog} - -\constfunc{wxLog *}{GetOldLog}{\void} - -Returns the pointer to the previously active log target (which may be {\tt -NULL}). - -\membersection{wxLogChain::IsPassingMessages}\label{wxlogchainispassingmessages} - -\constfunc{bool}{IsPassingMessages}{\void} - -Returns {\tt true} if the messages are passed to the previously active log -target (default) or {\tt false} if \helpref{PassMessages}{wxlogchainpassmessages} -had been called. - -\membersection{wxLogChain::PassMessages}\label{wxlogchainpassmessages} - -\func{void}{PassMessages}{\param{bool }{passMessages}} - -By default, the log messages are passed to the previously active log target. -Calling this function with {\tt false} parameter disables this behaviour -(presumably temporarily, as you shouldn't use wxLogChain at all otherwise) and -it can be reenabled by calling it again with {\it passMessages} set to {\tt -true}. - -\membersection{wxLogChain::SetLog}\label{wxlogchainsetlog} - -\func{void}{SetLog}{\param{wxLog *}{logger}} - -Sets another log target to use (may be {\tt NULL}). The log target specified -in the \helpref{constructor}{wxlogchainctor} or in a previous call to -this function is deleted. - -This doesn't change the old log target value (the one the messages are -forwarded to) which still remains the same as was active when wxLogChain -object was created. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogGui %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogGui}}\label{wxloggui} - -This is the default log target for the GUI wxWidgets applications. It is passed -to \helpref{wxLog::SetActiveTarget}{wxlogsetactivetarget} at the program -startup and is deleted by wxWidgets during the program shut down. - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogGui::wxLogGui}\label{wxlogguictor} - -\func{}{wxLogGui}{\void} - -Default constructor. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogNull %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogNull}}\label{wxlognull} - -This class allows to temporarily suspend logging. All calls to the log -functions during the life time of an object of this class are just ignored. - -In particular, it can be used to suppress the log messages given by wxWidgets -itself but it should be noted that it is rarely the best way to cope with this -problem as {\bf all} log messages are suppressed, even if they indicate a -completely different error than the one the programmer wanted to suppress. - -For instance, the example of the overview: - -{\small -\begin{verbatim} - wxFile file; - - // wxFile.Open() normally complains if file can't be opened, we don't want it - { - wxLogNull logNo; - if ( !file.Open("bar") ) - ... process error ourselves ... - } // ~wxLogNull called, old log sink restored - - wxLogMessage("..."); // ok -\end{verbatim} -}% - -would be better written as: - -{\small -\begin{verbatim} - wxFile file; - - // don't try to open file if it doesn't exist, we are prepared to deal with - // this ourselves - but all other errors are not expected - if ( wxFile::Exists("bar") ) - { - // gives an error message if the file couldn't be opened - file.Open("bar"); - } - else - { - ... - } -\end{verbatim} -}% - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogNull::wxLogNull}\label{wxlognullctor} - -\func{}{wxLogNull}{\void} - -Suspends logging. - -\membersection{wxLogNull::\destruct{wxLogNull}}\label{wxlognulldtor} - -Resumes logging. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogInterposer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogInterposer}}\label{wxloginterposer} - -A special version of \helpref{wxLogChain}{wxlogchain} which uses itself as the -new log target. It forwards log messages to the previously installed one in addition to -processing them itself. - -Unlike \helpref{wxLogChain}{wxlogchain} which is usually used directly as is, -this class must be derived from to implement \helpref{DoLog}{wxlogdolog} -and/or \helpref{DoLogString}{wxlogdologstring} methods. - -wxLogInterposer destroys the previous log target in its destructor. If you -don't want this to happen, use wxLogInterposerTemp instead. - -\wxheading{Derived from} - -\helpref{wxLogChain}{wxlogchain}\\ -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogInterposer::wxLogInterposer}\label{wxloginterposerctor} - -The default constructor installs this object as the current active log target. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogInterposerTemp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogInterposerTemp}}\label{wxloginterposertemp} - -A special version of \helpref{wxLogChain}{wxlogchain} which uses itself as the -new log target. It forwards log messages to the previously installed one in addition to -processing them itself. Unlike \helpref{wxLogInterposer}{wxloginterposer}, it doesn't -delete the old target which means it can be used to temporarily redirect log output. - -As per wxLogInterposer, this class must be derived from to implement \helpref{DoLog}{wxlogdolog} -and/or \helpref{DoLogString}{wxlogdologstring} methods. - -\wxheading{Derived from} - -\helpref{wxLogChain}{wxlogchain}\\ -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogInterposerTemp::wxLogInterposerTemp}\label{wxloginterposertempctor} - -The default constructor installs this object as the current active log target. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogStderr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogStderr}}\label{wxlogstderr} - -This class can be used to redirect the log messages to a C file stream (not to -be confused with C++ streams). It is the default log target for the non-GUI -wxWidgets applications which send all the output to {\tt stderr}. - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxLogStream}{wxlogstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogStderr::wxLogStderr}\label{wxlogstderrctor} - -\func{}{wxLogStderr}{\param{FILE }{*fp = NULL}} - -Constructs a log target which sends all the log messages to the given -{\tt FILE}. If it is {\tt NULL}, the messages are sent to {\tt stderr}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogStream %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogStream}}\label{wxlogstream} - -This class can be used to redirect the log messages to a C++ stream. - -Please note that this class is only available if wxWidgets was compiled with -the standard iostream library support ({\tt wxUSE\_STD\_IOSTREAM} must be on). - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxLogStderr}{wxlogstderr},\\ -\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogStream::wxLogStream}\label{wxlogstreamctor} - -\func{}{wxLogStream}{\param{std::ostream }{*ostr = NULL}} - -Constructs a log target which sends all the log messages to the given -output stream. If it is {\tt NULL}, the messages are sent to {\tt cerr}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogTextCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogTextCtrl}}\label{wxlogtextctrl} - -Using these target all the log messages can be redirected to a text control. -The text control must have been created with {\tt wxTE\_MULTILINE} style by the -caller previously. - -\wxheading{Derived from} - -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{See also} - -\helpref{wxTextCtrl}{wxtextctrl},\\ -\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogTextCtrl::wxLogTextCtrl}\label{wxlogtextctrlctor} - -\func{}{wxLogTextCtrl}{\param{wxTextCtrl }{*textctrl}} - -Constructs a log target which sends all the log messages to the given text -control. The {\it textctrl} parameter cannot be {\tt NULL}. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogWindow %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLogWindow}}\label{wxlogwindow} - -This class represents a background log window: to be precise, it collects all -log messages in the log frame which it manages but also passes them on to the -log target which was active at the moment of its creation. This allows, for -example, to show all the log messages in a frame but still continue to process -them normally by showing the standard log dialog. - -\wxheading{Derived from} - -\helpref{wxLogInterposer}{wxloginterposer}\\ -\helpref{wxLogChain}{wxlogchain}\\ -\helpref{wxLog}{wxlog} - -\wxheading{Include files} - -<wx/log.h> - -\wxheading{See also} - -\helpref{wxLogTextCtrl}{wxlogtextctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLogWindow::wxLogWindow}\label{wxlogwindowctor} - -\func{}{wxLogWindow}{\param{wxFrame }{*parent}, \param{const wxChar }{*title}, \param{bool }{show = {\tt true}}, \param{bool }{passToOld = {\tt true}}} - -Creates the log frame window and starts collecting the messages in it. - -\wxheading{Parameters} - -\docparam{parent}{The parent window for the log frame, may be {\tt NULL}} - -\docparam{title}{The title for the log frame} - -\docparam{show}{{\tt true} to show the frame initially (default), otherwise -\helpref{wxLogWindow::Show}{wxlogwindowshow} must be called later.} - -\docparam{passToOld}{{\tt true} to process the log messages normally in addition to -logging them in the log frame (default), {\tt false} to only log them in the -log frame.} - -\membersection{wxLogWindow::Show}\label{wxlogwindowshow} - -\func{void}{Show}{\param{bool }{show = {\tt true}}} - -Shows or hides the frame. - -\membersection{wxLogWindow::GetFrame}\label{wxlogwindowgetframe} - -\constfunc{wxFrame *}{GetFrame}{\void} - -Returns the associated log frame window. This may be used to position or resize -it but use \helpref{wxLogWindow::Show}{wxlogwindowshow} to show or hide it. - -\membersection{wxLogWindow::OnFrameCreate}\label{wxlogwindowonframecreate} - -\func{virtual void}{OnFrameCreate}{\param{wxFrame }{*frame}} - -Called immediately after the log frame creation allowing for -any extra initializations. - -\membersection{wxLogWindow::OnFrameClose}\label{wxlogwindowonframeclose} - -\func{virtual bool}{OnFrameClose}{\param{wxFrame }{*frame}} - -Called if the user closes the window interactively, will not be -called if it is destroyed for another reason (such as when program -exits). - -Return {\tt true} from here to allow the frame to close, {\tt false} to -prevent this from happening. - -\wxheading{See also} - -\helpref{wxLogWindow::OnFrameDelete}{wxlogwindowonframedelete} - -\membersection{wxLogWindow::OnFrameDelete}\label{wxlogwindowonframedelete} - -\func{virtual void}{OnFrameDelete}{\param{wxFrame }{*frame}} - -Called right before the log frame is going to be deleted: will -always be called unlike \helpref{OnFrameClose()}{wxlogwindowonframeclose}. - diff --git a/docs/latex/wx/longlong.tex b/docs/latex/wx/longlong.tex deleted file mode 100644 index 92d74f1d8c..0000000000 --- a/docs/latex/wx/longlong.tex +++ /dev/null @@ -1,233 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: longlong.tex -%% Purpose: wxLongLong documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 07.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxLongLong}}\label{wxlonglong} - -This class represents a signed 64 bit long number. It is implemented using the -native 64 bit type where available (machines with 64 bit longs or compilers -which have (an analog of) {\it long long} type) and uses the emulation code in -the other cases which ensures that it is the most efficient solution for -working with 64 bit integers independently of the architecture. - -wxLongLong defines all usual arithmetic operations such as addition, -subtraction, bitwise shifts and logical operations as well as multiplication -and division (not yet for the machines without native {\it long long}). It -also has operators for implicit construction from and conversion to the native -{\it long long} type if it exists and {\it long}. - -You would usually use this type in exactly the same manner as any other -(built-in) arithmetic type. Note that wxLongLong is a signed type, if you -want unsigned values use wxULongLong which has exactly the same API as -wxLongLong except when explicitly mentioned otherwise. - -If a native (i.e. supported directly by the compiler) 64 bit integer type was -found to exist, {\it wxLongLong\_t} macro will be defined to correspond to it. -Also, in this case only, two additional macros will be defined: -\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec} for printing 64 bit integers -using the standard {\tt printf()} function (but see also -\helpref{ToString()}{wxlonglongtostring} for a more portable solution) and -\helpref{wxLL}{wxll} for defining 64 bit integer compile-time constants. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/longlong.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongdef} - -\func{}{wxLongLong}{\void} - -Default constructor initializes the object to 0. - - -\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongll} - -\func{}{wxLongLong}{\param{wxLongLong\_t }{ll}} - -Constructor from native long long (only for compilers supporting it). - - -\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglong} - -\func{}{wxLongLong}{\param{long }{hi}, \param{unsigned long }{lo}} - -Constructor from 2 longs: the high and low part are combined into one -wxLongLong. - - -\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassign} - -\func{wxLongLong\& operator}{operator=}{\param{wxLongLong\_t }{ll}} - -Assignment operator from native long long (only for compilers supporting it). - - -\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignull} - -\func{wxLongLong\& operator}{operator=}{\param{wxULongLong\_t }{ll}} - -Assignment operator from native unsigned long long (only for compilers -supporting it). - -\newsince{2.7.0} - -\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignlong} - -\func{wxLongLong\& operator}{operator=}{\param{long }{l}} - -Assignment operator from long. - -\newsince{2.7.0} - -\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignulong} - -\func{wxLongLong\& operator}{operator=}{\param{unsigned long }{l}} - -Assignment operator from unsigned long. - -\newsince{2.7.0} - -\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignulonglong} - -\func{wxLongLong\& operator}{operator=}{\param{const wxULongLong \& }{ll}} - -Assignment operator from unsigned long long. The sign bit will be copied too. - -\newsince{2.7.0} - -\membersection{wxLongLong::Abs}\label{wxlonglongabs} - -\constfunc{wxLongLong}{Abs}{\void} - -\func{wxLongLong\&}{Abs}{\void} - -Returns an absolute value of wxLongLong - either making a copy (const version) -or modifying it in place (the second one). Not in wxULongLong. - - -\membersection{wxLongLong::Assign}\label{wxlonglongassign} - -\func{wxLongLong\&}{Assign}{\param{double }{d}} - -This allows to convert a double value to wxLongLong type. Such conversion is -not always possible in which case the result will be silently truncated in a -platform-dependent way. Not in wxULongLong. - - -\membersection{wxLongLong::GetHi}\label{wxlonglonggethi} - -\constfunc{long}{GetHi}{\void} - -Returns the high 32 bits of 64 bit integer. - - -\membersection{wxLongLong::GetLo}\label{wxlonglonggetlo} - -\constfunc{unsigned long}{GetLo}{\void} - -Returns the low 32 bits of 64 bit integer. - - -\membersection{wxLongLong::GetValue}\label{wxlonglonggetvalue} - -\constfunc{wxLongLong\_t}{GetValue}{\void} - -Convert to native long long (only for compilers supporting it) - - -\membersection{wxLongLong::ToDouble}\label{wxlonglonggetdouble} - -\constfunc{double}{ToDouble}{\void} - -Returns the value as \texttt{double}. - - -\membersection{wxLongLong::ToLong}\label{wxlonglongtolong} - -\constfunc{long}{ToLong}{\void} - -Truncate wxLongLong to long. If the conversion loses data (i.e. the wxLongLong -value is outside the range of built-in long type), an assert will be triggered -in debug mode. - - -\membersection{wxLongLong::ToString}\label{wxlonglongtostring} - -\constfunc{wxString}{ToString}{\void} - -Returns the string representation of a wxLongLong. - - -\membersection{wxLongLong::operator$+$}\label{wxlonglongoperatorplus} - -\constfunc{wxLongLong}{operator$+$}{\param{const wxLongLong\& }{ll}} - -Adds 2 wxLongLongs together and returns the result. - - -\membersection{wxLongLong::operator$+=$}\label{wxlonglongoperatorplusassign} - -\func{wxLongLong\&}{operator+}{\param{const wxLongLong\& }{ll}} - -Add another wxLongLong to this one. - - -\membersection{wxLongLong::operator$++$}\label{wxlonglongoperatorinc} - -\func{wxLongLong\&}{operator$++$}{\void} - -\func{wxLongLong\&}{operator$++$}{\param{int}{}} - -Pre/post increment operator. - - -\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorunaryminus} - -\constfunc{wxLongLong}{operator$-$}{\void} - -Returns the value of this wxLongLong with opposite sign. Not in wxULongLong. - - -\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorminus} - -\constfunc{wxLongLong}{operator$-$}{\param{const wxLongLong\& }{ll}} - -Subtracts 2 wxLongLongs and returns the result. - - -\membersection{wxLongLong::operator$-=$}\label{wxlonglongoperatorminusassign} - -\func{wxLongLong\&}{operator-}{\param{const wxLongLong\& }{ll}} - -Subtracts another wxLongLong from this one. - - -\membersection{wxLongLong::operator$--$}\label{wxlonglongoperatordec} - -\func{wxLongLong\&}{operator$--$}{\void} - -\func{wxLongLong\&}{operator$--$}{\param{int}{}} - -Pre/post decrement operator. - -% TODO document all other arithmetics operations: shifts, multiplication, -% division, bitwise, comparison - diff --git a/docs/latex/wx/ltx.tex b/docs/latex/wx/ltx.tex deleted file mode 100644 index 62277a17e9..0000000000 --- a/docs/latex/wx/ltx.tex +++ /dev/null @@ -1,5 +0,0 @@ -\newcommand{\gifsep}{\hspace{1cm}} -\newcommand{\true}{{\bf TRUE}} -\newcommand{\false}{{\bf FALSE}} -\newcommand{\caret}{\symbol{94}} -\renewcommand{\arg}[1]{{\tt #1}} diff --git a/docs/latex/wx/manual.ist b/docs/latex/wx/manual.ist deleted file mode 100644 index 0661a63483..0000000000 --- a/docs/latex/wx/manual.ist +++ /dev/null @@ -1 +0,0 @@ -level '|' diff --git a/docs/latex/wx/manual.tex b/docs/latex/wx/manual.tex deleted file mode 100644 index 8cacaba330..0000000000 --- a/docs/latex/wx/manual.tex +++ /dev/null @@ -1,712 +0,0 @@ -\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report} -% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty -% since Tex2RTF doesn't parse it. -% BTW, style MUST be report for it to work for Tex2RTF. -%KB: -%\addtolength{\textwidth}{1in} -%\addtolength{\oddsidemargin}{-0.5in} -%\addtolength{\topmargin}{-0.5in} -%\addtolength{\textheight}{1in} -%\sloppy -%end of my changes -\newcommand{\indexit}[1]{#1\index{#1}}% -\newcommand{\pipe}[0]{$\|$\ }% -\definecolour{black}{0}{0}{0}% -\definecolour{cyan}{0}{255}{255}% -\definecolour{green}{0}{255}{0}% -\definecolour{magenta}{255}{0}{255}% -\definecolour{red}{255}{0}{0}% -\definecolour{blue}{0}{0}{200}% -\definecolour{yellow}{255}{255}{0}% -\definecolour{white}{255}{255}{255}% -% -\input psbox.tex -\input ltx.tex -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} -\parskip=10pt -\parindent=0pt -\title{wxWidgets 2.9.0: A portable C++ and Python GUI toolkit} -\winhelponly{\author{by Julian Smart et al -%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$} -}} -\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin, -Robin Dunn, et al} -\date{January, 2007} -} -\makeindex -\begin{document} -\maketitle -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage}% -\pagenumbering{roman} -\tableofcontents - -% A special table of contents for the WinHelp manual -\begin{comment} -\winhelponly{ -\chapter{wxWidgets class library reference}\label{winhelpcontents} - -\centerline{ -%\image{}{wxwin.wmf} -}% - -\sethotspotcolour{off}% -\sethotspotunderline{on}% -\large{ -\helpref{Alphabetical class reference}{classref} - -\helpref{Classes by category}{classesbycat} - -\helpref{Topic overviews}{overviews} - -\helpref{Guide to wxWidgets}{wxwinchapters} -} -\sethotspotcolour{on}% -\sethotspotunderline{on}% - -\chapter*{Overview of wxWidgets}\label{wxwinchapters} - -\helpref{Introduction}{introduction}\\ -%\helpref{Resource guide}{resguide}\\ -%\helpref{Comparison with other GUI models}{comparison}\\ -%\helpref{Multi-platform development with wxWidgets}{multiplat}\\ -%\helpref{Tutorial}{tutorial}\\ -\helpref{The wxWidgets resource system}{resourceformats}\\ -\helpref{Utilities}{utilities}\\ -\helpref{Programming strategies}{strategies}\\ -\helpref{Bugs and future directions}{bugs}\\ -\helpref{References}{bibliography} -} -\end{comment} - -\chapter{Copyright notice}\label{copyrightnotice} -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\begin{center} -Copyright (c) 1992-2006 Julian Smart, Robert Roebling, Vadim Zeitlin and other -members of the wxWidgets team\\ -Portions (c) 1996 Artificial Intelligence Applications Institute\\ -\end{center} - -Please also see the wxWindows license files (preamble.txt, lgpl.txt, gpl.txt, licence.txt, -licendoc.txt) for conditions of software and documentation use. -Note that we use the old name wxWindows in the license, pending -recognition of the new name by OSI. - -\section*{wxWindows Library License, Version 3.1}\label{wxlicense} - -% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -% -% NB: this is exact copy of docs/licence.txt file. DO NOT modify this -% section, it MUST be identical to docs/licence.txt! -% -% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -Copyright (c) 1998-2005 Julian Smart, Robert Roebling et al - -Everyone is permitted to copy and distribute verbatim copies -of this licence document, but changing it is not allowed. - -\begin{center} -WXWINDOWS LIBRARY LICENCE \\ -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -\end{center} - -This library is free software; you can redistribute it and/or modify it -under the terms of the GNU Library General Public Licence as published by -the Free Software Foundation; either version 2 of the Licence, or (at -your option) any later version. - -This library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library -General Public Licence for more details. - -You should have received a copy of the GNU Library General Public Licence -along with this software, usually in a file named COPYING.LIB. If not, -write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -Boston, MA 02111-1307 USA. - -EXCEPTION NOTICE - -1. As a special exception, the copyright holders of this library give -permission for additional uses of the text contained in this release of -the library as licenced under the wxWindows Library Licence, applying -either version 3.1 of the Licence, or (at your option) any later version of -the Licence as published by the copyright holders of version 3.1 of the -Licence document. - -2. The exception is that you may use, copy, link, modify and distribute -under your own terms, binary object code versions of works based -on the Library. - -3. If you copy code from files distributed under the terms of the GNU -General Public Licence or the GNU Library General Public Licence into a -copy of this library, as this licence permits, the exception does not -apply to the code that you add in this way. To avoid misleading anyone as -to the status of such modified files, you must delete this exception -notice from such code and/or adjust the licensing conditions notice -accordingly. - -4. If you write modifications of your own for this library, it is your -choice whether to permit this exception to apply to your modifications. -If you do not wish that, you must delete the exception notice from such -code and/or adjust the licensing conditions notice accordingly. - - -\section*{GNU Library General Public License, Version 2}\label{gnulicense} - -Copyright (C) 1991 Free Software Foundation, Inc. -675 Mass Ave, Cambridge, MA 02139, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is -numbered 2 because it goes with version 2 of the ordinary GPL.] - -\wxheading{Preamble} - -The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software -- to make sure the software is free for all its users. - -This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - -When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - -For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - -Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - -Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - -Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - -Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - -The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - -Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - -However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - -The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - -Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - -\begin{center} - GNU LIBRARY GENERAL PUBLIC LICENSE\\ - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -\end{center} - -0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - -A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - -You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - -2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - -\begin{indented}{1cm} -a) The modified work must itself be a software library. - -b) You must cause the files modified to carry prominent notices -stating that you changed the files and the date of any change. - -c) You must cause the whole of the work to be licensed at no -charge to all third parties under the terms of this License. - -d) If a facility in the modified Library refers to a function or a -table of data to be supplied by an application program that uses -the facility, other than as an argument passed when the facility -is invoked, then you must make a good faith effort to ensure that, -in the event an application does not supply such function or -table, the facility still operates, and performs whatever part of -its purpose remains meaningful. - -(For example, a function in a library to compute square roots has -a purpose that is entirely well-defined independent of the -application. Therefore, Subsection 2d requires that any -application-supplied function or table used by this function must -be optional: if the application does not supply it, the square -root function must still compute square roots.) -\end{indented} - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - -Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - -If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - -5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - -However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - -When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - -If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - -6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - -You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - -\begin{indented}{1cm} -a) Accompany the work with the complete corresponding -machine-readable source code for the Library including whatever -changes were used in the work (which must be distributed under -Sections 1 and 2 above); and, if the work is an executable linked -with the Library, with the complete machine-readable "work that -uses the Library", as object code and/or source code, so that the -user can modify the Library and then relink to produce a modified -executable containing the modified Library. (It is understood -that the user who changes the contents of definitions files in the -Library will not necessarily be able to recompile the application -to use the modified definitions.) - -b) Accompany the work with a written offer, valid for at -least three years, to give the same user the materials -specified in Subsection 6a, above, for a charge no more -than the cost of performing this distribution. - -c) If distribution of the work is made by offering access to copy -from a designated place, offer equivalent access to copy the above -specified materials from the same place. - -d) Verify that the user has already received a copy of these -materials or that you have already sent this user a copy. -\end{indented} - -For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - -It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - -7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - -\begin{indented}{1cm} -a) Accompany the combined library with a copy of the same work -based on the Library, uncombined with any other library -facilities. This must be distributed under the terms of the -Sections above. - -b) Give prominent notice with the combined library of the fact -that part of it is a work based on the Library, and explaining -where to find the accompanying uncombined form of the same work. -\end{indented} - -8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - -11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - -\begin{center} -NO WARRANTY -\end{center} - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - -\begin{center} -END OF TERMS AND CONDITIONS -\end{center} - -\wxheading{Appendix: How to Apply These Terms to Your New Libraries} - -If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - -To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - -\footnotesize{ -\begin{verbatim} -<one line to give the library's name and a brief idea of what it does.> -Copyright (C) <year> <name of author> - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -\end{verbatim} -}% - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - -\footnotesize{ -\begin{verbatim} -Yoyodyne, Inc., hereby disclaims all copyright interest in the -library `Frob' (a library for tweaking knobs) written by James Random Hacker. - -<signature of Ty Coon>, 1 April 1990 -Ty Coon, President of Vice -\end{verbatim} -}% - -That's all there is to it! - -\input body.tex -\input libs.tex -\input classes.tex -\input function.tex -\input constant.tex -\input category.tex -\input topics.tex -\input topics2.tex -\input portnote.tex -% Deprecated classes -%\input proplist.tex - -\begin{comment} -\newpage - -% Puts books in the bibliography without needing to cite them in the -% text -\nocite{helpbook}% -\nocite{wong93}% -\nocite{pree94}% -\nocite{gamma95}% -\nocite{smart95a}% -\nocite{smart95b}% - -\bibliography{refs} -\addcontentsline{toc}{chapter}{Bibliography} -\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\end{comment} - -\newpage - -% Note: In RTF, the \printindex must come before the -% change of header/footer, since the \printindex inserts -% the RTF \sect command which divides one chapter from -% the next. -\rtfonly{\printindex -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -} -% In Latex, it must be this way around (I think) -\latexonly{\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex -} - -\end{document} diff --git a/docs/latex/wx/manual2e.tex b/docs/latex/wx/manual2e.tex deleted file mode 100644 index e9712a9d46..0000000000 --- a/docs/latex/wx/manual2e.tex +++ /dev/null @@ -1,712 +0,0 @@ -\documentclass[a4paper,11pt]{report} -\usepackage{makeidx,verbatim,fancyhdr,palatino} -\usepackage{color} -\usepackage{hyperref} -\usepackage{texhelp2e} - -% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty -% since Tex2RTF doesn't parse it. -% BTW, style MUST be report for it to work for Tex2RTF. -%KB: -%\addtolength{\textwidth}{1in} -%\addtolength{\oddsidemargin}{-0.5in} -%\addtolength{\topmargin}{-0.5in} -%\addtolength{\textheight}{1in} -%\sloppy -%end of my changes -\newcommand{\indexit}[1]{#1\index{#1}}% -\newcommand{\pipe}[0]{$\|$\ }% -\definecolour{black}{0}{0}{0}% -\definecolour{cyan}{0}{255}{255}% -\definecolour{green}{0}{255}{0}% -\definecolour{magenta}{255}{0}{255}% -\definecolour{red}{255}{0}{0}% -\definecolour{blue}{0}{0}{200}% -\definecolour{yellow}{255}{255}{0}% -\definecolour{white}{255}{255}{255}% -% -\input psbox.tex -\input ltx.tex -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} -\parskip=10pt -\parindent=0pt -\title{wxWidgets 2.4.1: A portable C++ and Python GUI toolkit} -\winhelponly{\author{by Julian Smart et al -%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$} -}} -\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin, -Robin Dunn, et al} -\date{January 2003} -} -\makeindex -\begin{document} -\maketitle -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage}% -\pagenumbering{roman} -\tableofcontents - -% A special table of contents for the WinHelp manual -\begin{comment} -\winhelponly{ -\chapter{wxWidgets class library reference}\label{winhelpcontents} - -\centerline{ -%\image{}{wxwin.wmf} -}% - -\sethotspotcolour{off}% -\sethotspotunderline{on}% -\large{ -\helpref{Alphabetical class reference}{classref} - -\helpref{Classes by category}{classesbycat} - -\helpref{Topic overviews}{overviews} - -\helpref{Guide to wxWidgets}{wxwinchapters} -} -\sethotspotcolour{on}% -\sethotspotunderline{on}% - -\chapter*{Overview of wxWidgets}\label{wxwinchapters} - -\helpref{Introduction}{introduction}\\ -%\helpref{Resource guide}{resguide}\\ -%\helpref{Comparison with other GUI models}{comparison}\\ -%\helpref{Multi-platform development with wxWidgets}{multiplat}\\ -%\helpref{Tutorial}{tutorial}\\ -\helpref{The wxWidgets resource system}{resourceformats}\\ -\helpref{Utilities}{utilities}\\ -\helpref{Programming strategies}{strategies}\\ -\helpref{Bugs and future directions}{bugs}\\ -\helpref{References}{bibliography} -} -\end{comment} - -\chapter{Copyright notice} -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\begin{center} -Copyright (c) 1992-2006 Julian Smart, Robert Roebling, Vadim Zeitlin and other -members of the wxWidgets team\\ -Portions (c) 1996 Artificial Intelligence Applications Institute\\ -\end{center} - -Please also see the wxWindows license files (preamble.txt, lgpl.txt, gpl.txt, licence.txt, -licendoc.txt) for conditions of software and documentation use. - -\section*{wxWindows Library License, Version 3.1}\label{wxlicense} - -% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -% -% NB: this is exact copy of docs/licence.txt file. DO NOT modify this -% section, it MUST be identical to docs/licence.txt! -% -% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -Copyright (c) 1998-2005 Julian Smart, Robert Roebling et al - -Everyone is permitted to copy and distribute verbatim copies -of this licence document, but changing it is not allowed. - -\begin{center} -WXWINDOWS LIBRARY LICENCE \\ -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -\end{center} - -This library is free software; you can redistribute it and/or modify it -under the terms of the GNU Library General Public Licence as published by -the Free Software Foundation; either version 2 of the Licence, or (at -your option) any later version. - -This library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library -General Public Licence for more details. - -You should have received a copy of the GNU Library General Public Licence -along with this software, usually in a file named COPYING.LIB. If not, -write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -Boston, MA 02111-1307 USA. - -EXCEPTION NOTICE - -1. As a special exception, the copyright holders of this library give -permission for additional uses of the text contained in this release of -the library as licenced under the wxWindows Library Licence, applying -either version 3.1 of the Licence, or (at your option) any later version of -the Licence as published by the copyright holders of version 3.1 of the -Licence document. - -2. The exception is that you may use, copy, link, modify and distribute -under your own terms, binary object code versions of works based -on the Library. - -3. If you copy code from files distributed under the terms of the GNU -General Public Licence or the GNU Library General Public Licence into a -copy of this library, as this licence permits, the exception does not -apply to the code that you add in this way. To avoid misleading anyone as -to the status of such modified files, you must delete this exception -notice from such code and/or adjust the licensing conditions notice -accordingly. - -4. If you write modifications of your own for this library, it is your -choice whether to permit this exception to apply to your modifications. -If you do not wish that, you must delete the exception notice from such -code and/or adjust the licensing conditions notice accordingly. - -\section*{GNU Library General Public License, Version 2} - -Copyright (C) 1991 Free Software Foundation, Inc. -675 Mass Ave, Cambridge, MA 02139, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is -numbered 2 because it goes with version 2 of the ordinary GPL.] - -\wxheading{Preamble} - -The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software -- to make sure the software is free for all its users. - -This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - -When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - -To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - -For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - -Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - -Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - -Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - -Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - -The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - -Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - -However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - -The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - -Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - -\begin{center} - GNU LIBRARY GENERAL PUBLIC LICENSE\\ - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -\end{center} - -0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - -A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - -You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - -2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - -\begin{indented}{1cm} -a) The modified work must itself be a software library. - -b) You must cause the files modified to carry prominent notices -stating that you changed the files and the date of any change. - -c) You must cause the whole of the work to be licensed at no -charge to all third parties under the terms of this License. - -d) If a facility in the modified Library refers to a function or a -table of data to be supplied by an application program that uses -the facility, other than as an argument passed when the facility -is invoked, then you must make a good faith effort to ensure that, -in the event an application does not supply such function or -table, the facility still operates, and performs whatever part of -its purpose remains meaningful. - -(For example, a function in a library to compute square roots has -a purpose that is entirely well-defined independent of the -application. Therefore, Subsection 2d requires that any -application-supplied function or table used by this function must -be optional: if the application does not supply it, the square -root function must still compute square roots.) -\end{indented} - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - -Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - -If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - -5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - -However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - -When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - -If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - -6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - -You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - -\begin{indented}{1cm} -a) Accompany the work with the complete corresponding -machine-readable source code for the Library including whatever -changes were used in the work (which must be distributed under -Sections 1 and 2 above); and, if the work is an executable linked -with the Library, with the complete machine-readable "work that -uses the Library", as object code and/or source code, so that the -user can modify the Library and then relink to produce a modified -executable containing the modified Library. (It is understood -that the user who changes the contents of definitions files in the -Library will not necessarily be able to recompile the application -to use the modified definitions.) - -b) Accompany the work with a written offer, valid for at -least three years, to give the same user the materials -specified in Subsection 6a, above, for a charge no more -than the cost of performing this distribution. - -c) If distribution of the work is made by offering access to copy -from a designated place, offer equivalent access to copy the above -specified materials from the same place. - -d) Verify that the user has already received a copy of these -materials or that you have already sent this user a copy. -\end{indented} - -For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - -It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - -7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - -\begin{indented}{1cm} -a) Accompany the combined library with a copy of the same work -based on the Library, uncombined with any other library -facilities. This must be distributed under the terms of the -Sections above. - -b) Give prominent notice with the combined library of the fact -that part of it is a work based on the Library, and explaining -where to find the accompanying uncombined form of the same work. -\end{indented} - -8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - -11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - -\begin{center} -NO WARRANTY -\end{center} - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - -\begin{center} -END OF TERMS AND CONDITIONS -\end{center} - -\wxheading{Appendix: How to Apply These Terms to Your New Libraries} - -If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - -To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - -\footnotesize{ -\begin{verbatim} -<one line to give the library's name and a brief idea of what it does.> -Copyright (C) <year> <name of author> - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public -License as published by the Free Software Foundation; either -version 2 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free -Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -\end{verbatim} -} - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - -\footnotesize{ -\begin{verbatim} -Yoyodyne, Inc., hereby disclaims all copyright interest in the -library `Frob' (a library for tweaking knobs) written by James Random Hacker. - -<signature of Ty Coon>, 1 April 1990 -Ty Coon, President of Vice -\end{verbatim} -} - -That's all there is to it! - -\input body.tex -\input classes.tex -\input function.tex -\input constant.tex -\input category.tex -\input topics.tex -\input portnote.tex -% Deprecated classes -%\input proplist.tex - -\begin{comment} -\newpage - -% Puts books in the bibliography without needing to cite them in the -% text -\nocite{helpbook}% -\nocite{wong93}% -\nocite{pree94}% -\nocite{gamma95}% -\nocite{smart95a}% -\nocite{smart95b}% - -\bibliography{refs} -\addcontentsline{toc}{chapter}{Bibliography} -\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\end{comment} - -\newpage - -% Note: In RTF, the \printindex must come before the -% change of header/footer, since the \printindex inserts -% the RTF \sect command which divides one chapter from -% the next. -\rtfonly{\printindex -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -} -% In Latex, it must be this way around (I think) -\latexonly{\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex -} - -\end{document} diff --git a/docs/latex/wx/mask.tex b/docs/latex/wx/mask.tex deleted file mode 100644 index c5c3cf2eb0..0000000000 --- a/docs/latex/wx/mask.tex +++ /dev/null @@ -1,92 +0,0 @@ -\section{\class{wxMask}}\label{wxmask} - -This class encapsulates a monochrome mask bitmap, where the masked area is black and -the unmasked area is white. When associated with a bitmap and drawn in a device context, -the unmasked area of the bitmap will be drawn, and the masked area will not be drawn. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/bitmap.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -A mask may be associated with a \helpref{wxBitmap}{wxbitmap}. It is used in \helpref{wxDC::Blit}{wxdcblit} when -the source device context is a \helpref{wxMemoryDC}{wxmemorydc} with wxBitmap selected into it that -contains a mask. - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxDC::Blit}{wxdcblit}, \helpref{wxMemoryDC}{wxmemorydc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMask::wxMask}\label{wxmaskctor} - -\func{}{wxMask}{\void} - -Default constructor. - -\func{}{wxMask}{\param{const \helpref{wxBitmap}{wxbitmap}\& }{bitmap}} - -Constructs a mask from a monochrome bitmap. - -\pythonnote{This is the default constructor for wxMask in wxPython.} - -\func{}{wxMask}{\param{const \helpref{wxBitmap}{wxbitmap}\& }{bitmap}, \param{const \helpref{wxColour}{wxcolour}\& }{colour}} - -Constructs a mask from a bitmap and a colour that indicates the background. - -\pythonnote{wxPython has an alternate wxMask constructor matching this -form called {\tt wxMaskColour}.} - -\func{}{wxMask}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}} - -Constructs a mask from a bitmap and a palette index that indicates the background. Not -yet implemented for GTK. - -\wxheading{Parameters} - -\docparam{bitmap}{A valid bitmap.} - -\docparam{colour}{A colour specifying the transparency RGB values.} - -\docparam{index}{Index into a palette, specifying the transparency colour.} - -\membersection{wxMask::\destruct{wxMask}}\label{wxmaskdtor} - -\func{}{\destruct{wxMask}}{\void} - -Destroys the wxMask object and the underlying bitmap data. - -\membersection{wxMask::Create}\label{wxmaskcreate} - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}} - -Constructs a mask from a monochrome bitmap. - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}, \param{const wxColour\& }{colour}} - -Constructs a mask from a bitmap and a colour that indicates the background. - -\func{bool}{Create}{\param{const wxBitmap\& }{bitmap}, \param{int}{ index}} - -Constructs a mask from a bitmap and a palette index that indicates the background. Not -yet implemented for GTK. - -\wxheading{Parameters} - -\docparam{bitmap}{A valid bitmap.} - -\docparam{colour}{A colour specifying the transparency RGB values.} - -\docparam{index}{Index into a palette, specifying the transparency colour.} - - diff --git a/docs/latex/wx/maxzevt.tex b/docs/latex/wx/maxzevt.tex deleted file mode 100644 index d28cfc7206..0000000000 --- a/docs/latex/wx/maxzevt.tex +++ /dev/null @@ -1,55 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: maxzevt.tex -%% Purpose: wxMaximizeEvent documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMaximizeEvent}}\label{wxmaximizeevent} - -An event being sent when a top level window is maximized. Notice that it is -not sent when the window is restored to its original size after it had been -maximized, only a normal \helpref{wxSizeEvent}{wxsizeevent} is generated in -this case. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a maximize event, use this event handler macro to direct input to a -member function that takes a wxMaximizeEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MAXIMIZE(func)}}{Process a wxEVT\_MAXIMIZE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxTopLevelWindow::Maximize}{wxtoplevelwindowmaximize},\rtfsp -\helpref{wxTopLevelWindow::IsMaximized}{wxtoplevelwindowismaximized} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMaximizeEvent::wxMaximizeEvent}\label{wxmaximizeeventctor} - -\func{}{wxMaximizeEvent}{\param{int }{id = 0}} - -Constructor. Only used by wxWidgets internally. - diff --git a/docs/latex/wx/mbcnvfil.tex b/docs/latex/wx/mbcnvfil.tex deleted file mode 100644 index fc3f3d8388..0000000000 --- a/docs/latex/wx/mbcnvfil.tex +++ /dev/null @@ -1,54 +0,0 @@ -\section{\class{wxMBConvFile}}\label{wxmbconvfile} - -This class used to define the class instance -{\bf wxConvFileName}, but nowadays {\bf wxConvFileName} is -either of type wxConvLibc (on most platforms) or wxConvUTF8 -(on MacOS X). {\bf wxConvFileName} converts filenames between -filesystem multibyte encoding and Unicode. {\bf wxConvFileName} -can also be set to a something else at run-time which is used -e.g. by wxGTK to use a class which checks the environment -variable {\bf G\_FILESYSTEM\_ENCODING} indicating that filenames -should not be interpreted as UTF8 and also for converting -invalid UTF8 characters (e.g. if there is a filename in iso8859\_1) -to strings with octal values. - -Since some platforms (such as Win32) use Unicode in the filenames, -and others (such as Unix) use multibyte encodings, this class should only -be used directly if wxMBFILES is defined to 1. A convenience macro, -wxFNCONV, is defined to wxConvFileName->cWX2MB in this case. You could -use it like this: - -\begin{verbatim} -wxChar *name = wxT("rawfile.doc"); -FILE *fil = fopen(wxFNCONV(name), "r"); -\end{verbatim} - -(although it would be better to use wxFopen(name, wxT("r")) in this case.) - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{See also} - -\helpref{wxMBConv classes overview}{mbconvclasses} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMBConvFile::MB2WC}\label{wxmbconvfilemb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from multibyte filename encoding to Unicode. Returns the size of the destination buffer. - -\membersection{wxMBConvFile::WC2MB}\label{wxmbconvfilewc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to multibyte filename encoding. Returns the size of the destination buffer. - diff --git a/docs/latex/wx/mbcnvut7.tex b/docs/latex/wx/mbcnvut7.tex deleted file mode 100644 index 7bf542f2c9..0000000000 --- a/docs/latex/wx/mbcnvut7.tex +++ /dev/null @@ -1,43 +0,0 @@ -% -% automatically generated by HelpGen from -% ../include/wx/strconv.h at 25/Mar/00 10:20:56 -% - -\section{\class{wxMBConvUTF7}}\label{wxmbconvutf7} - -This class converts between the UTF-7 encoding and Unicode. -It has one predefined instance, {\bf wxConvUTF7}. - -{\bf WARNING:} this class is not implemented yet. - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConvUTF8}{wxmbconvutf8}, -\helpref{wxMBConv classes overview}{mbconvclasses} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMBConvUTF7::MB2WC}\label{wxmbconvutf7mb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from UTF-7 encoding to Unicode. Returns the size of the destination buffer. - -\membersection{wxMBConvUTF7::WC2MB}\label{wxmbconvutf7wc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to UTF-7 encoding. Returns the size of the destination buffer. - diff --git a/docs/latex/wx/mbcnvut8.tex b/docs/latex/wx/mbcnvut8.tex deleted file mode 100644 index 46743a76d5..0000000000 --- a/docs/latex/wx/mbcnvut8.tex +++ /dev/null @@ -1,63 +0,0 @@ -% -% automatically generated by HelpGen from -% ../include/wx/strconv.h at 25/Mar/00 10:20:56 -% - -\section{\class{wxMBConvUTF8}}\label{wxmbconvutf8} - -This class converts between the UTF-8 encoding and Unicode. -It has one predefined instance, {\bf wxConvUTF8}. - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConvUTF7}{wxmbconvutf7}, -\helpref{wxMBConv classes overview}{mbconvclasses} - -\wxheading{Remarks} - -UTF-8 is a compatibility encoding used to encode Unicode text into anything that was -originally written for 8-bit strings, including (but not limited to) filenames, transfer -protocols, and database fields. Notable properties include: - -\begin{itemize} -\item Variable-length encoding able to encode up to 31 bits per character -\item ASCII characters (character values under 128) are encoded as plain ASCII -(1 byte per character) -\item Null bytes do not occur in the encoding, except when there's an actual Unicode -null character -\item Preserves sort ordering for plain 8-bit comparison routines like strcmp() -\item High bit patterns disambiguates character boundaries, and makes it easy to -detect whether a string is encoded with UTF-8 or not -\end{itemize} - -All of these properties make UTF-8 a very favorable solution in any situation -where full Unicode character support is desired while remaining compatible with -code written with only 8-bit extended-ASCII characters in mind. - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMBConvUTF8::MB2WC}\label{wxmbconvutf8mb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from UTF-8 encoding to Unicode. Returns the size of the destination buffer. - -\membersection{wxMBConvUTF8::WC2MB}\label{wxmbconvutf8wc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to UTF-8 encoding. Returns the size of the destination buffer. - diff --git a/docs/latex/wx/mbcnvutf.tex b/docs/latex/wx/mbcnvutf.tex deleted file mode 100644 index e2e76a9c63..0000000000 --- a/docs/latex/wx/mbcnvutf.tex +++ /dev/null @@ -1,89 +0,0 @@ -\section{\class{wxMBConvUTF16}}\label{wxmbconvutf16} - -This class is used to convert between multibyte encodings and UTF-16 Unicode -encoding (also known as UCS-2). Unlike \helpref{UTF-8}{wxmbconvutf8} encoding, -UTF-16 uses words and not bytes and hence depends on the byte ordering: -big or little endian. Hence this class is provided in two versions: -wxMBConvUTF16LE and wxMBConvUTF16BE and wxMBConvUTF16 itself is just a typedef -for one of them (native for the given platform, e.g. LE under Windows and BE -under Mac). - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConvUTF8}{wxmbconvutf8}, -\helpref{wxMBConvUTF32}{wxmbconvutf32}, -\helpref{wxMBConv classes overview}{mbconvclasses} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMBConvUTF16::MB2WC}\label{wxmbconvutf16mb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from UTF-16 encoding to Unicode. Returns the size of the destination -buffer. - -\membersection{wxMBConvUTF16::WC2MB}\label{wxmbconvutf16wc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to UTF-16 encoding. Returns the size of the destination -buffer. - - -\section{\class{wxMBConvUTF32}}\label{wxmbconvutf32} - -This class is used to convert between multibyte encodings and UTF-32 Unicode -encoding (also known as UCS-4). Unlike \helpref{UTF-8}{wxmbconvutf8} encoding, -UTF-32 uses (double) words and not bytes and hence depends on the byte ordering: -big or little endian. Hence this class is provided in two versions: -wxMBConvUTF32LE and wxMBConvUTF32BE and wxMBConvUTF32 itself is just a typedef -for one of them (native for the given platform, e.g. LE under Windows and BE -under Mac). - -\wxheading{Derived from} - -\helpref{wxMBConv}{wxmbconv} - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMBConvUTF8}{wxmbconvutf8}, -\helpref{wxMBConvUTF16}{wxmbconvutf16}, -\helpref{wxMBConv classes overview}{mbconvclasses} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMBConvUTF32::MB2WC}\label{wxmbconvutf32mb2wc} - -\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}} - -Converts from UTF-32 encoding to Unicode. Returns the size of the destination -buffer. - -\membersection{wxMBConvUTF32::WC2MB}\label{wxmbconvutf32wc2mb} - -\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -Converts from Unicode to UTF-32 encoding. Returns the size of the destination -buffer. - diff --git a/docs/latex/wx/mbconv.tex b/docs/latex/wx/mbconv.tex deleted file mode 100644 index 1b862f527c..0000000000 --- a/docs/latex/wx/mbconv.tex +++ /dev/null @@ -1,289 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: mbconv.tex -%% Purpose: wxMBConv documentation -%% Author: Ove Kaaven, Vadim Zeitlin -%% Created: 2000-03-25 -%% RCS-ID: $Id$ -%% Copyright: (c) 2000 Ove Kaaven -%% (c) 2003-2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\section{\class{wxMBConv}}\label{wxmbconv} - -This class is the base class of a hierarchy of classes capable of converting -text strings between multibyte (SBCS or DBCS) encodings and Unicode. - -In the documentation for this and related classes please notice that -\emph{length} of the string refers to the number of characters in the string -not counting the terminating \NUL, if any. While the \emph{size} of the string -is the total number of bytes in the string, including any trailing \NUL. -Thus, length of wide character string \texttt{L"foo"} is $3$ while its size can -be either $8$ or $16$ depending on whether \texttt{wchar\_t} is $2$ bytes (as -under Windows) or $4$ (Unix). - -\wxheading{Global variables} - -There are several predefined instances of this class: -\begin{twocollist} -\twocolitem{\textbf{wxConvLibc}}{Uses the standard ANSI C \texttt{mbstowcs()} and -\texttt{wcstombs()} functions to perform the conversions; thus depends on the -current locale.} -\twocolitem{\textbf{wxConvLocal}}{Another conversion corresponding to the -current locale but this one uses the best available conversion.} -\twocolitem{\textbf{wxConvUI}}{The conversion used for hte standard UI elements -such as menu items and buttons. This is a pointer which is initially set to -\texttt{wxConvLocal} as the program uses the current locale by default but can -be set to some specific conversion if the program needs to use a specific -encoding for its UI.} -\twocolitem{\textbf{wxConvISO8859\_1}}{Conversion to and from ISO-8859-1 (Latin I) -encoding.} -\twocolitem{\textbf{wxConvUTF8}}{Conversion to and from UTF-8 encoding.} -\twocolitem{\textbf{wxConvFile}}{The appropriate conversion for the file names, -depends on the system.} -% \twocolitem{\textbf{wxConvCurrent}}{Not really clear what is it for...} -\end{twocollist} - - -\wxheading{Constants} - -\texttt{wxCONV\_FAILED} value is defined as \texttt{(size\_t)$-1$} and is -returned by the conversion functions instead of the length of the converted -string if the conversion fails. - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/strconv.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxCSConv}{wxcsconv}, -\helpref{wxEncodingConverter}{wxencodingconverter}, -\helpref{wxMBConv classes overview}{mbconvclasses} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMBConv::wxMBConv}\label{wxmbconvwxmbconv} - -\func{}{wxMBConv}{\void} - -Trivial default constructor. - - -\membersection{wxMBConv::Clone}\label{wxmbconvclone} - -\constfunc{virtual wxMBConv *}{Clone}{\void} - -This pure virtual function is overridden in each of the derived classes to -return a new copy of the object it is called on. It is used for copying the -conversion objects while preserving their dynamic type. - - -\membersection{wxMBConv::MB2WC}\label{wxmbconvmb2wc} - -\constfunc{virtual size\_t}{MB2WC}{\param{wchar\_t *}{out}, \param{const char *}{in}, \param{size\_t }{outLen}} - -\deprecated{\helpref{ToWChar}{wxmbconvtowchar}} - -Converts from a string \arg{in} in multibyte encoding to Unicode putting up to -\arg{outLen} characters into the buffer \arg{out}. - -If \arg{out} is \NULL, only the length of the string which would result from -the conversion is calculated and returned. Note that this is the length and not -size, i.e. the returned value does \emph{not} include the trailing \NUL. But -when the function is called with a non-\NULL \arg{out} buffer, the \arg{outLen} -parameter should be one more to allow to properly \NUL-terminate the string. - -\wxheading{Parameters} - -\docparam{out}{The output buffer, may be \NULL if the caller is only -interested in the length of the resulting string} - -\docparam{in}{The \NUL-terminated input string, cannot be \NULL} - -\docparam{outLen}{The length of the output buffer but \emph{including} -\NUL, ignored if \arg{out} is \NULL} - -\wxheading{Return value} - -The length of the converted string \emph{excluding} the trailing \NUL. - - -\membersection{wxMBConv::WC2MB}\label{wxmbconvwc2mb} - -\constfunc{virtual size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}} - -\deprecated{\helpref{FromWChar}{wxmbconvfromwchar}} - -Converts from Unicode to multibyte encoding. The semantics of this function -(including the return value meaning) is the same as for -\helpref{MB2WC}{wxmbconvmb2wc}. - -Notice that when the function is called with a non-\NULL buffer, the -{\it n} parameter should be the size of the buffer and so it \emph{should} take -into account the trailing \NUL, which might take two or four bytes for some -encodings (UTF-16 and UTF-32) and not one. - - -\membersection{wxMBConv::cMB2WC}\label{wxmbconvcmb2wc} - -\constfunc{const wxWCharBuffer}{cMB2WC}{\param{const char *}{in}} - -\constfunc{const wxWCharBuffer}{cMB2WC}{\param{const char *}{in}, \param{size\_t }{inLen}, \param{size\_t }{*outLen}} - -Converts from multibyte encoding to Unicode by calling -\helpref{MB2WC}{wxmbconvmb2wc}, allocating a temporary wxWCharBuffer to hold -the result. - -The first overload takes a \NUL-terminated input string. The second one takes a -string of exactly the specified length and the string may include or not the -trailing \NUL character(s). If the string is not \NUL-terminated, a temporary -\NUL-terminated copy of it suitable for passing to \helpref{MB2WC}{wxmbconvmb2wc} -is made, so it is more efficient to ensure that the string is does have the -appropriate number of \NUL bytes (which is usually $1$ but may be $2$ or $4$ -for UTF-16 or UTF-32, see \helpref{GetMBNulLen}{wxmbconvgetmbnullen}), -especially for long strings. - -If \arg{outLen} is not-\NULL, it receives the length of the converted -string. - - -\membersection{wxMBConv::cWC2MB}\label{wxmbconvcwc2mb} - -\constfunc{const wxCharBuffer}{cWC2MB}{\param{const wchar\_t* }{in}} - -\constfunc{const wxCharBuffer}{cWC2MB}{\param{const wchar\_t* }{in}, \param{size\_t }{inLen}, \param{size\_t }{*outLen}} - -Converts from Unicode to multibyte encoding by calling WC2MB, -allocating a temporary wxCharBuffer to hold the result. - -The second overload of this function allows to convert a string of the given -length \arg{inLen}, whether it is \NUL-terminated or not (for wide character -strings, unlike for the multibyte ones, a single \NUL is always enough). -But notice that just as with \helpref{cMB2WC}{wxmbconvmb2wc}, it is more -efficient to pass an already terminated string to this function as otherwise a -copy is made internally. - -If \arg{outLen} is not-\NULL, it receives the length of the converted -string. - - -\membersection{wxMBConv::cMB2WX}\label{wxmbconvcmb2wx} - -\constfunc{const char*}{cMB2WX}{\param{const char* }{psz}} - -\constfunc{const wxWCharBuffer}{cMB2WX}{\param{const char* }{psz}} - -Converts from multibyte encoding to the current wxChar type -(which depends on whether wxUSE\_UNICODE is set to 1). If wxChar is char, -it returns the parameter unaltered. If wxChar is wchar\_t, it returns the -result in a wxWCharBuffer. The macro wxMB2WXbuf is defined as the correct -return type (without const). - - -\membersection{wxMBConv::cWX2MB}\label{wxmbconvcwx2mb} - -\constfunc{const char*}{cWX2MB}{\param{const wxChar* }{psz}} - -\constfunc{const wxCharBuffer}{cWX2MB}{\param{const wxChar* }{psz}} - -Converts from the current wxChar type to multibyte encoding. If wxChar is char, -it returns the parameter unaltered. If wxChar is wchar\_t, it returns the -result in a wxCharBuffer. The macro wxWX2MBbuf is defined as the correct -return type (without const). - - -\membersection{wxMBConv::cWC2WX}\label{wxmbconvcwc2wx} - -\constfunc{const wchar\_t*}{cWC2WX}{\param{const wchar\_t* }{psz}} - -\constfunc{const wxCharBuffer}{cWC2WX}{\param{const wchar\_t* }{psz}} - -Converts from Unicode to the current wxChar type. If wxChar is wchar\_t, -it returns the parameter unaltered. If wxChar is char, it returns the -result in a wxCharBuffer. The macro wxWC2WXbuf is defined as the correct -return type (without const). - - -\membersection{wxMBConv::cWX2WC}\label{wxmbconvcwx2wc} - -\constfunc{const wchar\_t*}{cWX2WC}{\param{const wxChar* }{psz}} - -\constfunc{const wxWCharBuffer}{cWX2WC}{\param{const wxChar* }{psz}} - -Converts from the current wxChar type to Unicode. If wxChar is wchar\_t, -it returns the parameter unaltered. If wxChar is char, it returns the -result in a wxWCharBuffer. The macro wxWX2WCbuf is defined as the correct -return type (without const). - - -\membersection{wxMBConv::FromWChar}\label{wxmbconvfromwchar} - -\constfunc{virtual size\_t}{FromWChar}{\param{char *}{dst}, \param{size\_t }{dstLen}, \param{const wchar\_t *}{src}, \param{size\_t }{srcLen = wxNO\_LEN}} - -This function has the same semantics as \helpref{ToWChar}{wxmbconvtowchar} -except that it converts a wide string to multibyte one. - -\membersection{wxMBConv::GetMaxMBNulLen}\label{wxmbconvgetmaxmbnullen} - -\func{const size\_t}{GetMaxMBNulLen}{\void} - -Returns the maximal value which can be returned by -\helpref{GetMBNulLen}{wxmbconvgetmbnullen} for any conversion object. Currently -this value is $4$. - -This method can be used to allocate the buffer with enough space for the -trailing \NUL characters for any encoding. - - -\membersection{wxMBConv::GetMBNulLen}\label{wxmbconvgetmbnullen} - -\constfunc{size\_t}{GetMBNulLen}{\void} - -This function returns $1$ for most of the multibyte encodings in which the -string is terminated by a single \NUL, $2$ for UTF-16 and $4$ for UTF-32 for -which the string is terminated with $2$ and $4$ \NUL characters respectively. -The other cases are not currently supported and \texttt{wxCONV\_FAILED} -(defined as $-1$) is returned for them. - - -\membersection{wxMBConv::ToWChar}\label{wxmbconvtowchar} - -\constfunc{virtual size\_t}{ToWChar}{\param{wchar\_t *}{dst}, \param{size\_t }{dstLen}, \param{const char *}{src}, \param{size\_t }{srcLen = wxNO\_LEN}} - -The most general function for converting a multibyte string to a wide string. -The main case is when \arg{dst} is not \NULL and \arg{srcLen} is not -\texttt{wxNO\_LEN} (which is defined as \texttt{(size\_t)$-1$}): then -the function converts exactly \arg{srcLen} bytes starting at \arg{src} into -wide string which it output to \arg{dst}. If the length of the resulting wide -string is greater than \arg{dstLen}, an error is returned. Note that if -\arg{srcLen} bytes don't include \NUL characters, the resulting wide string is -not \NUL-terminated neither. - -If \arg{srcLen} is \texttt{wxNO\_LEN}, the function supposes that the string is -properly (i.e. as necessary for the encoding handled by this conversion) -\NUL-terminated and converts the entire string, including any trailing \NUL -bytes. In this case the wide string is also \NUL-terminated. - -Finally, if \arg{dst} is \NULL, the function returns the length of the needed -buffer. - -\wxheading{Return value} - -The number of characters written to \arg{dst} (or the number of characters -which would have been written to it if it were non-\NULL) on success or -\texttt{wxCONV\_FAILED} on error. - - diff --git a/docs/latex/wx/mcaptevt.tex b/docs/latex/wx/mcaptevt.tex deleted file mode 100644 index 265e58a47b..0000000000 --- a/docs/latex/wx/mcaptevt.tex +++ /dev/null @@ -1,108 +0,0 @@ -\section{\class{wxMouseCaptureChangedEvent}}\label{wxmousecapturechangedevent} - -An mouse capture changed event is sent to a window that loses its -mouse capture. This is called even if wxWindow::ReleaseCapture -was called by the application code. Handling this event allows -an application to cater for unexpected capture releases which -might otherwise confuse mouse handling code. - -This event is implemented under Windows only. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process this event, use the following event handler macro to direct input to a member -function that takes a wxMouseCaptureChangedEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MOUSE\_CAPTURE\_CHANGED(func)}}{Process a wxEVT\_MOUSE\_CAPTURE\_CHANGED event.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} -\helpref{Event handling overview}{eventhandlingoverview}, -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}, -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}, -\helpref{wxWindow::GetCapture}{wxwindowgetcapture} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMouseCaptureChangedEvent::wxMouseCaptureChangedEvent}\label{wxmousecapturechangedeventctor} - -\func{}{wxMouseCaptureChangedEvent}{\param{wxWindowID }{windowId = 0}, \param{wxWindow*}{ gainedCapture = NULL}} - -Constructor. - -\membersection{wxActivateEvent::GetCapturedWindow}\label{wxmousecapturechangedeventgetcapturedwindow} - -\constfunc{wxWindow*}{GetCapturedWindow}{\void} - -Returns the window that gained the capture, or NULL if it was a non-wxWidgets window. - - -\section{\class{wxMouseCaptureLostEvent}}\label{wxmousecapturelostevent} - -An mouse capture lost event is sent to a window that obtained mouse capture, -which was subsequently loss due to "external" event, for example when a dialog -box is shown or if another application captures the mouse. - -If this happens, this event is sent to all windows that are on capture stack -(i.e. called CaptureMouse, but didn't call ReleaseMouse yet). The event is -{\em not} sent if the capture changes because of a call to CaptureMouse or -ReleaseMouse. - -This event is currently emitted under Windows only. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process this event, use the following event handler macro to direct input to -a member function that takes a wxMouseCaptureLostEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MOUSE\_CAPTURE\_LOST(func)}}{Process a wxEVT\_MOUSE\_CAPTURE\_LOST event.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent} -\helpref{Event handling overview}{eventhandlingoverview}, -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}, -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}, -\helpref{wxWindow::GetCapture}{wxwindowgetcapture} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMouseCaptureLostEvent::wxMouseCaptureLostEvent}\label{wxmousecapturelosteventctor} - -\func{}{wxMouseCaptureLostEvent}{\param{wxWindowID }{windowId = 0}} - -Constructor. - diff --git a/docs/latex/wx/mdi.tex b/docs/latex/wx/mdi.tex deleted file mode 100644 index 02586b0736..0000000000 --- a/docs/latex/wx/mdi.tex +++ /dev/null @@ -1,574 +0,0 @@ -\section{\class{wxMDIChildFrame}}\label{wxmdichildframe} - -An MDI child frame is a frame that can only exist on a \helpref{wxMDIClientWindow}{wxmdiclientwindow}, -which is itself a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/mdi.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only; -for Windows, it is implicit in wxTHICK\_FRAME).} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -Although internally an MDI child frame is a child of the MDI client window, in wxWidgets -you create it as a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. You can usually -forget that the client window exists. - -MDI child frames are clipped to the area of the MDI client window, and may be iconized -on the client window. - -You can associate a menubar with a child frame as usual, although an MDI child doesn't display -its menubar under its own title bar. The MDI parent frame's menubar will be changed to -reflect the currently active child frame. If there are currently no children, the parent -frame's own menubar will be displayed. - -\wxheading{See also} - -\helpref{wxMDIClientWindow}{wxmdiclientwindow}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp -\helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIChildFrame::wxMDIChildFrame}\label{wxmdichildframector} - -\func{}{wxMDIChildFrame}{\void} - -Default constructor. - -\func{}{wxMDIChildFrame}{\param{wxMDIParentFrame* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This should not be NULL.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMDIChildFrame}{wxmdichildframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -None. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Create}{wxmdichildframecreate} - -\membersection{wxMDIChildFrame::\destruct{wxMDIChildFrame}}\label{wxmdichildframedtor} - -\func{}{\destruct{wxMDIChildFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMDIChildFrame::Activate}\label{wxmdichildframeactivate} - -\func{void}{Activate}{\void} - -Activates this MDI child frame. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize},\rtfsp -\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore} - -\membersection{wxMDIChildFrame::Create}\label{wxmdichildframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMDIChildFrame::wxMDIChildFrame}{wxmdichildframector}\rtfsp -for further details. - -\membersection{wxMDIChildFrame::Maximize}\label{wxmdichildframemaximize} - -\func{void}{Maximize}{\param{bool}{maximize}} - -Maximizes this MDI child frame. - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp -\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore} - -\membersection{wxMDIChildFrame::Restore}\label{wxmdichildframerestore} - -\func{void}{Restore}{\void} - -Restores this MDI child frame (unmaximizes). - -\wxheading{See also} - -\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp -\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize} - -\section{\class{wxMDIClientWindow}}\label{wxmdiclientwindow} - -An MDI client window is a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}, and manages zero or -more \helpref{wxMDIChildFrame}{wxmdichildframe} objects. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/mdi.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -The client window is the area where MDI child windows exist. It doesn't have to cover the whole -parent frame; other windows such as toolbars and a help window might coexist with it. -There can be scrollbars on a client window, which are controlled by the parent window style. - -The {\bf wxMDIClientWindow} class is usually adequate without further derivation, and it is created -automatically when the MDI parent frame is created. If the application needs to derive a new class, -the function \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} must be -overridden in order to give an opportunity to use a different class of client window. - -Under Windows 95, the client window will automatically have a sunken border style when -the active child is not maximized, and no border style when a child is maximized. - -\wxheading{See also} - -\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp -\helpref{wxFrame}{wxframe} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIClientWindow::wxMDIClientWindow}\label{wxmdiclientwindowctor} - -\func{}{wxMDIClientWindow}{\void} - -Default constructor. - -\func{}{wxMDIClientWindow}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent.} - -\docparam{style}{The window style. Currently unused.} - -\wxheading{Remarks} - -The second style of constructor is called within \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector},\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIClientWindow::\destruct{wxMDIClientWindow}}\label{wxmdiclientwindowdtor} - -\func{}{\destruct{wxMDIClientWindow}}{\void} - -Destructor. - -\membersection{wxMDIClientWindow::CreateClient}\label{wxmdiclientwindowcreateclient} - -\func{bool}{CreateClient}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}} - -Used in two-step frame construction. See \helpref{wxMDIClientWindow::wxMDIClientWindow}{wxmdiclientwindowctor}\rtfsp -for further details. - -\section{\class{wxMDIParentFrame}}\label{wxmdiparentframe} - -An MDI (Multiple Document Interface) parent frame is a window which can contain -MDI child frames in its own `desktop'. It is a convenient way to avoid window clutter, -and is used in many popular Windows applications, such as Microsoft Word(TM). - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/mdi.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -There may be multiple MDI parent frames in a single application, but this probably only makes sense -within programming development environments. - -Child frames may be of class \helpref{wxMDIChildFrame}{wxmdichildframe} (contained -within the parent frame) or \helpref{wxFrame}{wxframe} (shown as a top-level frame). - -An MDI parent frame always has a \helpref{wxMDIClientWindow}{wxmdiclientwindow} associated with it, which -is the parent for MDI child frames. -This client window may be resized to accommodate non-MDI windows, as seen in Microsoft Visual C++ (TM) and -Microsoft Publisher (TM), where a documentation window is placed to one side of the workspace. - -MDI remains popular despite dire warnings from Microsoft itself that MDI is an obsolete -user interface style. - -The implementation is native in Windows, and simulated under Motif. Under Motif, -the child window frames will often have a different appearance from other frames -because the window decorations are simulated. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.} -\twocolitem{\windowstyle{wxHSCROLL}}{Displays a horizontal scrollbar in the {\it client window}, allowing -the user to view child frames that are off the current view.} -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only; -for Windows, it is implicit in wxTHICK\_FRAME).} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).} -\twocolitem{\windowstyle{wxVSCROLL}}{Displays a vertical scrollbar in the {\it client window}, allowing -the user to view child frames that are off the current view.} -\twocolitem{\windowstyle{wxFRAME\_NO\_WINDOW\_MENU}}{Under Windows, removes the Window menu that is normally -added automatically.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIClientWindow}{wxmdiclientwindow},\rtfsp -\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMDIParentFrame::wxMDIParentFrame}\label{wxmdiparentframector} - -\func{}{wxMDIParentFrame}{\void} - -Default constructor. - -\func{}{wxMDIParentFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This should be NULL.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMDIParentFrame}{wxmdiparentframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -During the construction of the frame, the client window will be created. To use a different class -from \helpref{wxMDIClientWindow}{wxmdiclientwindow}, override\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}. - -Under Windows 95, the client window will automatically have a sunken border style when -the active child is not maximized, and no border style when a child is maximized. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Create}{wxmdiparentframecreate},\rtfsp -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIParentFrame::\destruct{wxMDIParentFrame}}\label{wxmdiparentframedtor} - -\func{}{\destruct{wxMDIParentFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMDIParentFrame::ActivateNext}\label{wxmdiparentframeactivatenext} - -\func{void}{ActivateNext}{\void} - -Activates the MDI child following the currently active one. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::ActivatePrevious}{wxmdiparentframeactivateprevious} - -\membersection{wxMDIParentFrame::ActivatePrevious}\label{wxmdiparentframeactivateprevious} - -\func{void}{ActivatePrevious}{\void} - -Activates the MDI child preceding the currently active one. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::ActivateNext}{wxmdiparentframeactivatenext} - - -\membersection{wxMDIParentFrame::ArrangeIcons}\label{wxmdiparentframearrangeicons} - -\func{void}{ArrangeIcons}{\void} - -Arranges any iconized (minimized) MDI child windows. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp -\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile} - -\membersection{wxMDIParentFrame::Cascade}\label{wxmdiparentframecascade} - -\func{void}{Cascade}{\void} - -Arranges the MDI child windows in a cascade. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile},\rtfsp -\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons} - -\membersection{wxMDIParentFrame::Create}\label{wxmdiparentframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector}\rtfsp -for further details. - -\membersection{wxMDIParentFrame::GetClientSize}\label{wxmdiparentframegetclientsize} - -\constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}} - -This gets the size of the frame `client area' in pixels. - -\wxheading{Parameters} - -\docparam{width}{Receives the client width in pixels.} - -\docparam{height}{Receives the client height in pixels.} - -\wxheading{Remarks} - -The client area is the area which may be drawn on by the programmer, excluding title bar, border, status bar, -and toolbar if present. - -If you wish to manage your own toolbar (or perhaps you have more than one), -provide an {\bf OnSize} event handler. Call {\bf GetClientSize} to -find how much space there is for your windows and don't forget to set the size and position -of the MDI client window as well as your toolbar and other windows (but not the status bar). - -If you have set a toolbar with \helpref{wxMDIParentFrame::SetToolbar}{wxmdiparentframesettoolbar}, -the client size returned will have subtracted the toolbar height. However, the available positions -for the client window and other windows of the frame do not start at zero - you must add the toolbar height. - -The position and size of the status bar and toolbar (if known to the frame) are always managed -by {\bf wxMDIParentFrame}, regardless of what behaviour is defined in your {\bf OnSize} event handler. -However, the client window position and size are always set in {\bf OnSize}, so if you override this -event handler, make sure you deal with the client window. - -You do not have to manage the size and position of MDI child windows, since they are managed -automatically by the client window. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp -\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar},\rtfsp -\helpref{wxMDIClientWindow}{wxmdiclientwindow} - - -\pythonnote{The wxPython version of this method takes no arguments and -returns a tuple containing width and height.} - -\membersection{wxMDIParentFrame::GetActiveChild}\label{wxmdiparentframegetactivechild} - -\constfunc{wxMDIChildFrame*}{GetActiveChild}{\void} - -Returns a pointer to the active MDI child, if there is one. - -\membersection{wxMDIParentFrame::GetClientWindow}\label{wxmdiparentframegetclientwindow} - -\constfunc{wxMDIClientWindow*}{GetClientWindow}{\void} - -Returns a pointer to the client window. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} - -\membersection{wxMDIParentFrame::GetToolBar}\label{wxmdiparentframegettoolbar} - -\constfunc{virtual wxWindow*}{GetToolBar}{\void} - -Returns the window being used as the toolbar for this frame. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar} - -\membersection{wxMDIParentFrame::GetWindowMenu}\label{wxmdiparentframegetwindowmenu} - -\constfunc{wxMenu*}{GetWindowMenu}{\void} - -Returns the current Window menu (added by wxWidgets to the menubar). This function -is available under Windows only. - -\membersection{wxMDIParentFrame::OnCreateClient}\label{wxmdiparentframeoncreateclient} - -\func{virtual wxMDIClientWindow*}{OnCreateClient}{\void} - -Override this to return a different kind of client window. If you override this function, -you must create your parent frame in two stages, or your function will never be called, -due to the way C++ treats virtual functions called from constructors. For example: - -\begin{verbatim} - frame = new MyParentFrame; - frame->Create(parent, myParentFrameId, wxT("My Parent Frame")); -\end{verbatim} - -\wxheading{Remarks} - -You might wish to derive from \helpref{wxMDIClientWindow}{wxmdiclientwindow} in order -to implement different erase behaviour, for example, such as painting a bitmap -on the background. - -Note that it is probably impossible to have a client window that scrolls as well as painting -a bitmap or pattern, since in {\bf OnScroll}, the scrollbar positions always return zero. -(Solutions to: {\tt julian.smart@btopenworld.com}). - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetClientWindow}{wxmdiparentframegetclientwindow},\rtfsp -\helpref{wxMDIClientWindow}{wxmdiclientwindow} - -\membersection{wxMDIParentFrame::SetToolBar}\label{wxmdiparentframesettoolbar} - -\func{virtual void}{SetToolBar}{\param{wxWindow*}{ toolbar}} - -Sets the window to be used as a toolbar for this -MDI parent window. It saves the application having to manage the positioning -of the toolbar MDI client window. - -\wxheading{Parameters} - -\docparam{toolbar}{Toolbar to manage.} - -\wxheading{Remarks} - -When the frame is resized, the toolbar is resized to be the width of -the frame client area, and the toolbar height is kept the same. - -The parent of the toolbar must be this frame. - -If you wish to manage your own toolbar (or perhaps you have more than one), -don't call this function, and instead manage your subwindows and the MDI client window by -providing an {\bf OnSize} event handler. Call \helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} to -find how much space there is for your windows. - -Note that SDI (normal) frames and MDI child windows must always have their -toolbars managed by the application. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp -\helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} - -\membersection{wxMDIParentFrame::SetWindowMenu}\label{wxmdiparentframesetwindowmenu} - -\func{void}{SetWindowMenu}{\param{wxMenu*}{ menu}} - -Call this to change the current Window menu. Ownership of the menu object passes to -the frame when you call this function. - -This call is available under Windows only. - -To remove the window completely, use the wxFRAME\_NO\_WINDOW\_MENU window style. - -\membersection{wxMDIParentFrame::Tile}\label{wxmdiparentframetile} - -\func{void}{Tile}{\param{wxOrientation}{ orient = wxHORIZONTAL}} - -Tiles the MDI child windows either horizontally or vertically depending on -whether \arg{orient} is wxHORIZONTAL or wxVERTICAL. - -Currently only implemented for MSW, does nothing under the other platforms. - -\wxheading{See also} - -\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp -\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons} - - diff --git a/docs/latex/wx/mediactrl.tex b/docs/latex/wx/mediactrl.tex deleted file mode 100644 index 4380d9790f..0000000000 --- a/docs/latex/wx/mediactrl.tex +++ /dev/null @@ -1,430 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: mediactrl.tex -%% Purpose: wxMediaCtrl docs -%% Author: Ryan Norton <wxprojects@comcast.net> -%% Modified by: -%% Created: 11/7/2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMediaCtrl}}\label{wxmediactrl} - -wxMediaCtrl is a class for displaying types of -media, such as videos, audio files, natively through native codecs. - -wxMediaCtrl uses native backends to render media, for example on Windows -there is a ActiveMovie/DirectShow backend, and on Macintosh there is a -QuickTime backend. - -\wxheading{See also} - -\helpref{wxMediaEvent}{wxmediaevent} - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/mediactrl.h> - -\wxheading{Library} - -\helpref{wxMedia}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{Rendering media}\label{renderingmediawxmediactrl} - -Depending upon the backend, wxMediaCtrl can render -and display pretty much any kind of media that the native system can - -such as an image, mpeg video, or mp3 (without license restrictions - -since it relies on native system calls that may not technically -have mp3 decoding available, for example, it falls outside the -realm of licensing restrictions). - -For general operation, all you need to do is call -\helpref{wxMediaCtrl::Load}{wxmediactrlload} to load the file -you want to render, catch the EVT\_MEDIA\_LOADED event, -and then call \helpref{wxMediaCtrl::Play}{wxmediactrlplay} -to show the video/audio of the media in that event. - -More complex operations are generally more heavily dependant on the -capabilities of the backend. For example, QuickTime cannot set -the playback rate of certain streaming media - while DirectShow is -slightly more flexible in that regard. - - -\membersection{Operation}\label{operationwxmediactrl} - -When wxMediaCtrl plays a file, it plays until the stop position -is reached (currently the end of the file/stream). Right before -it hits the end of the stream, it fires off a EVT\_MEDIA\_STOP -event to its parent window, at which point the event handler -can choose to veto the event, preventing the stream from actually -stopping. - -Example: -\begin{verbatim} -//connect to the media event -this->Connect(wxMY_ID, wxEVT_MEDIA_STOP, (wxObjectEventFunction) -(wxEventFunction)(wxMediaEventFunction) &MyFrame::OnMediaStop); - -//... -void MyFrame::OnMediaStop(const wxMediaEvent& evt) -{ - if(bUserWantsToSeek) - { - m_mediactrl->SetPosition( - m_mediactrl->GetDuration() << 1 - ); - evt.Veto(); - } -} -\end{verbatim} - -When wxMediaCtrl stops, either by the EVT\_MEDIA\_STOP not being -vetoed, or by manually calling -\helpref{wxMediaCtrl::Stop}{wxmediactrlstop}, where it actually -stops is not at the beginning, rather, but at the beginning of -the stream. That is, when it stops and play is called, playback -is gauranteed to start at the beginning of the media. This is -because some streams are not seekable, and when stop is called -on them they return to the beginning, thus wxMediaCtrl tries -to keep consistant for all types of media. - -Note that when changing the state of the media through Play() -and other methods, the media may not actually be in the -wxMEDIASTATE\_PLAYING, for example. If you are relying on the -media being in certain state catch the event relevant to the state. -See \helpref{wxMediaEvent}{wxmediaevent} for the kinds of events -that you can catch. - - -\membersection{Video size}\label{videosizewxmediactrl} - -By default, wxMediaCtrl will scale the size of the video to the -requested amount passed to either it's constructor or Create(). -After calling Load or performing an equivilant operation, you -can subsequently obtain the "real" size of the video (if there -is any) by calling GetBestSize(). Note that the actual result -on the display will be slightly different when ShowPlayerControls -is activated and the actual video size will be less then -specified due to the extra controls provided by the native toolkit. -In addition, the backend may modify GetBestSize() to include the -size of the extra controls - so if you want the real size of the -video just disable ShowPlayerControls(). - -The idea with setting GetBestSize to the size of the video is -that GetBestSize is a wxWindow-derived function that is called -when sizers on a window recalculate. What this means is that -if you use sizers by default the video will show in it's -original size without any extra assistance needed from the user. - - -\membersection{Player controls}\label{playercontrolswxmediactrl} - -Normally, when you use wxMediaCtrl it is just a window for the video to -play in. However, some toolkits have their own media player interface. -For example, QuickTime generally has a bar below the video with a slider. -A special feature available to wxMediaCtrl, you can use the toolkit's interface instead of -making your own by using the \helpref{ShowPlayerControls()}{wxmediactrlshowplayercontrols} -function. There are several options for the flags parameter, with -the two general flags being wxMEDIACTRLPLAYERCONTROLS\_NONE which turns off -the native interface, and wxMEDIACTRLPLAYERCONTROLS\_DEFAULT which lets -wxMediaCtrl decide what native controls on the interface. Be sure to review -the caveats outlined in \helpref{Video size}{videosizewxmediactrl} before -doing so. - - -\membersection{Choosing a backend}\label{choosingbackendwxmediactrl} - -Generally, you should almost certainly leave this part up to -wxMediaCtrl - but if you need a certain backend for a particular -reason, such as QuickTime for playing .mov files, all you need -to do to choose a specific backend is to pass the -name of the backend class to -\helpref{wxMediaCtrl::Create}{wxmediactrlcreate}. - -The following are valid backend identifiers - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMEDIABACKEND\_DIRECTSHOW}}{ -Use ActiveMovie/DirectShow. Uses the native ActiveMovie -(I.E. DirectShow) control. Default backend on Windows and -supported by nearly all Windows versions, even some -Windows CE versions. May display a windows media player -logo while inactive. } -\twocolitem{{\bf wxMEDIABACKEND\_QUICKTIME}}{ -Use QuickTime. Mac Only. -WARNING: May not working correctly embedded in a wxNotebook. -} -\twocolitem{{\bf wxMEDIABACKEND\_GSTREAMER}}{ -Use GStreamer. Unix Only. Requires GStreamer 0.8 along -with at the very least the xvimagesink, xoverlay, and -gst-play modules of gstreamer to function. You need the correct -modules to play the relavant files, for example the mad module -to play mp3s, etc.} -\twocolitem{{\bf wxMEDIABACKEND\_WMP10}}{ -Uses Windows Media Player 10 (Windows only) - works on mobile -machines with Windows Media Player 10 and desktop machines with -either Windows Media Player 9 or 10 -} -\end{twocollist} - -Note that other backends such as wxMEDIABACKEND\_MCI can now be -found at wxCode. - -\membersection{Creating a backend}\label{creatingabackendwxmediactrl} - -Creating a backend for wxMediaCtrl is a rather simple process. Simply derive -from wxMediaBackendCommonBase and implement the methods you want. The methods -in wxMediaBackend correspond to those in wxMediaCtrl except for CreateControl -which does the actual creation of the control, in cases where a custom control -is not needed you may simply call wxControl::Create. - -You need to make sure to use the DECLARE\_CLASS and IMPLEMENT\_CLASS macros. - -The only real tricky part is that you need to make sure the file in compiled -in, which if there are just backends in there will not happen and you may need -to use a force link hack (see http://www.wxwidgets.org/wiki/index.php/RTTI). - -This is a rather simple example of how to create a backend in the -\helpref{wxActiveXContainer}{wxactivexcontainer} documentation. - -\membersection{wxMediaCtrl::wxMediaCtrl}\label{wxmediactrlwxmediactrl} - -\func{}{wxMediaCtrl}{\void} - -Default constructor - you \tt{must} call Create before calling any other methods -of wxMediaCtrl. - -\func{}{wxMediaCtrl}{ - \param{wxWindow* }{parent}, - \param{wxWindowID }{id}, - \param{const wxString\& }{fileName = wxT("")}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = 0}, - \param{const wxString\& }{szBackend = wxT("")}, - \param{const wxValidator& }{validator = wxDefaultValidator}, - \param{const wxString\& }{name = wxPanelNameStr} - } - -Constructor that calls \helpref{Create}{wxmediactrlcreate}. You may prefer to call \helpref{Create}{wxmediactrlcreate} directly to check to see if wxMediaCtrl is available on the system. - -\docparam{parent}{parent of this control. Must not be NULL.} -\docparam{id}{id to use for events} -\docparam{fileName}{If not empty, the path of a file to open.} -\docparam{pos}{Position to put control at.} -\docparam{size}{Size to put the control at and to stretch movie to.} -\docparam{style}{Optional styles.} -\docparam{szBackend}{Name of backend you want to use, leave blank to make -wxMediaCtrl figure it out.} -\docparam{validator}{validator to use.} -\docparam{name}{Window name.} - - -\membersection{wxMediaCtrl::Create}\label{wxmediactrlcreate} - -\func{bool}{Create}{ - \param{wxWindow* }{parent}, - \param{wxWindowID }{id}, - \param{const wxString\& }{fileName = wxT("")}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = 0}, - \param{const wxString\& }{szBackend = wxT("")}, - \param{const wxValidator& }{validator = wxDefaultValidator}, - \param{const wxString\& }{name = wxPanelNameStr} - } - -Creates this control. Returns \tt{false} if it can't load the movie located at \tt{fileName} or it cannot load one of its native backends. - -If you specify a file to open via \tt{fileName} and you don't specify a backend to use, wxMediaCtrl tries each of its backends until one that can render the path referred to by \tt{fileName} can be found. - -\docparam{parent}{parent of this control. Must not be NULL.} -\docparam{id}{id to use for events} -\docparam{fileName}{If not empty, the path of a file to open.} -\docparam{pos}{Position to put control at.} -\docparam{size}{Size to put the control at and to stretch movie to.} -\docparam{style}{Optional styles.} -\docparam{szBackend}{Name of backend you want to use, leave blank to make -wxMediaCtrl figure it out.} -\docparam{validator}{validator to use.} -\docparam{name}{Window name.} - - -\membersection{wxMediaCtrl::GetBestSize}\label{wxmediactrlgetbestsize} - -\func{wxSize}{GetBestSize}{\void} - -Obtains the best size relative to the original/natural size of the -video, if there is any. See \helpref{Video size}{videosizewxmediactrl} -for more information. - - -\membersection{wxMediaCtrl::GetPlaybackRate}\label{wxmediactrlgetplaybackrate} - -\func{double}{GetPlaybackrate}{\void} - -Obtains the playback rate, or speed of the media. \tt{1.0} represents normal -speed, while \tt{2.0} represents twice the normal speed of the media, for -example. Not supported on the GStreamer (Unix) backend. -Returns 0 on failure. - - -\membersection{wxMediaCtrl::GetVolume}\label{wxmediactrlgetvolume} - -\func{double}{GetVolume}{\void} - -Gets the volume of the media from a 0.0 to 1.0 range. Note that due to rounding -and other errors this may not be the exact value sent to SetVolume. - - -\membersection{wxMediaCtrl::GetState}\label{wxmediactrlgetstate} - -\func{wxMediaCtrlState}{GetState}{\void} - -Obtains the state the playback of the media is in - - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMEDIASTATE\_STOPPED}}{The movie has stopped.} -\twocolitem{{\bf wxMEDIASTATE\_PAUSED}}{The movie is paused.} -\twocolitem{{\bf wxMEDIASTATE\_PLAYING}}{The movie is currently playing.} -\end{twocollist} - - -\membersection{wxMediaCtrl::Length}\label{wxmediactrllength} - -\func{wxFileOffset}{Length}{\void} - -Obtains the length - the total amount of time the movie has in milliseconds. - - -\membersection{wxMediaCtrl::Load}\label{wxmediactrlload} - -\func{bool}{Load}{\param{const wxString\& }{fileName}} - -Loads the file that \tt{fileName} refers to. Returns false if loading fails. - - -\membersection{wxMediaCtrl::Load}\label{wxmediactrlloaduri} - -\func{bool}{Load}{\param{const wxURI\& }{uri}} - -Loads the location that \tt{uri} refers to. Note that this is very implementation-dependant, although HTTP URI/URLs are generally supported, for example. Returns false if loading fails. - - -\membersection{wxMediaCtrl::Load}\label{wxmediactrlloaduriwithproxy} - -\func{bool}{Load}{\param{const wxURI\& }{uri}, \param{const wxURI\& }{proxy}} - -Loads the location that \tt{uri} refers to with the proxy \tt{proxy}. Not implemented on most backends so it should be called with caution. Returns false if loading fails. - - -\membersection{wxMediaCtrl::LoadURI}\label{wxmediactrlloaduriliteral} - -\func{bool}{LoadURI}{\param{const wxURI\& }{uri}} - -Same as \helpref{Load}{wxmediactrlloaduri}. Kept for wxPython compatability. - - -\membersection{wxMediaCtrl::LoadURIWithProxy}\label{wxmediactrlloaduriwithproxyliteral} - -\func{bool}{LoadURIWithProxy}{\param{const wxURI\& }{uri}, \param{const wxURI\& }{proxy}} - -Same as \helpref{Load}{wxmediactrlloaduriwithproxy}. Kept for wxPython compatability. - - -\membersection{wxMediaCtrl::Pause}\label{wxmediactrlpause} - -\func{bool}{Pause}{\void} - -Pauses playback of the movie. - - -\membersection{wxMediaCtrl::Play}\label{wxmediactrlplay} - -\func{bool}{Play}{\void} - -Resumes playback of the movie. - - -\membersection{wxMediaCtrl::Seek}\label{wxmediactrlsetposition} - -\func{wxFileOffset}{Seek}{\param{wxFileOffset }{where}, \param{wxSeekMode }{mode}} - -Seeks to a position within the movie. - - -\membersection{wxMediaCtrl::SetPlaybackRate}\label{wxmediactrlsetplaybackrate} - -\func{bool}{SetPlaybackRate}{\param{double }{dRate}} - -Sets the playback rate, or speed of the media, to that referred by \tt{dRate}. -\tt{1.0} represents normal speed, while \tt{2.0} represents twice the normal -speed of the media, for example. Not supported on the GStreamer (Unix) backend. -Returns true if successful. - - -\membersection{wxMediaCtrl::SetVolume}\label{wxmediactrlsetvolume} - -\func{bool}{SetVolume}{\param{double }{dVolume}} - -Sets the volume of the media from a 0.0 to 1.0 range to that referred -by \tt{dVolume}. \tt{1.0} represents full volume, while \tt{0.5} -represents half (50 percent) volume, for example. Note that this may not be -exact due to conversion and rounding errors, although setting the volume to -full or none is always exact. Returns true if successful. - - -\membersection{wxMediaCtrl::ShowPlayerControls}\label{wxmediactrlshowplayercontrols} - -\func{bool}{ShowPlayerControls}{\param{wxMediaCtrlPlayerControls }{flags = wxMEDIACTRLPLAYERCONTROLS\_DEFAULT}} - -A special feature to wxMediaCtrl. Applications using native toolkits such as -QuickTime usually have a scrollbar, play button, and more provided to -them by the toolkit. By default wxMediaCtrl does not do this. However, on -the directshow and quicktime backends you can show or hide the native controls -provided by the underlying toolkit at will using ShowPlayerControls. Simply -calling the function with default parameters tells wxMediaCtrl to use the -default controls provided by the toolkit. The function takes a -\tt{wxMediaCtrlPlayerControls} enumeration as follows: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMEDIACTRLPLAYERCONTROLS\_NONE}}{No controls. return wxMediaCtrl to it's default state.} -\twocolitem{{\bf wxMEDIACTRLPLAYERCONTROLS\_STEP}}{Step controls like fastfoward, step one frame etc.} -\twocolitem{{\bf wxMEDIACTRLPLAYERCONTROLS\_VOLUME}}{Volume controls like the speaker icon, volume slider, etc.} -\twocolitem{{\bf wxMEDIACTRLPLAYERCONTROLS\_DEFAULT}}{Default controls for the toolkit. Currently a typedef for wxMEDIACTRLPLAYERCONTROLS\_STEP and wxMEDIACTRLPLAYERCONTROLS\_VOLUME.} -\end{twocollist} - -For more see \helpref{Player controls}{playercontrolswxmediactrl}. Currently -only implemented on the QuickTime and DirectShow backends. The function -returns true on success. - - -\membersection{wxMediaCtrl::Stop}\label{wxmediactrlstop} - -\func{bool}{Stop}{\void} - -Stops the media. - -See \helpref{Operation}{operationwxmediactrl} for an overview of how -stopping works. - - -\membersection{wxMediaCtrl::Tell}\label{wxmediactrlgetposition} - -\func{wxFileOffset}{Tell}{\void} - -Obtains the current position in time within the movie in milliseconds. - diff --git a/docs/latex/wx/mediaevt.tex b/docs/latex/wx/mediaevt.tex deleted file mode 100644 index 546b5602c3..0000000000 --- a/docs/latex/wx/mediaevt.tex +++ /dev/null @@ -1,58 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: mediaevt.tex -%% Purpose: wxMediaEvent docs -%% Author: Ryan Norton <wxprojects@comcast.net> -%% Modified by: -%% Created: 11/7/2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMediaEvent}}\label{wxmediaevent} - -Event \helpref{wxMediaCtrl}{wxmediactrl} uses. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/mediactrl.h> - -\wxheading{Library} - -\helpref{wxMedia}{librarieslist} - -\wxheading{Event table macros} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MEDIA\_LOADED(id, func)}}{ -Sent when a media has loaded enough data that it can start playing.} -\twocolitem{{\bf EVT\_MEDIA\_STOP(id, func)}}{ -Send when a media has switched to the wxMEDIASTATE\_STOPPED state. -You may be able to Veto this event to prevent it from stopping, -causing it to continue playing - even if it has reached that end of the media -(note that this may not have the desired effect - if you want to loop the -media, for example, catch the EVT\_MEDIA\_FINISHED and play there instead). } -\twocolitem{{\bf EVT\_MEDIA\_FINISHED(id, func)}}{ -Sent when a media has finished playing in a \helpref{wxMediaCtrl}{wxmediactrl}. -} -\twocolitem{{\bf EVT\_MEDIA\_STATECHANGED(id, func)}}{ -Send when a media has switched its state (from any media state). -} -\twocolitem{{\bf EVT\_MEDIA\_PLAY(id, func)}}{ -Send when a media has switched to the wxMEDIASTATE\_PLAYING state. -} -\twocolitem{{\bf EVT\_MEDIA\_PAUSE(id, func)}}{ -Send when a media has switched to the wxMEDIASTATE\_PAUSED state. -} -\end{twocollist} - -\latexignore{\rtfignore{\wxheading{Members}}} - diff --git a/docs/latex/wx/membuf.tex b/docs/latex/wx/membuf.tex deleted file mode 100644 index 70aa6059ac..0000000000 --- a/docs/latex/wx/membuf.tex +++ /dev/null @@ -1,130 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: membuf.tex -%% Purpose: wxMemoryBuffer class documentation -%% Author: Roger Gammans -%% Modified by: -%% Created: 08.06.2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Roger Gammans -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMemoryBuffer}}\label{wxmemorybuffer} - -A {\bf wxMemoryBuffer} is a useful data structure for storing arbitrary sized blocks -of memory. wxMemoryBuffer guarantees deletion of the memory block when the object -is destroyed. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/buffer.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryBuffer::wxMemoryBuffer}\label{wxmemorybufferctor} - -\func{}{wxMemoryBuffer}{\param{const wxMemoryBuffer\&}{ src}} - -Copy constructor, refcounting is used for performance , but wxMemoryBuffer -is not a copy-on-write structure so changes made to one buffer effect -all copies made from it. - -\func{}{wxMemoryBuffer}{\param{size\_t}{ size}} - -Create a new buffer. - -\docparam{size}{size of new buffer.} - -\membersection{wxMemoryBuffer::GetData}\label{wxmemorybuffergetdata} - -\func{void* }{GetData}{\void} - -Return a pointer to the data in the buffer. - -\membersection{wxMemoryBuffer::GetBufSize}\label{wxmemorybuffergetbufsize} - -\func{size\_t}{GetBufSize}{\void} - -Returns the size of the buffer. - -\membersection{wxMemoryBuffer::GetDataLen}\label{wxmemorybuffergetdatalen} - -\func{size\_t}{GetDataLen}{\void} - -Returns the length of the valid data in the buffer. - -\membersection{wxMemoryBuffer::SetBufSize}\label{wxmemorybuffersetbufsize} - -\func{void}{SetBufSize}{\param{size\_t}{ size}} - -Ensures the buffer has at least {\it size} bytes available. - -\membersection{wxMemoryBuffer::SetDataLen}\label{wxmemorybuffersetdatalen} - -\func{void}{SetDataLen}{\param{size\_t}{ size}} - -Sets the length of the data stored in the buffer. Mainly useful for truncating existing data. - -\docparam{size}{New length of the valid data in the buffer. This is -distinct from the allocated size} - -\membersection{wxMemoryBuffer::GetWriteBuf}\label{wxmemorybuffergetwritebuf} - -\func{void *}{GetWriteBuf}{\param{size\_t}{ sizeNeeded}} - -Ensure the buffer is big enough and return a pointer to the -buffer which can be used to directly write into the buffer -up to {\it sizeNeeded} bytes. - -\membersection{wxMemoryBuffer::UngetWriteBuf}\label{wxmemorybufferungetwritebuf} - -\func{void}{UngetWriteBuf}{\param{size\_t}{ sizeUsed}} - -Update the buffer after completing a direct write, which -you must have used GetWriteBuf() to initialise. - -\docparam{sizeUsed}{The amount of data written in to buffer -by the direct write} - -\membersection{wxMemoryBuffer::GetAppendBuf}\label{wxmemorybuffergetappendbuf} - -\func{void *}{GetAppendBuf}{\param{size\_t}{ sizeNeeded}} - -Ensure that the buffer is big enough and return a pointer to the start -of the empty space in the buffer. This pointer can be used to directly -write data into the buffer, this new data will be appended to -the existing data. - -\docparam{sizeNeeded}{Amount of extra space required in the buffer for -the append operation} - -\membersection{wxMemoryBuffer::UngetAppendBuf}\label{wxmemorybufferungetappendbuf} - -\func{void}{UngetAppendBuf}{\param{size\_t}{ sizeUsed}} - -Update the length after completing a direct append, which -you must have used GetAppendBuf() to initialise. - -\docparam{sizeUsed}{This is the amount of new data that has been -appended.} - -\membersection{wxMemoryBuffer::AppendByte}\label{wxmemorybufferappendbyte} - -\func{void}{AppendByte}{\param{char}{ data}} - -Append a single byte to the buffer. - -\docparam{data}{New byte to append to the buffer.} - -\membersection{wxMemoryBuffer::AppendData}\label{wxmemorybufferappenddata} - -\func{void}{AppendData}{\param{void*}{ data}, \param{size\_t}{ len}} - -Single call to append a data block to the buffer. - -\docparam{data}{Pointer to block to append to the buffer.} -\docparam{len}{Length of data to append.} diff --git a/docs/latex/wx/memorydc.tex b/docs/latex/wx/memorydc.tex deleted file mode 100644 index e71262b954..0000000000 --- a/docs/latex/wx/memorydc.tex +++ /dev/null @@ -1,112 +0,0 @@ -\section{\class{wxMemoryDC}}\label{wxmemorydc} - -A memory device context provides a means to draw graphics onto a bitmap. When -drawing in to a mono-bitmap, using {\tt wxWHITE}, {\tt wxWHITE\_PEN} and -{\tt wxWHITE\_BRUSH} -will draw the background colour (i.e. 0) whereas all other colours will draw the -foreground colour (i.e. 1). - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/dcmemory.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -A bitmap must be selected into the new memory DC before it may be used -for anything. Typical usage is as follows: - -\begin{verbatim} - // Create a memory DC - wxMemoryDC temp_dc; - temp_dc.SelectObject(test_bitmap); - - // We can now draw into the memory DC... - // Copy from this DC to another DC. - old_dc.Blit(250, 50, BITMAP_WIDTH, BITMAP_HEIGHT, temp_dc, 0, 0); -\end{verbatim} - -Note that the memory DC {\it must} be deleted (or the bitmap selected out of it) before a bitmap -can be reselected into another memory DC. - -And, before performing any other operations on the bitmap data, the bitmap must -be selected out of the memory DC: - -\begin{verbatim} - temp_dc.SelectObject(wxNullBitmap) -\end{verbatim} - -(this happens automatically when wxMemoryDC object goes out of scope). - - -\wxheading{See also} - -\helpref{wxBitmap}{wxbitmap}, \helpref{wxDC}{wxdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryDC::wxMemoryDC}\label{wxmemorydcctor} - -\func{}{wxMemoryDC}{\void} - -Constructs a new memory device context. - -Use the \helpref{IsOk}{wxdcisok} member to test whether the constructor was successful -in creating a usable device context. -Don't forget to select a bitmap into the DC before drawing on it. - -\func{}{wxMemoryDC}{\param{wxBitmap\& }{bitmap}} - -Constructs a new memory device context and calls \helpref{SelectObject}{wxmemorydcselectobject} -with the given bitmap. -Use the \helpref{IsOk}{wxdcisok} member to test whether the constructor was successful -in creating a usable device context. - - -\membersection{wxMemoryDC::SelectObject}\label{wxmemorydcselectobject} - -\func{void}{SelectObject}{\param{wxBitmap\& }{bitmap}} - -Works exactly like \helpref{SelectObjectAsSource}{wxmemorydcselectobjectassource} but -this is the function you should use when you select a bitmap because you want to modify -it, e.g. drawing on this DC. - -Using \helpref{SelectObjectAsSource}{wxmemorydcselectobjectassource} when modifying -the bitmap may incurr some problems related to wxBitmap being a reference counted object -(see \helpref{reference counting overview}{trefcount}). - -Also, before using the updated bitmap data, make sure to select it out of context first -(for example by selecting wxNullBitmap into the device context). - -\wxheading{See also} - -\helpref{wxDC::DrawBitmap}{wxdcdrawbitmap} - - - -\membersection{wxMemoryDC::SelectObjectAsSource}\label{wxmemorydcselectobjectassource} - -\func{void}{SelectObjectAsSource}{\param{const wxBitmap\& }{bitmap}} - -Selects the given bitmap into the device context, to use as the memory -bitmap. Selecting the bitmap into a memory DC allows you to draw into -the DC (and therefore the bitmap) and also to use \helpref{wxDC::Blit}{wxdcblit} to copy -the bitmap to a window. For this purpose, you may find \helpref{wxDC::DrawIcon}{wxdcdrawicon}\rtfsp -easier to use instead. - -If the argument is wxNullBitmap (or some other uninitialised wxBitmap) the current bitmap is -selected out of the device context, and the original bitmap restored, allowing the current bitmap to -be destroyed safely. - -\wxheading{See also} - -\helpref{wxMemoryDC::SelectObject}{wxmemorydcselectobject} - diff --git a/docs/latex/wx/menu.tex b/docs/latex/wx/menu.tex deleted file mode 100644 index 824d341009..0000000000 --- a/docs/latex/wx/menu.tex +++ /dev/null @@ -1,1236 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: menu.tex -%% Purpose: wxMenu documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMenu}}\label{wxmenu} - -A menu is a popup (or pull down) list of items, one of which may be -selected before the menu goes away (clicking elsewhere dismisses the -menu). Menus may be used to construct either menu bars or popup menus. - -A menu item has an integer ID associated with it which can be used to -identify the selection, or to change the menu item in some way. A menu item -with a special identifier $-1$ is a separator item and doesn't have an -associated command but just makes a separator line appear in the menu. - -{\bf NB:} Please note that {\it wxID\_ABOUT} and {\it wxID\_EXIT} are -predefined by wxWidgets and have a special meaning since entries -using these IDs will be taken out of the normal menus under MacOS X -and will be inserted into the system menu (following the appropriate -MacOS X interface guideline). On PalmOS {\it wxID\_EXIT} is disabled according -to Palm OS Companion guidelines. - -Menu items may be either normal items, check items or radio items. Normal items -don't have any special properties while the check items have a boolean flag -associated to them and they show a checkmark in the menu when the flag is set. -wxWidgets automatically toggles the flag value when the item is clicked and its -value may be retrieved using either \helpref{IsChecked}{wxmenuischecked} method -of wxMenu or wxMenuBar itself or by using -\helpref{wxEvent::IsChecked}{wxcommandeventischecked} when you get the menu -notification for the item in question. - -The radio items are similar to the check items except that all the other items -in the same radio group are unchecked when a radio item is checked. The radio -group is formed by a contiguous range of radio items, i.e. it starts at the -first item of this kind and ends with the first item of a different kind (or -the end of the menu). Notice that because the radio groups are defined in terms -of the item positions inserting or removing the items in the menu containing -the radio items risks to not work correctly. Finally note that radio items -are not supported under Motif. - -\wxheading{Allocation strategy} - -All menus except the popup ones must be created on the heap. All menus -attached to a menubar or to another menu will be deleted by their parent when -it is deleted. As the frame menubar is deleted by the frame itself, it means -that normally all menus used are deleted automatically. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/menu.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -If the menu is part of a menubar, then \helpref{wxMenuBar}{wxmenubar} event processing is used. - -With a popup menu, there is a variety of ways to handle a menu selection event -(wxEVT\_COMMAND\_MENU\_SELECTED). - -\begin{enumerate}\itemsep=0pt -\item Derive a new class from wxMenu and define event table entries using the EVT\_MENU macro. -\item Set a new event handler for wxMenu, using an object whose class has EVT\_MENU entries. -\item Provide EVT\_MENU handlers in the window which pops up the menu, or in an ancestor of -this window. -\end{enumerate} - -\wxheading{See also} - -\helpref{wxMenuBar}{wxmenubar}, \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxFileHistory (most recently used files menu)}{wxfilehistory} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMenu::wxMenu}\label{wxmenuctor} - -\func{}{wxMenu}{\param{const wxString\& }{title = ""}, \param{long}{ style = 0}} - -Constructs a wxMenu object. - -\wxheading{Parameters} - -\docparam{title}{A title for the popup menu: the empty string denotes no title.} - -\docparam{style}{If set to {\tt wxMENU\_TEAROFF}, the menu will be detachable (wxGTK only).} - -\func{}{wxMenu}{\param{long}{ style}} - -Constructs a wxMenu object. - -\wxheading{Parameters} - -\docparam{style}{If set to {\tt wxMENU\_TEAROFF}, the menu will be detachable (wxGTK only).} - - -\membersection{wxMenu::\destruct{wxMenu}}\label{wxmenudtor} - -\func{}{\destruct{wxMenu}}{\void} - -Destructor, destroying the menu. - -Note: under Motif, a popup menu must have a valid parent (the window -it was last popped up on) when being destroyed. Therefore, make sure -you delete or re-use the popup menu {\it before} destroying the -parent window. Re-use in this context means popping up the menu on -a different window from last time, which causes an implicit destruction -and recreation of internal data structures. - - -\membersection{wxMenu::Append}\label{wxmenuappend} - -\func{wxMenuItem*}{Append}{\param{int}{ id}, \param{const wxString\& }{ item = ""}, \param{const wxString\& }{helpString = ""},\rtfsp -\param{wxItemKind}{ kind = wxITEM\_NORMAL}} - -Adds a string item to the end of the menu. - -\func{wxMenuItem*}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp -\param{const wxString\& }{helpString = ""}} - -Adds a pull-right submenu to the end of the menu. Append the submenu to the parent -menu {\it after} you have added your menu items, or accelerators may not be -registered properly. - -\func{wxMenuItem*}{Append}{\param{wxMenuItem*}{ menuItem}} - -Adds a menu item object. This is the most generic variant of Append() method -because it may be used for both items (including separators) and submenus and -because you can also specify various extra properties of a menu item this way, -such as bitmaps and fonts. - -\wxheading{Parameters} - -\docparam{id}{The menu command identifier.} - -\docparam{item}{The string to appear on the menu item.} - -\docparam{menu}{Pull-right submenu.} - -\docparam{kind}{May be {\tt wxITEM\_SEPARATOR}, {\tt wxITEM\_NORMAL}, -{\tt wxITEM\_CHECK} or {\tt wxITEM\_RADIO}} - -\docparam{helpString}{An optional help string associated with the item. -By default, the handler for the wxEVT\_MENU\_HIGHLIGHT event displays -this string in the status line.} - -\docparam{menuItem}{A menuitem object. It will be owned by the wxMenu object after this function -is called, so do not delete it yourself.} - -\wxheading{Remarks} - -This command can be used after the menu has been shown, as well as on initial -creation of a menu or menubar. - -The {\it item} string for the normal menu items (not submenus or separators) -may include the accelerator which can be used to activate the menu item -from keyboard. The accelerator string follows the item label and is separated -from it by a {\tt TAB} character ({\tt '$\backslash$t'}). Its general syntax is -any combination of {\tt "CTRL"}, {\tt "ALT"} and {\tt "SHIFT"} strings (case -doesn't matter) separated by either {\tt '-'} or {\tt '+'} characters and -followed by the accelerator itself. The accelerator may be any alphanumeric -character, any function key (from {\tt F1} to {\tt F12}) or one of the special -characters listed in the table below (again, case doesn't matter): - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt DEL} or {\tt DELETE}}{Delete key} -\twocolitem{{\tt INS} or {\tt INSERT}}{Insert key} -\twocolitem{{\tt ENTER} or {\tt RETURN}}{Enter key} -\twocolitem{{\tt PGUP}}{PageUp key} -\twocolitem{{\tt PGDN}}{PageDown key} -\twocolitem{{\tt LEFT}}{Left cursor arrow key} -\twocolitem{{\tt RIGHT}}{Right cursor arrow key} -\twocolitem{{\tt UP}}{Up cursor arrow key} -\twocolitem{{\tt DOWN}}{Down cursor arrow key} -\twocolitem{{\tt HOME}}{Home key} -\twocolitem{{\tt END}}{End key} -\twocolitem{{\tt SPACE}}{Space} -\twocolitem{{\tt TAB}}{Tab key} -\twocolitem{{\tt ESC} or {\tt ESCAPE}}{Escape key (Windows only)} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator},\rtfsp -\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem},\rtfsp -\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem},\rtfsp -\helpref{wxMenu::AppendSubMenu}{wxmenuappendsubmenu},\rtfsp -\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp -\helpref{wxMenu::SetLabel}{wxmenusetlabel}, \helpref{wxMenu::GetHelpString}{wxmenugethelpstring},\rtfsp -\helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenuItem}{wxmenuitem} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods: - -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Append(id, string, helpStr="", checkable=false)}}{} -\twocolitem{{\bf AppendMenu(id, string, aMenu, helpStr="")}}{} -\twocolitem{{\bf AppendItem(aMenuItem)}}{} -\end{twocollist}} -} - - -\membersection{wxMenu::AppendCheckItem}\label{wxmenuappendcheckitem} - -\func{wxMenuItem*}{AppendCheckItem}{\param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Adds a checkable item to the end of the menu. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend},\rtfsp -\helpref{wxMenu::InsertCheckItem}{wxmenuinsertcheckitem} - - -\membersection{wxMenu::AppendRadioItem}\label{wxmenuappendradioitem} - -\func{wxMenuItem*}{AppendRadioItem}{\param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Adds a radio item to the end of the menu. All consequent radio items form a -group and when an item in the group is checked, all the others are -automatically unchecked. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend},\rtfsp -\helpref{wxMenu::InsertRadioItem}{wxmenuinsertradioitem} - - -\membersection{wxMenu::AppendSeparator}\label{wxmenuappendseparator} - -\func{wxMenuItem*}{AppendSeparator}{\void} - -Adds a separator to the end of the menu. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend},\rtfsp -\helpref{wxMenu::InsertSeparator}{wxmenuinsertseparator} - - -\membersection{wxMenu::AppendSubMenu}\label{wxmenuappendsubmenu} - -\func{wxMenuItem *}{AppendSubMenu}{\param{wxMenu *}{submenu}, \param{const wxString\& }{text}, \param{const wxString\& }{help = wxEmptyString}} - -Adds the given \arg{submenu} to this menu. \arg{text} is the text shown in the -menu for it and \arg{help} is the help string shown in the status bar when the -submenu item is selected. - - -\membersection{wxMenu::Break}\label{wxmenubreak} - -\func{void}{Break}{\void} - -Inserts a break in a menu, causing the next appended item to appear in a new column. - - -\membersection{wxMenu::Check}\label{wxmenucheck} - -\func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}} - -Checks or unchecks the menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{check}{If true, the item will be checked, otherwise it will be unchecked.} - -\wxheading{See also} - -\helpref{wxMenu::IsChecked}{wxmenuischecked} - - -\membersection{wxMenu::Delete}\label{wxmenudelete} - -\func{void}{Delete}{\param{int }{id}} - -\func{void}{Delete}{\param{wxMenuItem *}{item}} - -Deletes the menu item from the menu. If the item is a submenu, it will -{\bf not} be deleted. Use \helpref{Destroy}{wxmenudestroy} if you want to -delete a submenu. - -\wxheading{Parameters} - -\docparam{id}{Id of the menu item to be deleted.} - -\docparam{item}{Menu item to be deleted.} - -\wxheading{See also} - -\helpref{wxMenu::FindItem}{wxmenufinditem},\rtfsp -\helpref{wxMenu::Destroy}{wxmenudestroy},\rtfsp -\helpref{wxMenu::Remove}{wxmenuremove} - - -\membersection{wxMenu::Destroy}\label{wxmenudestroy} - -\func{void}{Destroy}{\param{int }{id}} - -\func{void}{Destroy}{\param{wxMenuItem *}{item}} - -Deletes the menu item from the menu. If the item is a submenu, it will -be deleted. Use \helpref{Remove}{wxmenuremove} if you want to keep the submenu -(for example, to reuse it later). - -\wxheading{Parameters} - -\docparam{id}{Id of the menu item to be deleted.} - -\docparam{item}{Menu item to be deleted.} - -\wxheading{See also} - -\helpref{wxMenu::FindItem}{wxmenufinditem},\rtfsp -\helpref{wxMenu::Deletes}{wxmenudelete},\rtfsp -\helpref{wxMenu::Remove}{wxmenuremove} - - -\membersection{wxMenu::Enable}\label{wxmenuenable} - -\func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}} - -Enables or disables (greys out) a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{enable}{true to enable the menu item, false to disable it.} - -\wxheading{See also} - -\helpref{wxMenu::IsEnabled}{wxmenuisenabled} - - -\membersection{wxMenu::FindItem}\label{wxmenufinditem} - -\constfunc{int}{FindItem}{\param{const wxString\& }{itemString}} - -Finds the menu item id for a menu item string. - -\constfunc{wxMenuItem *}{FindItem}{\param{int}{ id}, \param{wxMenu **}{menu = NULL}} - -Finds the menu item object associated with the given menu item identifier and, -optionally, the (sub)menu it belongs to. - -\perlnote{In wxPerl this method takes just the {\tt id} parameter; -in scalar context it returns the associated {\tt Wx::MenuItem}, in list -context it returns a 2-element list {\tt ( item, submenu )}} - -\wxheading{Parameters} - -\docparam{itemString}{Menu item string to find.} - -\docparam{id}{Menu item identifier.} - -\docparam{menu}{If the pointer is not NULL, it will be filled with the item's -parent menu (if the item was found)} - -\wxheading{Return value} - -First form: menu item identifier, or {\tt wxNOT\_FOUND} if none is found. - -Second form: returns the menu item object, or NULL if it is not found. - -\wxheading{Remarks} - -Any special menu codes are stripped out of source and target strings -before matching. - -\pythonnote{The name of this method in wxPython is {\tt FindItemById} -and it does not support the second parameter.} - - -\membersection{wxMenu::FindItemByPosition}\label{wxmenufinditembyposition} - -\constfunc{wxMenuItem*}{FindItemByPosition}{\param{size\_t }{position}} - -Returns the wxMenuItem given a position in the menu. - - -\membersection{wxMenu::GetHelpString}\label{wxmenugethelpstring} - -\constfunc{wxString}{GetHelpString}{\param{int}{ id}} - -Returns the help string associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The help string, or the empty string if there is no help string or the -item was not found. - -\wxheading{See also} - -\helpref{wxMenu::SetHelpString}{wxmenusethelpstring}, \helpref{wxMenu::Append}{wxmenuappend} - - -\membersection{wxMenu::GetLabel}\label{wxmenugetlabel} - -\constfunc{wxString}{GetLabel}{\param{int}{ id}} - -Returns a menu item label. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The item label, or the empty string if the item was not found. - -\wxheading{See also} - -\helpref{wxMenu::GetLabelText}{wxmenugetlabeltext}, \helpref{wxMenu::SetLabel}{wxmenusetlabel} - - -\membersection{wxMenu::GetLabelText}\label{wxmenugetlabeltext} - -\constfunc{wxString}{GetLabelText}{\param{int}{ id}} - -Returns a menu item label, without any of the original mnemonics and accelerators. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The item label, or the empty string if the item was not found. - -\wxheading{See also} - -\helpref{wxMenu::GetLabel}{wxmenugetlabel}, \helpref{wxMenu::SetLabel}{wxmenusetlabel} - -\membersection{wxMenu::GetMenuItemCount}\label{wxmenugetmenuitemcount} - -\constfunc{size\_t}{GetMenuItemCount}{\void} - -Returns the number of items in the menu. - - -\membersection{wxMenu::GetMenuItems}\label{wxmenugetmenuitems} - -\constfunc{wxMenuItemList\&}{GetMenuItems}{\void} - -Returns the list of items in the menu. wxMenuItemList is a pseudo-template -list class containing wxMenuItem pointers, see \helpref{wxList}{wxlist}. - - -\membersection{wxMenu::GetTitle}\label{wxmenugettitle} - -\constfunc{wxString}{GetTitle}{\void} - -Returns the title of the menu. - -\wxheading{Remarks} - -This is relevant only to popup menus, use -\helpref{wxMenuBar::GetMenuLabel}{wxmenubargetmenulabel} for the menus in the -menubar. - -\wxheading{See also} - -\helpref{wxMenu::SetTitle}{wxmenusettitle} - - -\membersection{wxMenu::Insert}\label{wxmenuinsert} - -\func{wxMenuItem*}{Insert}{\param{size\_t }{pos}, \param{wxMenuItem *}{item}} - -\func{wxMenuItem*}{Insert}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp -\param{const wxString\& }{ item = ""}, \param{const wxString\& }{helpString = ""},\rtfsp -\param{wxItemKind}{ kind = wxITEM\_NORMAL}} - -Inserts the given {\it item} before the position {\it pos}. Inserting the item -at position \helpref{GetMenuItemCount}{wxmenugetmenuitemcount} is the same -as appending it. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend},\rtfsp -\helpref{wxMenu::Prepend}{wxmenuprepend} - - -\membersection{wxMenu::InsertCheckItem}\label{wxmenuinsertcheckitem} - -\func{wxMenuItem*}{InsertCheckItem}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Inserts a checkable item at the given position. - -\wxheading{See also} - -\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp -\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem} - - -\membersection{wxMenu::InsertRadioItem}\label{wxmenuinsertradioitem} - -\func{wxMenuItem*}{InsertRadioItem}{\param{size\_t }{pos}, \param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Inserts a radio item at the given position. - -\wxheading{See also} - -\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp -\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem} - - -\membersection{wxMenu::InsertSeparator}\label{wxmenuinsertseparator} - -\func{wxMenuItem*}{InsertSeparator}{\param{size\_t }{pos}} - -Inserts a separator at the given position. - -\wxheading{See also} - -\helpref{wxMenu::Insert}{wxmenuinsert},\rtfsp -\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator} - - -\membersection{wxMenu::IsChecked}\label{wxmenuischecked} - -\constfunc{bool}{IsChecked}{\param{int}{ id}} - -Determines whether a menu item is checked. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -true if the menu item is checked, false otherwise. - -\wxheading{See also} - -\helpref{wxMenu::Check}{wxmenucheck} - - -\membersection{wxMenu::IsEnabled}\label{wxmenuisenabled} - -\constfunc{bool}{IsEnabled}{\param{int}{ id}} - -Determines whether a menu item is enabled. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -true if the menu item is enabled, false otherwise. - -\wxheading{See also} - -\helpref{wxMenu::Enable}{wxmenuenable} - - -\membersection{wxMenu::Prepend}\label{wxmenuprepend} - -\func{wxMenuItem*}{Prepend}{\param{wxMenuItem *}{item}} - -\func{wxMenuItem*}{Prepend}{\param{int}{ id},\rtfsp -\param{const wxString\& }{ item = ""}, \param{const wxString\& }{helpString = ""},\rtfsp -\param{wxItemKind}{ kind = wxITEM\_NORMAL}} - -Inserts the given {\it item} at position $0$, i.e. before all the other -existing items. - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend},\rtfsp -\helpref{wxMenu::Insert}{wxmenuinsert} - - -\membersection{wxMenu::PrependCheckItem}\label{wxmenuprependcheckitem} - -\func{wxMenuItem*}{PrependCheckItem}{\param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Inserts a checkable item at position $0$. - -\wxheading{See also} - -\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp -\helpref{wxMenu::AppendCheckItem}{wxmenuappendcheckitem} - - -\membersection{wxMenu::PrependRadioItem}\label{wxmenuprependradioitem} - -\func{wxMenuItem*}{PrependRadioItem}{\param{int}{ id},\rtfsp -\param{const wxString\& }{ item}, \param{const wxString\& }{helpString = ""}} - -Inserts a radio item at position $0$. - -\wxheading{See also} - -\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp -\helpref{wxMenu::AppendRadioItem}{wxmenuappendradioitem} - - -\membersection{wxMenu::PrependSeparator}\label{wxmenuprependseparator} - -\func{wxMenuItem*}{PrependSeparator}{\void} - -Inserts a separator at position $0$. - -\wxheading{See also} - -\helpref{wxMenu::Prepend}{wxmenuprepend},\rtfsp -\helpref{wxMenu::AppendSeparator}{wxmenuappendseparator} - - -\membersection{wxMenu::Remove}\label{wxmenuremove} - -\func{wxMenuItem *}{Remove}{\param{int }{id}} - -\func{wxMenuItem *}{Remove}{\param{wxMenuItem *}{item}} - -Removes the menu item from the menu but doesn't delete the associated C++ -object. This allows to reuse the same item later by adding it back to the menu -(especially useful with submenus). - -\wxheading{Parameters} - -\docparam{id}{The identifier of the menu item to remove.} - -\docparam{item}{The menu item to remove.} - -\wxheading{Return value} - -The item which was detached from the menu. - - -\membersection{wxMenu::SetHelpString}\label{wxmenusethelpstring} - -\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}} - -Sets an item's help string. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{helpString}{The help string to set.} - -\wxheading{See also} - -\helpref{wxMenu::GetHelpString}{wxmenugethelpstring} - - -\membersection{wxMenu::SetLabel}\label{wxmenusetlabel} - -\func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}} - -Sets the label of a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{label}{The menu item label to set.} - -\wxheading{See also} - -\helpref{wxMenu::Append}{wxmenuappend}, \helpref{wxMenu::GetLabel}{wxmenugetlabel} - - -\membersection{wxMenu::SetTitle}\label{wxmenusettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Sets the title of the menu. - -\wxheading{Parameters} - -\docparam{title}{The title to set.} - -\wxheading{Remarks} - -This is relevant only to popup menus, use -\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop} for the menus in the -menubar. - -\wxheading{See also} - -\helpref{wxMenu::GetTitle}{wxmenugettitle} - - -\membersection{wxMenu::UpdateUI}\label{wxmenuupdateui} - -\constfunc{void}{UpdateUI}{\param{wxEvtHandler*}{ source = NULL}} - -Sends events to {\it source} (or owning window if NULL) to update the -menu UI. This is called just before the menu is popped up with \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu}, but -the application may call it at other times if required. - -\wxheading{See also} - -\helpref{wxUpdateUIEvent}{wxupdateuievent} - -\section{\class{wxMenuBar}}\label{wxmenubar} - -A menu bar is a series of menus accessible from the top of a frame. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/menu.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To respond to a menu selection, provide a handler for EVT\_MENU, in the frame -that contains the menu bar. If you have a toolbar which uses the same identifiers -as your EVT\_MENU entries, events from the toolbar will also be processed by your -EVT\_MENU event handlers. - -{\bf Tip:} under Windows, if you discover that menu shortcuts (for example, Alt-F to show the file menu) -are not working, check any EVT\_CHAR events you are handling in child windows. -If you are not calling {\tt event.Skip()} for events that you don't process in these event handlers, -menu shortcuts may cease to work. - -\wxheading{See also} - -\helpref{wxMenu}{wxmenu}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMenuBar::wxMenuBar}\label{wxmenubarctor} - -\func{}{wxMenuBar}{\param{long }{style = 0}} - -Default constructor. - -\func{}{wxMenuBar}{\param{size\_t}{ n}, \param{wxMenu*}{ menus[]}, \param{const wxString }{titles[]}, \param{long }{style = 0}} - -Construct a menu bar from arrays of menus and titles. - -\wxheading{Parameters} - -\docparam{n}{The number of menus.} - -\docparam{menus}{An array of menus. Do not use this array again - it now belongs to the -menu bar.} - -\docparam{titles}{An array of title strings. Deallocate this array after creating the menu bar.} - -\docparam{style}{If {\tt wxMB\_DOCKABLE} the menu bar can be detached (wxGTK only).} - -\pythonnote{Only the default constructor is supported in wxPython. -Use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.} - -\perlnote{wxPerl only supports the first constructor: -use \helpref{wxMenuBar::Append}{wxmenubarappend} instead.} - - -\membersection{wxMenuBar::\destruct{wxMenuBar}}\label{wxmenubardtor} - -\func{void}{\destruct{wxMenuBar}}{\void} - -Destructor, destroying the menu bar and removing it from the parent frame (if any). - - -\membersection{wxMenuBar::Append}\label{wxmenubarappend} - -\func{bool}{Append}{\param{wxMenu *}{menu}, \param{const wxString\& }{title}} - -Adds the item to the end of the menu bar. - -\wxheading{Parameters} - -\docparam{menu}{The menu to add. Do not deallocate this menu after calling {\bf Append}.} - -\docparam{title}{The title of the menu.} - -\wxheading{Return value} - -true on success, false if an error occurred. - -\wxheading{See also} - -\helpref{wxMenuBar::Insert}{wxmenubarinsert} - - -\membersection{wxMenuBar::Check}\label{wxmenubarcheck} - -\func{void}{Check}{\param{int}{ id}, \param{const bool}{ check}} - -Checks or unchecks a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{check}{If true, checks the menu item, otherwise the item is unchecked.} - -\wxheading{Remarks} - -Only use this when the menu bar has been associated -with a frame; otherwise, use the wxMenu equivalent call. - - -\membersection{wxMenuBar::Enable}\label{wxmenubarenable} - -\func{void}{Enable}{\param{int}{ id}, \param{const bool}{ enable}} - -Enables or disables (greys out) a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\docparam{enable}{true to enable the item, false to disable it.} - -\wxheading{Remarks} - -Only use this when the menu bar has been -associated with a frame; otherwise, use the wxMenu equivalent call. - - -\membersection{wxMenuBar::EnableTop}\label{wxmenubarenabletop} - -\func{void}{EnableTop}{\param{int}{ pos}, \param{const bool}{ enable}} - -Enables or disables a whole menu. - -\wxheading{Parameters} - -\docparam{pos}{The position of the menu, starting from zero.} - -\docparam{enable}{true to enable the menu, false to disable it.} - -\wxheading{Remarks} - -Only use this when the menu bar has been -associated with a frame. - - -\membersection{wxMenuBar::FindMenu}\label{wxmenubarfindmenu} - -\constfunc{int}{FindMenu}{\param{const wxString\& }{title}} - -Returns the index of the menu with the given {\it title} or {\tt wxNOT\_FOUND} if no -such menu exists in this menubar. The {\it title} parameter may specify either -the menu title (with accelerator characters, i.e. {\tt "\&File"}) or just the -menu label ({\tt "File"}) indifferently. - - -\membersection{wxMenuBar::FindMenuItem}\label{wxmenubarfindmenuitem} - -\constfunc{int}{FindMenuItem}{\param{const wxString\& }{menuString}, \param{const wxString\& }{itemString}} - -Finds the menu item id for a menu name/menu item string pair. - -\wxheading{Parameters} - -\docparam{menuString}{Menu title to find.} - -\docparam{itemString}{Item to find.} - -\wxheading{Return value} - -The menu item identifier, or {\tt wxNOT\_FOUND} if none was found. - -\wxheading{Remarks} - -Any special menu codes are stripped out of source and target strings -before matching. - - -\membersection{wxMenuBar::FindItem}\label{wxmenubarfinditem} - -\constfunc{wxMenuItem *}{FindItem}{\param{int}{ id}, \param{wxMenu}{ **menu = NULL}} - -Finds the menu item object associated with the given menu item identifier. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\docparam{menu}{If not NULL, menu will get set to the associated menu.} - -\wxheading{Return value} - -The found menu item object, or NULL if one was not found. - - -\membersection{wxMenuBar::GetHelpString}\label{wxmenubargethelpstring} - -\constfunc{wxString}{GetHelpString}{\param{int}{ id}} - -Gets the help string associated with the menu item identifier. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The help string, or the empty string if there was no help string or the menu item -was not found. - -\wxheading{See also} - -\helpref{wxMenuBar::SetHelpString}{wxmenubarsethelpstring} - - -\membersection{wxMenuBar::GetLabel}\label{wxmenubargetlabel} - -\constfunc{wxString}{GetLabel}{\param{int}{ id}} - -Gets the label associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -The menu item label, or the empty string if the item was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - - -\membersection{wxMenuBar::GetLabelTop}\label{wxmenubargetlabeltop} - -\constfunc{wxString}{GetLabelTop}{\param{int}{ pos}} - -Returns the label of a top-level menu. Note that the returned string does not -include the accelerator characters which could have been specified in the menu -title string during its construction. - -\wxheading{Parameters} - -\docparam{pos}{Position of the menu on the menu bar, starting from zero.} - -\wxheading{Return value} - -The menu label, or the empty string if the menu was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -This function is deprecated in favour of \helpref{GetMenuLabel}{wxmenubargetmenulabel} and \helpref{GetMenuLabelText}{wxmenubargetmenulabeltext}. - -\wxheading{See also} - -\helpref{wxMenuBar::SetLabelTop}{wxmenubarsetlabeltop} - - -\membersection{wxMenuBar::GetMenu}\label{wxmenubargetmenu} - -\constfunc{wxMenu*}{GetMenu}{\param{int}{ menuIndex}} - -Returns the menu at {\it menuIndex} (zero-based). - - -\membersection{wxMenuBar::GetMenuCount}\label{wxmenubargetmenucount} - -\constfunc{size\_t}{GetMenuCount}{\void} - -Returns the number of menus in this menubar. - - -\membersection{wxMenuBar::GetMenuLabel}\label{wxmenubargetmenulabel} - -\constfunc{wxString}{GetMenuLabel}{\param{int}{ pos}} - -Returns the label of a top-level menu. Note that the returned string -includes the accelerator characters that have been specified in the menu -title string during its construction. - -\wxheading{Parameters} - -\docparam{pos}{Position of the menu on the menu bar, starting from zero.} - -\wxheading{Return value} - -The menu label, or the empty string if the menu was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetMenuLabelText}{wxmenubargetmenulabeltext}, \helpref{wxMenuBar::SetMenuLabel}{wxmenubarsetmenulabel} - - -\membersection{wxMenuBar::GetMenuLabelText}\label{wxmenubargetmenulabeltext} - -\constfunc{wxString}{GetMenuLabelText}{\param{int}{ pos}} - -Returns the label of a top-level menu. Note that the returned string does not -include any accelerator characters that may have been specified in the menu -title string during its construction. - -\wxheading{Parameters} - -\docparam{pos}{Position of the menu on the menu bar, starting from zero.} - -\wxheading{Return value} - -The menu label, or the empty string if the menu was not found. - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetMenuLabel}{wxmenubargetmenulabel}, \helpref{wxMenuBar::SetMenuLabel}{wxmenubarsetmenulabel} - - -\membersection{wxMenuBar::Insert}\label{wxmenubarinsert} - -\func{bool}{Insert}{\param{size\_t }{pos}, \param{wxMenu *}{menu}, \param{const wxString\& }{title}} - -Inserts the menu at the given position into the menu bar. Inserting menu at -position $0$ will insert it in the very beginning of it, inserting at position -\helpref{GetMenuCount()}{wxmenubargetmenucount} is the same as calling -\helpref{Append()}{wxmenubarappend}. - -\wxheading{Parameters} - -\docparam{pos}{The position of the new menu in the menu bar} - -\docparam{menu}{The menu to add. wxMenuBar owns the menu and will free it.} - -\docparam{title}{The title of the menu.} - -\wxheading{Return value} - -true on success, false if an error occurred. - -\wxheading{See also} - -\helpref{wxMenuBar::Append}{wxmenubarappend} - - -\membersection{wxMenuBar::IsChecked}\label{wxmenubarischecked} - -\constfunc{bool}{IsChecked}{\param{int}{ id}} - -Determines whether an item is checked. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -true if the item was found and is checked, false otherwise. - - -\membersection{wxMenuBar::IsEnabled}\label{wxmenubarisenabled} - -\constfunc{bool}{IsEnabled}{\param{int}{ id}} - -Determines whether an item is enabled. - -\wxheading{Parameters} - -\docparam{id}{The menu item identifier.} - -\wxheading{Return value} - -true if the item was found and is enabled, false otherwise. - - -\membersection{wxMenuBar::Refresh}\label{wxmenubarrefresh} - -\func{void}{Refresh}{\void} - -Redraw the menu bar - - -\membersection{wxMenuBar::Remove}\label{wxmenubarremove} - -\func{wxMenu *}{Remove}{\param{size\_t }{pos}} - -Removes the menu from the menu bar and returns the menu object - the caller is -responsible for deleting it. This function may be used together with -\helpref{wxMenuBar::Insert}{wxmenubarinsert} to change the menubar -dynamically. - -\wxheading{See also} - -\helpref{wxMenuBar::Replace}{wxmenubarreplace} - - -\membersection{wxMenuBar::Replace}\label{wxmenubarreplace} - -\func{wxMenu *}{Replace}{\param{size\_t }{pos}, \param{wxMenu *}{menu}, \param{const wxString\& }{title}} - -Replaces the menu at the given position with another one. - -\wxheading{Parameters} - -\docparam{pos}{The position of the new menu in the menu bar} - -\docparam{menu}{The menu to add.} - -\docparam{title}{The title of the menu.} - -\wxheading{Return value} - -The menu which was previously at position {\it pos}. The caller is -responsible for deleting it. - -\wxheading{See also} - -\helpref{wxMenuBar::Insert}{wxmenubarinsert},\rtfsp -\helpref{wxMenuBar::Remove}{wxmenubarremove} - - -\membersection{wxMenuBar::SetHelpString}\label{wxmenubarsethelpstring} - -\func{void}{SetHelpString}{\param{int}{ id}, \param{const wxString\& }{helpString}} - -Sets the help string associated with a menu item. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\docparam{helpString}{Help string to associate with the menu item.} - -\wxheading{See also} - -\helpref{wxMenuBar::GetHelpString}{wxmenubargethelpstring} - - -\membersection{wxMenuBar::SetLabel}\label{wxmenubarsetlabel} - -\func{void}{SetLabel}{\param{int}{ id}, \param{const wxString\& }{label}} - -Sets the label of a menu item. - -\wxheading{Parameters} - -\docparam{id}{Menu item identifier.} - -\docparam{label}{Menu item label.} - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetLabel}{wxmenubargetlabel} - - -\membersection{wxMenuBar::SetLabelTop}\label{wxmenubarsetlabeltop} - -\func{void}{SetLabelTop}{\param{int}{ pos}, \param{const wxString\& }{label}} - -Sets the label of a top-level menu. - -\wxheading{Parameters} - -\docparam{pos}{The position of a menu on the menu bar, starting from zero.} - -\docparam{label}{The menu label.} - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -This function has been deprecated in favour of \helpref{SetMenuLabel}{wxmenubarsetmenulabel}. - -\wxheading{See also} - -\helpref{wxMenuBar::GetLabelTop}{wxmenubargetlabeltop} - - -\membersection{wxMenuBar::SetMenuLabel}\label{wxmenubarsetmenulabel} - -\func{void}{SetMenuLabel}{\param{int}{ pos}, \param{const wxString\& }{label}} - -Sets the label of a top-level menu. - -\wxheading{Parameters} - -\docparam{pos}{The position of a menu on the menu bar, starting from zero.} - -\docparam{label}{The menu label.} - -\wxheading{Remarks} - -Use only after the menubar has been associated with a frame. - -\wxheading{See also} - -\helpref{wxMenuBar::GetMenuLabel}{wxmenubargetmenulabel}, \helpref{wxMenuBar::GetMenuLabelText}{wxmenubargetmenulabeltext} - diff --git a/docs/latex/wx/menuevt.tex b/docs/latex/wx/menuevt.tex deleted file mode 100644 index a6d1d45d36..0000000000 --- a/docs/latex/wx/menuevt.tex +++ /dev/null @@ -1,82 +0,0 @@ -\section{\class{wxMenuEvent}}\label{wxmenuevent} - -This class is used for a variety of menu-related events. Note that -these do not include menu command events, which are -handled using \helpref{wxCommandEvent}{wxcommandevent} objects. - -The default handler for wxEVT\_MENU\_HIGHLIGHT displays help -text in the first field of the status bar. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a menu event, use these event handler macros to direct input to member -functions that take a wxMenuEvent argument. They can only be processed by -a menubar's frame. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MENU\_OPEN(func)}}{A menu is about to be opened. On Windows, -this is only sent once for each navigation of the menubar (up until all menus have closed).} -\twocolitem{{\bf EVT\_MENU\_CLOSE(func)}}{A menu has been just closed.} -\twocolitem{{\bf EVT\_MENU\_HIGHLIGHT(id, func)}}{The menu item with the -specified id has been highlighted: used to show help prompts in the status bar -by \helpref{wxFrame}{wxframe}} -\twocolitem{{\bf EVT\_MENU\_HIGHLIGHT\_ALL(func)}}{A menu item has been -highlighted, i.e. the currently selected menu item has changed.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Command events}{wxcommandevent},\\ -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMenuEvent::wxMenuEvent}\label{wxmenueventctor} - -\func{}{wxMenuEvent}{\param{WXTYPE }{id = 0}, \param{int }{id = 0}, \param{wxMenu* }{menu = NULL}} - -Constructor. - - -\membersection{wxMenuEvent::GetMenu}\label{wxmenueventgetmenu} - -\constfunc{wxMenu *}{GetMenu}{\void} - -Returns the menu which is being opened or closed. This method should only be -used with the \texttt{OPEN} and \texttt{CLOSE} events and even for them the -returned pointer may be \NULL in some ports. - - -\membersection{wxMenuEvent::GetMenuId}\label{wxmenueventgetmenuid} - -\constfunc{int}{GetMenuId}{\void} - -Returns the menu identifier associated with the event. This method should be -only used with the {\tt HIGHLIGHT} events. - - -\membersection{wxMenuEvent::IsPopup}\label{wxmenueventispopup} - -\constfunc{bool}{IsPopup}{\void} - -Returns {\tt true} if the menu which is being opened or closed is a popup menu, -{\tt false} if it is a normal one. - -This method should only be used with the {\tt OPEN} and {\tt CLOSE} events. - - diff --git a/docs/latex/wx/menuitem.tex b/docs/latex/wx/menuitem.tex deleted file mode 100644 index 430d5e4e24..0000000000 --- a/docs/latex/wx/menuitem.tex +++ /dev/null @@ -1,413 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: menuitem.tex -%% Purpose: wxMenuItem documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMenuItem}}\label{wxmenuitem} - -A menu item represents an item in a menu. Note that you usually don't have to -deal with it directly as \helpref{wxMenu}{wxmenu} methods usually construct an -object of this class for you. - -Also please note that the methods related to fonts and bitmaps are currently -only implemented for Windows and GTK+. - -\wxheading{Derived from} - -% add wxOwnerDrawn once it is documented -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/menuitem.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxMenuBar}{wxmenubar}, \helpref{wxMenu}{wxmenu} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMenuItem::wxMenuItem}\label{wxmenuitemctor} - -\func{}{wxMenuItem}{\param{wxMenu*}{ parentMenu = NULL}, \param{int}{ id = wxID\_SEPARATOR}, - \param{const wxString\& }{text = ""}, \param{const wxString\& }{helpString = ""}, - \param{wxItemKind }{kind = wxITEM\_NORMAL}, \param{wxMenu*}{ subMenu = NULL}} - -Constructs a wxMenuItem object. - -Menu items can be standard, or ``stock menu items'', or custom. For the -standard menu items (such as commands to open a file, exit the program and so -on, see \helpref{stock items}{stockitems} for the full list) it is enough to -specify just the stock ID and leave \arg{text} and \arg{helpString} empty. In -fact, leaving at least \arg{text} empty for the stock menu items is strongly -recommended as they will have appearance and keyboard interface (including -standard accelerators) familiar to the user. - -For the custom (non-stock) menu items, \arg{text} must be specified and while -\arg{helpString} may be left empty, it's recommended to pass the item -description (which is automatically shown by the library in the status bar when -the menu item is selected) in this parameter. - -Finally note that you can e.g. use a stock menu label without using its stock -help string: - -\begin{verbatim} -// use all stock properties: -helpMenu->Append(wxID_ABOUT); - -// use the stock label and the stock accelerator but not the stock help string: -helpMenu->Append(wxID_ABOUT, wxEmptyString, wxT("My custom help string")); - -// use all stock properties except for the bitmap: -wxMenuItem *mymenu = new wxMenuItem(helpMenu, wxID_ABOUT); -mymenu->SetBitmap(wxArtProvider::GetBitmap(wxART_WARNING)); -helpMenu->Append(mymenu); -\end{verbatim} - -that is, stock properties are set independently one from the other. - -\wxheading{Parameters} - -\docparam{parentMenu}{Menu that the menu item belongs to.} - -\docparam{id}{Identifier for this menu item, or wxID\_SEPARATOR to indicate a separator.} - -\docparam{text}{Text for the menu item, as shown on the menu. An accelerator -key can be specified using the ampersand '\&' character. In order to embed an -ampersand character in the menu item text, the ampersand must be doubled.} - -\docparam{helpString}{Optional help string that will be shown on the status bar.} - -\docparam{kind}{May be {\tt wxITEM\_SEPARATOR}, {\tt wxITEM\_NORMAL}, -{\tt wxITEM\_CHECK} or {\tt wxITEM\_RADIO}} - -\docparam{subMenu}{If non-NULL, indicates that the menu item is a submenu.} - - -\membersection{wxMenuItem::\destruct{wxMenuItem}}\label{wxmenuitemdtor} - -\func{}{\destruct{wxMenuItem}}{\void} - -Destructor. - - -\membersection{wxMenuItem::Check}\label{wxmenuitemcheck} - -\func{void}{Check}{\param{bool}{ check = true}} - -Checks or unchecks the menu item. - -Note that this only works when the item is already appended to a menu. - - -\membersection{wxMenuItem::Enable}\label{wxmenuitemenable} - -\func{void}{Enable}{\param{bool}{ enable = true}} - -Enables or disables the menu item. - - -\membersection{wxMenuItem::GetBackgroundColour}\label{wxmenuitemgetbackgroundcolour} - -\constfunc{wxColour\&}{GetBackgroundColour}{\void} - -Returns the background colour associated with the menu item (Windows only). - - -\membersection{wxMenuItem::GetBitmap}\label{wxmenuitemgetbitmap} - -\constfunc{wxBitmap\&}{GetBitmap}{\param{bool}{ checked = true}} - -Returns the checked or unchecked bitmap (Windows only). - - -\membersection{wxMenuItem::GetFont}\label{wxmenuitemgetfont} - -\constfunc{wxFont\&}{GetFont}{\void} - -Returns the font associated with the menu item (Windows only). - - -\membersection{wxMenuItem::GetHelp}\label{wxmenuitemgethelp} - -\constfunc{wxString}{GetHelp}{\void} - -Returns the help string associated with the menu item. - - -\membersection{wxMenuItem::GetId}\label{wxmenuitemgetid} - -\constfunc{int}{GetId}{\void} - -Returns the menu item identifier. - - -\membersection{wxMenuItem::GetItemLabel}\label{wxmenuitemgetitemlabel} - -\constfunc{wxString}{GetItemLabel}{\void} - -Returns the text associated with the menu item including any accelerator -characters that were passed to the constructor or SetItemLabel. - -\wxheading{See also} - -\helpref{GetItemLabelText}{wxmenuitemgetitemlabeltext}, -\helpref{GetLabelText}{wxmenuitemgetlabeltext} - - -\membersection{wxMenuItem::GetItemLabelText}\label{wxmenuitemgetitemlabeltext} - -\constfunc{wxString}{GetItemLabelText}{\void} - -Returns the text associated with the menu item, without any accelerator -characters. - -\wxheading{See also} - -\helpref{GetItemLabel}{wxmenuitemgetitemlabel}, -\helpref{GetLabelText}{wxmenuitemgetlabeltext} - - -\membersection{wxMenuItem::GetKind}\label{wxmenuitemgetkind} - -\constfunc{wxItemKind}{GetKind}{\void} - -Returns the item kind, one of {\tt wxITEM\_SEPARATOR}, {\tt wxITEM\_NORMAL}, -{\tt wxITEM\_CHECK} or {\tt wxITEM\_RADIO}. - - -\membersection{wxMenuItem::GetLabel}\label{wxmenuitemgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the text associated with the menu item without any accelerator -characters it might contain. - -This function is deprecated in favour of \helpref{GetItemLabelText}{wxmenuitemgetitemlabeltext}. - -\wxheading{See also} - -\helpref{GetText}{wxmenuitemgettext}, -\helpref{GetLabelFromText}{wxmenuitemgetlabelfromtext} - -\membersection{wxMenuItem::GetLabelText}\label{wxmenuitemgetlabeltext} - -\func{static wxString}{GetLabelText}{\param{const wxString\& }{text}} - -Strips all accelerator characters and mnemonics from the given {\it text}. -For example, - -\begin{verbatim} -wxMenuItem::GetLabelFromText("&Hello\tCtrl-H"); -\end{verbatim} - -will return just {\tt "Hello"}. - -\wxheading{See also} - -\helpref{GetItemLabelText}{wxmenuitemgetitemlabeltext}, -\helpref{GetItemLabel}{wxmenuitemgetitemlabel} - - -\membersection{wxMenuItem::GetLabelFromText}\label{wxmenuitemgetlabelfromtext} - -\func{static wxString}{GetLabelFromText}{\param{const wxString\& }{text}} - -Strips all accelerator characters and mnemonics from the given {\it text}. -For example, - -\begin{verbatim} -wxMenuItem::GetLabelFromText("&Hello\tCtrl-H"); -\end{verbatim} - -will return just {\tt "Hello"}. - -This function is deprecated; please use \helpref{wxMenuItem::GetLabelText}{wxmenuitemgetlabeltext} instead. - -\wxheading{See also} - -\helpref{GetText}{wxmenuitemgettext}, -\helpref{GetLabel}{wxmenuitemgetlabel} - - -\membersection{wxMenuItem::GetMarginWidth}\label{wxmenuitemgetmarginwidth} - -\constfunc{int}{GetMarginWidth}{\void} - -Gets the width of the menu item checkmark bitmap (Windows only). - - -\membersection{wxMenuItem::GetMenu}\label{wxmenuitemgetmenu} - -\constfunc{wxMenu*}{GetMenu}{\void} - -Returns the menu this menu item is in, or NULL if this menu item is not attached. - - -\membersection{wxMenuItem::GetName}\label{wxmenuitemgetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the text associated with the menu item. - -{\bf NB:} this function is deprecated, please use -\helpref{GetItemLabel}{wxmenuitemgetitemlabel} or \helpref{GetItemLabelText}{wxmenuitemgetitemlabeltext} -instead. - - -\membersection{wxMenuItem::GetText}\label{wxmenuitemgettext} - -\constfunc{wxString}{GetText}{\void} - -Returns the text associated with the menu item, such as it was passed to the -wxMenuItem constructor, i.e. with any accelerator characters it may contain. - -This function is deprecated in favour of \helpref{GetItemLabel}{wxmenuitemgetitemlabel}. - -\wxheading{See also} - -\helpref{GetLabel}{wxmenuitemgetlabel}, -\helpref{GetLabelFromText}{wxmenuitemgetlabelfromtext} - - -\membersection{wxMenuItem::GetSubMenu}\label{wxmenuitemgetsubmenu} - -\constfunc{wxMenu*}{GetSubMenu}{\void} - -Returns the submenu associated with the menu item, or NULL if there isn't one. - - -\membersection{wxMenuItem::GetTextColour}\label{wxmenuitemgettextcolour} - -\constfunc{wxColour\&}{GetTextColour}{\void} - -Returns the text colour associated with the menu item (Windows only). - - -\membersection{wxMenuItem::IsCheckable}\label{wxmenuitemischeckable} - -\constfunc{bool}{IsCheckable}{\void} - -Returns true if the item is checkable. - - -\membersection{wxMenuItem::IsChecked}\label{wxmenuitemischecked} - -\constfunc{bool}{IsChecked}{\void} - -Returns true if the item is checked. - - -\membersection{wxMenuItem::IsEnabled}\label{wxmenuitemisenabled} - -\constfunc{bool}{IsEnabled}{\void} - -Returns true if the item is enabled. - - -\membersection{wxMenuItem::IsSeparator}\label{wxmenuitemisseparator} - -\constfunc{bool}{IsSeparator}{\void} - -Returns true if the item is a separator. - - -\membersection{wxMenuItem::IsSubMenu}\label{wxmenuitemissubmenu} - -\constfunc{bool}{IsSubMenu}{\void} - -Returns true if the item is a submenu. - - -\membersection{wxMenuItem::SetBackgroundColour}\label{wxmenuitemsetbackgroundcolour} - -\constfunc{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets the background colour associated with the menu item (Windows only). - - -\membersection{wxMenuItem::SetBitmap}\label{wxmenuitemsetbitmap} - -\func{void}{SetBitmap}{\param{const wxBitmap\& }{bmp}} - -Sets the bitmap for the menu item (Windows and GTK+ only). It is -equivalent to \helpref{SetBitmaps}{wxmenuitemsetbitmaps}(bmp, wxNullBitmap). - - -\membersection{wxMenuItem::SetBitmaps}\label{wxmenuitemsetbitmaps} - -\func{void}{SetBitmaps}{\param{const wxBitmap\& }{checked}, - \param{const wxBitmap\& }{unchecked = wxNullBitmap}} - -Sets the checked/unchecked bitmaps for the menu item (Windows only). The first bitmap -is also used as the single bitmap for uncheckable menu items. - - -\membersection{wxMenuItem::SetFont}\label{wxmenuitemsetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font associated with the menu item (Windows only). - - -\membersection{wxMenuItem::SetHelp}\label{wxmenuitemsethelp} - -\func{void}{SetHelp}{\param{const wxString\& }{helpString}} - -Sets the help string. - - -\membersection{wxMenuItem::SetItemLabel}\label{wxmenuitemsetitemlabel} - -\func{void}{SetItemLabel}{\param{const wxString\& }{label}} - -Sets the label associated with the menu item. - - -\membersection{wxMenuItem::SetMarginWidth}\label{wxmenuitemsetmarginwidth} - -\constfunc{void}{SetMarginWidth}{\param{int}{ width}} - -Sets the width of the menu item checkmark bitmap (Windows only). - - -\membersection{wxMenuItem::SetMenu}\label{wxmenuitemsetmenu} - -\func{void}{SetMenu}{\param{const wxMenu*}{menu}} - -Sets the parent menu which will contain this menu item. - - -\membersection{wxMenuItem::SetSubMenu}\label{wxmenuitemsetsubmenu} - -\func{void}{SetSubMenu}{\param{const wxMenu*}{menu}} - -Sets the submenu of this menu item. - - -\membersection{wxMenuItem::SetText}\label{wxmenuitemsettext} - -\func{void}{SetText}{\param{const wxString\& }{text}} - -Sets the text associated with the menu item. - -This function is deprecated in favour of \helpref{SetItemLabel}{wxmenuitemsetitemlabel}. - - -\membersection{wxMenuItem::SetTextColour}\label{wxmenuitemsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colour}} - -Sets the text colour associated with the menu item (Windows only). - diff --git a/docs/latex/wx/metafile.tex b/docs/latex/wx/metafile.tex deleted file mode 100644 index 90d9181fe7..0000000000 --- a/docs/latex/wx/metafile.tex +++ /dev/null @@ -1,140 +0,0 @@ -\section{\class{wxMetafile}}\label{wxmetafile} - -A {\bf wxMetafile} represents the MS Windows metafile object, so metafile -operations have no effect in X. In wxWidgets, only sufficient functionality -has been provided for copying a graphic to the clipboard; this may be extended -in a future version. Presently, the only way of creating a metafile -is to use a wxMetafileDC. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/metafile.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxMetafileDC}{wxmetafiledc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMetafile::wxMetafile}\label{wxmetafilector} - -\func{}{wxMetafile}{\param{const wxString\& }{filename = ""}} - -Constructor. If a filename is given, the Windows disk metafile is -read in. Check whether this was performed successfully by -using the \helpref{wxMetafile:IsOk}{wxmetafileisok} member. - -\membersection{wxMetafile::\destruct{wxMetafile}}\label{wxmetafiledtor} - -\func{}{\destruct{wxMetafile}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\membersection{wxMetafile::IsOk}\label{wxmetafileisok} - -\func{bool}{Ok}{\void} - -Returns true if the metafile is valid. - -\membersection{wxMetafile::Play}\label{wxmetafileplay} - -\func{bool}{Play}{\param{wxDC *}{dc}} - -Plays the metafile into the given device context, returning -true if successful. - -\membersection{wxMetafile::SetClipboard}\label{wxmetafilesetclipboard} - -\func{bool}{SetClipboard}{\param{int}{ width = 0}, \param{int}{ height = 0}} - -Passes the metafile data to the clipboard. The metafile can no longer be -used for anything, but the wxMetafile object must still be destroyed by -the application. - -Below is a example of metafile, metafile device context and clipboard use -from the {\tt hello.cpp} example. Note the way the metafile dimensions -are passed to the clipboard, making use of the device context's ability -to keep track of the maximum extent of drawing commands. - -\begin{verbatim} - wxMetafileDC dc; - if (dc.Ok()) - { - Draw(dc, false); - wxMetafile *mf = dc.Close(); - if (mf) - { - bool success = mf->SetClipboard((int)(dc.MaxX() + 10), (int)(dc.MaxY() + 10)); - delete mf; - } - } -\end{verbatim} - -\section{\class{wxMetafileDC}}\label{wxmetafiledc} - -This is a type of device context that allows a metafile object to be -created (Windows only), and has most of the characteristics of a normal -\rtfsp{\bf wxDC}. The \helpref{wxMetafileDC::Close}{wxmetafiledcclose} member must be called after drawing into the -device context, to return a metafile. The only purpose for this at -present is to allow the metafile to be copied to the clipboard (see \helpref{wxMetafile}{wxmetafile}). - -Adding metafile capability to an application should be easy if you -already write to a wxDC; simply pass the wxMetafileDC to your drawing -function instead. You may wish to conditionally compile this code so it -is not compiled under X (although no harm will result if you leave it -in). - -Note that a metafile saved to disk is in standard Windows metafile format, -and cannot be imported into most applications. To make it importable, -call the function \helpref{::wxMakeMetafilePlaceable}{wxmakemetafileplaceable} after -closing your disk-based metafile device context. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/metafile.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxMetafile}{wxmetafile}, \helpref{wxDC}{wxdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMetafileDC::wxMetafileDC}\label{wxmetafiledcctor} - -\func{}{wxMetafileDC}{\param{const wxString\& }{filename = ""}} - -Constructor. If no filename is passed, the metafile is created -in memory. - -\membersection{wxMetafileDC::\destruct{wxMetafileDC}}\label{wxmetafiledcdtor} - -\func{}{\destruct{wxMetafileDC}}{\void} - -Destructor. - -\membersection{wxMetafileDC::Close}\label{wxmetafiledcclose} - -\func{wxMetafile *}{Close}{\void} - -This must be called after the device context is finished with. A -metafile is returned, and ownership of it passes to the calling -application (so it should be destroyed explicitly). - diff --git a/docs/latex/wx/mimetype.tex b/docs/latex/wx/mimetype.tex deleted file mode 100644 index f3fcf52bdc..0000000000 --- a/docs/latex/wx/mimetype.tex +++ /dev/null @@ -1,197 +0,0 @@ -\section{\class{wxMimeTypesManager}}\label{wxmimetypesmanager} - -This class allows the application to retrieve the information about all known -MIME types from a system-specific location and the filename extensions to the -MIME types and vice versa. After initialization the functions -\helpref{wxMimeTypesManager::GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype} -and \helpref{wxMimeTypesManager::GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} -may be called: they will return a \helpref{wxFileType}{wxfiletype} object which -may be further queried for file description, icon and other attributes. - -{\bf Windows:} MIME type information is stored in the registry and no additional -initialization is needed. - -{\bf Unix:} MIME type information is stored in the files mailcap and mime.types -(system-wide) and .mailcap and .mime.types in the current user's home directory: -all of these files are searched for and loaded if found by default. However, -additional functions -\helpref{wxMimeTypesManager::ReadMailcap}{wxmimetypesmanagerreadmailcap} and -\helpref{wxMimeTypesManager::ReadMimeTypes}{wxmimetypesmanagerreadmimetypes} are -provided to load additional files. - -If GNOME or KDE desktop environment is installed, then wxMimeTypesManager -gathers MIME information from respective files (e.g. .kdelnk files under KDE). - -NB: Currently, wxMimeTypesManager is limited to reading MIME type information -but it will support modifying it as well in future versions. - -\wxheading{Global objects} - -Global instance of wxMimeTypesManager is always available. It is defined -as follows: - -\begin{verbatim} -wxMimeTypesManager *wxTheMimeTypesManager; -\end{verbatim} - -It is recommended to use this instance instead of creating your own because -gathering MIME information may take quite a long time on Unix systems. - -\wxheading{Derived from} - -No base class. - -\wxheading{Include files} - -<wx/mimetype.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxFileType}{wxfiletype} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Helper functions}\label{mimehelperfunctions} - -All of these functions are static (i.e. don't need a wxMimeTypesManager object -to call them) and provide some useful operations for string representations of -MIME types. Their usage is recommended instead of directly working with MIME -types using wxString functions. - -\helpref{IsOfType}{wxmimetypesmanagerisoftype} - - -\membersection{Constructor and destructor}\label{mimeconstructordestructor} - -NB: You won't normally need to use more than one wxMimeTypesManager object in a -program. - -\helpref{wxMimeTypesManager}{wxmimetypesmanagerctor}\\ -\helpref{\destruct{wxMimeTypesManager}}{wxmimetypesmanagerdtor} - - -\membersection{Query database}\label{mimequerydatabase} - -These functions are the heart of this class: they allow to find a \helpref{file type}{wxfiletype} object -from either file extension or MIME type. -If the function is successful, it returns a pointer to the wxFileType object -which {\bf must} be deleted by the caller, otherwise \NULL will be returned. - -\helpref{GetFileTypeFromMimeType}{wxmimetypesmanagergetfiletypefrommimetype}\\ -\helpref{GetFileTypeFromExtension}{wxmimetypesmanagergetfiletypefromextension} - - -\membersection{Initialization functions}\label{wxmimetypesmanagerinit} - -{\bf Unix:} These functions may be used to load additional files (except for the -default ones which are loaded automatically) containing MIME -information in either mailcap(5) or mime.types(5) format. - -\helpref{ReadMailcap}{wxmimetypesmanagerreadmailcap}\\ -\helpref{ReadMimeTypes}{wxmimetypesmanagerreadmimetypes}\\ -\helpref{AddFallbacks}{wxmimetypesmanageraddfallbacks} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - - -\membersection{wxMimeTypesManager::wxMimeTypesManager}\label{wxmimetypesmanagerctor} - -\func{}{wxMimeTypesManager}{\void} - -Constructor puts the object in the "working" state, no additional initialization -are needed - but \helpref{ReadXXX}{wxmimetypesmanagerinit} may be used to load -additional mailcap/mime.types files. - - -\membersection{wxMimeTypesManager::\destruct{wxMimeTypesManager}}\label{wxmimetypesmanagerdtor} - -\func{}{\destruct{wxMimeTypesManager}}{\void} - -Destructor is not virtual, so this class should not be derived from. - - -\membersection{wxMimeTypesManager::AddFallbacks}\label{wxmimetypesmanageraddfallbacks} - -\func{void}{AddFallbacks}{\param{const wxFileTypeInfo *}{fallbacks}} - -This function may be used to provide hard-wired fallbacks for the MIME types -and extensions that might not be present in the system MIME database. - -% TODO - -Please see the typetest sample for an example of using it. - - -\membersection{wxMimeTypesManager::GetFileTypeFromExtension}\label{wxmimetypesmanagergetfiletypefromextension} - -\func{wxFileType*}{GetFileTypeFromExtension}{\param{const wxString\&}{ extension}} - -Gather information about the files with given extension and return the -corresponding \helpref{wxFileType}{wxfiletype} object or \NULL if the extension -is unknown. - -The \arg{extension} parameter may have, or not, the leading dot, if it has it, -it is stripped automatically. It must not however be empty. - - -\membersection{wxMimeTypesManager::GetFileTypeFromMimeType}\label{wxmimetypesmanagergetfiletypefrommimetype} - -\func{wxFileType*}{GetFileTypeFromMimeType}{\param{const wxString\&}{ mimeType}} - -Gather information about the files with given MIME type and return the -corresponding \helpref{wxFileType}{wxfiletype} object or \NULL if the MIME type -is unknown. - - -\membersection{wxMimeTypesManager::IsOfType}\label{wxmimetypesmanagerisoftype} - -\func{bool}{IsOfType}{\param{const wxString\&}{ mimeType}, \param{const wxString\&}{ wildcard}} - -This function returns true if either the given {\it mimeType} is exactly the -same as {\it wildcard} or if it has the same category and the subtype of -{\it wildcard} is '*'. Note that the '*' wildcard is not allowed in -{\it mimeType} itself. - -The comparison don by this function is case insensitive so it is not -necessary to convert the strings to the same case before calling it. - - -\membersection{wxMimeTypesManager::ReadMailcap}\label{wxmimetypesmanagerreadmailcap} - -\func{bool}{ReadMailcap}{\param{const wxString\&}{ filename}, \param{bool}{ fallback = false}} - -Load additional file containing information about MIME types and associated -information in mailcap format. See metamail(1) and mailcap(5) for more -information. - -{\it fallback} parameter may be used to load additional mailcap files without -overriding the settings found in the standard files: normally, entries from -files loaded with ReadMailcap will override the entries from files loaded -previously (and the standard ones are loaded in the very beginning), but this -will not happen if this parameter is set to true (default is false). - -The return value is true if there were no errors in the file or false -otherwise. - - -\membersection{wxMimeTypesManager::ReadMimeTypes}\label{wxmimetypesmanagerreadmimetypes} - -\func{bool}{ReadMimeTypes}{\param{const wxString\&}{ filename}} - -Load additional file containing information about MIME types and associated -information in mime.types file format. See metamail(1) and mailcap(5) for more -information. - -The return value is true if there were no errors in the file or false -otherwise. - diff --git a/docs/latex/wx/minifram.tex b/docs/latex/wx/minifram.tex deleted file mode 100644 index 94be6ca012..0000000000 --- a/docs/latex/wx/minifram.tex +++ /dev/null @@ -1,117 +0,0 @@ -\section{\class{wxMiniFrame}}\label{wxminiframe} - -A miniframe is a frame with a small title bar. It is suitable for floating toolbars that must not -take up too much screen area. - -An example of mini frame can be seen in the \helpref{dialogs sample}{sampledialogs} -using the ``Mini frame'' command of the ``Generic dialogs'' submenu. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/minifram.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).} -\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.} -\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.} -\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).} -\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).} -\twocolitem{\windowstyle{wxCLOSE\_BOX}}{Displays a close box on the frame.} -\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).} -\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).} -\twocolitem{\windowstyle{wxTINY\_CAPTION\_HORIZ}}{This style is obsolete and -not used any longer.} -\twocolitem{\windowstyle{wxTINY\_CAPTION\_VERT}}{This style is obsolete and not -used any longer.} -\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window.} -\end{twocollist} - -\wxheading{Remarks} - -This class has miniframe functionality under Windows and GTK, i.e. the presence -of mini frame will not be noted in the task bar and focus behaviour is different. -On other platforms, it behaves like a normal frame. - -\wxheading{See also} - -\helpref{wxMDIParentFrame}{wxmdiparentframe}, \helpref{wxMDIChildFrame}{wxmdichildframe},\rtfsp -\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMiniFrame::wxMiniFrame}\label{wxminiframector} - -\func{}{wxMiniFrame}{\void} - -Default constructor. - -\func{}{wxMiniFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxCAPTION | wxRESIZE\_BORDER},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent. This may be NULL. If it is non-NULL, the frame will -always be displayed on top of the parent window on Windows.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{title}{The caption to be displayed on the frame's title bar.} - -\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxMiniFrame}{wxminiframe}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{Remarks} - -The frame behaves like a normal frame on non-Windows platforms. - -\wxheading{See also} - -\helpref{wxMiniFrame::Create}{wxminiframecreate} - -\membersection{wxMiniFrame::\destruct{wxMiniFrame}}\label{wxminiframedtor} - -\func{void}{\destruct{wxMiniFrame}}{\void} - -Destructor. Destroys all child windows and menu bar if present. - -\membersection{wxMiniFrame::Create}\label{wxminiframecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp -\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxCAPTION | wxRESIZE\_BORDER},\rtfsp -\param{const wxString\& }{name = ``frame"}} - -Used in two-step frame construction. See \helpref{wxMiniFrame::wxMiniFrame}{wxminiframector}\rtfsp -for further details. - - - diff --git a/docs/latex/wx/minimald.tex b/docs/latex/wx/minimald.tex deleted file mode 100644 index c9e37c7092..0000000000 --- a/docs/latex/wx/minimald.tex +++ /dev/null @@ -1,45 +0,0 @@ -% -% Minimal document skeleton. For testing, link your 'manpage' in at -% the place indicated below. -% -% Run tex2rtf with (for example) -% tex2rtf minimal.tex test.htm -html -twice -% -% latex should also parse this file correctly. -% -% Of course many references will be unresolved in the test page, but -% local references should be there. -% -\documentstyle[a4,makeidx,verbatim,texhelp,fancyheadings,palatino]{report} -\sloppy -\newcommand{\indexit}[1]{#1\index{#1}} -\newcommand{\pipe}[0]{$\|$\ }% -\input psbox.tex - -\parskip=2pt -\parindent=0pt - -\makeindex -\begin{document} -\tableofcontents - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\pagenumbering{roman} - -\chapter{Minimal} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -% put your file(s) in an \input{} statement here -\input{locale.tex} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -\end{document} - diff --git a/docs/latex/wx/mirrordc.tex b/docs/latex/wx/mirrordc.tex deleted file mode 100644 index ff36713c79..0000000000 --- a/docs/latex/wx/mirrordc.tex +++ /dev/null @@ -1,47 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: mirrordc.tex -%% Purpose: wxMirrorDC documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 21.07.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMirrorDC}}\label{wxmirrordc} - -wxMirrorDC is a simple wrapper class which is always associated with a real -\helpref{wxDC}{wxdc} object and either forwards all of its operations to it -without changes (no mirroring takes place) or exchanges {\it x} and {\it y} -coordinates which makes it possible to reuse the same code to draw a figure and -its mirror -- i.e. reflection related to the diagonal line $x == y$. - -wxMirrorDC has been added in wxWidgets version 2.5.0. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/dcmirror.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\helponly{\insertatlevel{2}{\wxheading{Members}}} - -\membersection{wxMirrorDC::wxMirrorDC}\label{wxmirrordcwxmirrordc} - -\func{}{wxMirrorDC}{\param{wxDC\& }{dc}, \param{bool }{mirror}} - -Creates a (maybe) mirrored DC associated with the real \arg{dc}. Everything -drawn on wxMirrorDC will appear (and maybe mirrored) on \arg{dc}. - -\arg{mirror} specifies if we do mirror (if it is \true) or not (if it is -\false). - diff --git a/docs/latex/wx/mltchdlg.tex b/docs/latex/wx/mltchdlg.tex deleted file mode 100644 index 65658fc287..0000000000 --- a/docs/latex/wx/mltchdlg.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{\class{wxMultiChoiceDialog}}\label{wxmultichoicedialog} - -This class represents a dialog that shows a list of strings, and allows -the user to select one or more. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/choicdlg.h> - -\wxheading{See also} - -\helpref{wxMultiChoiceDialog overview}{wxmultichoicedialogoverview}, -\helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMultiChoiceDialog::wxMultiChoiceDialog}\label{wxmultichoicedialogconstr} - -\func{}{wxMultiChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{int }{n}, \param{const wxString* }{choices}, \param{long }{style = wxCHOICEDLG\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -\func{}{wxMultiChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{const wxArrayString\& }{choices}, \param{long }{style = wxCHOICEDLG\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor taking an array of wxString choices. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{caption}{The dialog caption.} - -\docparam{n}{The number of choices.} - -\docparam{choices}{An array of strings, or a string list, containing the choices.} - -\docparam{style}{A dialog style (bitlist) containing flags chosen from standard -dialog styles and the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOK}}{Show an OK button.} -\twocolitem{{\bf wxCANCEL}}{Show a Cancel button.} -\twocolitem{{\bf wxCENTRE}}{Centre the message. Not Windows.} -\end{twocollist} -The default value is equivalent to {\bf wxDEFAULT\_DIALOG\_STYLE \pipe wxRESIZE\_BORDER \pipe wxOK \pipe wxCANCEL \pipe wxCENTRE}. -} - -\docparam{pos}{Dialog position. Not Windows.} - -\wxheading{Remarks} - -Use \helpref{wxMultiChoiceDialog::ShowModal}{wxmultichoicedialogshowmodal} to show the dialog. - -\pythonnote{For Python the two parameters {\tt n} and {\tt choices} are collapsed -into a multi parameter {\tt choices} which is expected to be a Python -list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n}.} - -\membersection{wxMultiChoiceDialog::GetSelections}\label{wxmultichoicedialoggetselections} - -\constfunc{wxArrayInt}{GetSelection}{\void} - -Returns array with indexes of selected items. - -\membersection{wxMultiChoiceDialog::SetSelections}\label{wxmultichoicedialogsetselections} - -\constfunc{void}{SetSelections}{\param{const wxArrayInt\&}{ selections}} - -Sets selected items from the array of selected items' indexes. - -\membersection{wxMultiChoiceDialog::ShowModal}\label{wxmultichoicedialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning either wxID\_OK or wxID\_CANCEL. - diff --git a/docs/latex/wx/module.tex b/docs/latex/wx/module.tex deleted file mode 100644 index 92a4349df1..0000000000 --- a/docs/latex/wx/module.tex +++ /dev/null @@ -1,135 +0,0 @@ -\section{\class{wxModule}}\label{wxmodule} - -The module system is a very simple mechanism to allow applications (and parts -of wxWidgets itself) to define initialization and cleanup functions that are -automatically called on wxWidgets startup and exit. - -To define a new kind of module, derive a class from wxModule, override the -\helpref{OnInit}{wxmoduleoninit} and \helpref{OnExit}{wxmoduleonexit} -functions, and add the DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS to -header and implementation files (which can be the same file). On -initialization, wxWidgets will find all classes derived from wxModule, create -an instance of each, and call each OnInit function. On exit, wxWidgets will -call the OnExit function for each module instance. - -Note that your module class does not have to be in a header file. - -For example: - -\begin{verbatim} - // A module to allow DDE initialization/cleanup - // without calling these functions from app.cpp or from - // the user's application. - class wxDDEModule: public wxModule - { - public: - wxDDEModule() { } - virtual bool OnInit() { wxDDEInitialize(); return true; }; - virtual void OnExit() { wxDDECleanUp(); }; - - private: - DECLARE_DYNAMIC_CLASS(wxDDEModule) - }; - - IMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule) - - - // Another module which uses DDE in its OnInit() - class MyModule: public wxModule - { - public: - MyModule() { AddDependency(CLASSINFO(wxDDEModule)); } - virtual bool OnInit() { ... code using DDE ... } - virtual void OnExit() { ... } - - private: - DECLARE_DYNAMIC_CLASS(MyModule) - }; - - IMPLEMENT_DYNAMIC_CLASS(MyModule, wxModule) - - // Another module which uses DDE in its OnInit() - // but uses a named dependency - class MyModule2: public wxModule - { - public: - MyModule2() { AddDependency("wxDDEModule"); } - virtual bool OnInit() { ... code using DDE ... } - virtual void OnExit() { ... } - - private: - DECLARE_DYNAMIC_CLASS(MyModule2) - }; - - IMPLEMENT_DYNAMIC_CLASS(MyModule2, wxModule) -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/module.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxModule::wxModule}\label{wxmodulector} - -\func{}{wxModule}{\void} - -Constructs a wxModule object. - - -\membersection{wxModule::\destruct{wxModule}}\label{wxmoduledtor} - -\func{}{\destruct{wxModule}}{\void} - -Destructor. - - -\membersection{wxModule::AddDependency}\label{wxmoduleadddependency} - -\func{void}{AddDependency}{\param{wxClassInfo * }{dep}} - -\func{void}{AddDependency}{\param{const char * }{classname}} - -Call this function from the constructor of the derived class. \arg{dep} must be -the \helpref{CLASSINFO}{classinfo} of a wxModule-derived class and the -corresponding module will be loaded \emph{before} and unloaded \emph{after} -this module. - -The second version of this function allows a dependency to be added by -name without access to the class info. This is useful when a module is -declared entirely in a source file and there is no header for the declaration -of the module needed by \helpref{CLASSINFO}{classinfo}, however errors are -not detected until run-time, instead of compile-time, then. - -Note that circular dependencies are detected and result in a fatal error. - -\wxheading{Parameters} - -\docparam{dep}{The class information object for the dependent module.} - -\docparam{classname}{The class name of the dependent module.} - - -\membersection{wxModule::OnExit}\label{wxmoduleonexit} - -\func{virtual void}{OnExit}{\void} - -Provide this function with appropriate cleanup for your module. - - -\membersection{wxModule::OnInit}\label{wxmoduleoninit} - -\func{virtual bool}{OnInit}{\void} - -Provide this function with appropriate initialization for your module. If the function -returns false, wxWidgets will exit immediately. - diff --git a/docs/latex/wx/mouseevt.tex b/docs/latex/wx/mouseevt.tex deleted file mode 100644 index 8a6cfb7898..0000000000 --- a/docs/latex/wx/mouseevt.tex +++ /dev/null @@ -1,595 +0,0 @@ -\section{\class{wxMouseEvent}}\label{wxmouseevent} - -This event class contains information about the events generated by the mouse: -they include mouse buttons press and release events and mouse move events. - -All mouse events involving the buttons use {\tt wxMOUSE\_BTN\_LEFT} for the -left mouse button, {\tt wxMOUSE\_BTN\_MIDDLE} for the middle one and -{\tt wxMOUSE\_BTN\_RIGHT} for the right one. And if the system supports more -buttons, the \texttt{wxMOUSE\_BTN\_AUX1} and \texttt{wxMOUSE\_BTN\_AUX2} events -can also be generated. Note that not all mice have even a middle button so a -portable application should avoid relying on the events from it (but the right -button click can be emulated using the left mouse button with the control key -under Mac platforms with a single button mouse). - -For the \texttt{wxEVT\_ENTER\_WINDOW} and \texttt{wxEVT\_LEAVE\_WINDOW} events -purposes, the mouse is considered to be inside the window if it is in the -window client area and not inside one of its children. In other words, the -parent window receives \texttt{wxEVT\_LEAVE\_WINDOW} event not only when the -mouse leaves the window entirely but also when it enters one of its children. - -{\bf NB:} Note that under Windows CE mouse enter and leave events are not natively supported -by the system but are generated by wxWidgets itself. This has several -drawbacks: the LEAVE\_WINDOW event might be received some time after the mouse -left the window and the state variables for it may have changed during this -time. - -{\bf NB:} Note the difference between methods like -\helpref{LeftDown}{wxmouseeventleftdown} and -\helpref{LeftIsDown}{wxmouseeventleftisdown}: the former returns {\tt true} -when the event corresponds to the left mouse button click while the latter -returns {\tt true} if the left mouse button is currently being pressed. For -example, when the user is dragging the mouse you can use -\helpref{LeftIsDown}{wxmouseeventleftisdown} to test -whether the left mouse button is (still) depressed. Also, by convention, if -\helpref{LeftDown}{wxmouseeventleftdown} returns {\tt true}, -\helpref{LeftIsDown}{wxmouseeventleftisdown} will also return {\tt true} in -wxWidgets whatever the underlying GUI behaviour is (which is -platform-dependent). The same applies, of course, to other mouse buttons as -well. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a mouse event, use these event handler macros to direct input to member -functions that take a wxMouseEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_LEFT\_DOWN(func)}}{Process a wxEVT\_LEFT\_DOWN event. The -handler of this event should normally call \helpref{event.Skip()}{wxeventskip} to -allow the default processing to take place as otherwise the window under mouse -wouldn't get the focus.} -\twocolitem{{\bf EVT\_LEFT\_UP(func)}}{Process a wxEVT\_LEFT\_UP event.} -\twocolitem{{\bf EVT\_LEFT\_DCLICK(func)}}{Process a wxEVT\_LEFT\_DCLICK event.} -\twocolitem{{\bf EVT\_MIDDLE\_DOWN(func)}}{Process a wxEVT\_MIDDLE\_DOWN event.} -\twocolitem{{\bf EVT\_MIDDLE\_UP(func)}}{Process a wxEVT\_MIDDLE\_UP event.} -\twocolitem{{\bf EVT\_MIDDLE\_DCLICK(func)}}{Process a wxEVT\_MIDDLE\_DCLICK event.} -\twocolitem{{\bf EVT\_RIGHT\_DOWN(func)}}{Process a wxEVT\_RIGHT\_DOWN event.} -\twocolitem{{\bf EVT\_RIGHT\_UP(func)}}{Process a wxEVT\_RIGHT\_UP event.} -\twocolitem{{\bf EVT\_RIGHT\_DCLICK(func)}}{Process a wxEVT\_RIGHT\_DCLICK event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX1\_DOWN(func)}}{Process a wxEVT\_MOUSE\_AUX1\_DOWN event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX1\_UP(func)}}{Process a wxEVT\_MOUSE\_AUX1\_UP event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX1\_DCLICK(func)}}{Process a wxEVT\_MOUSE\_AUX1\_DCLICK event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX2\_DOWN(func)}}{Process a wxEVT\_MOUSE\_AUX2\_DOWN event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX2\_UP(func)}}{Process a wxEVT\_MOUSE\_AUX2\_UP event.} -\twocolitem{{\bf EVT\_MOUSE\_AUX2\_DCLICK(func)}}{Process a wxEVT\_MOUSE\_AUX2\_DCLICK event.} -\twocolitem{{\bf EVT\_MOTION(func)}}{Process a wxEVT\_MOTION event.} -\twocolitem{{\bf EVT\_ENTER\_WINDOW(func)}}{Process a wxEVT\_ENTER\_WINDOW event.} -\twocolitem{{\bf EVT\_LEAVE\_WINDOW(func)}}{Process a wxEVT\_LEAVE\_WINDOW event.} -\twocolitem{{\bf EVT\_MOUSEWHEEL(func)}}{Process a wxEVT\_MOUSEWHEEL event.} -\twocolitem{{\bf EVT\_MOUSE\_EVENTS(func)}}{Process all mouse events.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMouseEvent::m\_altDown}\label{wxmouseeventmaltdown} - -\member{bool}{m\_altDown} - -true if the Alt key is pressed down. - - -\membersection{wxMouseEvent::m\_controlDown}\label{wxmouseeventmcontroldown} - -\member{bool}{m\_controlDown} - -true if control key is pressed down. - - -\membersection{wxMouseEvent::m\_leftDown}\label{wxmouseeventmleftdown} - -\member{bool}{m\_leftDown} - -true if the left mouse button is currently pressed down. - - -\membersection{wxMouseEvent::m\_middleDown}\label{wxmouseeventmmiddledown} - -\member{bool}{m\_middleDown} - -true if the middle mouse button is currently pressed down. - - -\membersection{wxMouseEvent::m\_rightDown}\label{wxmouseeventmrightdown} - -\member{bool}{m\_rightDown} - -true if the right mouse button is currently pressed down. - - -\membersection{wxMouseEvent::m\_metaDown}\label{wxmouseeventmmetadown} - -\member{bool}{m\_metaDown} - -true if the Meta key is pressed down. - - -\membersection{wxMouseEvent::m\_shiftDown}\label{wxmouseeventmshiftdown} - -\member{bool}{m\_shiftDown} - -true if shift is pressed down. - - -\membersection{wxMouseEvent::m\_x}\label{wxmouseeventmx} - -\member{long}{m\_x} - -X-coordinate of the event. - - -\membersection{wxMouseEvent::m\_y}\label{wxmouseeventmy} - -\member{long}{m\_y} - -Y-coordinate of the event. - - -\membersection{wxMouseEvent::m\_wheelRotation}\label{wxmouseeventmwheelrotation} - -\member{int}{m\_wheelRotation} - -The distance the mouse wheel is rotated. - - -\membersection{wxMouseEvent::m\_wheelDelta}\label{wxmouseeventmwheeldelta} - -\member{int}{m\_wheelDelta} - -The wheel delta, normally $120$. - - -\membersection{wxMouseEvent::m\_linesPerAction}\label{wxmouseeventmlinesperaction} - -\member{int}{m\_linesPerAction} - -The configured number of lines (or whatever) to be scrolled per wheel -action. - - - -\membersection{wxMouseEvent::wxMouseEvent}\label{wxmouseeventctor} - -\func{}{wxMouseEvent}{\param{WXTYPE}{ mouseEventType = 0}} - -Constructor. Valid event types are: - -\begin{itemize} -\itemsep=0pt -\item {\bf wxEVT\_ENTER\_WINDOW} -\item {\bf wxEVT\_LEAVE\_WINDOW} -\item {\bf wxEVT\_LEFT\_DOWN} -\item {\bf wxEVT\_LEFT\_UP} -\item {\bf wxEVT\_LEFT\_DCLICK} -\item {\bf wxEVT\_MIDDLE\_DOWN} -\item {\bf wxEVT\_MIDDLE\_UP} -\item {\bf wxEVT\_MIDDLE\_DCLICK} -\item {\bf wxEVT\_RIGHT\_DOWN} -\item {\bf wxEVT\_RIGHT\_UP} -\item {\bf wxEVT\_RIGHT\_DCLICK} -\item {\bf wxEVT\_MOUSE\_AUX1\_DOWN} -\item {\bf wxEVT\_MOUSE\_AUX1\_UP} -\item {\bf wxEVT\_MOUSE\_AUX1\_DCLICK} -\item {\bf wxEVT\_MOUSE\_AUX2\_DOWN} -\item {\bf wxEVT\_MOUSE\_AUX2\_UP} -\item {\bf wxEVT\_MOUSE\_AUX2\_DCLICK} -\item {\bf wxEVT\_MOTION} -\item {\bf wxEVT\_MOUSEWHEEL} -\end{itemize} - - -\membersection{wxMouseEvent::AltDown}\label{wxmouseeventaltdown} - -\func{bool}{AltDown}{\void} - -Returns true if the Alt key was down at the time of the event. - - -\membersection{wxMouseEvent::Aux1DClick}\label{wxmouseeventaux1dclick} - -\constfunc{bool}{Aux1DClick}{\void} - -Returns true if the event was a first extra button double click. - - -\membersection{wxMouseEvent::Aux1Down}\label{wxmouseeventaux1down} - -\constfunc{bool}{Aux1Down}{\void} - -Returns true if the first extra button mouse button changed to down. - - -\membersection{wxMouseEvent::Aux1IsDown}\label{wxmouseeventaux1isdown} - -\constfunc{bool}{Aux1IsDown}{\void} - -Returns true if the first extra button mouse button is currently down, independent -of the current event type. - - -\membersection{wxMouseEvent::Aux1Up}\label{wxmouseeventaux1up} - -\constfunc{bool}{Aux1Up}{\void} - -Returns true if the first extra button mouse button changed to up. - - -\membersection{wxMouseEvent::Aux2DClick}\label{wxmouseeventaux2dclick} - -\constfunc{bool}{Aux2DClick}{\void} - -Returns true if the event was a second extra button double click. - - -\membersection{wxMouseEvent::Aux2Down}\label{wxmouseeventaux2down} - -\constfunc{bool}{Aux2Down}{\void} - -Returns true if the second extra button mouse button changed to down. - - -\membersection{wxMouseEvent::Aux2IsDown}\label{wxmouseeventaux2isdown} - -\constfunc{bool}{Aux2IsDown}{\void} - -Returns true if the second extra button mouse button is currently down, independent -of the current event type. - - -\membersection{wxMouseEvent::Aux2Up}\label{wxmouseeventaux2up} - -\constfunc{bool}{Aux2Up}{\void} - -Returns true if the second extra button mouse button changed to up. - - -\membersection{wxMouseEvent::Button}\label{wxmouseeventbutton} - -\func{bool}{Button}{\param{int}{ button}} - -Returns true if the identified mouse button is changing state. Valid -values of {\it button} are: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxMOUSE\_BTN\_LEFT}}{check if left button was pressed} -\twocolitem{{\tt wxMOUSE\_BTN\_MIDDLE}}{check if middle button was pressed} -\twocolitem{{\tt wxMOUSE\_BTN\_RIGHT}}{check if right button was pressed} -\twocolitem{{\tt wxMOUSE\_BTN\_AUX1}}{check if the first extra button was pressed} -\twocolitem{{\tt wxMOUSE\_BTN\_AUX2}}{check if the second extra button was pressed} -\twocolitem{{\tt wxMOUSE\_BTN\_ANY}}{check if any button was pressed} -\end{twocollist} - - -\membersection{wxMouseEvent::ButtonDClick}\label{wxmouseeventbuttondclick} - -\func{bool}{ButtonDClick}{\param{int}{ but = wxMOUSE\_BTN\_ANY}} - -If the argument is omitted, this returns true if the event was a mouse -double click event. Otherwise the argument specifies which double click event -was generated (see \helpref{Button}{wxmouseeventbutton} for the possible -values). - - -\membersection{wxMouseEvent::ButtonDown}\label{wxmouseeventbuttondown} - -\func{bool}{ButtonDown}{\param{int}{ but = -1}} - -If the argument is omitted, this returns true if the event was a mouse -button down event. Otherwise the argument specifies which button-down event -was generated (see \helpref{Button}{wxmouseeventbutton} for the possible -values). - - - -\membersection{wxMouseEvent::ButtonUp}\label{wxmouseeventbuttonup} - -\func{bool}{ButtonUp}{\param{int}{ but = -1}} - -If the argument is omitted, this returns true if the event was a mouse -button up event. Otherwise the argument specifies which button-up event -was generated (see \helpref{Button}{wxmouseeventbutton} for the possible -values). - - - -\membersection{wxMouseEvent::CmdDown}\label{wxmouseeventcmddown} - -\constfunc{bool}{CmdDown}{\void} - -Same as \helpref{MetaDown}{wxmouseeventmetadown} under Mac, same as -\helpref{ControlDown}{wxmouseeventcontroldown} elsewhere. - -\wxheading{See also} - -\helpref{wxKeyEvent::CmdDown}{wxkeyeventcmddown} - - -\membersection{wxMouseEvent::ControlDown}\label{wxmouseeventcontroldown} - -\func{bool}{ControlDown}{\void} - -Returns true if the control key was down at the time of the event. - - -\membersection{wxMouseEvent::Dragging}\label{wxmouseeventdragging} - -\func{bool}{Dragging}{\void} - -Returns true if this was a dragging event (motion while a button is depressed). - -\wxheading{See also} - -\helpref{Moving}{wxmouseeventmoving} - - -\membersection{wxMouseEvent::Entering}\label{wxmouseevententering} - -\func{bool}{Entering}{\void} - -Returns true if the mouse was entering the window. - -See also \helpref{wxMouseEvent::Leaving}{wxmouseeventleaving}. - - -\membersection{wxMouseEvent::GetButton}\label{wxmouseeventgetbutton} - -\constfunc{int}{GetButton}{\void} - -Returns the mouse button which generated this event or {\tt wxMOUSE\_BTN\_NONE} -if no button is involved (for mouse move, enter or leave event, for example). -Otherwise {\tt wxMOUSE\_BTN\_LEFT} is returned for the left button down, up and -double click events, {\tt wxMOUSE\_BTN\_MIDDLE} and {\tt wxMOUSE\_BTN\_RIGHT} -for the same events for the middle and the right buttons respectively. - - -\membersection{wxMouseEvent::GetClickCount}\label{wxmouseeventgetclickcount} - -\constfunc{int}{GetClickCount}{\void} - -Returns the number of mouse clicks for this event: $1$ for a simple click, $2$ -for a double-click, $3$ for a triple-click and so on. - -Currently this function is implemented only in wxMac and returns $-1$ for the -other platforms (you can still distinguish simple clicks from double-clicks as -they generate different kinds of events however). - -\newsince{2.9.0} - - -\membersection{wxMouseEvent::GetPosition}\label{wxmouseeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -\constfunc{void}{GetPosition}{\param{wxCoord*}{ x}, \param{wxCoord*}{ y}} - -\constfunc{void}{GetPosition}{\param{long*}{ x}, \param{long*}{ y}} - -Sets *x and *y to the position at which the event occurred. - -Returns the physical mouse position in pixels. - -Note that if the mouse event has been artificially generated from a special -keyboard combination (e.g. under Windows when the ``menu'' key is pressed), the -returned position is \texttt{wxDefaultPosition}. - - -\membersection{wxMouseEvent::GetLogicalPosition}\label{wxmouseeventgetlogicalposition} - -\constfunc{wxPoint}{GetLogicalPosition}{\param{const wxDC\&}{ dc}} - -Returns the logical mouse position in pixels (i.e. translated according to the -translation set for the DC, which usually indicates that the window has been scrolled). - - - -\membersection{wxMouseEvent::GetLinesPerAction}\label{wxmouseeventgetlinesperaction} - -\constfunc{int}{GetLinesPerAction}{\void} - -Returns the configured number of lines (or whatever) to be scrolled per -wheel action. Defaults to three. - - -\membersection{wxMouseEvent::GetWheelRotation}\label{wxmouseeventgetwheelrotation} - -\constfunc{int}{GetWheelRotation}{\void} - -Get wheel rotation, positive or negative indicates direction of -rotation. Current devices all send an event when rotation is at least -+/-WheelDelta, but finer resolution devices can be created in the future. -Because of this you shouldn't assume that one event is equal to 1 line, but you -should be able to either do partial line scrolling or wait until several -events accumulate before scrolling. - - -\membersection{wxMouseEvent::GetWheelDelta}\label{wxmouseeventgetwheeldelta} - -\constfunc{int}{GetWheelDelta}{\void} - -Get wheel delta, normally $120$. This is the threshold for action to be -taken, and one such action (for example, scrolling one increment) -should occur for each delta. - - -\membersection{wxMouseEvent::GetX}\label{wxmouseeventgetx} - -\constfunc{long}{GetX}{\void} - -Returns X coordinate of the physical mouse event position. - - -\membersection{wxMouseEvent::GetY}\label{wxmouseeventgety} - -\func{long}{GetY}{\void} - -Returns Y coordinate of the physical mouse event position. - - -\membersection{wxMouseEvent::IsButton}\label{wxmouseeventisbutton} - -\constfunc{bool}{IsButton}{\void} - -Returns true if the event was a mouse button event (not necessarily a button down event - -that may be tested using {\it ButtonDown}). - - -\membersection{wxMouseEvent::IsPageScroll}\label{wxmouseeventispagescroll} - -\constfunc{bool}{IsPageScroll}{\void} - -Returns true if the system has been setup to do page scrolling with -the mouse wheel instead of line scrolling. - - -\membersection{wxMouseEvent::Leaving}\label{wxmouseeventleaving} - -\constfunc{bool}{Leaving}{\void} - -Returns true if the mouse was leaving the window. - -See also \helpref{wxMouseEvent::Entering}{wxmouseevententering}. - - -\membersection{wxMouseEvent::LeftDClick}\label{wxmouseeventleftdclick} - -\constfunc{bool}{LeftDClick}{\void} - -Returns true if the event was a left double click. - - -\membersection{wxMouseEvent::LeftDown}\label{wxmouseeventleftdown} - -\constfunc{bool}{LeftDown}{\void} - -Returns true if the left mouse button changed to down. - - -\membersection{wxMouseEvent::LeftIsDown}\label{wxmouseeventleftisdown} - -\constfunc{bool}{LeftIsDown}{\void} - -Returns true if the left mouse button is currently down, independent -of the current event type. - -Please notice that it is \emph{not} the same as -\helpref{LeftDown}{wxmouseeventleftdown} which returns \true if the event was -generated by the left mouse button being pressed. Rather, it simply describes -the state of the left mouse button at the time when the event was generated -(so while it will be true for a left click event, it can also be true for -a right click if it happened while the left mouse button was pressed). - -This event is usually used in the mouse event handlers which process "move -mouse" messages to determine whether the user is (still) dragging the mouse. - - -\membersection{wxMouseEvent::LeftUp}\label{wxmouseeventleftup} - -\constfunc{bool}{LeftUp}{\void} - -Returns true if the left mouse button changed to up. - - -\membersection{wxMouseEvent::MetaDown}\label{wxmouseeventmetadown} - -\constfunc{bool}{MetaDown}{\void} - -Returns true if the Meta key was down at the time of the event. - - -\membersection{wxMouseEvent::MiddleDClick}\label{wxmouseeventmiddledclick} - -\constfunc{bool}{MiddleDClick}{\void} - -Returns true if the event was a middle double click. - - -\membersection{wxMouseEvent::MiddleDown}\label{wxmouseeventmiddledown} - -\constfunc{bool}{MiddleDown}{\void} - -Returns true if the middle mouse button changed to down. - - -\membersection{wxMouseEvent::MiddleIsDown}\label{wxmouseeventmiddleisdown} - -\constfunc{bool}{MiddleIsDown}{\void} - -Returns true if the middle mouse button is currently down, independent -of the current event type. - - -\membersection{wxMouseEvent::MiddleUp}\label{wxmouseeventmiddleup} - -\constfunc{bool}{MiddleUp}{\void} - -Returns true if the middle mouse button changed to up. - - -\membersection{wxMouseEvent::Moving}\label{wxmouseeventmoving} - -\constfunc{bool}{Moving}{\void} - -Returns true if this was a motion event and no mouse buttons were pressed. -If any mouse button is held pressed, then this method returns \false and -\helpref{Dragging}{wxmouseeventdragging} returns \true. - - -\membersection{wxMouseEvent::RightDClick}\label{wxmouseeventrightdclick} - -\constfunc{bool}{RightDClick}{\void} - -Returns true if the event was a right double click. - - -\membersection{wxMouseEvent::RightDown}\label{wxmouseeventrightdown} - -\constfunc{bool}{RightDown}{\void} - -Returns true if the right mouse button changed to down. - - -\membersection{wxMouseEvent::RightIsDown}\label{wxmouseeventrightisdown} - -\constfunc{bool}{RightIsDown}{\void} - -Returns true if the right mouse button is currently down, independent -of the current event type. - - -\membersection{wxMouseEvent::RightUp}\label{wxmouseeventrightup} - -\constfunc{bool}{RightUp}{\void} - -Returns true if the right mouse button changed to up. - - -\membersection{wxMouseEvent::ShiftDown}\label{wxmouseeventshiftdown} - -\constfunc{bool}{ShiftDown}{\void} - -Returns true if the shift key was down at the time of the event. - diff --git a/docs/latex/wx/moveevt.tex b/docs/latex/wx/moveevt.tex deleted file mode 100644 index f58c651a97..0000000000 --- a/docs/latex/wx/moveevt.tex +++ /dev/null @@ -1,50 +0,0 @@ -\section{\class{wxMoveEvent}}\label{wxmoveevent} - -A move event holds information about move change events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a move event, use this event handler macro to direct input to a member -function that takes a wxMoveEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_MOVE(func)}}{Process a wxEVT\_MOVE event, which is generated -when a window is moved.} -\twocolitem{{\bf EVT\_MOVE\_START(func)}}{Process a wxEVT\_MOVE\_START event, which is generated -when the user starts to move or size a window. wxMSW only.} -\twocolitem{{\bf EVT\_MOVE\_END(func)}}{Process a wxEVT\_MOVE\_END event, which is generated -when the user stops moving or sizing a window. wxMSW only.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMoveEvent::wxMoveEvent}\label{wxmoveeventctor} - -\func{}{wxMoveEvent}{\param{const wxPoint\& }{pt}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxMoveEvent::GetPosition}\label{wxmoveeventgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Returns the position of the window generating the move change event. - diff --git a/docs/latex/wx/msgdlg.tex b/docs/latex/wx/msgdlg.tex deleted file mode 100644 index ee4ba4cf94..0000000000 --- a/docs/latex/wx/msgdlg.tex +++ /dev/null @@ -1,147 +0,0 @@ -\section{\class{wxMessageDialog}}\label{wxmessagedialog} - -This class represents a dialog that shows a single or multi-line message, -with a choice of OK, Yes, No and Cancel buttons. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/msgdlg.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxMessageDialog overview}{wxmessagedialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMessageDialog::wxMessageDialog}\label{wxmessagedialogctor} - -\func{}{wxMessageDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption = "Message box"}, \param{long }{style = wxOK \pipe wxCANCEL},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxMessageDialog::ShowModal}{wxmessagedialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{caption}{The dialog caption.} - -\docparam{style}{A dialog style (bitlist) containing flags chosen from the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOK}}{Show an OK button.} -\twocolitem{{\bf wxCANCEL}}{Show a Cancel button.} -\twocolitem{{\bf wxYES\_NO}}{Show Yes and No buttons.} -\twocolitem{{\bf wxYES\_DEFAULT}}{Used with {\bf wxYES\_NO}, makes {\bf Yes} button the default - which is the default behaviour.} -\twocolitem{{\bf wxNO\_DEFAULT}}{Used with {\bf wxYES\_NO}, makes {\bf No} button the default.} -\twocolitem{{\bf wxICON\_EXCLAMATION}}{Shows an exclamation mark icon.} -\twocolitem{{\bf wxICON\_HAND}}{Shows an error icon.} -\twocolitem{{\bf wxICON\_ERROR}}{Shows an error icon - the same as wxICON\_HAND.} -\twocolitem{{\bf wxICON\_QUESTION}}{Shows a question mark icon.} -\twocolitem{{\bf wxICON\_INFORMATION}}{Shows an information (i) icon.} -\twocolitem{{\bf wxSTAY\_ON\_TOP}}{The message box stays on top of all other window, even those of the other applications (Windows only).} -\end{twocollist} -} - -\docparam{pos}{Dialog position. Not Windows.} - - -\membersection{wxMessageDialog::\destruct{wxMessageDialog}}\label{wxmessagedialogdtor} - -\func{}{\destruct{wxMessageDialog}}{\void} - -Destructor. - - -\membersection{wxMessageDialog::ShowModal}\label{wxmessagedialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning one of wxID\_OK, wxID\_CANCEL, wxID\_YES, wxID\_NO. - - -\membersection{wxMessageDialog::SetYesNoLabels}\label{wxmessagedialogsetyesnolabels} - -\func{bool}{SetYesNoLabels}{\param{const wxString&}{yes},\param{const wxString&}{no}} - -Overrides the default labels of the Yes and No buttons. - -Notice that this function is not currently available on all platforms, so it -may return \false to indicate that the labels couldn't be changed. If it -returns \true (currently only under wxMac), the labels were set successfully. -Typically, if the function was used successfully, the main dialog message may -need to be changed, e.g.: -\begin{verbatim} - wxMessageDialog dlg(...); - if ( dlg.SetYesNoLabels(_("&Quit"), _("&Don't quit")) ) - dlg.SetMessage(_("What do you want to do?")); - else // buttons have standard "Yes"/"No" values, so rephrase the question - dlg.SetMessage(_("Do you really want to quit?")); -\end{verbatim} - - -\membersection{wxMessageDialog::SetYesNoCancelLabels}\label{wxmessagedialogsetyesnocancellabels} - -\func{bool}{SetYesNoCancelLabels}{\param{const wxString&}{yes},\param{const wxString&}{no},\param{const wxString&}{cancel}} - -Overrides the default labels of the Yes, No and Cancel buttons. - -Please see the remarks in -\helpref{SetYesNoLabels}{wxmessagedialogsetyesnolabels} documentation. - - -\membersection{wxMessageDialog::SetOKLabel}\label{wxmessagedialogsetyesoklabel} - -\func{bool}{SetOKLabel}{\param{const wxString&}{ok}} - -Overrides the default label of the OK button. - -Please see the remarks in -\helpref{SetYesNoLabels}{wxmessagedialogsetyesnolabels} documentation. - - -\membersection{wxMessageDialog::SetOKCancelLabels}\label{wxmessagedialogsetokcancellabels} - -\func{bool}{SetOKCancelLabels}{\param{const wxString&}{ok},\param{const wxString&}{cancel}} - -Overrides the default labels of the OK and Cancel buttons. - -Please see the remarks in -\helpref{SetYesNoLabels}{wxmessagedialogsetyesnolabels} documentation. - - -\membersection{wxMessageDialog::SetMessage}\label{wxmessagedialogsetmessage} - -\func{void}{SetMessage}{\param{const wxString&}{msg}} - -Sets the message shown by the dialog. - - -\membersection{wxMessageDialog::SetExtendedMessage}\label{wxmessagedialogsetextendedmessage} - -\func{void}{SetExtendedMessage}{\param{const wxString&}{exMsg}} - -Sets the extended message for the dialog: this message is usually an extension -of the short message specified in the constructor or set with -\helpref{SetMessage}{wxmessagedialogsetmessage}. If it is set, the main message -appears highlighted -- if supported -- and this message appears beneath it in -normal font. On the platforms which don't support extended messages, it is -simply appended to the normal message with a new line separating them. - diff --git a/docs/latex/wx/msgqueue.tex b/docs/latex/wx/msgqueue.tex deleted file mode 100644 index 1c1c26f04d..0000000000 --- a/docs/latex/wx/msgqueue.tex +++ /dev/null @@ -1,126 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: msgqueue.tex -%% Purpose: wxMessageQueue -%% Author: Evgeniy Tarassov -%% Created: 2007-10-31 -%% RCS-ID: $Id: $ -%% Copyright: (C) 2007 TT-Solutions SARL -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxMessageQueue<T>}}\label{wxmessagequeue} - -wxMessageQueue allows passing messages between threads. - -This class should be typically used to communicate between the main and worker -threads. The main thread calls \helpref{Post()}{wxmessagequeuepost} and -the worker thread calls \helpref{Receive()}{wxmessagequeuereceive}. - -For this class a message is an object of arbitrary type T. Notice that -often there is a some special message indicating that the thread -should terminate as there is no other way to gracefully shutdown a thread -waiting on the message queue. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/msgqueue.h> - -\wxheading{Library} - -None, this class implementation is entirely header-based. - -\wxheading{See also} - -\helpref{wxThread}{wxthread} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMessageQueue::wxMessageQueue}\label{wxmessagequeuector} - -\func{}{wxMessageQueue}{\void} - -Default and only constructor. Use \helpref{IsOk}{wxmessagequeueisok} to check -if the object was successfully initialized. - - -\membersection{wxMessageQueue::IsOk}\label{wxmessagequeueisok} - -\constfunc{bool }{IsOk}{\void} - -Returns {\tt true} if the object had been initialized successfully, {\tt false} -if an error occurred. - - -\membersection{wxMessageQueue::Post}\label{wxmessagequeuepost} - -\func{wxMessageQueueError }{Post}{\param{T const\&}{ msg}} - -Add a message to this queue and signal the threads waiting for messages -(i.e. the threads which called \helpref{Receive()}{wxmessagequeuereceive} or -\helpref{ReceiveTimeout()}{wxmessagequeuereceivetimeout}). - -This method is safe to call from multiple threads in parallel. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMSGQUEUE\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMSGQUEUE\_MISC\_ERROR}}{A fatal error has occured.} -\end{twocollist} - - -\membersection{wxMessageQueue::Receive}\label{wxmessagequeuereceive} - -\func{wxMessageQueueError }{Receive}{\param{T\&}{ msg}} - -Block until a message becomes available in the queue. Waits indefinitely long -or until an error occurs. - -The message is returned in \arg{msg}. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMSGQUEUE\_NO\_ERROR}}{A message is available.} -\twocolitem{{\bf wxMSGQUEUE\_MISC\_ERROR}}{A fatal error has occured and no message returned.} -\end{twocollist} - - -\membersection{wxMessageQueue::ReceiveTimeout}\label{wxmessagequeuereceivetimeout} - -\func{wxMessageQueueError }{ReceiveTimeout}{\param{long}{ timeout}, \param{T\&}{ msg}} - -Block until a message becomes available in the queue, but no more than -\arg{timeout} milliseconds has elapsed. - -If no message is available after \arg{timeout} milliseconds then returns -{\bf wxMSGQUEUE\_TIMEOUT}. - -If \arg{timeout} is $0$ then checks for any messages present in the queue -and returns immediately without waiting. - -The message is returned in \arg{msg}. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMSGQUEUE\_NO\_ERROR}}{A message is available.} -\twocolitem{{\bf wxMSGQUEUE\_TIMEOUT}}{A timeout has occured. No message read.} -\twocolitem{{\bf wxMSGQUEUE\_MISC\_ERROR}}{A fatal error has occured.} -\end{twocollist} - diff --git a/docs/latex/wx/mutex.tex b/docs/latex/wx/mutex.tex deleted file mode 100644 index 7f45598005..0000000000 --- a/docs/latex/wx/mutex.tex +++ /dev/null @@ -1,184 +0,0 @@ -\section{\class{wxMutex}}\label{wxmutex} - -A mutex object is a synchronization object whose state is set to signaled when -it is not owned by any thread, and nonsignaled when it is owned. Its name comes -from its usefulness in coordinating mutually-exclusive access to a shared -resource as only one thread at a time can own a mutex object. - -Mutexes may be recursive in the sense that a thread can lock a mutex which it -had already locked before (instead of dead locking the entire process in this -situation by starting to wait on a mutex which will never be released while the -thread is waiting) but using them is not recommended under Unix and they are -{\bf not} recursive there by default. The reason for this is that recursive -mutexes are not supported by all Unix flavours and, worse, they cannot be used -with \helpref{wxCondition}{wxcondition}. On the other hand, Win32 mutexes are -always recursive. - -For example, when several threads use the data stored in the linked list, -modifications to the list should only be allowed to one thread at a time -because during a new node addition the list integrity is temporarily broken -(this is also called {\it program invariant}). - -\wxheading{Example} - -{\small% -\begin{verbatim} - // this variable has an "s_" prefix because it is static: seeing an "s_" in - // a multithreaded program is in general a good sign that you should use a - // mutex (or a critical section) - static wxMutex *s_mutexProtectingTheGlobalData; - - // we store some numbers in this global array which is presumably used by - // several threads simultaneously - wxArrayInt s_data; - - void MyThread::AddNewNode(int num) - { - // ensure that no other thread accesses the list - s_mutexProtectingTheGlobalList->Lock(); - - s_data.Add(num); - - s_mutexProtectingTheGlobalList->Unlock(); - } - - // return true if the given number is greater than all array elements - bool MyThread::IsGreater(int num) - { - // before using the list we must acquire the mutex - wxMutexLocker lock(s_mutexProtectingTheGlobalData); - - size_t count = s_data.Count(); - for ( size_t n = 0; n < count; n++ ) - { - if ( s_data[n] > num ) - return false; - } - - return true; - } -\end{verbatim} -} - -Notice how wxMutexLocker was used in the second function to ensure that the -mutex is unlocked in any case: whether the function returns true or false -(because the destructor of the local object {\it lock} is always called). Using -this class instead of directly using wxMutex is, in general safer and is even -more so if your program uses C++ exceptions. - -\wxheading{Constants} - -\begin{verbatim} -enum wxMutexType -{ - // normal mutex: try to always use this one - wxMUTEX_DEFAULT, - - // recursive mutex: don't use these ones with wxCondition - wxMUTEX_RECURSIVE -}; -\end{verbatim} - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/thread.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition}, -\helpref{wxMutexLocker}{wxmutexlocker}, \helpref{wxCriticalSection}{wxcriticalsection} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxMutex::wxMutex}\label{wxmutexctor} - -\func{}{wxMutex}{\param{wxMutexType }{type = {\tt wxMUTEX\_DEFAULT}}} - -Default constructor. - - -\membersection{wxMutex::\destruct{wxMutex}}\label{wxmutexdtor} - -\func{}{\destruct{wxMutex}}{\void} - -Destroys the wxMutex object. - - -\membersection{wxMutex::Lock}\label{wxmutexlock} - -\func{wxMutexError}{Lock}{\void} - -Locks the mutex object. This is equivalent to -\helpref{LockTimeout}{wxmutexlocktimeout} with infinite timeout. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.} -\end{twocollist} - - -\membersection{wxMutex::LockTimeout}\label{wxmutexlocktimeout} - -\func{wxMutexError}{LockTimeout}{\param{unsigned long}{ msec}} - -Try to lock the mutex object during the specified time interval. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{Mutex successfully locked.} -\twocolitem{{\bf wxMUTEX\_TIMEOUT}}{Mutex couldn't be acquired before timeout expiration.} -\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.} -\end{twocollist} - - -\membersection{wxMutex::TryLock}\label{wxmutextrylock} - -\func{wxMutexError}{TryLock}{\void} - -Tries to lock the mutex object. If it can't, returns immediately with an error. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.} -\end{twocollist} - - -\membersection{wxMutex::Unlock}\label{wxmutexunlock} - -\func{wxMutexError}{Unlock}{\void} - -Unlocks the mutex object. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxMUTEX\_UNLOCKED}}{The calling thread doesn't own the mutex.} -\end{twocollist} - diff --git a/docs/latex/wx/mutexlck.tex b/docs/latex/wx/mutexlck.tex deleted file mode 100644 index afd06be4a6..0000000000 --- a/docs/latex/wx/mutexlck.tex +++ /dev/null @@ -1,47 +0,0 @@ -\section{\class{wxMutexLocker}}\label{wxmutexlocker} - -This is a small helper class to be used with \helpref{wxMutex}{wxmutex} -objects. A wxMutexLocker acquires a mutex lock in the constructor and releases -(or unlocks) the mutex in the destructor making it much more difficult to -forget to release a mutex (which, in general, will promptly lead to serious -problems). See \helpref{wxMutex}{wxmutex} for an example of wxMutexLocker -usage. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/thread.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMutex}{wxmutex}, \helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMutexLocker::wxMutexLocker}\label{wxmutexlockerctor} - -\func{}{wxMutexLocker}{\param{wxMutex\&}{ mutex}} - -Constructs a wxMutexLocker object associated with mutex and locks it. -Call \helpref{IsLocked}{wxmutexlockerisok} to check if the mutex was -successfully locked. - -\membersection{wxMutexLocker::\destruct{wxMutexLocker}}\label{wxmutexlockerdtor} - -\func{}{\destruct{wxMutexLocker}}{\void} - -Destructor releases the mutex if it was successfully acquired in the ctor. - -\membersection{wxMutexLocker::IsOk}\label{wxmutexlockerisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if mutex was acquired in the constructor, false otherwise. - diff --git a/docs/latex/wx/navevent.tex b/docs/latex/wx/navevent.tex deleted file mode 100644 index 863bb7c0a7..0000000000 --- a/docs/latex/wx/navevent.tex +++ /dev/null @@ -1,115 +0,0 @@ -\section{\class{wxNavigationKeyEvent}}\label{wxnavigationkeyevent} - -This event class contains information about navigation events, -generated by navigation keys such as tab and page down. - -This event is mainly used by wxWidgets implementations. A -wxNavigationKeyEvent handler is automatically provided by wxWidgets -when you make a class into a control container with the macro WX\_DECLARE\_CONTROL\_CONTAINER. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a navigation command event, use these event handler macros to direct input to member -functions that take a wxNavigationKeyEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_NAVIGATION\_KEY(func)}}{Process a navigation key event.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Types}}} - -\begin{verbatim} - enum - { - IsBackward = 0x0000, - IsForward = 0x0001, - WinChange = 0x0002, - FromTab = 0x0004 - }; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxWindow::Navigate}{wxwindownavigate}\\ -\helpref{wxWindow::NavigateIn}{wxwindownavigatein} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNavigationKeyEvent::wxNavigationKeyEvent}\label{wxnavigationkeyeventctor} - -\func{}{wxNavigationKeyEvent}{\void} - -\func{}{wxNavigationKeyEvent}{\param{const wxNavigationKeyEvent\&}{ event}} - -Constructor. - -\membersection{wxNavigationKeyEvent::GetCurrentFocus}\label{wxnavigationkeyeventgetcurrentfocus} - -\constfunc{wxWindow*}{GetCurrentFocus}{\void} - -Returns the child that has the focus, or NULL. - -\membersection{wxNavigationKeyEvent::GetDirection}\label{wxnavigationkeyeventgetdirection} - -\constfunc{bool}{GetDirection}{\void} - -Returns \true if the navigation was in the forward direction. - -\membersection{wxNavigationKeyEvent::IsWindowChange}\label{wxnavigationkeyeventiswindowchange} - -\constfunc{bool}{IsWindowChange}{\void} - -Returns \true if the navigation event represents a window change (for example, from Ctrl-Page Down -in a notebook). - -\membersection{wxNavigationKeyEvent::IsFromTab}\label{wxnavigationkeyeventisfromtab} - -\constfunc{bool}{IsFromTab}{\void} - -Returns \true if the navigation event was from a tab key. This is required for proper navigation over radio buttons. - -\membersection{wxNavigationKeyEvent::SetCurrentFocus}\label{wxnavigationkeyeventsetcurrentfocus} - -\func{void}{SetCurrentFocus}{\param{wxWindow* }{currentFocus}} - -Sets the current focus window member. - -\membersection{wxNavigationKeyEvent::SetDirection}\label{wxnavigationkeyeventsetdirection} - -\func{void}{SetDirection}{\param{bool }{direction}} - -Sets the direction to forward if {\it direction} is \true, or backward if \false. - -\membersection{wxNavigationKeyEvent::SetFlags}\label{wxnavigationkeyeventsetflags} - -\func{void}{SetFlags}{\param{long }{flags}} - -Sets the flags. - -\membersection{wxNavigationKeyEvent::SetFromTab}\label{wxnavigationkeyeventsetfromtab} - -\func{void}{SetFromTab}{\param{bool }{fromTab}} - -Marks the navigation event as from a tab key. - -\membersection{wxNavigationKeyEvent::SetWindowChange}\label{wxnavigationkeyeventsetwindowchange} - -\func{void}{SetWindowChange}{\param{bool }{windowChange}} - -Marks the event as a window change event. - diff --git a/docs/latex/wx/nbsizer.tex b/docs/latex/wx/nbsizer.tex deleted file mode 100644 index 5ee0ce00ce..0000000000 --- a/docs/latex/wx/nbsizer.tex +++ /dev/null @@ -1,41 +0,0 @@ -\section{\class{wxNotebookSizer}}\label{wxnotebooksizer} - -{\bf This class is deprecated and should not be used in new code! It is no -longer needed, \helpref{wxNotebook}{wxnotebook} control can be inserted -into any sizer class and its minimal size will be determined correctly. -See \helpref{wxSizer overview}{sizeroverview} for more information.} - -wxNotebookSizer is a specialized sizer to make sizers work in connection -with using notebooks. This sizer is different from any other sizer as -you must not add any children to it - instead, it queries the notebook class itself. -The only thing this sizer does is to determine the size of the biggest -page of the notebook and report an adjusted minimal size to a more toplevel -sizer. - -\wxheading{Derived from} - -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{wxNotebook}{wxnotebook}, \helpref{Sizer overview}{sizeroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotebookSizer::wxNotebookSizer}\label{wxnotebooksizerwxnotebooksizer} - -\func{}{wxNotebookSizer}{\param{wxNotebook* }{notebook}} - -Constructor. It takes an associated notebook as its only parameter. - -\membersection{wxNotebookSizer::GetNotebook}\label{wxnotebooksizergetnotebook} - -\func{wxNotebook*}{GetNotebook}{\void} - -Returns the notebook associated with the sizer. - diff --git a/docs/latex/wx/node.tex b/docs/latex/wx/node.tex deleted file mode 100644 index 80e5024653..0000000000 --- a/docs/latex/wx/node.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{\class{wxNode}}\label{wxnode} - -wxNodeBase is the node structure used in linked lists (see -\helpref{wxList}{wxlist}) and derived classes. You should never use wxNodeBase -class directly, however, because it works with untyped ({\tt void *}) data and -this is unsafe. Use wxNodeBase-derived classes which are automatically defined -by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as described in -\helpref{wxList}{wxlist} documentation (see example there). Also note that -although there is a class called wxNode, it is defined for backwards -compatibility only and usage of this class is strongly deprecated. - -In the documentation below, the type {\tt T} should be thought of as a -``template'' parameter: this is the type of data stored in the linked list or, -in other words, the first argument of WX\_DECLARE\_LIST macro. Also, wxNode is -written as wxNode<T> even though it isn't really a template class -- but it -helps to think of it as if it were. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/list.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxList}{wxlist}, \helpref{wxHashTable}{wxhashtable} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNode<T>::GetData}\label{wxnodegetdata} - -\constfunc{T *}{GetData}{\void} - -Retrieves the client data pointer associated with the node. - -\membersection{wxNode<T>::GetNext}\label{wxnodegetnext} - -\constfunc{wxNode<T> *}{GetNext}{\void} - -Retrieves the next node or NULL if this node is the last one. - -\membersection{wxNode<T>::GetPrevious}\label{wxnodegetprevious} - -\func{wxNode<T> *}{GetPrevious}{\void} - -Retrieves the previous node or NULL if this node is the first one in the list. - -\membersection{wxNode<T>::SetData}\label{wxnodesetdata} - -\func{void}{SetData}{\param{T *}{data}} - -Sets the data associated with the node (usually the pointer will have been -set when the node was created). - -\membersection{wxNode<T>::IndexOf}\label{wxnodeindexof} - -\func{int}{IndexOf}{\void} - -Returns the zero-based index of this node within the list. The return value -will be {\tt wxNOT\_FOUND} if the node has not been added to a list yet. - diff --git a/docs/latex/wx/notebook.tex b/docs/latex/wx/notebook.tex deleted file mode 100644 index b5dc6a4bd0..0000000000 --- a/docs/latex/wx/notebook.tex +++ /dev/null @@ -1,429 +0,0 @@ -\section{\class{wxNotebook}}\label{wxnotebook} - -This class represents a notebook control, which manages multiple windows with associated tabs. - -To use the class, create a wxNotebook object and call \helpref{AddPage}{wxnotebookaddpage} or \helpref{InsertPage}{wxnotebookinsertpage}, -passing a window to be used as the page. Do not explicitly delete the window for a page that is currently -managed by wxNotebook. - -{\bf wxNotebookPage} is a typedef for wxWindow. - -\wxheading{Derived from} - -wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/notebook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxNB\_TOP}}{Place tabs on the top side.} -\twocolitem{\windowstyle{wxNB\_LEFT}}{Place tabs on the left side.} -\twocolitem{\windowstyle{wxNB\_RIGHT}}{Place tabs on the right side.} -\twocolitem{\windowstyle{wxNB\_BOTTOM}}{Place tabs under instead of above the notebook pages.} -\twocolitem{\windowstyle{wxNB\_FIXEDWIDTH}}{(Windows only) All tabs will have same width.} -\twocolitem{\windowstyle{wxNB\_MULTILINE}}{(Windows only) There can be several rows of tabs.} -\twocolitem{\windowstyle{wxNB\_NOPAGETHEME}}{(Windows only) Display a solid colour on notebook pages, and not a gradient, which can reduce performance.} -\twocolitem{\windowstyle{wxNB\_FLAT}}{(Windows CE only) Show tabs in a flat style.} - -\end{twocollist} - -The styles \texttt{wxNB\_LEFT}, \texttt{RIGHT} and \texttt{BOTTOM} are not -supported under Microsoft Windows XP when using visual themes. - -See also \helpref{window styles overview}{windowstyles}. - -\input noteevt.inc - -\wxheading{Page backgrounds} - -On Windows XP, the default theme paints a gradient on the notebook's pages. -If you wish to suppress this theme, for aesthetic or performance reasons, -there are three ways of doing it. You can use wxNB\_NOPAGETHEME to disable -themed drawing for a particular notebook, you can call {\tt wxSystemOptions::SetOption} -to disable it for the whole application, or you can disable it for individual -pages by using {\tt SetBackgroundColour}. - -To disable themed pages globally: - -\begin{verbatim} - wxSystemOptions::SetOption(wxT("msw.notebook.themed-background"), 0); -\end{verbatim} - -Set the value to 1 to enable it again. - -To give a single page a solid background that more or less fits in with the -overall theme, use: - -\begin{verbatim} - wxColour col = notebook->GetThemeBackgroundColour(); - if (col.Ok()) - { - page->SetBackgroundColour(col); - } -\end{verbatim} - -On platforms other than Windows, or if the application is not using Windows -themes, {\tt GetThemeBackgroundColour} will return an uninitialised colour object, -and the above code will therefore work on all platforms. - -\wxheading{See also} - -\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxImageList}{wximagelist}, \helpref{notebook sample}{samplenotebook}\rtfsp - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotebook::wxNotebook}\label{wxnotebookctor} - -\func{}{wxNotebook}{\void} - -Default constructor. - -\func{}{wxNotebook}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}} - -Constructs a notebook control. - -Note that sometimes you can reduce flicker by passing the wxCLIP\_CHILDREN window style. - -\wxheading{Parameters} - -\docparam{parent}{The parent window. Must be non-NULL.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. See \helpref{wxNotebook}{wxnotebook}.} - -\docparam{name}{The name of the control (used only under Motif).} - - -\membersection{wxNotebook::\destruct{wxNotebook}}\label{wxnotebookdtor} - -\func{}{\destruct{wxNotebook}}{\void} - -Destroys the wxNotebook object. - - -\membersection{wxNotebook::AddPage}\label{wxnotebookaddpage} - -\func{bool}{AddPage}{\param{wxNotebookPage*}{ page}, - \param{const wxString\&}{ text}, - \param{bool}{ select = false}, - \param{int}{ imageId = -1}} - -Adds a new page. - -The call to this function may generate the page changing events. - -\wxheading{Parameters} - -\docparam{page}{Specifies the new page.} - -\docparam{text}{Specifies the text for the new page.} - -\docparam{select}{Specifies whether the page should be selected.} - -\docparam{imageId}{Specifies the optional image index for the new page.} - -\wxheading{Return value} - -true if successful, false otherwise. - -\wxheading{Remarks} - -Do not delete the page, it will be deleted by the notebook. - -\wxheading{See also} - -\helpref{wxNotebook::InsertPage}{wxnotebookinsertpage} - - -\membersection{wxNotebook::AdvanceSelection}\label{wxnotebookadvanceselection} - -\func{void}{AdvanceSelection}{\param{bool}{ forward = true}} - -Cycles through the tabs. - -The call to this function generates the page changing events. - - -\membersection{wxNotebook::AssignImageList}\label{wxnotebookassignimagelist} - -\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}} - -Sets the image list for the page control and takes ownership of -the list. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, -\helpref{SetImageList}{wxnotebooksetimagelist} - - -\membersection{wxNotebook::Create}\label{wxnotebookcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, - \param{const wxSize\&}{ size}, \param{long}{ style = 0}, \param{const wxString\& }{name = wxNotebookNameStr}} - -Creates a notebook control. See \helpref{wxNotebook::wxNotebook}{wxnotebookctor} for a description -of the parameters. - - -\membersection{wxNotebook::DeleteAllPages}\label{wxnotebookdeleteallpages} - -\func{bool}{DeleteAllPages}{\void} - -Deletes all pages. - - -\membersection{wxNotebook::DeletePage}\label{wxnotebookdeletepage} - -\func{bool}{DeletePage}{\param{size\_t}{ page}} - -Deletes the specified page, and the associated window. - -The call to this function generates the page changing events. - - -\membersection{wxNotebook::GetCurrentPage}\label{wxnotebookgetcurrentpage} - -\constfunc{wxWindow *}{GetCurrentPage}{\void} - -Returns the currently selected notebook page or \NULL. - - -\membersection{wxNotebook::GetImageList}\label{wxnotebookgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\void} - -Returns the associated image list. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist} - - -\membersection{wxNotebook::GetPage}\label{wxnotebookgetpage} - -\func{wxNotebookPage*}{GetPage}{\param{size\_t}{ page}} - -Returns the window at the given page position. - - -\membersection{wxNotebook::GetPageCount}\label{wxnotebookgetpagecount} - -\constfunc{size\_t}{GetPageCount}{\void} - -Returns the number of pages in the notebook control. - - -\membersection{wxNotebook::GetPageImage}\label{wxnotebookgetpageimage} - -\constfunc{int}{GetPageImage}{\param{size\_t }{nPage}} - -Returns the image index for the given page. - - -\membersection{wxNotebook::GetPageText}\label{wxnotebookgetpagetext} - -\constfunc{wxString}{GetPageText}{\param{size\_t }{nPage}} - -Returns the string for the given page. - - -\membersection{wxNotebook::GetRowCount}\label{wxnotebookgetrowcount} - -\constfunc{int}{GetRowCount}{\void} - -Returns the number of rows in the notebook control. - - -\membersection{wxNotebook::GetSelection}\label{wxnotebookgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or $-1$ if none was selected. - -Note that this method may return either the previously or newly selected page -when called from the {\tt EVT\_NOTEBOOK\_PAGE\_CHANGED} handler depending on -the platform and so\rtfsp -\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} should be -used instead in this case. - -\membersection{wxNotebook::GetThemeBackgroundColour}\label{wxnotebookgetthemebackgroundcolour} - -\constfunc{wxColour}{GetThemeBackgroundColour}{\void} - -If running under Windows and themes are enabled for the application, this function -returns a suitable colour for painting the background of a notebook page, and can be passed -to {\tt SetBackgroundColour}. Otherwise, an uninitialised colour will be returned. - -\membersection{wxNotebook::HitTest}\label{wxnotebookhittest} - -\func{int}{HitTest}{\param{const wxPoint\&}{ pt}, \param{long}{ *flags = {\tt NULL}}} - -Returns the index of the tab at the specified position or {\tt wxNOT\_FOUND} -if none. If {\it flags} parameter is non-{\tt NULL}, the position of the point -inside the tab is returned as well. - -\wxheading{Parameters} - -\docparam{pt}{Specifies the point for the hit test.} - -\docparam{flags}{Return value for detailed information. One of the following values: -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxBK\_HITTEST\_NOWHERE}}{There was no tab under this point.} -\twocolitem{{\bf wxBK\_HITTEST\_ONICON}}{The point was over an icon (currently wxMSW only).} -\twocolitem{{\bf wxBK\_HITTEST\_ONLABEL}}{The point was over a label (currently wxMSW only).} -\twocolitem{{\bf wxBK\_HITTEST\_ONITEM}}{The point was over an item, but not on the label or icon.} -\twocolitem{{\bf wxBK\_HITTEST\_ONPAGE}}{The point was over a currently selected page, not over any tab. Note that this flag is present only if {\tt wxNOT\_FOUND} is returned.} -\end{twocollist} -} - -\wxheading{Return value} - -Returns the zero-based tab index or {\tt wxNOT\_FOUND} if there is no tab is at -the specified position. - - - -\membersection{wxNotebook::InsertPage}\label{wxnotebookinsertpage} - -\func{bool}{InsertPage}{\param{size\_t}{ index}, \param{wxNotebookPage*}{ page}, - \param{const wxString\&}{ text}, - \param{bool}{ select = false}, - \param{int}{ imageId = -1}} - -Inserts a new page at the specified position. - -\wxheading{Parameters} - -\docparam{index}{Specifies the position for the new page.} - -\docparam{page}{Specifies the new page.} - -\docparam{text}{Specifies the text for the new page.} - -\docparam{select}{Specifies whether the page should be selected.} - -\docparam{imageId}{Specifies the optional image index for the new page.} - -\wxheading{Return value} - -true if successful, false otherwise. - -\wxheading{Remarks} - -Do not delete the page, it will be deleted by the notebook. - -\wxheading{See also} - -\helpref{wxNotebook::AddPage}{wxnotebookaddpage} - - -\membersection{wxNotebook::OnSelChange}\label{wxnotebookonselchange} - -\func{void}{OnSelChange}{\param{wxNotebookEvent\&}{ event}} - -An event handler function, called when the page selection is changed. - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent} - - -\membersection{wxNotebook::RemovePage}\label{wxnotebookremovepage} - -\func{bool}{RemovePage}{\param{size\_t}{ page}} - -Deletes the specified page, without deleting the associated window. - - -\membersection{wxNotebook::SetImageList}\label{wxnotebooksetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}} - -Sets the image list for the page control. It does not take -ownership of the image list, you must delete it yourself. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, -\helpref{AssignImageList}{wxnotebookassignimagelist} - - -\membersection{wxNotebook::SetPadding}\label{wxnotebooksetpadding} - -\func{void}{SetPadding}{\param{const wxSize\&}{ padding}} - -Sets the amount of space around each page's icon and label, in pixels. - -{\bf NB:} The vertical padding cannot be changed in wxGTK. - - -\membersection{wxNotebook::SetPageSize}\label{wxnotebooksetpagesize} - -\func{void}{SetPageSize}{\param{const wxSize\&}{ size}} - -Sets the width and height of the pages. - -{\bf NB:} This method is currently not implemented for wxGTK. - - -\membersection{wxNotebook::SetPageImage}\label{wxnotebooksetpageimage} - -\func{bool}{SetPageImage}{\param{size\_t}{ page}, \param{int }{image}} - -Sets the image index for the given page. {\it image} is an index into -the image list which was set with \helpref{wxNotebook::SetImageList}{wxnotebooksetimagelist}. - - -\membersection{wxNotebook::SetPageText}\label{wxnotebooksetpagetext} - -\func{bool}{SetPageText}{\param{size\_t}{ page}, \param{const wxString\& }{text}} - -Sets the text for the given page. - - -\membersection{wxNotebook::SetSelection}\label{wxnotebooksetselection} - -\func{int}{SetSelection}{\param{size\_t}{ page}} - -Sets the selection for the given page, returning the previous selection. - -The call to this function generates the page changing events. - -This function is deprecated and should not be used in new code. Please use the -\helpref{ChangeSelection}{wxnotebookchangeselection} function instead. - -\wxheading{See also} - -\helpref{wxNotebook::GetSelection}{wxnotebookgetselection} - - -\membersection{wxNotebook::ChangeSelection}\label{wxnotebookchangeselection} - -\func{int}{ChangeSelection}{\param{size\_t}{ page}} - -Changes the selection for the given page, returning the previous selection. - -The call to this function \emph{does not} generate the page changing events. -This is the only difference with \helpref{SetSelection}{wxnotebooksetselection}. -See \helpref{this topic}{progevent} for more info. - diff --git a/docs/latex/wx/noteevt.inc b/docs/latex/wx/noteevt.inc deleted file mode 100644 index c8b44cea53..0000000000 --- a/docs/latex/wx/noteevt.inc +++ /dev/null @@ -1,13 +0,0 @@ -\wxheading{Event handling} - -To process input from a notebook control, use the following event handler macros to direct input to member -functions that take a \helpref{wxNotebookEvent}{wxnotebookevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a -wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED event.} -\twocolitem{{\bf EVT\_NOTEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. -Processes a wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING event. This event can be \helpref{vetoed}{wxnotifyeventveto}.} -\end{twocollist} - diff --git a/docs/latex/wx/noteevt.tex b/docs/latex/wx/noteevt.tex deleted file mode 100644 index 5c78151e8a..0000000000 --- a/docs/latex/wx/noteevt.tex +++ /dev/null @@ -1,92 +0,0 @@ -\section{\class{wxNotebookEvent}}\label{wxnotebookevent} - -This class represents the events generated by a notebook control: currently, -there are two of them. The PAGE\_CHANGING event is sent before the current -page is changed. It allows the program to examine the current page (which -can be retrieved with -\helpref{GetOldSelection()}{wxnotebookeventgetoldselection}) and to veto the page -change by calling \helpref{Veto()}{wxnotifyeventveto} if, for example, the -current values in the controls of the old page are invalid. - -The second event - PAGE\_CHANGED - is sent after the page has been changed and -the program cannot veto it any more, it just informs it about the page change. - -To summarize, if the program is interested in validating the page values -before allowing the user to change it, it should process the PAGE\_CHANGING -event, otherwise PAGE\_CHANGED is probably enough. In any case, it is probably -unnecessary to process both events at once. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/notebook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\input noteevt.inc - -\wxheading{See also} - -\helpref{wxNotebook}{wxnotebook} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxNotebookEvent::wxNotebookEvent}\label{wxnotebookeventconstr} - -\func{}{wxNotebookEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, - \param{int}{ id = 0}, \param{int}{ sel = $-1$}, \param{int}{ oldSel = $-1$}} - -Constructor (used internally by wxWidgets only). - - -\membersection{wxNotebookEvent::GetOldSelection}\label{wxnotebookeventgetoldselection} - -\constfunc{int}{GetOldSelection}{\void} - -Returns the page that was selected before the change, $-1$ if none was selected. - - -\membersection{wxNotebookEvent::GetSelection}\label{wxnotebookeventgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or $-1$ if none was selected. - -{\bf NB:} under Windows, GetSelection() will return the same value as\rtfsp -\helpref{GetOldSelection()}{wxnotebookeventgetoldselection} when called from -{\tt EVT\_NOTEBOOK\_PAGE\_CHANGING} handler and not the page which is going to -be selected. Also note that the values of selection and old selection returned -for an event generated in response to a call to -\helpref{wxNotebook::SetSelection}{wxnotebooksetselection} shouldn't be trusted -as they are currently inconsistent under different platforms (but in this case -you presumably don't need them anyhow as you already have the corresponding -information). - - -\membersection{wxNotebookEvent::SetOldSelection}\label{wxnotebookeventsetoldselection} - -\func{void}{SetOldSelection}{\param{int}{ page}} - -Sets the id of the page selected before the change. - - -\membersection{wxNotebookEvent::SetSelection}\label{wxnotebookeventsetselection} - -\func{void}{SetSelection}{\param{int}{ page}} - -Sets the selection member variable. - -\wxheading{See also} - -\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} - - diff --git a/docs/latex/wx/notifevt.tex b/docs/latex/wx/notifevt.tex deleted file mode 100644 index 2fdce6f8e4..0000000000 --- a/docs/latex/wx/notifevt.tex +++ /dev/null @@ -1,65 +0,0 @@ -\section{\class{wxNotifyEvent}}\label{wxnotifyevent} - -This class is not used by the event handlers by itself, but is a base class -for other event classes (such as \helpref{wxNotebookEvent}{wxnotebookevent}). - -It (or an object of a derived class) is sent when the controls state is being -changed and allows the program to \helpref{Veto()}{wxnotifyeventveto} this -change if it wants to prevent it from happening. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -None - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxNotifyEvent::wxNotifyEvent}\label{wxnotifyeventconstr} - -\func{}{wxNotifyEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, \param{int}{ id = 0}} - -Constructor (used internally by wxWidgets only). - -\membersection{wxNotifyEvent::Allow}\label{wxnotifyeventallow} - -\func{void}{Allow}{\void} - -This is the opposite of \helpref{Veto()}{wxnotifyeventveto}: it explicitly -allows the event to be processed. For most events it is not necessary to call -this method as the events are allowed anyhow but some are forbidden by default -(this will be mentioned in the corresponding event description). - -\membersection{wxNotifyEvent::IsAllowed}\label{wxnotifyeventisallowed} - -\constfunc{bool}{IsAllowed}{\void} - -Returns true if the change is allowed (\helpref{Veto()}{wxnotifyeventveto} -hasn't been called) or false otherwise (if it was). - -\membersection{wxNotifyEvent::Veto}\label{wxnotifyeventveto} - -\func{void}{Veto}{\void} - -Prevents the change announced by this event from happening. - -It is in general a good idea to notify the user about the reasons for vetoing -the change because otherwise the applications behaviour (which just refuses to -do what the user wants) might be quite surprising. - diff --git a/docs/latex/wx/notifmsg.tex b/docs/latex/wx/notifmsg.tex deleted file mode 100644 index a1687e98cf..0000000000 --- a/docs/latex/wx/notifmsg.tex +++ /dev/null @@ -1,113 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: notifmsg.tex -%% Purpose: wxNotificationMessage documentation -%% Author: Vadim Zeitlin -%% Created: 2007-11-24 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwidgets.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxNotificationMessage}}\label{wxnotificationmessage} - -This class allows to show the user a message non intrusively. Currently it is -implemented natively only for the Maemo platform and uses (non-modal) dialogs -for the display of the notifications under the other platforms but it will be -extended to use the platform-specific notifications in the other ports in the -future. - -Notice that this class is not a window and so doesn't derive from wxWindow. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler} - -\wxheading{Include files} - -<wx/notifmsg.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxNotificationMessage::wxNotificationMessage}\label{wxnotificationmessagewxnotificationmessage} - -\func{}{wxNotificationMessage}{\void} - -Default constructor, use \helpref{SetParent}{wxnotificationmessagesetparent}, -\helpref{SetTitle}{wxnotificationmessagesettitle} and -\helpref{SetMessage}{wxnotificationmessagesetmessage} to initialize the object -before showing it. - - -\func{}{wxNotificationMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{message = wxString()}, \param{wxWindow* }{parent = NULL}, \param{int }{flags = \texttt{wxICON\_INFORMATION}}} - -Create a notification object with the given attributes. - -See \helpref{SetTitle}{wxnotificationmessagesettitle}, -\helpref{SetMessage}{wxnotificationmessagesetmessage}, -\helpref{SetParent}{wxnotificationmessagesetparent} and -\helpref{SetFlags}{wxnotificationmessagesetflags} for the description of the -corresponding parameters. - - -\membersection{wxNotificationMessage::Close}\label{wxnotificationmessageclose} - -\func{bool}{Close}{\void} - -Hides the notification. - -Returns \true if it was hidden or \false if it couldn't be done (e.g. on some -systems automatically hidden notifications can't be hidden manually) - - -\membersection{wxNotificationMessage::SetFlags}\label{wxnotificationmessagesetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -This parameter can be currently used to specify the icon to show in the -notification. Valid values are \texttt{wxICON\_INFORMATION}, -\texttt{wxICON\_WARNING} and \texttt{wxICON\_ERROR} (notice that -\texttt{wxICON\_QUESTION} is not allowed here). - -Some implementations of this class may not support the icons. - - -\membersection{wxNotificationMessage::SetMessage}\label{wxnotificationmessagesetmessage} - -\func{void}{SetMessage}{\param{const wxString\& }{message}} - -Set the main text of the notification. This should be a more detailed -description than the title but still limited to reasonable length (not more -than 256 characters). - - -\membersection{wxNotificationMessage::SetParent}\label{wxnotificationmessagesetparent} - -\func{void}{SetParent}{\param{wxWindow* }{parent}} - -Set the parent for this notification: the notification will be associated with -the top level parent of this window or, if this method is not called, with the -main application window by default - - -\membersection{wxNotificationMessage::SetTitle}\label{wxnotificationmessagesettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Set the title, it must be a concise string (not more than 64 characters), use -\helpref{SetMessage}{wxnotificationmessagesetmessage} to give the user more -details. - - -\membersection{wxNotificationMessage::Show}\label{wxnotificationmessageshow} - -\func{bool}{Show}{\param{int }{timeout = Timeout\_Auto}} - -Show the notification to the user and hides it after timeout seconds -pass. Special values \texttt{Timeout\_Auto} and \texttt{Timeout\_Never} can be -used here, notice that you shouldn't rely on \arg{timeout} being exactly -respected because the current platform may only support default timeout value -and also because the user may be able to close the notification. - -Returns \false if an error occurred. - diff --git a/docs/latex/wx/object.tex b/docs/latex/wx/object.tex deleted file mode 100644 index 8d8c6f07a8..0000000000 --- a/docs/latex/wx/object.tex +++ /dev/null @@ -1,386 +0,0 @@ -\section{\class{wxObject}}\label{wxobject} - -This is the root class of many of the wxWidgets classes. -It declares a virtual destructor which ensures that -destructors get called for all derived class objects where necessary. - -wxObject is the hub of a dynamic object creation -scheme, enabling a program to create instances of a class only knowing -its string class name, and to query the class hierarchy. - -The class contains optional debugging versions -of {\bf new} and {\bf delete}, which can help trace memory allocation -and deallocation problems. - -wxObject can be used to implement \helpref{reference counted}{trefcount} objects, -such as wxPen, wxBitmap and others (see \helpref{this list}{refcountlist}). - -\wxheading{See also} - -\helpref{wxClassInfo}{wxclassinfo}, \helpref{Debugging overview}{debuggingoverview},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/object.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxObject::wxObject}\label{wxobjectctor} - -\func{}{wxObject}{\void} - -\func{}{wxObject}{\param{const wxObject\&}{ other}} - -Default and copy constructors. - -\membersection{wxObject::\destruct{wxObject}}\label{wxobjectdtor} - -\func{}{wxObject}{\void} - -Destructor. Performs dereferencing, for those objects -that use reference counting. - -\membersection{wxObject::m\_refData}\label{wxobjectmrefdata} - -\member{wxObjectRefData* }{m\_refData} - -Pointer to an object which is the object's reference-counted data. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp -\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::Dump}\label{wxobjectdump} - -\func{void}{Dump}{\param{ostream\&}{ stream}} - -A virtual function that may be redefined by derived classes to allow dumping of -memory states. - -This function is only defined in debug build and doesn't exist at all if -{\tt \_\_WXDEBUG\_\_} is not defined. - -\wxheading{Parameters} - -\docparam{stream}{Stream on which to output dump information.} - -\wxheading{Remarks} - -Currently wxWidgets does not define Dump for derived classes, but -programmers may wish to use it for their own applications. Be sure to -call the Dump member of the class's base class to allow all information to be -dumped. - -The implementation of this function in wxObject just writes the class name of -the object. - -\membersection{wxObject::GetClassInfo}\label{wxobjectgetclassinfo} - -\func{wxClassInfo *}{GetClassInfo}{\void} - -This virtual function is redefined for every class that requires run-time -type information, when using DECLARE\_CLASS macros. - -\membersection{wxObject::GetRefData}\label{wxobjectgetrefdata} - -\constfunc{wxObjectRefData*}{GetRefData}{\void} - -Returns the {\bf m\_refData} pointer. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::IsKindOf}\label{wxobjectiskindof} - -\func{bool}{IsKindOf}{\param{wxClassInfo *}{info}} - -Determines whether this class is a subclass of (or the same class as) -the given class. - -\wxheading{Parameters} - -\docparam{info}{A pointer to a class information object, which may be obtained -by using the CLASSINFO macro.} - -\wxheading{Return value} - -true if the class represented by {\it info} is the same class as -this one or is derived from it. - -\wxheading{Example} - -\begin{verbatim} - bool tmp = obj->IsKindOf(CLASSINFO(wxFrame)); -\end{verbatim} - -\membersection{wxObject::IsSameAs}\label{wxobjectissameas} - -\func{bool}{IsSameAs}{\param{const wxObject\& }{ obj}} - -Returns \true if this object has the same data pointer as \arg{obj}. Notice -that \true is returned if the data pointers are \NULL in both objects. - -This function only does a \emph{shallow} comparison, i.e. it doesn't compare -the objects pointed to by the data pointers of these objects. - -\membersection{wxObject::Ref}\label{wxobjectref} - -\func{void}{Ref}{\param{const wxObject\& }{clone}} - -Makes this object refer to the data in {\it clone}. - -\wxheading{Parameters} - -\docparam{clone}{The object to `clone'.} - -\wxheading{Remarks} - -First this function calls \helpref{wxObject::UnRef}{wxobjectunref} on itself -to decrement (and perhaps free) the data it is currently referring to. - -It then sets its own m\_refData to point to that of {\it clone}, and increments the reference count -inside the data. - -\wxheading{See also} - -\helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::SetRefData}\label{wxobjectsetrefdata} - -\func{void}{SetRefData}{\param{wxObjectRefData*}{ data}} - -Sets the {\bf m\_refData} pointer. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::UnRef}{wxobjectunref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::UnRef}\label{wxobjectunref} - -\func{void}{UnRef}{\void} - -Decrements the reference count in the associated data, and if it is zero, deletes the data. -The {\bf m\_refData} member is set to NULL. - -\wxheading{See also} - -\helpref{wxObject::Ref}{wxobjectref}, \helpref{wxObject::m\_refData}{wxobjectmrefdata},\rtfsp -\helpref{wxObject::SetRefData}{wxobjectsetrefdata}, \helpref{wxObject::GetRefData}{wxobjectgetrefdata},\rtfsp -\helpref{wxObjectRefData}{wxobjectrefdata} - -\membersection{wxObject::UnShare}\label{wxobjectunshare} - -\func{void}{UnShare}{\void} - -Ensure that this object's data is not shared with any other object. - -if we have no -data, it is created using CreateRefData() below, if we have shared data -it is copied using CloneRefData(), otherwise nothing is done. - - -\membersection{wxObject::operator new}\label{wxobjectnew} - -\func{void *}{new}{\param{size\_t }{size}, \param{const wxString\& }{filename = NULL}, \param{int}{ lineNum = 0}} - -The {\it new} operator is defined for debugging versions of the library only, when -the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory allocation, allowing -wxDebugContext operations. - -\membersection{wxObject::operator delete}\label{wxobjectdelete} - -\func{void}{delete}{\param{void }{buf}} - -The {\it delete} operator is defined for debugging versions of the library only, when -the identifier \_\_WXDEBUG\_\_ is defined. It takes over memory deallocation, allowing -wxDebugContext operations. - - - -%% wxObjectRefData - -\section{\class{wxObjectRefData}}\label{wxobjectrefdata} - -This class is used to store reference-counted data. Derive classes from this to -store your own data. When retrieving information from a {\bf wxObject}'s reference data, -you will need to cast to your own derived class. - -\wxheading{Friends} - -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\helpref{wxObject}{wxobject} -\helpref{wxObjectDataPtr<T>}{wxobjectdataptr} -\helpref{Reference counting}{trefcount} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/object.h> - -\wxheading{Example} - -\begin{verbatim} - -// include file - -class MyCar: public wxObject -{ -public: - MyCar() { } - MyCar( int price ); - - bool IsOk() const { return m_refData != NULL; } - - bool operator == ( const MyCar& car ) const; - bool operator != (const MyCar& car) const { return !(*this == car); } - - void SetPrice( int price ); - int GetPrice() const; - -protected: - virtual wxObjectRefData *CreateRefData() const; - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; - - DECLARE_DYNAMIC_CLASS(MyCar) -}; - - -// implementation - -class MyCarRefData: public wxObjectRefData -{ -public: - MyCarRefData() - { - m_price = 0; - } - - MyCarRefData( const MyCarRefData& data ) - : wxObjectRefData() - { - m_price = data.m_price; - } - - bool operator == (const MyCarRefData& data) const - { - return m_price == data.m_price; - } - - int m_price; -}; - - -#define M_CARDATA ((MyCarRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(MyCar,wxObject) - -MyCar::MyCar( int price ) -{ - m_refData = new MyCarRefData(); - M_CARDATA->m_price = price; -} - -wxObjectRefData *MyCar::CreateRefData() const -{ - return new MyCarRefData; -} - -wxObjectRefData *MyCar::CloneRefData(const wxObjectRefData *data) const -{ - return new MyCarRefData(*(MyCarRefData *)data); -} - -bool MyCar::operator == ( const MyCar& car ) const -{ - if (m_refData == car.m_refData) return true; - - if (!m_refData || !car.m_refData) return false; - - return ( *(MyCarRefData*)m_refData == *(MyCarRefData*)car.m_refData ); -} - -void MyCar::SetPrice( int price ) -{ - UnShare(); - - M_CARDATA->m_price = price; -} - -int MyCar::GetPrice() const -{ - wxCHECK_MSG( IsOk(), -1, "invalid car" ); - - return (M_CARDATA->m_price); -} - -\end{verbatim} - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxObjectRefData::wxObjectRefData}\label{wxobjectrefdatactor} - -\func{}{wxObjectRefData}{\void} - -Default constructor. Initialises the internal reference count to 1. - -\membersection{wxObjectRefData::\destruct{wxObjectRefData}}\label{wxobjectrefdatadtor} - -\func{}{wxObjectRefData}{\void} - -Destructor. It's declared {\tt protected} so that wxObjectRefData instances will never -be destroyed directly but only as result of a \helpref{DecRef}{wxobjectrefdatadecref} call. - -\membersection{wxObjectRefData::GetRefCount}\label{wxobjectrefdatagetrefcount} - -\constfunc{int}{GetRefCount}{\void} - -Returns the reference count associated with this shared data. -When this goes to zero during a \helpref{DecRef}{wxobjectrefdatadecref} call, the object -will auto-free itself. - -\membersection{wxObjectRefData::DecRef}\label{wxobjectrefdatadecref} - -\func{void}{DecRef}{\void} - -Decrements the reference count associated with this shared data and, if it reaches zero, -destroys this instance of wxObjectRefData releasing its memory. - -Please note that after calling this function, the caller should absolutely avoid to use -the pointer to this instance since it may not be valid anymore. - -\membersection{wxObjectRefData::IncRef}\label{wxobjectrefdataincref} - -\func{void}{IncRef}{\void} - -Increments the reference count associated with this shared data. - diff --git a/docs/latex/wx/objectdataptr.tex b/docs/latex/wx/objectdataptr.tex deleted file mode 100644 index 7326f3b0ee..0000000000 --- a/docs/latex/wx/objectdataptr.tex +++ /dev/null @@ -1,180 +0,0 @@ -\section{\class{wxObjectDataPtr<T>}}\label{wxobjectdataptr} - -This is helper template class primarily written to avoid memory -leaks because of missing calls to \helpref{wxObjectRefData::DecRef}{wxobjectrefdatadecref}. - -Despite the name this template can actually be used as a -smart pointer for any class implementing the reference -counting interface which only consists of the two methods -{\bf T::IncRef()} and {\bf T::DecRef()}. - -The difference to \helpref{wxSharedPtr}{wxsharedptr} is that -wxObjectDataPtr relies on the reference counting to be in -the class pointed to where as wxSharedPtr implements the -reference counting itself. - -\wxheading{See also} - -\helpref{wxObject}{wxobject}, -\helpref{wxObjectRefData}{wxobjectrefdata}, -\helpref{Reference counting}{trefcount} - -\helpref{wxSharedPtr}{wxsharedptr}, -\helpref{wxScopedPtr}{wxscopedptrtemplate}, -\helpref{wxWeakRef}{wxweakref} - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<object.h> - -\wxheading{Data structures} - -{\small% -\begin{verbatim} -typedef T element_type -\end{verbatim} -}% - -\wxheading{Example} - -\begin{verbatim} - -class MyCarRefData: public wxObjectRefData -{ -public: - MyCarRefData() { m_price = 0; } - - MyCarRefData( const MyCarRefData& data ) - : wxObjectRefData() - { - m_price = data.m_price; - } - - void SetPrice( int price ) { m_price = price; } - int GetPrice() { return m_price; } - -protected: - int m_price; -}; - -class MyCar -{ -public: - MyCar( int price ) : m_data( new MyCarRefData ) - { - m_data->SetPrice( price ); - } - - MyCar& operator =( const MyCar& tocopy ) - { - m_data = tocopy.m_data; - return *this; - } - - bool operator == ( const MyCar& other ) const - { - if (m_data.get() == other.m_data.get()) return true; - return (m_data->GetPrice() == other.m_data->GetPrice()); - } - - void SetPrice( int price ) - { - UnShare(); - m_data->SetPrice( price ); - } - - int GetPrice() const - { - return m_data->GetPrice(); - } - - wxObjectDataPtr<MyCarRefData> m_data; - -protected: - void UnShare() - { - if (m_data->GetRefCount() == 1) - return; - - m_data.reset( new MyCarRefData( *m_data ) ); - } -}; - -\end{verbatim} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxObjectDataPtr<T>::wxObjectDataPtr<T>}\label{wxobjectdataptrwxobjectdataptr} - -\func{wxEXPLICIT}{wxObjectDataPtr<T>}{\param{T* }{ptr = NULL}} - -Constructor. {\it ptr} is a pointer to the reference -counted object to which this class points. If {\it ptr} -is not NULL {\bf T::IncRef()} will be called on the -object. - -\func{}{wxObjectDataPtr<T>}{\param{const wxObjectDataPtr<T>\& }{tocopy}} - -This copy constructor increases the count of the reference -counted object to which {\it tocopy} points and then this -class will point to, as well. - -\membersection{wxObjectDataPtr<T>::\destruct{wxObjectDataPtr<T>}}\label{wxobjectdataptrdtor} - -\func{}{\destruct{wxObjectDataPtr<T>}}{\void} - -Decreases the reference count of the object to which this -class points. - -\membersection{wxObjectDataPtr<T>::operator unspecified\_bool\_type}\label{wxobjectdataptroperatorbool} - -\constfunc{}{operator unspecified\_bool\_type}{\void} - -Conversion to a boolean expression (in a variant which is not -convertable to anything but a boolean expression). If this class -contains a valid pointer it will return {\it true}, if it contains -a NULL pointer it will return {\it false}. - -\membersection{wxObjectDataPtr<T>::operator*}\label{wxobjectdataptroperatorreft} - -\constfunc{T \&}{operator*}{\void} - -Returns a reference to the object. If the internal pointer is NULL -this method will cause an assert in debug mode. - -\membersection{wxObjectDataPtr<T>::operator->}\label{wxobjectdataptroperatorpointer} - -\constfunc{T*}{operator->}{\void} - -Returns a pointer to the reference counted object to which -this class points. If this the internal pointer is NULL, -this method will assert in debug mode. - -\membersection{wxObjectDataPtr<T>::operator=}\label{wxobjectdataptroperatorassign} - -\func{wxObjectDataPtr<T>\& operator}{operator=}{\param{const wxObjectDataPtr<T>\& }{tocopy}} - -\func{wxObjectDataPtr<T>\& operator}{operator=}{\param{T* }{ptr}} - -Assignment operators. - -\membersection{wxObjectDataPtr<T>::get}\label{wxobjectdataptrget} - -\constfunc{T*}{get}{\void} - -Gets a pointer to the reference counted object to which -this class points. - -\membersection{wxObjectDataPtr<T>::reset}\label{wxobjectdataptrreset} - -\func{void}{reset}{\param{T* }{ptr}} - -Reset this class to {\it ptr} which points to a reference -counted object and calls {\bf T::DecRef()} on the previously -owned object. diff --git a/docs/latex/wx/odcbox.tex b/docs/latex/wx/odcbox.tex deleted file mode 100644 index 385326bf77..0000000000 --- a/docs/latex/wx/odcbox.tex +++ /dev/null @@ -1,225 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: odcbox.tex -%% Purpose: wxOwnerDrawnComboBox docs -%% Author: Jaakko Salli -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) Jaakko Salli -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxOwnerDrawnComboBox}}\label{wxownerdrawncombobox} - -wxOwnerDrawnComboBox is a combobox with owner-drawn list items. -In essence, it is a \helpref{wxComboCtrl}{wxcomboctrl} with -\helpref{wxVListBox}{wxvlistbox} popup and \helpref{wxControlWithItems}{wxcontrolwithitems} -interface. - -Implementing item drawing and measuring is similar to \helpref{wxVListBox}{wxvlistbox}. -Application needs to subclass wxOwnerDrawnComboBox and implement -\helpref{OnDrawItem()}{wxownerdrawncomboboxondrawitem}, \helpref{OnMeasureItem()}{wxownerdrawncomboboxonmeasureitem} -and \helpref{OnMeasureItemWidth()}{wxownerdrawncomboboxonmeasureitemwidth}. - - -\wxheading{Derived from} - -\helpref{wxComboCtrl}{wxcomboctrl}\\ -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/odcombo.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxODCB\_DCLICK\_CYCLES}}{Double-clicking cycles item -if wxCB\_READONLY is also used. Synonymous with wxCC\_SPECIAL\_DCLICK.} -\twocolitem{\windowstyle{wxODCB\_STD\_CONTROL\_PAINT}}{Control itself is not -custom painted using OnDrawItem. Even if this style is not used, writable -wxOwnerDrawnComboBox is never custom painted unless SetCustomPaintWidth is -called.} -\end{twocollist} - -See also \helpref{wxComboCtrl window styles}{wxcomboctrl} and -base \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_COMBOBOX(id, func)}}{Process a wxEVT\_COMMAND\_COMBOBOX\_SELECTED event, -when an item on the list is selected. Note that calling -\helpref{GetValue}{wxcomboctrlgetvalue} returns the new value of selection.} -\end{twocollist} - -See also events emitted by \helpref{wxComboCtrl}{wxcomboctrl}. - -\wxheading{See also} - -\helpref{wxComboCtrl}{wxcomboctrl}, \helpref{wxComboBox}{wxcombobox}, \helpref{wxVListBox}{wxvlistbox}, -\rtfsp\helpref{wxCommandEvent}{wxcommandevent} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxOwnerDrawnComboBox::wxOwnerDrawnComboBox}\label{wxownerdrawncomboboxctor} - -\func{}{wxOwnerDrawnComboBox}{\void} - -Default constructor. - -\func{}{wxOwnerDrawnComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString }{choices[] = NULL},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{}{wxOwnerDrawnComboBox}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Constructor, creating and showing a owner-drawn combobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial selection string. An empty string indicates no selection.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{n}{Number of strings with which to initialise the control.} - -\docparam{choices}{An array of strings with which to initialise the control.} - -\docparam{style}{Window style. See \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxOwnerDrawnComboBox::Create}{wxownerdrawncomboboxcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxOwnerDrawnComboBox::\destruct{wxOwnerDrawnComboBox}}\label{wxownerdrawncomboboxdtor} - -\func{}{\destruct{wxOwnerDrawnComboBox}}{\void} - -Destructor, destroying the owner-drawn combobox. - - -\membersection{wxOwnerDrawnComboBox::Create}\label{wxownerdrawncomboboxcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{int}{ n}, \param{const wxString }{choices[]},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size},\rtfsp -\param{const wxArrayString\& }{choices},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``comboBox"}} - -Creates the combobox for two-step construction. Derived classes -should call or replace this function. See -\helpref{wxOwnerDrawnComboBox::wxOwnerDrawnComboBox}{wxownerdrawncomboboxctor}\rtfsp -for further details. - - -\membersection{wxOwnerDrawnComboBox::GetWidestItem}\label{wxownerdrawncomboboxgetwidestitem} - -\constfunc{int}{GetWidestItem}{\void} - -Returns index to the widest item in the list. - - -\membersection{wxOwnerDrawnComboBox::GetWidestItemWidth}\label{wxownerdrawncomboboxgetwidestitemwidth} - -\constfunc{int}{GetWidestItemWidth}{\void} - -Returns width of the widest item in the list. - - -\membersection{wxOwnerDrawnComboBox::OnDrawBackground}\label{wxownerdrawncomboboxondrawbackground} - -\constfunc{void}{OnDrawBackground}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{item}, \param{int }{flags}} - -This method is used to draw the items background and, maybe, a border around it. - -The base class version implements a reasonable default behaviour which consists -in drawing the selected item with the standard background colour and drawing a -border around the item if it is either selected or current. - -\wxheading{Remarks} - -\arg{flags} has the same meaning as with \helpref{OnDrawItem}{wxownerdrawncomboboxondrawitem}. - - -\membersection{wxOwnerDrawnComboBox::OnDrawItem}\label{wxownerdrawncomboboxondrawitem} - -\constfunc{void}{OnDrawItem}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{item}, \param{int }{flags}} - -The derived class may implement this function to actually draw the item -with the given index on the provided DC. If function is not implemented, -the item text is simply drawn, as if the control was a normal combobox. - -\wxheading{Parameters} - -\docparam{dc}{The device context to use for drawing} - -\docparam{rect}{The bounding rectangle for the item being drawn (DC clipping -region is set to this rectangle before calling this function)} - -\docparam{item}{The index of the item to be drawn} - -\docparam{flags}{Combines any of the following flag values:} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxODCB\_PAINTING\_CONTROL}}{Combo control is being -painted, instead of a list item. Argument item may be wxNOT\_FOUND in this -case.} -\twocolitem{{\tt wxODCB\_PAINTING\_SELECTED}}{An item with selection -background is being painted. DC text colour should already be correct.} -\end{twocollist} - - -\membersection{wxOwnerDrawnComboBox::OnMeasureItem}\label{wxownerdrawncomboboxonmeasureitem} - -\constfunc{wxCoord}{OnMeasureItem}{\param{size\_t }{item}} - -The derived class may implement this method to return the height of the -specified item (in pixels). - -The default implementation returns text height, as if this control was -a normal combobox. - - -\membersection{wxOwnerDrawnComboBox::OnMeasureItemWidth}\label{wxownerdrawncomboboxonmeasureitemwidth} - -\constfunc{wxCoord}{OnMeasureItemWidth}{\param{size\_t }{item}} - -The derived class may implement this method to return the width of the -specified item (in pixels). If -1 is returned, then the item text width -is used. - -The default implementation returns -1. - diff --git a/docs/latex/wx/outptstr.tex b/docs/latex/wx/outptstr.tex deleted file mode 100644 index a7776b8aee..0000000000 --- a/docs/latex/wx/outptstr.tex +++ /dev/null @@ -1,113 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxOutputStream}}\label{wxoutputstream} - -wxOutputStream is an abstract base class which may not be used directly. - -\wxheading{Derived from} - -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- - -\membersection{wxOutputStream::wxOutputStream}\label{wxoutputstreamctor} - -\func{}{wxOutputStream}{\void} - -Creates a dummy wxOutputStream object. - - -\membersection{wxOutputStream::\destruct{wxOutputStream}}\label{wxoutputstreamdtor} - -\func{}{\destruct{wxOutputStream}}{\void} - -Destructor. - - -\membersection{wxOutputStream::Close}\label{wxoutputstreamclose} - -\func{bool}{Close}{\void} - -Closes the stream, returning {\tt false} if an error occurs. The -stream is closed implicitly in the destructor if Close() is not -called explicitly. - -If this stream wraps another stream or some other resource such -as a file, then the underlying resource is closed too if it is owned -by this stream, or left open otherwise. - - -\membersection{wxOutputStream::LastWrite}\label{wxoutputstreamlastwrite} - -\constfunc{size\_t}{LastWrite}{\void} - -Returns the number of bytes written during the last -\helpref{Write()}{wxoutputstreamwrite}. It may return $0$ even if there is no -error on the stream if it is only temporarily impossible to write to it. - - -\membersection{wxOutputStream::PutC}\label{wxoutputstreamputc} - -\func{void}{PutC}{\param{char}{ c}} - -Puts the specified character in the output queue and increments the -stream position. - - -\membersection{wxOutputStream::SeekO}\label{wxoutputstreamseeko} - -\func{off\_t}{SeekO}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode = wxFromStart}} - -Changes the stream current position. - -\wxheading{Parameters} - -\docparam{pos}{Offset to seek to.} - -\docparam{mode}{One of {\bf wxFromStart}, {\bf wxFromEnd}, {\bf wxFromCurrent}.} - -\wxheading{Return value} - -The new stream position or wxInvalidOffset on error. - - -\membersection{wxOutputStream::TellO}\label{wxoutputstreamtello} - -\constfunc{off\_t}{TellO}{\void} - -Returns the current stream position. - - -\membersection{wxOutputStream::Write}\label{wxoutputstreamwrite} - -\func{wxOutputStream\&}{Write}{\param{const void *}{buffer}, \param{size\_t}{ size}} - -Writes up to the specified amount of bytes using the data of {\it buffer}. Note -that not all data can always be written so you must check the number of bytes -really written to the stream using \helpref{LastWrite()}{wxoutputstreamlastwrite} -when this function returns. In some cases (for example a write end of a pipe -which is currently full) it is even possible that there is no errors and zero -bytes have been written. - -This function returns a reference on the current object, so the user can test -any states of the stream right away. - -\func{wxOutputStream\&}{Write}{\param{wxInputStream\&}{ stream\_in}} - -Reads data from the specified input stream and stores them -in the current stream. The data is read until an error is raised -by one of the two streams. - diff --git a/docs/latex/wx/pagedlg.tex b/docs/latex/wx/pagedlg.tex deleted file mode 100644 index 961f58da45..0000000000 --- a/docs/latex/wx/pagedlg.tex +++ /dev/null @@ -1,327 +0,0 @@ -\section{\class{wxPageSetupDialog}}\label{wxpagesetupdialog} - -This class represents the page setup common dialog. In MSW, the page setup -dialog is standard from Windows 95 on, replacing the print setup dialog (which -is retained in Windows and wxWidgets for backward compatibility). On Windows 95 -and NT 4.0 and above, the page setup dialog is native to the windowing system, -otherwise it is emulated. - -The page setup dialog contains controls for paper size (A4, A5 etc.), -orientation (landscape or portrait), and controls for setting left, top, right -and bottom margin sizes in millimetres. - -On Macintosh, the native page setup dialog is used, which lets you select paper -size and orientation but it does not let you change the page margins. - -On other platforms, a generic dialog is used. - -When the dialog has been closed, you need to query the -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} object associated with -the dialog. - -Note that the OK and Cancel buttons do not destroy the dialog; this must be done -by the application. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/printdlg.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPageSetupDialog::wxPageSetupDialog}\label{wxpagesetupdialogctor} - -\func{}{wxPageSetupDialog}{\param{wxWindow* }{parent}, \param{wxPageSetupDialogData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of page setup -data, which will be copied to the print dialog's internal data. - -\membersection{wxPageSetupDialog::\destruct{wxPageSetupDialog}}\label{wxpagesetupdialogdtor} - -\func{}{\destruct{wxPageSetupDialog}}{\void} - -Destructor. - -\membersection{wxPageSetupDialog::GetPageSetupData}\label{wxpagesetupdialoggetpagesetupdata} - -\func{wxPageSetupDialogData\&}{GetPageSetupData}{\void} - -Returns the \helpref{page setup data}{wxpagesetupdialogdata} associated with the dialog. - -%\membersection{wxPageSetupDialog::IsOk}\label{wxpagesetupdialogisok} -% -%\constfunc{bool}{IsOk}{\void} -% -%Returns true if the print data associated with the dialog data is valid. -%This can return false on Windows if the current printer is not set, for example. -%On all other platforms, it returns true. - -\membersection{wxPageSetupDialog::ShowModal}\label{wxpagesetupdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - -\section{\class{wxPageSetupDialogData}}\label{wxpagesetupdialogdata} - -This class holds a variety of information related to \helpref{wxPageSetupDialog}{wxpagesetupdialog}. - -It contains a \helpref{wxPrintData}{wxprintdata} member which is used to hold basic printer configuration data (as opposed to the -user-interface configuration settings stored by wxPageSetupDialogData). - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/cmndata.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPageSetupDialogData::wxPageSetupDialogData}\label{wxpagesetupdialogdatactor} - -\func{}{wxPageSetupDialogData}{\void} - -Default constructor. - -\func{}{wxPageSetupDialogData}{\param{wxPageSetupDialogData\&}{ data}} - -Copy constructor. - -\func{}{wxPageSetupDialogData}{\param{wxPrintData\&}{ printData}} - -Construct an object from a print data object. - -\membersection{wxPageSetupDialogData::\destruct{wxPageSetupDialogData}}\label{wxpagesetupdialogdatadtor} - -\func{}{\destruct{wxPageSetupDialogData}}{\void} - -Destructor. - -\membersection{wxPageSetupDialogData::EnableHelp}\label{wxpagesetupdialogdataenablehelp} - -\func{void}{EnableHelp}{\param{bool }{flag}} - -Enables or disables the `Help' button (Windows only). - -\membersection{wxPageSetupDialogData::EnableMargins}\label{wxpagesetupdialogdataenablemargins} - -\func{void}{EnableMargins}{\param{bool }{flag}} - -Enables or disables the margin controls (Windows only). - -\membersection{wxPageSetupDialogData::EnableOrientation}\label{wxpagesetupdialogdataenableorientation} - -\func{void}{EnableOrientation}{\param{bool }{flag}} - -Enables or disables the orientation control (Windows only). - -\membersection{wxPageSetupDialogData::EnablePaper}\label{wxpagesetupdialogdataenablepaper} - -\func{void}{EnablePaper}{\param{bool }{flag}} - -Enables or disables the paper size control (Windows only). - -\membersection{wxPageSetupDialogData::EnablePrinter}\label{wxpagesetupdialogdataenableprinter} - -\func{void}{EnablePrinter}{\param{bool }{flag}} - -Enables or disables the {\bf Printer} button, which invokes a printer setup dialog. - -\membersection{wxPageSetupDialogData::GetDefaultMinMargins}\label{wxpagesetupdialogdatagetdefaultminmargins} - -\constfunc{bool}{GetDefaultMinMargins}{\void} - -Returns true if the page setup dialog will take its minimum margin values from the currently -selected printer properties. Windows only. - -\membersection{wxPageSetupDialogData::GetEnableMargins}\label{wxpagesetupdialogdatagetenablemargins} - -\constfunc{bool}{GetEnableMargins}{\void} - -Returns true if the margin controls are enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnableOrientation}\label{wxpagesetupdialogdatagetenableorientation} - -\constfunc{bool}{GetEnableOrientation}{\void} - -Returns true if the orientation control is enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnablePaper}\label{wxpagesetupdialogdatagetenablepaper} - -\constfunc{bool}{GetEnablePaper}{\void} - -Returns true if the paper size control is enabled (Windows only). - -\membersection{wxPageSetupDialogData::GetEnablePrinter}\label{wxpagesetupdialogdatagetenableprinter} - -\constfunc{bool}{GetEnablePrinter}{\void} - -Returns true if the printer setup button is enabled. - -\membersection{wxPageSetupDialogData::GetEnableHelp}\label{wxpagesetupdialogdatagetenablehelp} - -\constfunc{bool}{GetEnableHelp}{\void} - -Returns true if the printer setup button is enabled. - -\membersection{wxPageSetupDialogData::GetDefaultInfo}\label{wxpagesetupdialogdatagetdefaultinfo} - -\constfunc{bool}{GetDefaultInfo}{\void} - -Returns true if the dialog will simply return default printer information (such as orientation) -instead of showing a dialog. Windows only. - -\membersection{wxPageSetupDialogData::GetMarginTopLeft}\label{wxpagesetupdialogdatagetmargintopleft} - -\constfunc{wxPoint}{GetMarginTopLeft}{\void} - -Returns the left (x) and top (y) margins in millimetres. - -\membersection{wxPageSetupDialogData::GetMarginBottomRight}\label{wxpagesetupdialogdatagetmarginbottomright} - -\constfunc{wxPoint}{GetMarginBottomRight}{\void} - -Returns the right (x) and bottom (y) margins in millimetres. - -\membersection{wxPageSetupDialogData::GetMinMarginTopLeft}\label{wxpagesetupdialogdatagetminmargintopleft} - -\constfunc{wxPoint}{GetMinMarginTopLeft}{\void} - -Returns the left (x) and top (y) minimum margins the user can enter (Windows only). Units -are in millimetres - -\membersection{wxPageSetupDialogData::GetMinMarginBottomRight}\label{wxpagesetupdialogdatagetminmarginbottomright} - -\constfunc{wxPoint}{GetMinMarginBottomRight}{\void} - -Returns the right (x) and bottom (y) minimum margins the user can enter (Windows only). Units -are in millimetres - -\membersection{wxPageSetupDialogData::GetPaperId}\label{wxpagesetupdialogdatagetpaperid} - -\constfunc{wxPaperSize}{GetPaperId}{\void} - -Returns the paper id (stored in the internal wxPrintData object). - -For further information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - -\membersection{wxPageSetupDialogData::GetPaperSize}\label{wxpagesetupdialogdatagetpapersize} - -\constfunc{wxSize}{GetPaperSize}{\void} - -Returns the paper size in millimetres. - -\membersection{wxPageSetupDialogData::GetPrintData}\label{wxpagesetupdialogdatagetprintdata} - -\func{wxPrintData\&}{GetPrintData}{\void} - -Returns a reference to the \helpref{print data}{wxprintdata} associated with this object. - -\membersection{wxPageSetupDialogData::IsOk}\label{wxpagesetupdialogdataisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the print data associated with the dialog data is valid. -This can return false on Windows if the current printer is not set, for example. -On all other platforms, it returns true. - -\membersection{wxPageSetupDialogData::SetDefaultInfo}\label{wxpagesetupdialogdatasetdefaultinfo} - -\func{void}{SetDefaultInfo}{\param{bool}{ flag}} - -Pass true if the dialog will simply return default printer information (such as orientation) -instead of showing a dialog. Windows only. - -\membersection{wxPageSetupDialogData::SetDefaultMinMargins}\label{wxpagesetupdialogdatasetdefaultminmargins} - -\func{void}{SetDefaultMinMargins}{\param{bool}{ flag}} - -Pass true if the page setup dialog will take its minimum margin values from the currently -selected printer properties. Windows only. Units are in millimetres - -\membersection{wxPageSetupDialogData::SetMarginTopLeft}\label{wxpagesetupdialogdatasetmargintopleft} - -\func{void}{SetMarginTopLeft}{\param{const wxPoint\& }{pt}} - -Sets the left (x) and top (y) margins in millimetres. - -\membersection{wxPageSetupDialogData::SetMarginBottomRight}\label{wxpagesetupdialogdatasetmarginbottomright} - -\func{void}{SetMarginBottomRight}{\param{const wxPoint\& }{pt}} - -Sets the right (x) and bottom (y) margins in millimetres. - -\membersection{wxPageSetupDialogData::SetMinMarginTopLeft}\label{wxpagesetupdialogdatasetminmargintopleft} - -\func{void}{SetMinMarginTopLeft}{\param{const wxPoint\& }{pt}} - -Sets the left (x) and top (y) minimum margins the user can enter (Windows only). Units are -in millimetres. - -\membersection{wxPageSetupDialogData::SetMinMarginBottomRight}\label{wxpagesetupdialogdatasetminmarginbottomright} - -\func{void}{SetMinMarginBottomRight}{\param{const wxPoint\& }{pt}} - -Sets the right (x) and bottom (y) minimum margins the user can enter (Windows only). Units are -in millimetres. - -\membersection{wxPageSetupDialogData::SetPaperId}\label{wxpagesetupdialogdatasetpaperid} - -\func{void}{SetPaperId}{\param{wxPaperSize\& }{id}} - -Sets the paper size id. For further information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - -Calling this function overrides the explicit paper dimensions passed in \helpref{wxPageSetupDialogData::SetPaperSize}{wxpagesetupdialogdatasetpapersize}. - -\membersection{wxPageSetupDialogData::SetPaperSize}\label{wxpagesetupdialogdatasetpapersize} - -\func{void}{SetPaperSize}{\param{const wxSize\& }{size}} - -Sets the paper size in millimetres. If a corresponding paper id is found, it will be set in the -internal wxPrintData object, otherwise the paper size overrides the paper id. - -\membersection{wxPageSetupDialogData::SetPrintData}\label{wxpagesetupdialogdatasetprintdata} - -\func{void}{SetPrintData}{\param{const wxPrintData\&}{ printData}} - -Sets the \helpref{print data}{wxprintdata} associated with this object. - -\membersection{wxPageSetupDialogData::operator $=$}\label{wxpagesetupdialogdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPageSetupDialogData\&}{ data}} - -Assigns page setup data to this object. - diff --git a/docs/latex/wx/paintdc.tex b/docs/latex/wx/paintdc.tex deleted file mode 100644 index 2884b3a6d6..0000000000 --- a/docs/latex/wx/paintdc.tex +++ /dev/null @@ -1,46 +0,0 @@ -\section{\class{wxPaintDC}}\label{wxpaintdc} - -A wxPaintDC must be constructed if an application wishes to paint on the -client area of a window from within an {\bf OnPaint} event. -This should normally be constructed as a temporary stack object; don't store -a wxPaintDC object. If you have an OnPaint handler, you {\it must} create a wxPaintDC -object within it even if you don't actually use it. - -Using wxPaintDC within OnPaint is important because it automatically -sets the clipping area to the damaged area of the window. Attempts to draw -outside this area do not appear. - -To draw on a window from outside {\bf OnPaint}, construct a \helpref{wxClientDC}{wxclientdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxWindowDC}{wxwindowdc}\\ -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/dcclient.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPaintDC::wxPaintDC}\label{wxpaintdcctor} - -\func{}{wxPaintDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/paintevt.tex b/docs/latex/wx/paintevt.tex deleted file mode 100644 index 277b96d962..0000000000 --- a/docs/latex/wx/paintevt.tex +++ /dev/null @@ -1,105 +0,0 @@ -\section{\class{wxPaintEvent}}\label{wxpaintevent} - -A paint event is sent when a window's contents needs to be repainted. - -Please notice that in general it is impossible to change the drawing of a -standard control (such as \helpref{wxButton}{wxbutton}) and so you shouldn't -attempt to handle paint events for them as even if it might work on some -platforms, this is inherently not portable and won't work everywhere. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a paint event, use this event handler macro to direct input to a member -function that takes a wxPaintEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_PAINT(func)}}{Process a wxEVT\_PAINT event.} -\end{twocollist}% - -\wxheading{See also} - -%\helpref{wxWindow::OnPaint}{wxwindowonpaint}, -\helpref{Event handling overview}{eventhandlingoverview} - -\wxheading{Remarks} - -Note that In a paint event handler, the application must {\it always} create a \helpref{wxPaintDC}{wxpaintdc} object, -even if you do not use it. Otherwise, under MS Windows, refreshing for this and other windows will go wrong. - -For example: - -\small{% -\begin{verbatim} - void MyWindow::OnPaint(wxPaintEvent& event) - { - wxPaintDC dc(this); - - DrawMyDocument(dc); - } -\end{verbatim} -}% - -You can optimize painting by retrieving the rectangles -that have been damaged and only repainting these. The rectangles are in -terms of the client area, and are unscrolled, so you will need to do -some calculations using the current view position to obtain logical, -scrolled units. - -Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class: - -{\small% -\begin{verbatim} -// Called when window needs to be repainted. -void MyWindow::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - // Find Out where the window is scrolled to - int vbX,vbY; // Top left corner of client - GetViewStart(&vbX,&vbY); - - int vX,vY,vW,vH; // Dimensions of client area in pixels - wxRegionIterator upd(GetUpdateRegion()); // get the update rect list - - while (upd) - { - vX = upd.GetX(); - vY = upd.GetY(); - vW = upd.GetW(); - vH = upd.GetH(); - - // Alternatively we can do this: - // wxRect rect(upd.GetRect()); - - // Repaint this rectangle - ...some code... - - upd ++ ; - } -} -\end{verbatim} -}% - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPaintEvent::wxPaintEvent}\label{wxpainteventctor} - -\func{}{wxPaintEvent}{\param{int }{id = 0}} - -Constructor. - diff --git a/docs/latex/wx/palette.tex b/docs/latex/wx/palette.tex deleted file mode 100644 index 54015292e3..0000000000 --- a/docs/latex/wx/palette.tex +++ /dev/null @@ -1,189 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: palette.tex -%% Purpose: wxPalette docs -%% Author: -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPalette}}\label{wxpalette} - -A palette is a table that maps pixel values to RGB colours. It allows the -colours of a low-depth bitmap, for example, to be mapped to the available -colours in a display. The notion of palettes is becoming more and more -obsolete nowadays and only the MSW port is still using a native palette. -All other ports use generic code which is basically just an array of -colours. - -It is likely that in the future the only use for palettes within wxWidgets -will be for representing colour indeces from images (such as GIF or PNG). -The image handlers for these formats have been modified to create a palette -if there is such information in the original image file (usually 256 or less -colour images). See \helpref{wxImage}{wximage} for more information. - -%TODO: topic overview for wxPalette. -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/palette.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullPalette} - -\wxheading{See also} - -\helpref{wxDC::SetPalette}{wxdcsetpalette}, \helpref{wxBitmap}{wxbitmap} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPalette::wxPalette}\label{wxpalettector} - -\func{}{wxPalette}{\void} - -Default constructor. - -\func{}{wxPalette}{\param{const wxPalette\&}{ palette}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxPalette}{\param{int}{ n}, \param{const unsigned char* }{red},\\ - \param{const unsigned char* }{green}, \param{const unsigned char* }{blue}} - -Creates a palette from arrays of size {\it n}, one for each -red, blue or green component. - -\wxheading{Parameters} - -\docparam{palette}{A pointer or reference to the palette to copy.} - -\docparam{n}{The number of indices in the palette.} - -\docparam{red}{An array of red values.} - -\docparam{green}{An array of green values.} - -\docparam{blue}{An array of blue values.} - -\wxheading{See also} - -\helpref{wxPalette::Create}{wxpalettecreate} - -\perlnote{In wxPerl the third constructor form takes as parameters - 3 array references ( they must be of the same length ).} - -\membersection{wxPalette::\destruct{wxPalette}}\label{wxpalettedtor} - -\func{}{\destruct{wxPalette}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\membersection{wxPalette::Create}\label{wxpalettecreate} - -\func{bool}{Create}{\param{int}{ n}, \param{const unsigned char* }{red},\rtfsp - \param{const unsigned char* }{green}, \param{const unsigned char* }{blue}} - -Creates a palette from arrays of size {\it n}, one for each -red, blue or green component. - -\wxheading{Parameters} - -\docparam{n}{The number of indices in the palette.} - -\docparam{red}{An array of red values.} - -\docparam{green}{An array of green values.} - -\docparam{blue}{An array of blue values.} - -\wxheading{Return value} - -true if the creation was successful, false otherwise. - -\wxheading{See also} - -\helpref{wxPalette::wxPalette}{wxpalettector} - -\membersection{wxPalette::GetColoursCount}\label{wxpalettegetcolourscount} - -\constfunc{int}{GetColoursCount}{\void} - -Returns number of entries in palette. - -\membersection{wxPalette::GetPixel}\label{wxpalettegetpixel} - -\constfunc{int}{GetPixel}{\param{unsigned char }{red}, \param{unsigned char }{green},\rtfsp - \param{unsigned char }{blue}} - -Returns a pixel value (index into the palette) for the given RGB values. - -\wxheading{Parameters} - -\docparam{red}{Red value.} - -\docparam{green}{Green value.} - -\docparam{blue}{Blue value.} - -\wxheading{Return value} - -The nearest palette index or {\tt wxNOT\_FOUND} for unexpected errors. - -\wxheading{See also} - -\helpref{wxPalette::GetRGB}{wxpalettegetrgb} - -\membersection{wxPalette::GetRGB}\label{wxpalettegetrgb} - -\constfunc{bool}{GetRGB}{\param{int}{ pixel}, \param{const unsigned char* }{red}, \param{const unsigned char* }{green},\rtfsp - \param{const unsigned char* }{blue}} - -Returns RGB values for a given palette index. - -\wxheading{Parameters} - -\docparam{pixel}{The palette index.} - -\docparam{red}{Receives the red value.} - -\docparam{green}{Receives the green value.} - -\docparam{blue}{Receives the blue value.} - -\wxheading{Return value} - -true if the operation was successful. - -\wxheading{See also} - -\helpref{wxPalette::GetPixel}{wxpalettegetpixel} - -\perlnote{In wxPerl this method takes only the {\tt pixel} parameter and - returns a 3-element list ( or the empty list upon failure ).} - -\membersection{wxPalette::IsOk}\label{wxpaletteisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if palette data is present. - -\membersection{wxPalette::operator $=$}\label{wxpaletteassignment} - -\func{wxPalette\&}{operator $=$}{\param{const wxPalette\& }{palette}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - diff --git a/docs/latex/wx/panel.tex b/docs/latex/wx/panel.tex deleted file mode 100644 index 90b4ad50e1..0000000000 --- a/docs/latex/wx/panel.tex +++ /dev/null @@ -1,170 +0,0 @@ -\section{\class{wxPanel}}\label{wxpanel} - -A panel is a window on which controls are placed. It is usually placed within -a frame. Its main feature over its parent class wxWindow is code for handling -child windows and TAB traversal. Since wxWidgets 2.9, there is support both -for TAB traversal implemented by wxWidgets itself as well as native TAB -traversal (such as for GTK 2.0). - -{\it Note:} Tab traversal is implemented through an otherwise undocumented -intermediate wxControlContainer class from which any class can derive -in addition to the normal wxWindow base class. Please see <wx/containr.h> -and <wx/panel.h> to find out how this is achieved. - -{\it Note:} if not all characters are being intercepted by your OnKeyDown or -OnChar handler, it may be because you are using the wxTAB\_TRAVERSAL style, -which grabs some keypresses for use by child controls. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/panel.h> - -\wxheading{Window styles} - -There are no specific styles for this window. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -By default, a panel has the same colouring as a dialog. - -\wxheading{See also} - -\helpref{wxDialog}{wxdialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPanel::wxPanel}\label{wxpanelctor} - -\func{}{wxPanel}{\void} - -Default constructor. - -\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = \texttt{wxID\_ANY}},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp -\param{const wxString\& }{name = ``panel"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{The parent window.} - -\docparam{id}{An identifier for the panel. A value of -1 is taken to mean a default.} - -\docparam{pos}{The panel position. A value of (-1, -1) indicates a default position, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{size}{The panel size. A value of (-1, -1) indicates a default size, chosen by -either the windowing system or wxWidgets, depending on platform.} - -\docparam{style}{The window style. See \helpref{wxPanel}{wxpanel}.} - -\docparam{name}{Used to associate a name with the window, -allowing the application user to set Motif resource values for -individual dialog boxes.} - -\wxheading{See also} - -\helpref{wxPanel::Create}{wxpanelcreate} - -\membersection{wxPanel::\destruct{wxPanel}}\label{wxpaneldtor} - -\func{}{\destruct{wxPanel}}{\void} - -Destructor. Deletes any child windows before deleting the physical window. - -\membersection{wxPanel::Create}\label{wxpanelcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = \texttt{wxID\_ANY}},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp -\param{const wxString\& }{name = ``panel"}} - -Used for two-step panel construction. See \helpref{wxPanel::wxPanel}{wxpanelctor}\rtfsp -for details. - - -\membersection{wxPanel::AcceptsFocus}\label{wxpanelacceptsfocus} - -\constfunc{bool}{AcceptsFocus}{\void} - -This method is overridden from \helpref{wxWindow::AcceptsFocus}{wxwindowacceptsfocus} -and returns true only if there is no child window in the panel which -can accept the focus. This is reevaluated each time a child -window is added or removed from the panel. - - -\membersection{wxPanel::InitDialog}\label{wxpanelinitdialog} - -\func{void}{InitDialog}{\void} - -Sends a \helpref{wxInitDialogEvent}{wxinitdialogevent}, which -in turn transfers data to the dialog via validators. - -\wxheading{See also} - -\helpref{wxInitDialogEvent}{wxinitdialogevent} - -\membersection{wxPanel::OnSysColourChanged}\label{wxpanelonsyscolourchanged} - -\func{void}{OnSysColourChanged}{\param{wxSysColourChangedEvent\& }{event}} - -The default handler for wxEVT\_SYS\_COLOUR\_CHANGED. - -\wxheading{Parameters} - -\docparam{event}{The colour change event.} - -\wxheading{Remarks} - -Changes the panel's colour to conform to the current settings (Windows only). -Add an event table entry for your panel class if you wish the behaviour -to be different (such as keeping a user-defined -background colour). If you do override this function, call wxEvent::Skip to -propagate the notification to child windows and controls. - -\wxheading{See also} - -\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} - - -\membersection{wxPanel::SetFocus}\label{wxpanelsetfocus} - -\func{virtual void}{SetFocus}{\void} - -Overrides \helpref{wxWindow::SetFocus}{wxwindowsetfocus}. This method -uses the (undocumented) mix-in class wxControlContainer which manages -the focus and TAB logic for controls which usually have child controls. -In practice, if you call this method and the control has at least -one child window, the focus will be given to the child window. - -\wxheading{See also} - -\helpref{wxFocusEvent}{wxfocusevent} -\helpref{wxWindow::SetFocus}{wxwindowsetfocus} - - -\membersection{wxPanel::SetFocusIgnoringChildren}\label{wxpanelsetfocusignoringchildren} - -\func{virtual void}{SetFocusIgnoringChildren}{\void} - -In contrast to \helpref{wxPanel::SetFocus}{wxpanelsetfocus} (see above) -this will set the focus to the panel even if there are child windows -in the panel. This is only rarely needed. - -\wxheading{See also} - -\helpref{wxFocusEvent}{wxfocusevent} -\helpref{wxPanel::SetFocus}{wxpanelsetfocus} - diff --git a/docs/latex/wx/pantabv.tex b/docs/latex/wx/pantabv.tex deleted file mode 100644 index 276592cef8..0000000000 --- a/docs/latex/wx/pantabv.tex +++ /dev/null @@ -1,73 +0,0 @@ -\section{\class{wxPanelTabView}}\label{wxpaneltabview} - -The wxPanelTabView is responsible for input and output on a wxPanel. - -\wxheading{Derived from} - -\helpref{wxTabView}{wxtabview}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tab.h> - -\wxheading{See also} - -\helpref{wxTabView overview}{wxtabviewoverview}, \helpref{wxTabView}{wxtabview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPanelTabView::wxPanelTabView}\label{wxpaneltabviewconstr} - -\func{void}{wxPanelTabView}{\param{wxPanel *}{panel}, \param{long }{style = wxTAB\_STYLE\_DRAW\_BOX \pipe wxTAB\_STYLE\_COLOUR\_INTERIOR}} - -Constructor. {\it panel} should be a wxTabbedPanel or wxTabbedDialog: the type will be checked by the view at run time. - -{\it style} may be a bit list of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTAB\_STYLE\_DRAW\_BOX}{Draw a box around the view area. Most commonly used for dialogs.} -\twocolitem{wxTAB\_STYLE\_COLOUR\_INTERIOR}{Draw tab backgrounds in the specified colour. Omitting this style -will ensure that the tab background matches the dialog background.} -\end{twocollist} - -\membersection{wxPanelTabView::\destruct{wxPanelTabView}} - -\func{void}{\destruct{wxPanelTabView}}{\void} - -Destructor. This destructor deletes all the panels associated with the view. -If you do not wish this to happen, call ClearWindows with argument false before the -view is likely to be destroyed. This will clear the list of windows, without deleting them. - -\membersection{wxPanelTabView::AddTabWindow}\label{wxpaneltabviewaddtabwindow} - -\func{void}{AddTabPanel}{\param{int}{ id}, \param{wxWindow *}{window}} - -Adds a window to the view. The window is associated with the tab identifier, and will be shown or hidden as the tab -is selected or deselected. - -\membersection{wxPanelTabView::ClearWindows} - -\func{void}{ClearWindows}{\param{bool}{ deleteWindows = true}} - -Removes the child windows from the view. If {\it deleteWindows} is true, the windows will be deleted. - -\membersection{wxPanelTabView::GetCurrentWindow} - -\func{wxPanel *}{GetCurrentWindow}{\void} - -Returns the child window currently being displayed on the tabbed panel or dialog box. - -\membersection{wxPanelTabView::GetTabWindow} - -\func{wxWindow *}{GetTabWindow}{\param{int}{ id}} - -Returns the window associated with the tab identifier. - -\membersection{wxPanelTabView::ShowWindowForTab} - -\func{void}{ShowWindowForTab}{\param{int}{ id}} - -Shows the child window corresponding to the tab identifier, and hides the previously shown window. - - diff --git a/docs/latex/wx/passdlg.tex b/docs/latex/wx/passdlg.tex deleted file mode 100644 index 90d6f58db8..0000000000 --- a/docs/latex/wx/passdlg.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{\class{wxPasswordEntryDialog}}\label{wxpasswordentrydialog} - -This class represents a dialog that requests a one-line password string from the user. -It is implemented as a generic wxWidgets dialog. - -\wxheading{Derived from} - -\helpref{wxTextEntryDialog}{wxtextentrydialog}\\ -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/textdlg.h> - -\wxheading{See also} - -\helpref{wxPassowrdEntryDialog overview}{wxpasswordentrydialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPasswordEntryDialog::wxPasswordEntryDialog}\label{wxpasswordentrydialogctor} - -\func{}{wxPasswordEntryDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption = "Enter password"}, \param{const wxString\& }{defaultValue = ""}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxTextEntryDialog::ShowModal}{wxtextentrydialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultValue}{The default value, which may be the empty string.} - -\docparam{style}{A dialog style, specifying the buttons (wxOK, wxCANCEL) -and an optional wxCENTRE style. You do not need to specify the \windowstyle{wxTE\_PASSWORD} style, it is always applied.} - -\docparam{pos}{Dialog position.} diff --git a/docs/latex/wx/pathlist.tex b/docs/latex/wx/pathlist.tex deleted file mode 100644 index a904788f26..0000000000 --- a/docs/latex/wx/pathlist.tex +++ /dev/null @@ -1,107 +0,0 @@ -\section{\class{wxPathList}}\label{wxpathlist} - -The path list is a convenient way of storing a number of directories, and -when presented with a filename without a directory, searching for an existing file -in those directories. - -Be sure to look also at \helpref{wxStandardPaths}{wxstandardpaths} if you only -want to search files in some standard paths. - -\wxheading{Derived from} - -\helpref{wxArrayString}{wxarraystring}\\ -\helpref{wxArray}{wxarray} - -\wxheading{Include files} - -<wx/filefn.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxArrayString}{wxarraystring}, \helpref{wxStandardPaths}{wxstandardpaths}, \helpref{wxFileName}{wxfilename} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPathList::wxPathList}\label{wxpathlistctor} - -\func{}{wxPathList}{\void} - -Empty constructor. - -\func{}{wxPathList}{\param{const wxArrayString\& }{arr}} - -Constructs the object calling the \helpref{Add}{wxpathlistadd} function. - - -\membersection{wxPathList::AddEnvList}\label{wxpathlistaddenvlist} - -\func{void}{AddEnvList}{\param{const wxString\& }{env\_variable}} - -Finds the value of the given environment variable, and adds all paths -to the path list. Useful for finding files in the {\tt PATH} variable, for -example. - - -\membersection{wxPathList::Add}\label{wxpathlistadd} - -\func{bool}{Add}{\param{const wxString\& }{path}} - -\func{void}{Add}{\param{const wxArrayString\& }{arr}} - -The first form adds the given directory to the path list, if the path is not already in the list. -If the path cannot be normalized for some reason, it returns \false. - -The second form just calls the first form on all elements of the given array. - -The {\it path} is always considered a directory but no existence checks will be done on it -(because if it doesn't exist, it could be created later and thus result a valid path when -\helpref{FindValidPath}{wxpathlistfindvalidpath} is called). - -{\bf Note:} if the given path is relative, it won't be made absolute before adding it -(this is why \helpref{FindValidPath}{wxpathlistfindvalidpath} may return relative paths). - - -\membersection{wxPathList::EnsureFileAccessible}\label{wxpathlistensurefileaccessible} - -\func{bool}{EnsureFileAccessible}{\param{const wxString\& }{filename}} - -Given a full filename (with path), calls \helpref{Add}{wxpathlistadd} with the path -of the file. - - -\membersection{wxPathList::FindAbsoluteValidPath}\label{wxpathlistfindabsolutepath} - -\constfunc{wxString}{FindAbsoluteValidPath}{\param{const wxString\& }{file}} - -Like \helpref{FindValidPath}{wxpathlistfindvalidpath} but this function always -returns an absolute path (eventually prepending the current working directory -to the value returned \helpref{FindValidPath}{wxpathlistfindvalidpath}) or an -empty string. - - -\membersection{wxPathList::FindValidPath}\label{wxpathlistfindvalidpath} - -\constfunc{wxString}{FindValidPath}{\param{const wxString\& }{file}} - -Searches the given file in all paths stored in this class. -The first path which concatenated to the given string points to an existing -file (see \helpref{wxFileExists}{wxfileexists}) is returned. - -If the file wasn't found in any of the stored paths, an empty string is returned. - -The given string must be a file name, eventually with a path prefix (if the path -prefix is absolute, only its name will be searched); i.e. it must not end with -a directory separator (see \helpref{wxFileName::GetPathSeparator}{wxfilenamegetpathseparator}) -otherwise an assertion will fail. - -The returned path may be relative to the current working directory. -Note in fact that wxPathList can be used to store both relative and absolute paths so that -if you \helpref{Add()}{wxpathlistadd}ed relative paths, then the current working directory -(see \helpref{wxGetCwd}{wxgetcwd} and \helpref{wxSetWorkingDirectory}{wxsetworkingdirectory}) -may affect the value returned by this function! - diff --git a/docs/latex/wx/pen.tex b/docs/latex/wx/pen.tex deleted file mode 100644 index afe96443c1..0000000000 --- a/docs/latex/wx/pen.tex +++ /dev/null @@ -1,430 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: pen.tex -%% Purpose: wxPen docs -%% Author: -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPen}}\label{wxpen} - -A pen is a drawing tool for drawing outlines. It is used for drawing -lines and painting the outline of rectangles, ellipses, etc. It has a -colour, a width and a style. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/pen.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxNullPen} - -Pointers: - -{\bf wxRED\_PEN\\ -wxCYAN\_PEN\\ -wxGREEN\_PEN\\ -wxBLACK\_PEN\\ -wxWHITE\_PEN\\ -wxTRANSPARENT\_PEN\\ -wxBLACK\_DASHED\_PEN\\ -wxGREY\_PEN\\ -wxMEDIUM\_GREY\_PEN\\ -wxLIGHT\_GREY\_PEN} - -\wxheading{Remarks} - -On a monochrome display, wxWidgets shows all non-white pens as black. - -Do not initialize objects on the stack before the program commences, -since other required structures may not have been set up yet. Instead, -define global pointers to objects and create them in {\it OnInit} or -when required. - -An application may wish to dynamically create pens with different -characteristics, and there is the consequent danger that a large number -of duplicate pens will be created. Therefore an application may wish to -get a pointer to a pen by using the global list of pens {\bf -wxThePenList}, and calling the member function {\bf FindOrCreatePen}. -See the entry for \helpref{wxPenList}{wxpenlist}. - -This class uses \helpref{reference counting and copy-on-write}{trefcount} -internally so that assignments between two instances of this class are very -cheap. You can therefore use actual objects instead of pointers without -efficiency problems. If an instance of this class is changed it will create -its own data internally so that other instances, which previously shared the -data using the reference counting, are not affected. - -%TODO: an overview for wxPen. -\wxheading{See also} - -\helpref{wxPenList}{wxpenlist}, \helpref{wxDC}{wxdc}, \helpref{wxDC::SetPen}{wxdcsetpen} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPen::wxPen}\label{wxpenctor} - -\func{}{wxPen}{\void} - -Default constructor. The pen will be uninitialised, and \helpref{wxPen:IsOk}{wxpenisok} will -return false. - -\func{}{wxPen}{\param{const wxColour\&}{ colour}, \param{int}{ width = $1$}, \param{int}{ style = {\tt wxSOLID}}} - -Constructs a pen from a colour object, pen width and style. - -\func{}{wxPen}{\param{const wxString\& }{colourName}, \param{int}{ width}, \param{int}{ style}} - -Constructs a pen from a colour name, pen width and style. - -\func{}{wxPen}{\param{const wxBitmap\&}{ stipple}, \param{int}{ width}} - -Constructs a stippled pen from a stipple bitmap and a width. - -\func{}{wxPen}{\param{const wxPen\&}{ pen}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\wxheading{Parameters} - -\docparam{colour}{A colour object.} - -\docparam{colourName}{A colour name.} - -\docparam{width}{Pen width. Under Windows, the pen width cannot be greater than 1 if -the style is wxDOT, wxLONG\_DASH, wxSHORT\_DASH, wxDOT\_DASH, or wxUSER\_DASH.} - -\docparam{stipple}{A stipple bitmap.} - -\docparam{pen}{A pointer or reference to a pen to copy.} - -\docparam{style}{The style may be one of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOLID}}{Solid style.} -\twocolitem{{\bf wxTRANSPARENT}}{No pen is used.} -\twocolitem{{\bf wxDOT}}{Dotted style.} -\twocolitem{{\bf wxLONG\_DASH}}{Long dashed style.} -\twocolitem{{\bf wxSHORT\_DASH}}{Short dashed style.} -\twocolitem{{\bf wxDOT\_DASH}}{Dot and dash style.} -\twocolitem{{\bf wxSTIPPLE}}{Use the stipple bitmap.} -\twocolitem{{\bf wxUSER\_DASH}}{Use the user dashes: see \helpref{wxPen::SetDashes}{wxpensetdashes}.} -\twocolitem{{\bf wxBDIAGONAL\_HATCH}}{Backward diagonal hatch.} -\twocolitem{{\bf wxCROSSDIAG\_HATCH}}{Cross-diagonal hatch.} -\twocolitem{{\bf wxFDIAGONAL\_HATCH}}{Forward diagonal hatch.} -\twocolitem{{\bf wxCROSS\_HATCH}}{Cross hatch.} -\twocolitem{{\bf wxHORIZONTAL\_HATCH}}{Horizontal hatch.} -\twocolitem{{\bf wxVERTICAL\_HATCH}}{Vertical hatch.} -\end{twocollist}} - -\wxheading{Remarks} - -Different versions of Windows and different versions of other platforms -support {\it very} different subsets of the styles above - there is no -similarity even between Windows95 and Windows98 - so handle with care. - -If the named colour form is used, an appropriate {\bf wxColour} structure -is found in the colour database. - -\wxheading{See also} - -\helpref{wxPen::SetStyle}{wxpensetstyle}, \helpref{wxPen::SetColour}{wxpensetcolour},\rtfsp -\helpref{wxPen::SetWidth}{wxpensetwidth}, \helpref{wxPen::SetStipple}{wxpensetstipple} - -\perlnote{Constructors supported by wxPerl are:\par -\begin{itemize} -\item{Wx::Pen->new( colour, width, style )} -\item{Wx::Pen->new( colourName, width, style )} -\item{Wx::Pen->new( stipple, width )} -\end{itemize} -} - -\membersection{wxPen::\destruct{wxPen}}\label{wxpendtor} - -\func{}{\destruct{wxPen}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - -\wxheading{Remarks} - -Although all remaining pens are deleted when the application exits, -the application should try to clean up all pens itself. This is because -wxWidgets cannot know if a pointer to the pen object is stored in an -application data structure, and there is a risk of double deletion. - -\membersection{wxPen::GetCap}\label{wxpengetcap} - -\constfunc{int}{GetCap}{\void} - -Returns the pen cap style, which may be one of {\bf wxCAP\_ROUND}, {\bf wxCAP\_PROJECTING} and -\rtfsp{\bf wxCAP\_BUTT}. The default is {\bf wxCAP\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::SetCap}{wxpensetcap} - -\membersection{wxPen::GetColour}\label{wxpengetcolour} - -\constfunc{wxColour\&}{GetColour}{\void} - -Returns a reference to the pen colour. - -\wxheading{See also} - -\helpref{wxPen::SetColour}{wxpensetcolour} - -\membersection{wxPen::GetDashes}\label{wxpengetdashes} - -\constfunc{int}{GetDashes}{\param{wxDash**}{ dashes}} - -Gets an array of dashes (defined as char in X, DWORD under Windows). -{\it dashes} is a pointer to the internal array. Do not deallocate or store this pointer. -The function returns the number of dashes associated with this pen. - -\wxheading{See also} - -\helpref{wxPen::SetDashes}{wxpensetdashes} - -\membersection{wxPen::GetJoin}\label{wxpengetjoin} - -\constfunc{int}{GetJoin}{\void} - -Returns the pen join style, which may be one of {\bf wxJOIN\_BEVEL}, {\bf wxJOIN\_ROUND} and -\rtfsp{\bf wxJOIN\_MITER}. The default is {\bf wxJOIN\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::SetJoin}{wxpensetjoin} - -\membersection{wxPen::GetStipple}\label{wxpengetstipple} - -\constfunc{wxBitmap* }{GetStipple}{\void} - -Gets a pointer to the stipple bitmap. - -\wxheading{See also} - -\helpref{wxPen::SetStipple}{wxpensetstipple} - -\membersection{wxPen::GetStyle}\label{wxpengetstyle} - -\constfunc{int}{GetStyle}{\void} - -Returns the pen style. - -\wxheading{See also} - -\helpref{wxPen::wxPen}{wxpenctor}, \helpref{wxPen::SetStyle}{wxpensetstyle} - -\membersection{wxPen::GetWidth}\label{wxpengetwidth} - -\constfunc{int}{GetWidth}{\void} - -Returns the pen width. - -\wxheading{See also} - -\helpref{wxPen::SetWidth}{wxpensetwidth} - -\membersection{wxPen::IsOk}\label{wxpenisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the pen is initialised. - -\membersection{wxPen::SetCap}\label{wxpensetcap} - -\func{void}{SetCap}{\param{int}{ capStyle}} - -Sets the pen cap style, which may be one of {\bf wxCAP\_ROUND}, {\bf wxCAP\_PROJECTING} and -\rtfsp{\bf wxCAP\_BUTT}. The default is {\bf wxCAP\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::GetCap}{wxpengetcap} - -\membersection{wxPen::SetColour}\label{wxpensetcolour} - -\func{void}{SetColour}{\param{wxColour\&}{ colour}} - -\func{void}{SetColour}{\param{const wxString\& }{colourName}} - -\func{void}{SetColour}{\param{unsigned char}{ red}, \param{unsigned char}{ green}, \param{unsigned char}{ blue}} - -The pen's colour is changed to the given colour. - -\wxheading{See also} - -\helpref{wxPen::GetColour}{wxpengetcolour} - -\membersection{wxPen::SetDashes}\label{wxpensetdashes} - -\func{void}{SetDashes}{\param{int }{n}, \param{wxDash*}{ dashes}} - -Associates an array of pointers to dashes (defined as char in X, DWORD under Windows) -with the pen. The array is not deallocated by wxPen, but neither must it be -deallocated by the calling application until the pen is deleted or this -function is called with a NULL array. - -%TODO: describe in detail. -\wxheading{See also} - -\helpref{wxPen::GetDashes}{wxpengetdashes} - -\membersection{wxPen::SetJoin}\label{wxpensetjoin} - -\func{void}{SetJoin}{\param{int }{join\_style}} - -Sets the pen join style, which may be one of {\bf wxJOIN\_BEVEL}, {\bf wxJOIN\_ROUND} and -\rtfsp{\bf wxJOIN\_MITER}. The default is {\bf wxJOIN\_ROUND}. - -\wxheading{See also} - -\helpref{wxPen::GetJoin}{wxpengetjoin} - -\membersection{wxPen::SetStipple}\label{wxpensetstipple} - -\func{void}{SetStipple}{\param{wxBitmap* }{stipple}} - -Sets the bitmap for stippling. - -\wxheading{See also} - -\helpref{wxPen::GetStipple}{wxpengetstipple} - -\membersection{wxPen::SetStyle}\label{wxpensetstyle} - -\func{void}{SetStyle}{\param{int}{ style}} - -Set the pen style. - -\wxheading{See also} - -\helpref{wxPen::wxPen}{wxpenctor} - -\membersection{wxPen::SetWidth}\label{wxpensetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the pen width. - -\wxheading{See also} - -\helpref{wxPen::GetWidth}{wxpengetwidth} - -\membersection{wxPen::operator $=$}\label{wxpenassignment} - -\func{wxPen\&}{operator $=$}{\param{const wxPen\& }{pen}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - -\membersection{wxPen::operator $==$}\label{wxpenequals} - -\func{bool}{operator $==$}{\param{const wxPen\& }{pen}} - -Equality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - -\membersection{wxPen::operator $!=$}\label{wxpennotequals} - -\func{bool}{operator $!=$}{\param{const wxPen\& }{pen}} - -Inequality operator. -See \helpref{reference-counted object comparison}{refcountequality} for more info. - - - -%% wxPenList - -\section{\class{wxPenList}}\label{wxpenlist} - -There is only one instance of this class: {\bf wxThePenList}. Use -this object to search for a previously created pen of the desired -type and create it if not already found. In some windowing systems, -the pen may be a scarce resource, so it can pay to reuse old -resources if possible. When an application finishes, all pens will -be deleted and their resources freed, eliminating the possibility of -`memory leaks'. However, it is best not to rely on this automatic -cleanup because it can lead to double deletion in some circumstances. - -There are two mechanisms in recent versions of wxWidgets which make the -pen list less useful than it once was. Under Windows, scarce resources -are cleaned up internally if they are not being used. Also, a referencing -counting mechanism applied to all GDI objects means that some sharing -of underlying resources is possible. You don't have to keep track of pointers, -working out when it is safe delete a pen, because the referencing counting does -it for you. For example, you can set a pen in a device context, and then -immediately delete the pen you passed, because the pen is `copied'. - -So you may find it easier to ignore the pen list, and instead create -and copy pens as you see fit. If your Windows resource meter suggests -your application is using too many resources, you can resort to using -GDI lists to share objects explicitly. - -The only compelling use for the pen list is for wxWidgets to keep -track of pens in order to clean them up on exit. It is also kept for -backward compatibility with earlier versions of wxWidgets. - -\wxheading{See also} - -\helpref{wxPen}{wxpen} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/gdicmn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPenList::wxPenList}\label{wxpenlistctor} - -\func{void}{wxPenList}{\void} - -Constructor. The application should not construct its own pen list: -use the object pointer {\bf wxThePenList}. - -\membersection{wxPenList::FindOrCreatePen}\label{wxpenlistfindorcreatepen} - -\func{wxPen*}{FindOrCreatePen}{\param{const wxColour\& }{colour}, \param{int}{ width}, \param{int}{ style}} - -Finds a pen with the specified attributes and returns it, else creates a new pen, adds it -to the pen list, and returns it. - -\func{wxPen*}{FindOrCreatePen}{\param{const wxString\& }{colourName}, \param{int}{ width}, \param{int}{ style}} - -Finds a pen with the specified attributes and returns it, else creates a new pen, adds it -to the pen list, and returns it. - -\wxheading{Parameters} - -\docparam{colour}{Colour object.} - -\docparam{colourName}{Colour name, which should be in the \helpref{colour database}{wxcolourdatabase}.} - -\docparam{width}{Width of pen.} - -\docparam{style}{Pen style. See \helpref{wxPen::wxPen}{wxpenctor} for a list of styles.} - diff --git a/docs/latex/wx/pickerbase.tex b/docs/latex/wx/pickerbase.tex deleted file mode 100644 index d61c5ac9e7..0000000000 --- a/docs/latex/wx/pickerbase.tex +++ /dev/null @@ -1,146 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: pickerbase.tex -%% Purpose: wxPickerBase documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-18 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPickerBase}}\label{wxpickerbase} - -Base abstract class for all pickers which support an auxiliary text control. -This class handles all positioning and sizing of the text control like a -an horizontal \helpref{wxBoxSizer}{wxboxsizer} would do, with the text control on -the left of the picker button. -The proportion (see \helpref{wxSizer}{wxsizer} documentation for more info about -proportion values) of the picker control defaults to $1$ when there isn't a text control -associated (see {\tt wxPB\_USE\_TEXTCTRL} style) and to $0$ otherwise. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/pickerbase.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxPB\_USE\_TEXTCTRL}}{Creates a text control to the left of the -picker which is completely managed by this \helpref{wxPickerBase}{wxpickerbase} -class.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxColourPickerCtrl}{wxcolourpickerctrl} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPickerBase::SetInternalMargin}\label{wxpickerbasesetinternalmargin} - -\func{void}{SetInternalMargin}{\param{int}{margin}} - -Sets the margin (in pixel) between the picker and the text control. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - -\membersection{wxPickerBase::GetInternalMargin}\label{wxpickerbasegetinternalmargin} - -\constfunc{int}{GetInternalMargin}{} - -Returns the margin (in pixel) between the picker and the text control. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - -\membersection{wxPickerBase::SetTextCtrlProportion}\label{wxpickerbasesettextctrlproportion} - -\func{void}{SetTextCtrlProportion}{\param{int}{prop}} - -Sets the proportion value of the text control. -Look at the overview of wxPickerBase for more details about this. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - -\membersection{wxPickerBase::SetPickerCtrlProportion}\label{wxpickerbasesetpickerctrlproportion} - -\func{void}{SetPickerCtrlProportion}{\param{int}{prop}} - -Sets the proportion value of the picker. -Look at the overview of wxPickerBase for more details about this. - - -\membersection{wxPickerBase::GetTextCtrlProportion}\label{wxpickerbasegettextctrlproportion} - -\constfunc{int}{GetTextCtrlProportion}{} - -Returns the proportion value of the text control. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - -\membersection{wxPickerBase::GetPickerCtrlProportion}\label{wxpickerbasegetpickerctrlproportion} - -\constfunc{int}{GetPickerCtrlProportion}{} - -Returns the proportion value of the picker. - - -\membersection{wxPickerBase::HasTextCtrl}\label{wxpickerbasehastextctrl} - -\constfunc{bool}{HasTextCtrl}{} - -Returns true if this window has a valid text control (i.e. if the \windowstyle{wxPB\_USE\_TEXTCTRL} style was -given when creating this control). - - -\membersection{wxPickerBase::GetTextCtrl}\label{wxpickerbasegetextctrl} - -\func{wxTextCtrl *}{GetTextCtrl}{} - -Returns a pointer to the text control handled by this window or \texttt{NULL} if the \windowstyle{wxPB\_USE\_TEXTCTRL} style was not specified when this control was created. -Very important: the contents of the text control could be containing an invalid representation of the entity which can be chosen through the picker (e.g. the user entered an invalid colour syntax because of a typo). Thus you should never parse the content of the textctrl to get the user's input; rather use the derived-class getter (e.g. \helpref{wxColourPickerCtrl::GetColour}{wxcolourpickerctrlgetcolour}, \helpref{wxFilePickerCtrl::GetPath}{wxfilepickerctrlgetpath}, etc). - - -\membersection{wxPickerBase::IsTextCtrlGrowable}\label{wxpickerbaseistextctrlgrowable} - -\constfunc{bool}{IsTextCtrlGrowable}{} - -Returns \true if the text control is growable. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - -\membersection{wxPickerBase::SetPickerCtrlGrowable}\label{wxpickerbasesetpickerctrlgrowable} - -\func{void}{SetPickerCtrlGrowable}{\param{bool}{ grow = true}} - -Sets the picker control as growable when {\tt grow} is \true. - - -\membersection{wxPickerBase::SetTextCtrlGrowable}\label{wxpickerbasesettextctrlgrowable} - -\func{void}{SetTextCtrlGrowable}{\param{bool}{ grow = true}} - -Sets the text control as growable when {\tt grow} is \true. -This function can be used only when \helpref{HasTextCtrl}{wxpickerbasehastextctrl} returns \true. - - - -\membersection{wxPickerBase::IsPickerCtrlGrowable}\label{wxpickerbaseispickerctrlgrowable} - -\constfunc{bool}{IsPickerCtrlGrowable}{} - -Returns \true if the picker control is growable. - - diff --git a/docs/latex/wx/platinfo.tex b/docs/latex/wx/platinfo.tex deleted file mode 100644 index e44d4d1a66..0000000000 --- a/docs/latex/wx/platinfo.tex +++ /dev/null @@ -1,462 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: platinfo.tex -%% Purpose: wxPlatformInfo -%% Author: Francesco Montorsi -%% Modified by: -%% Created: 31-7-2006 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPlatformInfo}}\label{wxplatforminfo} - -This class holds informations about the operating system and the toolkit that the application -is running under and some basic architecture info of the machine where it's running. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/platinfo.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxGetOSVersion}{wxgetosversion}, \helpref{wxIsPlatformLittleEndian}{wxisplatformlittleendian}, -\helpref{wxIsPlatform64Bit}{wxisplatform64bit}, \helpref{wxAppTraits}{wxapptraits} - -\wxheading{Data structures} - -The following are the operating systems which are recognized by wxWidgets -and whose version can be detected at run-time. The values of the constants -are chosen so that they can be combined as flags; this allows to check -for operating system {\it families} like e.g. wxOS\_MAC and wxOS\_UNIX. - -\begin{verbatim} -enum wxOperatingSystemId -{ - wxOS_UNKNOWN = 0, // returned on error - - wxOS_MAC_OS = 1 << 0, // Apple Mac OS 8/9/X with Mac paths - wxOS_MAC_OSX_DARWIN = 1 << 1, // Apple Mac OS X with Unix paths - wxOS_MAC = wxOS_MAC_OS|wxOS_MAC_OSX_DARWIN, - - wxOS_WINDOWS_9X = 1 << 2, // Windows 9x family (95/98/ME) - wxOS_WINDOWS_NT = 1 << 3, // Windows NT family (NT/2000/XP) - wxOS_WINDOWS_MICRO = 1 << 4, // MicroWindows - wxOS_WINDOWS_CE = 1 << 5, // Windows CE (Window Mobile) - wxOS_WINDOWS = wxOS_WINDOWS_9X | - wxOS_WINDOWS_NT | - wxOS_WINDOWS_MICRO | - wxOS_WINDOWS_CE, - - wxOS_UNIX_LINUX = 1 << 6, // Linux - wxOS_UNIX_FREEBSD = 1 << 7, // FreeBSD - wxOS_UNIX_OPENBSD = 1 << 8, // OpenBSD - wxOS_UNIX_NETBSD = 1 << 9, // NetBSD - wxOS_UNIX_SOLARIS = 1 << 10, // SunOS - wxOS_UNIX_AIX = 1 << 11, // AIX - wxOS_UNIX_HPUX = 1 << 12, // HP/UX - wxOS_UNIX = wxOS_UNIX_LINUX | - wxOS_UNIX_FREEBSD | - wxOS_UNIX_OPENBSD | - wxOS_UNIX_NETBSD | - wxOS_UNIX_SOLARIS | - wxOS_UNIX_AIX | - wxOS_UNIX_HPUX, - - wxOS_DOS = 1 << 15, // Microsoft DOS - wxOS_OS2 = 1 << 16 // OS/2 -}; -\end{verbatim} - -The list of wxWidgets ports. Some of them can be used with more than -a single (native) toolkit; e.g. wxWinCE port sources can be used with -smartphones, pocket PCs and handheld devices SDKs. - -\begin{verbatim} -enum wxPortId -{ - wxPORT_UNKNOWN = 0, // returned on error - - wxPORT_BASE = 1 << 0, // wxBase, no native toolkit used - - wxPORT_MSW = 1 << 1, // wxMSW, native toolkit is Windows API - wxPORT_MOTIF = 1 << 2, // wxMotif, using [Open]Motif or Lesstif - wxPORT_GTK = 1 << 3, // wxGTK, using GTK+ 1.x, 2.x, GPE or Maemo - wxPORT_MGL = 1 << 4, // wxMGL, using wxUniversal - wxPORT_X11 = 1 << 5, // wxX11, using wxUniversal - wxPORT_OS2 = 1 << 6, // wxOS2, using OS/2 Presentation Manager - wxPORT_MAC = 1 << 7, // wxMac, using Carbon or Classic Mac API - wxPORT_COCOA = 1 << 8, // wxCocoa, using Cocoa NextStep/Mac API - wxPORT_WINCE = 1 << 9, // wxWinCE, toolkit is WinCE SDK API - wxPORT_PALMOS = 1 << 10, // wxPalmOS, toolkit is PalmOS API - wxPORT_DFB = 1 << 11 // wxDFB, using wxUniversal -}; -\end{verbatim} - -The architecture of the operating system (regardless of the build environment -of wxWidgets library - see \helpref{wxIsPlatform64bit}{wxisplatform64bit} documentation -for more info). - -\begin{verbatim} -enum wxArchitecture -{ - wxARCH_INVALID = -1, // returned on error - - wxARCH_32, // 32 bit - wxARCH_64, - - wxARCH_MAX -} -\end{verbatim} - -The endian-ness of the machine. - -\begin{verbatim} -enum wxEndianness -{ - wxENDIAN_INVALID = -1, // returned on error - - wxENDIAN_BIG, // 4321 - wxENDIAN_LITTLE, // 1234 - wxENDIAN_PDP, // 3412 - - wxENDIAN_MAX -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPlatformInfo::wxPlatformInfo}\label{wxplatforminfowxplatforminfo} - -\func{}{wxPlatformInfo}{} - -Initializes the instance with the values corresponding to the currently running platform. -This is a fast operation because it only requires to copy the values internally cached for the -currently running platform (see also \helpref{Get}{wxplatforminfoget}). - -\func{}{wxPlatformInfo}{\param{wxPortId }{pid = wxPORT\_UNKNOWN}, \param{int }{tkMajor = -1}, \param{int }{tkMinor = -1}, \param{wxOperatingSystemId }{id = wxOS\_UNKNOWN}, \param{int }{osMajor = -1}, \param{int }{osMinor = -1}, \param{wxArchitecture }{arch = wxARCH\_INVALID}, \param{wxEndianness }{endian = wxENDIAN\_INVALID}} - -Initializes the object using given values. - - - -\membersection{wxPlatformInfo::CheckOSVersion}\label{wxplatforminfocheckosversion} - -\constfunc{bool}{CheckOSVersion}{\param{int }{major}, \param{int }{minor}} - -Returns \true if the OS version is at least \texttt{major.minor}. - -\wxheading{See also} - -\helpref{GetOSMajorVersion}{wxplatforminfogetosmajorversion}, -\helpref{GetOSMinorVersion}{wxplatforminfogetosminorversion}, -\helpref{CheckToolkitVersion}{wxplatforminfochecktoolkitversion} - - -\membersection{wxPlatformInfo::CheckToolkitVersion}\label{wxplatforminfochecktoolkitversion} - -\constfunc{bool}{CheckToolkitVersion}{\param{int }{major}, \param{int }{minor}} - -Returns \true if the toolkit version is at least \texttt{major.minor}. - -\wxheading{See also} - -\helpref{GetToolkitMajorVersion}{wxplatforminfogettoolkitmajorversion}, -\helpref{GetToolkitMinorVersion}{wxplatforminfogettoolkitminorversion}, -\helpref{CheckOSVersion}{wxplatforminfocheckosversion} - - - -\membersection{wxPlatformInfo::Get}\label{wxplatforminfoget} - -\func{static const wxPlatformInfo\& }{Get}{\void} - -Returns the global wxPlatformInfo object, initialized with the values for the currently running platform. - - -\membersection{wxPlatformInfo::GetArch}\label{wxplatforminfogetarch} - -\func{static wxArchitecture}{GetArch}{\param{const wxString\& }{arch}} - -Converts the given string to a wxArchitecture enum value or to -wxARCH\_INVALID if the given string is not a valid architecture string -(i.e. does not contain nor {\tt 32} nor {\tt 64} strings). - - -\membersection{wxPlatformInfo::GetArchName}\label{wxplatforminfogetarchname} - -\func{static wxString}{GetArchName}{\param{wxArchitecture }{arch}} - -Returns the name for the given wxArchitecture enumeration value. - -\constfunc{wxString}{GetArchName}{\void} - -Returns the name for the architecture of this wxPlatformInfo instance. - - -\membersection{wxPlatformInfo::GetArchitecture}\label{wxplatforminfogetarchitecture} - -\constfunc{wxArchitecture}{GetArchitecture}{\void} - -Returns the architecture ID of this wxPlatformInfo instance. - - - - -\membersection{wxPlatformInfo::GetEndianness}\label{wxplatforminfogetendianness} - -\func{static wxEndianness}{GetEndianness}{\param{const wxString\& }{end}} - -Converts the given string to a wxEndianness enum value or to -wxENDIAN\_INVALID if the given string is not a valid endianness string -(i.e. does not contain nor {\tt little} nor {\tt big} strings). - -\constfunc{wxEndianness}{GetEndianness}{\void} - -Returns the endianness ID of this wxPlatformInfo instance. - -\membersection{wxPlatformInfo::GetEndiannessName}\label{wxplatforminfogetendiannessname} - -\func{static wxString}{GetEndiannessName}{\param{wxEndianness }{end}} - -Returns name for the given wxEndianness enumeration value. - -\constfunc{wxString}{GetEndiannessName}{\void} - -Returns the name for the endianness of this wxPlatformInfo instance. - - - - - -\membersection{wxPlatformInfo::GetOSMajorVersion}\label{wxplatforminfogetosmajorversion} - -\constfunc{int}{GetOSMajorVersion}{\void} - -Returns the run-time major version of the OS associated with this wxPlatformInfo instance. -See \helpref{wxGetOsVersion}{wxgetosversion} for more info. - -\wxheading{See also} - -\helpref{CheckOSVersion}{wxplatforminfocheckosversion} - - -\membersection{wxPlatformInfo::GetOSMinorVersion}\label{wxplatforminfogetosminorversion} - -\constfunc{int}{GetOSMinorVersion}{\void} - -Returns the run-time minor version of the OS associated with this wxPlatformInfo instance. -See \helpref{wxGetOsVersion}{wxgetosversion} for more info. - -\wxheading{See also} - -\helpref{CheckOSVersion}{wxplatforminfocheckosversion} - - - -\membersection{wxPlatformInfo::GetOperatingSystemFamilyName}\label{wxplatforminfogetoperatingsystemfamilyname} - -\func{static wxString}{GetOperatingSystemFamilyName}{\param{wxOperatingSystemId }{os}} - -Returns the operating system family name for the given wxOperatingSystemId enumeration value: -{\tt Unix} for wxOS\_UNIX, {\tt Macintosh} for wxOS\_MAC, {\tt Windows} for wxOS\_WINDOWS, -{\tt DOS} for wxOS\_DOS, {\tt OS/2} for wxOS\_OS2. - -\constfunc{wxString}{GetOperatingSystemFamilyName}{\void} - -Returns the operating system family name of the OS associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::GetOperatingSystemId}\label{wxplatforminfogetoperatingsystemid} - -\func{static wxOperatingSystemId}{GetOperatingSystemId}{\param{const wxString\& }{name}} - -Converts the given string to a wxOperatingSystemId enum value or to -wxOS\_UNKNOWN if the given string is not a valid operating system name. - -\constfunc{wxOperatingSystemId}{GetOperatingSystemId}{\void} - -Returns the operating system ID of this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::GetOperatingSystemIdName}\label{wxplatforminfogetoperatingsystemidname} - -\func{static wxString}{GetOperatingSystemIdName}{\param{wxOperatingSystemId }{os}} - -Returns the name for the given operating system ID value. This can be a long name -(e.g. {\tt Microsoft Windows NT}); use \helpref{GetOperatingSystemFamilyName}{wxplatforminfogetoperatingsystemfamilyname} to -retrieve a short, generic name. - - -\constfunc{wxString}{GetOperatingSystemIdName}{\void} - -Returns the operating system name of the OS associated with this wxPlatformInfo instance. - - - - - -\membersection{wxPlatformInfo::GetPortId}\label{wxplatforminfogetportid} - -\func{static wxPortId}{GetPortId}{\param{const wxString\& }{portname}} - -Converts the given string to a wxWidgets port ID value or to wxPORT\_UNKNOWN if -the given string does not match any of the wxWidgets canonical name ports ("wxGTK", "wxMSW", etc) -nor any of the short wxWidgets name ports ("gtk", "msw", etc). - -\constfunc{wxPortId}{GetPortId}{\void} - -Returns the wxWidgets port ID associated with this wxPlatformInfo instance. - -\membersection{wxPlatformInfo::GetPortIdName}\label{wxplatforminfogetportidname} - -\func{static wxString}{GetPortIdName}{\param{wxPortId }{port}, \param{bool }{usingUniversal}} - -Returns the name of the given wxWidgets port ID value. The \arg{usingUniversal} -argument specifies whether the port is in its native or wxUniversal variant. - -The returned string always starts with the "wx" prefix and is a mixed-case -string. - -\constfunc{wxString}{GetPortIdName}{\void} - -Returns the name of the wxWidgets port ID associated with this wxPlatformInfo instance. - - - - -\membersection{wxPlatformInfo::GetPortIdShortName}\label{wxplatforminfogetportidshortname} - -\func{static wxString}{GetPortIdShortName}{\param{wxPortId }{port}, \param{bool }{usingUniversal}} - -Returns the short name of the given wxWidgets port ID value. The -\arg{usingUniversal} argument specifies whether the port is in its native or -wxUniversal variant. - -The returned string does not start with the "wx" prefix and is always lower -case. - -\constfunc{wxString}{GetPortIdShortName}{\void} - -Returns the short name of the wxWidgets port ID associated with this wxPlatformInfo instance. - - - - -\membersection{wxPlatformInfo::GetToolkitMajorVersion}\label{wxplatforminfogettoolkitmajorversion} - -\constfunc{int}{GetToolkitMajorVersion}{\void} - -Returns the run-time major version of the toolkit associated with this wxPlatformInfo instance. -Note that if \helpref{GetPortId}{wxplatforminfogetportid} returns wxPORT\_BASE, then this value is zero (unless externally modified with \helpref{SetToolkitVersion}{wxplatforminfosettoolkitversion}); that is, no native toolkit is in use. - -See \helpref{wxAppTraits::GetToolkitVersion}{wxapptraitsgettoolkitversion} for more info. - - -\wxheading{See also} - -\helpref{CheckToolkitVersion}{wxplatforminfochecktoolkitversion} - - -\membersection{wxPlatformInfo::GetToolkitMinorVersion}\label{wxplatforminfogettoolkitminorversion} - -\constfunc{int}{GetToolkitMinorVersion}{\void} - -Returns the run-time minor version of the toolkit associated with this wxPlatformInfo instance. -Note that if \helpref{GetPortId}{wxplatforminfogetportid} returns wxPORT\_BASE, then this value is zero (unless externally modified with \helpref{SetToolkitVersion}{wxplatforminfosettoolkitversion}); that is, no native toolkit is in use. - -See \helpref{wxAppTraits::GetToolkitVersion}{wxapptraitsgettoolkitversion} for more info. - -\wxheading{See also} - -\helpref{CheckToolkitVersion}{wxplatforminfochecktoolkitversion} - - - - -\membersection{wxPlatformInfo::IsOk}\label{wxplatforminfoisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if this instance is fully initialized with valid values. - - - -\membersection{wxPlatformInfo::IsUsingUniversalWidgets}\label{wxplatforminfoisusinguniversalwidgets} - -\constfunc{bool}{IsUsingUniversalWidgets}{\void} - -Returns \true if this wxPlatformInfo describes wxUniversal build. - - -\membersection{wxPlatformInfo::SetArchitecture}\label{wxplatforminfosetarchitecture} - -\func{void}{SetArchitecture}{\param{wxArchitecture }{n}} - -Sets the architecture enum value associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::SetEndianness}\label{wxplatforminfosetendianness} - -\func{void}{SetEndianness}{\param{wxEndianness }{n}} - -Sets the endianness enum value associated with this wxPlatformInfo instance. - - -\membersection{wxPlatformInfo::SetOSVersion}\label{wxplatforminfosetosversion} - -\func{void}{SetOSVersion}{\param{int }{major}, \param{int }{minor}} - -Sets the version of the operating system associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::SetOperatingSystemId}\label{wxplatforminfosetoperatingsystemid} - -\func{void}{SetOperatingSystemId}{\param{wxOperatingSystemId }{n}} - -Sets the operating system associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::SetPortId}\label{wxplatforminfosetportid} - -\func{void}{SetPortId}{\param{wxPortId }{n}} - -Sets the wxWidgets port ID associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::SetToolkitVersion}\label{wxplatforminfosettoolkitversion} - -\func{void}{SetToolkitVersion}{\param{int }{major}, \param{int }{minor}} - -Sets the version of the toolkit associated with this wxPlatformInfo instance. - - - -\membersection{wxPlatformInfo::operator!=}\label{wxplatforminfooperatorunknown} - -\constfunc{bool}{operator!=}{\param{const wxPlatformInfo\& }{t}} - -Inequality operator. Tests all class' internal variables. - - -\membersection{wxPlatformInfo::operator==}\label{wxplatforminfooperatorequal} - -\constfunc{bool}{operator==}{\param{const wxPlatformInfo\& }{t}} - -Equality operator. Tests all class' internal variables. - diff --git a/docs/latex/wx/point.tex b/docs/latex/wx/point.tex deleted file mode 100644 index e13fcda20f..0000000000 --- a/docs/latex/wx/point.tex +++ /dev/null @@ -1,92 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: point.tex -%% Purpose: wxPoint documentation -%% Author: wxTeam -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxTeam -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPoint}}\label{wxpoint} - -A {\bf wxPoint} is a useful data structure for graphics operations. -It simply contains integer {\it x} and {\it y} members. - -See also \helpref{wxRealPoint}{wxrealpoint} for a floating point version. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/gdicmn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxRealPoint}{wxrealpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPoint::wxPoint}\label{wxpointctor} - -\func{}{wxPoint}{\void} - -\func{}{wxPoint}{\param{int}{ x}, \param{int}{ y}} - -Create a point. - -\membersection{wxPoint::x}\label{wxpointx} - -\member{int}{x} - -x member. - -\membersection{wxPoint::y}\label{wxpointy} - -\member{int}{ y} - -y member. - -\membersection{Operators}\label{wxpointoperators} - -\func{void}{operator $=$}{\param{const wxPoint\& }{pt}} - -Assignment operator. - - -\func{bool}{operator $==$}{\param{const wxPoint\& }{p1}, \param{const wxPoint\& }{p2}} - -\func{bool}{operator $!=$}{\param{const wxPoint\& }{p1}, \param{const wxPoint\& }{p2}} - -\func{wxPoint}{operator $+$}{\param{const wxPoint\& }{p1}, \param{const wxPoint\& }{p2}} - -\func{wxPoint}{operator $-$}{\param{const wxPoint\& }{p1}, \param{const wxPoint\& }{p2}} - -\func{wxPoint\&}{operator $+=$}{\param{const wxPoint\& }{pt}} - -\func{wxPoint\&}{operator $-=$}{\param{const wxPoint\& }{pt}} - -Operators for comparison, sum and subtraction between \helpref{wxPoint}{wxpoint} objects. - - -\func{wxPoint}{operator $+$}{\param{const wxPoint\& }{pt}, \param{const wxSize\& }{sz}} - -\func{wxPoint}{operator $-$}{\param{const wxPoint\& }{pt}, \param{const wxSize\& }{sz}} - -\func{wxPoint}{operator $+$}{\param{const wxSize\& }{sz}, \param{const wxPoint\& }{pt}} - -\func{wxPoint}{operator $-$}{\param{const wxSize\& }{sz}, \param{const wxPoint\& }{pt}} - -\func{wxPoint\&}{operator $+=$}{\param{const wxSize\& }{sz}} - -\func{wxPoint\&}{operator $-=$}{\param{const wxSize\& }{sz}} - -Operators for sum and subtraction between a \helpref{wxPoint}{wxpoint} object and a -\helpref{wxSize}{wxsize} object. - diff --git a/docs/latex/wx/porting.tex b/docs/latex/wx/porting.tex deleted file mode 100644 index c4c887dbdf..0000000000 --- a/docs/latex/wx/porting.tex +++ /dev/null @@ -1,470 +0,0 @@ -\chapter{Porting from wxWidgets 1.xx}\label{porting} - -This addendum gives guidelines and tips for porting applications from -version 1.xx of wxWidgets to version 2.0. - -The first section offers tips for writing 1.xx applications in a way to -minimize porting time. The following sections detail the changes and -how you can modify your application to be 2.0-compliant. - -You may be worrying that porting to 2.0 will be a lot of work, -particularly if you have only recently started using 1.xx. In fact, -the wxWidgets 2.0 API has far more in common with 1.xx than it has differences. -The main challenges are using the new event system, doing without the default -panel item layout, and the lack of automatic labels in some controls. - -Please don't be freaked out by the jump to 2.0! For one thing, 1.xx is still available -and will be supported by the user community for some time. And when you have -changed to 2.0, we hope that you will appreciate the benefits in terms -of greater flexibility, better user interface aesthetics, improved C++ conformance, -improved compilation speed, and many other enhancements. The revised architecture -of 2.0 will ensure that wxWidgets can continue to evolve for the foreseeable -future. - -{\it Please note that this document is a work in progress.} - -\section{Preparing for version 2.0}\label{portingpreparing} - -Even before compiling with version 2.0, there's also a lot you can do right now to make porting -relatively simple. Here are a few tips. - -\begin{itemize} -\item {\bf Use constraints or .wxr resources} for layout, rather than the default layout scheme. -Constraints should be the same in 2.0, and resources will be translated. -\item {\bf Use separate wxMessage items} instead of labels for wxText, wxMultiText, -wxChoice, wxComboBox. These labels will disappear in 2.0. Use separate -wxMessages whether you're creating controls programmatically or using -the dialog editor. The future dialog editor will be able to translate -from old to new more accurately if labels are separated out. -\item {\bf Parameterise functions that use wxDC} or derivatives, i.e. make the wxDC -an argument to all functions that do drawing. Minimise the use of -wxWindow::GetDC and definitely don't store wxDCs long-term -because in 2.0, you can't use GetDC() and wxDCs are not persistent. -You will use wxClientDC, wxPaintDC stack objects instead. Minimising -the use of GetDC() will ensure that there are very few places you -have to change drawing code for 2.0. -\item {\bf Don't set GDI objects} (wxPen, wxBrush etc.) in windows or wxCanvasDCs before they're -needed (e.g. in constructors) - do so within your drawing routine instead. In -2.0, these settings will only take effect between the construction and destruction -of temporary wxClient/PaintDC objects. -\item {\bf Don't rely} on arguments to wxDC functions being floating point - they will -be 32-bit integers in 2.0. -\item {\bf Don't use the wxCanvas member functions} that duplicate wxDC functions, such as SetPen and DrawLine, since -they are going. -\item {\bf Using member callbacks} called from global callback functions will make the transition -easier - see the FAQ -for some notes on using member functions for callbacks. wxWidgets 2.0 will banish global -callback functions (and OnMenuCommand), and nearly all event handling will be done by functions taking a single event argument. -So in future you will have code like: - -{\small -\begin{verbatim} -void MyFrame::OnOK(wxCommandEvent& event) -{ - ... -} -\end{verbatim} -}% - -You may find that writing the extra code to call a member function isn't worth it at this stage, -but the option is there. -\item {\bf Use wxString wherever possible.} 2.0 replaces char * with wxString -in most cases, and if you use wxString to receive strings returned from -wxWidgets functions (except when you need to save the pointer if deallocation is required), there should -be no conversion problems later on. -\item Be aware that under Windows, {\bf font sizes will change} to match standard Windows -font sizes (for example, a 12-point font will appear bigger than before). Write your application -to be flexible where fonts are concerned. -Don't rely on fonts being similarly-sized across platforms, as they were (by chance) between -Windows and X under wxWidgets 1.66. Yes, this is not easy... but I think it is better to conform to the -standards of each platform, and currently the size difference makes it difficult to -conform to Windows UI standards. You may eventually wish to build in a global 'fudge-factor' to compensate -for size differences. The old font sizing will still be available via wx\_setup.h, so do not panic... -\item {\bf Consider dropping wxForm usage}: -wxPropertyFormView can be used in a wxForm-like way, except that you specify a pre-constructed panel -or dialog; or you can use a wxPropertyListView to show attributes in a scrolling list - you don't even need -to lay panel items out. - -Because wxForm uses a number of features to be dropped in wxWidgets 2.0, it cannot be -supported in the future, at least in its present state. -\item {\bf When creating a wxListBox}, put the wxLB\_SINGLE, wxLB\_MULTIPLE, wxLB\_EXTENDED styles in the window style parameter, and put -zero in the {\it multiple} parameter. The {\it multiple} parameter will be removed in 2.0. -\item {\bf For MDI applications}, don't reply on MDI being run-time-switchable in the way that the -MDI sample is. In wxWidgets 2.0, MDI functionality is separated into distinct classes. -\end{itemize} - -\section{The new event system}\label{portingeventsystem} - -The way that events are handled has been radically changed in wxWidgets 2.0. Please -read the topic `Event handling overview' in the wxWidgets 2.0 manual for background -on this. - -\subsection{Callbacks} - -Instead of callbacks for panel items, menu command events, control commands and other events are directed to -the originating window, or an ancestor, or an event handler that has been plugged into the window -or its ancestor. Event handlers always have one argument, a derivative of wxEvent. - -For menubar commands, the {\bf OnMenuCommand} member function will be replaced by a series of separate member functions, -each of which responds to a particular command. You need to add these (non-virtual) functions to your -frame class, add a DECLARE\_EVENT\_TABLE entry to the class, and then add an event table to -your implementation file, as a BEGIN\_EVENT\_TABLE and END\_EVENT\_TABLE block. The -individual event mapping macros will be of the form: - -\begin{verbatim} -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(MYAPP_NEW, MyFrame::OnNew) - EVT_MENU(wxID_EXIT, MyFrame::OnExit) -END_EVENT_TABLE() -\end{verbatim} - -Control commands, such as button commands, can be routed to a derived button class, -the parent window, or even the frame. Here, you use a function of the form EVT\_BUTTON(id, func). -Similar macros exist for other control commands. - -\subsection{Other events} - -To intercept other events, you used to override virtual functions, such as OnSize. Now, while you can use -the OnSize name for such event handlers (or any other name of your choice), it has only a single argument -(wxSizeEvent) and must again be `mapped' using the EVT\_SIZE macro. The same goes for all other events, -including OnClose (although in fact you can still use the old, virtual form of OnClose for the time being). - -\section{Class hierarchy}\label{portingclasshierarchy} - -The class hierarchy has changed somewhat. wxToolBar and wxButtonBar -classes have been split into several classes, and are derived from wxControl (which was -called wxItem). wxPanel derives from wxWindow instead of from wxCanvas, which has -disappeared in favour of wxScrolledWindow (since all windows are now effectively canvases -which can be drawn into). The status bar has become a class in its own right, wxStatusBar. - -There are new MDI classes so that wxFrame does not have to be overloaded with this -functionality. - -There are new device context classes, with wxPanelDC and wxCanvasDC disappearing. -See \helpref{Device contexts and painting}{portingdc}. - -\section{GDI objects}\label{portinggdiobjects} - -These objects - instances of classes such as wxPen, wxBrush, wxBitmap (but not wxColour) - -are now implemented with reference-counting. This makes assignment a very cheap operation, -and also means that management of the resource is largely automatic. You now pass {\it references} to -objects to functions such as wxDC::SetPen, not pointers, so you will need to dereference your pointers. -The device context does not store a copy of the pen -itself, but takes a copy of it (via reference counting), and the object's data gets freed up -when the reference count goes to zero. The application does not have to worry so much about -who the object belongs to: it can pass the reference, then destroy the object without -leaving a dangling pointer inside the device context. - -For the purposes of code migration, you can use the old style of object management - maintaining -pointers to GDI objects, and using the FindOrCreate... functions. However, it is preferable to -keep this explicit management to a minimum, instead creating objects on the fly as needed, on the stack, -unless this causes too much of an overhead in your application. - -At a minimum, you will have to make sure that calls to SetPen, SetBrush etc. work. Also, where you pass NULL to these -functions, you will need to use an identifier such as wxNullPen or wxNullBrush. - -\section{Dialogs and controls}\label{portingdialogscontrols} - -\wxheading{Labels} - -Most controls no longer have labels and values as they used to in 1.xx. Instead, labels -should be created separately using wxStaticText (the new name for wxMessage). This will -need some reworking of dialogs, unfortunately; programmatic dialog creation that doesn't -use constraints will be especially hard-hit. Perhaps take this opportunity to make more -use of dialog resources or constraints. Or consider using the wxPropertyListView class -which can do away with dialog layout issues altogether by presenting a list of editable -properties. - -\wxheading{Constructors} - -All window constructors have two main changes, apart from the label issue mentioned above. -Windows now have integer identifiers; and position and size are now passed as wxPoint and -wxSize objects. In addition, some windows have a wxValidator argument. - -\wxheading{Show versus ShowModal} - -If you have used or overridden the {\bf wxDialog::Show} function in the past, you may find -that modal dialogs no longer work as expected. This is because the function for modal showing -is now {\bf wxDialog:ShowModal}. This is part of a more fundamental change in which a -control may tell the dialog that it caused the dismissal of a dialog, by -calling {\bf wxDialog::EndModal} or {\bf wxWindow::SetReturnCode}. Using this -information, {\bf ShowModal} now returns the id of the control that caused dismissal, -giving greater feedback to the application than just true or false. - -If you overrode or called {\bf wxDialog::Show}, use {\bf ShowModal} and test for a returned identifier, -commonly wxID\_OK or wxID\_CANCEL. - -\wxheading{wxItem} - -This is renamed wxControl. - -\wxheading{wxText, wxMultiText and wxTextWindow} - -These classes no longer exist and are replaced by the single class wxTextCtrl. -Multi-line text items are created using the wxTE\_MULTILINE style. - -\wxheading{wxButton} - -Bitmap buttons are now a separate class, instead of being part of wxBitmap. - -\wxheading{wxMessage} - -Bitmap messages are now a separate class, wxStaticBitmap, and wxMessage -is renamed wxStaticText. - -\wxheading{wxGroupBox} - -wxGroupBox is renamed wxStaticBox. - -\wxheading{wxForm} - -Note that wxForm is no longer supported in wxWidgets 2.0. Consider using the wxPropertyFormView class -instead, which takes standard dialogs and panels and associates controls with property objects. -You may also find that the new validation method, combined with dialog resources, is easier -and more flexible than using wxForm. - -\section{Device contexts and painting}\label{portingdc} - -In wxWidgets 2.0, device contexts are used for drawing into, as per 1.xx, but the way -they are accessed and constructed is a bit different. - -You no longer use {\bf GetDC} to access device contexts for panels, dialogs and canvases. -Instead, you create a temporary device context, which means that any window or control can be drawn -into. The sort of device context you create depends on where your code is called from. If -painting within an {\bf OnPaint} handler, you create a wxPaintDC. If not within an {\bf OnPaint} handler, -you use a wxClientDC or wxWindowDC. You can still parameterise your drawing code so that it -doesn't have to worry about what sort of device context to create - it uses the DC it is passed -from other parts of the program. - -You {\bf must } create a wxPaintDC if you define an OnPaint handler, even if you do not -actually use this device context, or painting will not work correctly under Windows. - -If you used device context functions with wxPoint or wxIntPoint before, please note -that wxPoint now contains integer members, and there is a new class wxRealPoint. wxIntPoint -no longer exists. - -wxMetaFile and wxMetaFileDC have been renamed to wxMetafile and wxMetafileDC. - -\section{Miscellaneous} - -\subsection{Strings} - -wxString has replaced char* in the majority of cases. For passing strings into functions, -this should not normally require you to change your code if the syntax is otherwise the -same. This is because C++ will automatically convert a char* or const char* to a wxString by virtue -of appropriate wxString constructors. - -However, when a wxString is returned from a function in wxWidgets 2.0 where a char* was -returned in wxWidgets 1.xx, your application will need to be changed. Usually you can -simplify your application's allocation and deallocation of memory for the returned string, -and simply assign the result to a wxString object. For example, replace this: - -{\small -\begin{verbatim} - char* s = wxFunctionThatReturnsString(); - s = copystring(s); // Take a copy in case it is temporary - .... // Do something with it - delete[] s; -\end{verbatim} -} - -with this: - -{\small -\begin{verbatim} - wxString s = wxFunctionThatReturnsString(); - .... // Do something with it -\end{verbatim} -} - -To indicate an empty return value or a problem, a function may return either the -empty string (``") or a null string. You can check for a null string with wxString::IsNull(). - -\subsection{Use of const} - -The {\bf const} keyword is now used to denote constant functions that do not affect the -object, and for function arguments to denote that the object passed cannot be changed. - -This should not affect your application except for where you are overriding virtual functions -which now have a different signature. If functions are not being called which were previously, -check whether there is a parameter mismatch (or function type mismatch) involving consts. - -Try to use the {\bf const} keyword in your own code where possible. - -\section{Backward compatibility}\label{portingcompat} - -Some wxWidgets 1.xx functionality has been left to ease the transition to 2.0. This functionality -(usually) only works if you compile with WXWIN\_COMPATIBILITY set to 1 in setup.h. - -Mostly this defines old names to be the new names (e.g. wxRectangle is defined to be wxRect). - -\section{Quick reference}\label{portingquickreference} - -This section allows you to quickly find features that -need to be converted. - -\subsection{Include files} - -Use the form: - -\begin{verbatim} -#include <wx/wx.h> -#include <wx/button.h> -\end{verbatim} - -For precompiled header support, use this form: - -\begin{verbatim} -// For compilers that support precompilation, includes "wx.h". -#include <wx/wxprec.h> - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// Any files you want to include if not precompiling by including -// the whole of <wx/wx.h> -#ifndef WX_PRECOMP - #include <stdio.h> - #include <wx/setup.h> - #include <wx/bitmap.h> - #include <wx/brush.h> -#endif - -// Any files you want to include regardless of precompiled headers -#include <wx/toolbar.h> -\end{verbatim} - -\subsection{IPC classes} - -These are now separated out into wxDDEServer/Client/Connection (Windows only) and wxTCPServer/Client/Connection -(Windows and Unix). Take care to use wxString for your overridden function arguments, instead of char*, as per -the documentation. - -\subsection{MDI style frames} - -MDI is now implemented as a family of separate classes, so you can't switch to MDI just by -using a different frame style. Please see the documentation for the MDI frame classes, and the MDI -sample may be helpful too. - -\subsection{OnActivate} - -Replace the arguments with one wxActivateEvent\& argument, make sure the function isn't virtual, -and add an EVT\_ACTIVATE event table entry. - -\subsection{OnChar} - -This is now a non-virtual function, with the same wxKeyEvent\& argument as before. -Add an EVT\_CHAR macro to the event table -for your window, and the implementation of your function will need very few changes. - -\subsection{OnClose} - -The old virtual function OnClose is now obsolete. -Add an OnCloseWindow event handler using an EVT\_CLOSE event table entry. For details -about window destruction, see the Windows Deletion Overview in the manual. This is a subtle -topic so please read it very carefully. Basically, OnCloseWindow is now responsible for -destroying a window with Destroy(), but the default implementation (for example for wxDialog) may not -destroy the window, so to be sure, always provide this event handler so it is obvious what's going on. - -\subsection{OnEvent} - -This is now a non-virtual function, with the same wxMouseEvent\& argument as before. However -you may wish to rename it OnMouseEvent. Add an EVT\_MOUSE\_EVENTS macro to the event table -for your window, and the implementation of your function will need very few changes. -However, if you wish to intercept different events using different functions, you can -specify specific events in your event table, such as EVT\_LEFT\_DOWN. - -Your OnEvent function is likely to have references to GetDC(), so make sure you create -a wxClientDC instead. See \helpref{Device contexts}{portingdc}. - -If you are using a wxScrolledWindow (formerly wxCanvas), you should call -PrepareDC(dc) to set the correct translation for the current scroll position. - -\subsection{OnMenuCommand} - -You need to replace this virtual function with a series of non-virtual functions, one for -each case of your old switch statement. Each function takes a wxCommandEvent\& argument. -Create an event table for your frame -containing EVT\_MENU macros, and insert DECLARE\_EVENT\_TABLE() in your frame class, as -per the samples. - -\subsection{OnPaint} - -This is now a non-virtual function, with a wxPaintEvent\& argument. -Add an EVT\_PAINT macro to the event table -for your window. - -Your function {\it must} create a wxPaintDC object, instead of using GetDC to -obtain the device context. - -If you are using a wxScrolledWindow (formerly wxCanvas), you should call -PrepareDC(dc) to set the correct translation for the current scroll position. - -\subsection{OnSize} - -Replace the arguments with one wxSizeEvent\& argument, make it non-virtual, and add to your -event table using EVT\_SIZE. - -\subsection{wxApp definition} - -The definition of OnInit has changed. Return a bool value, not a wxFrame. - -Also, do {\it not} declare a global application object. Instead, use the macros -DECLARE\_APP and IMPLEMENT\_APP as per the samples. Remove any occurrences of IMPLEMENT\_WXWIN\_MAIN: -this is subsumed in IMPLEMENT\_APP. - -\subsection{wxButton} - -For bitmap buttons, use wxBitmapButton. - -\subsection{wxCanvas} - -Change the name to wxScrolledWindow. - -\subsection{wxDialogBox} - -Change the name to wxDialog, and for modal dialogs, use ShowModal instead of Show. - -\subsection{wxDialog::Show} - -If you used {\bf Show} to show a modal dialog or to override the standard -modal dialog {\bf Show}, use {\bf ShowModal} instead. - -\wxheading{See also} - -\helpref{Dialogs and controls}{portingdialogscontrols} - -\subsection{wxForm} - -Sorry, this class is no longer available. Try using the wxPropertyListView or wxPropertyFormView class -instead, or use .wxr files and validators. - -\subsection{wxPoint} - -The old wxPoint is called wxRealPoint, and wxPoint now uses integers. - -\subsection{wxRectangle} - -This is now called wxRect. - -\subsection{wxScrollBar} - -The function names have changed for this class: please refer to the documentation for wxScrollBar. Instead -of setting properties individually, you will call SetScrollbar with several parameters. - -\subsection{wxText, wxMultiText, wxTextWindow} - -Change all these to wxTextCtrl. Add the window style wxTE\_MULTILINE if you -wish to have a multi-line text control. - -\subsection{wxToolBar} - -This name is an alias for the most popular form of toolbar for your platform. There is now a family -of toolbar classes, with for example wxToolBar95, wxToolBarMSW and wxToolBarSimple classes existing -under Windows 95. - -Toolbar management is supported by frames, so calling wxFrame::CreateToolBar and adding tools is usually -enough, and the SDI or MDI frame will manage the positioning for you. The client area of the frame is the space -left over when the menu bar, toolbar and status bar have been taken into account. - diff --git a/docs/latex/wx/portnote.tex b/docs/latex/wx/portnote.tex deleted file mode 100644 index 3e71a18bdb..0000000000 --- a/docs/latex/wx/portnote.tex +++ /dev/null @@ -1,33 +0,0 @@ -\chapter{Platform details}\label{platformdetails} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -wxWidgets defines a common API across platforms, but uses the native graphical -user interface (GUI) on each platform, so your program will take on the native -look and feel that users are familiar with. Unfortunately native toolkits and -hardware do not always support the functionality that the wxWidgets API -requires. This chapter collects notes about differences among supported platforms and ports. - -\input wxgtk.tex -\input wxmsw.tex -\input wxmac.tex -\input wxpalm.tex -\input wxos2.tex -\input wxmgl.tex -\input wxx11.tex - -\subsection{Documentation for the native toolkits}\label{nativedocs} - -It's sometimes useful to interface directly with the underlying toolkit -used by wxWidgets to e.g. use toolkit-specific features. -In such case (or when you want to e.g. write a port-specific patch) it can be -necessary to use the underlying toolkit API directly: - -\begin{description}\itemsep=0pt -\item[{\bf wxMSW}] -wxMSW port uses win32 API: \urlref{MSDN docs}{http://msdn2.microsoft.com/en-us/library/ms649779.aspx} - -\item[{\bf wxGTK}] -wxGTK port uses GTK+: \urlref{GTK+ 2.x docs}{http://developer.gnome.org/doc/API/2.0/gtk/index.html} - -\end{description} \ No newline at end of file diff --git a/docs/latex/wx/position.tex b/docs/latex/wx/position.tex deleted file mode 100644 index c956a8ef66..0000000000 --- a/docs/latex/wx/position.tex +++ /dev/null @@ -1,108 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: position.tex (moved from gbposition.tex) -%% Purpose: wxPosition Documentation -%% Author: Robin Dunn, Bryan Petty -%% Modified by: -%% Created: 2003-11-06, modified 2007-04-05 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003, 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPosition}}\label{wxposition} - -This class represents the position of an item in any kind of grid of rows and -columns such as \helpref{wxGridBagSizer}{wxgridbagsizer}, or -\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/position.h> - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{wxSize}{wxsize} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPosition::wxPosition}\label{wxpositionwxposition} - -\func{}{wxPosition}{\void} - -\func{}{wxPosition}{\param{int }{row}, \param{int }{col}} - -Construct a new wxPosition, optionally setting the row and column. The -default value is $(0, 0)$. - - -\membersection{wxPosition::GetCol}\label{wxpositiongetcol} - -\constfunc{int}{GetCol}{\void} - -A synonym for \helpref{GetColumn()}{wxpositiongetcolumn}. - - -\membersection{wxPosition::GetColumn}\label{wxpositiongetcolumn} - -\constfunc{int}{GetColumn}{\void} - -Get the current row value. - - -\membersection{wxPosition::GetRow}\label{wxpositiongetrow} - -\constfunc{int}{GetRow}{\void} - -Get the current row value. - - -\membersection{wxPosition::SetCol}\label{wxpositionsetcol} - -\func{void}{SetCol}{\param{int }{column}} - -A synonym for \helpref{SetColumn()}{wxpositionsetcolumn}. - - -\membersection{wxPosition::SetColumn}\label{wxpositionsetcolumn} - -\func{void}{SetColumn}{\param{int }{column}} - -Set a new column value. - - -\membersection{wxPosition::SetRow}\label{wxpositionsetrow} - -\func{void}{SetRow}{\param{int }{row}} - -Set a new row value. - - -\membersection{Operators}\label{wxpositionoperators} - -\constfunc{bool}{operator $==$}{\param{const wxPosition\& }{p}} - -\constfunc{bool}{operator $!=$}{\param{const wxPosition\& }{p}} - -Compare equality of two wxPositions. - -\func{wxPosition\&}{operator $+=$}{\param{const wxPosition\& }{p}} - -\func{wxPosition\&}{operator $-=$}{\param{const wxPosition\& }{p}} - -\func{wxPosition\&}{operator $+=$}{\param{const wxSize\& }{s}} - -\func{wxPosition\&}{operator $-=$}{\param{const wxSize\& }{s}} - -\constfunc{wxPosition}{operator $+$}{\param{const wxPosition\& }{p}} - -\constfunc{wxPosition}{operator $-$}{\param{const wxPosition\& }{p}} - -\constfunc{wxPosition}{operator $+$}{\param{const wxSize\& }{s}} - -\constfunc{wxPosition}{operator $-$}{\param{const wxSize\& }{s}} - diff --git a/docs/latex/wx/postscpt.tex b/docs/latex/wx/postscpt.tex deleted file mode 100644 index 4bdb15f767..0000000000 --- a/docs/latex/wx/postscpt.tex +++ /dev/null @@ -1,54 +0,0 @@ -\section{\class{wxPostScriptDC}}\label{wxpostscriptdc} - -This defines the wxWidgets Encapsulated PostScript device context, -which can write PostScript files on any platform. See \helpref{wxDC}{wxdc} for -descriptions of the member functions. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/dcps.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPostScriptDC::wxPostScriptDC}\label{wxpostscriptdcctor} - -\func{}{wxPostScriptDC}{\param{const wxPrintData\&}{ printData}} - -Constructs a PostScript printer device context from a \helpref{wxPrintData}{wxprintdata} object. - -\func{}{wxPostScriptDC}{\param{const wxString\& }{output}, \param{bool }{interactive = true},\\ - \param{wxWindow *}{parent}} - -Constructor. {\it output} is an optional file for printing to, and if -\rtfsp{\it interactive} is true a dialog box will be displayed for adjusting -various parameters. {\it parent} is the parent of the printer dialog box. - -Use the {\it Ok} member to test whether the constructor was successful -in creating a usable device context. - -See \helpref{Printer settings}{printersettings} for functions to set and -get PostScript printing settings. - -This constructor and the global printer settings are now deprecated; -use the wxPrintData constructor instead. - - -\membersection{wxPostScriptDC::SetResolution}\label{wxpostscriptdcsetresolution} - -\func{static void}{SetResolution}{\param{int}{ ppi}} - -Set resolution (in pixels per inch) that will be used in PostScript -output. Default is 720ppi. - -\membersection{wxPostScriptDC::GetResolution}\label{wxpostscriptdcgetresolution} - -\func{static int}{GetResolution}{\void} - -Return resolution used in PostScript output. See -\helpref{SetResolution}{wxpostscriptdcsetresolution}. - diff --git a/docs/latex/wx/powerevt.tex b/docs/latex/wx/powerevt.tex deleted file mode 100644 index 6ef99944db..0000000000 --- a/docs/latex/wx/powerevt.tex +++ /dev/null @@ -1,71 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: powerevt.tex -%% Purpose: wxPowerEvent documentation -%% Author: Vadim Zeitlin -%% Created: 2006-05-27 -%% RCS-ID: $Id$ -%% Copyright: (C) 2006 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxPowerEvent}}\label{wxpowerevent} - -The power events are generated when the system power state changes, e.g. the -system is suspended, hibernated, plugged into or unplugged from the wall socket -and so on. - -Notice that currently only suspend and resume events are generated and only -under MS Windows platform. To avoid the need to change the code using this -event later when these events are implemented on the other platforms please use -the test \texttt{#ifdef wxHAS\_POWER\_EVENTS} instead of directly testing for -the platform in your code: this symbol will be defined for all platforms -supporting the power events. - -\wxheading{Event table macros} - -To process power events, use these macros to handle them in -member functions that take a wxPowerEvent argument. - -\twocolwidtha{9cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\textbf{EVT\_POWER\_SUSPENDING(func)}}{System is about to be suspended, this -event can be vetoed to prevent suspend from taking place.} -\twocolitem{\textbf{EVT\_POWER\_SUSPENDED(func)}}{System is about to suspend: normally the -application should quickly (i.e. without user intervention) close all the open -files and network connections here, possibly remembering them to reopen them -later when the system is resumed.} -\twocolitem{\textbf{EVT\_POWER\_SUSPEND\_CANCEL(func)}}{System suspension was cancelled -because some application vetoed it.} -\twocolitem{\textbf{EVT\_POWER\_RESUME(func)}}{System resumed from suspend: -normally the application should restore the state in which it had been before -the suspension.} -\end{twocollist}% - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/power.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxGetPowerType}{wxgetpowertype}, \helpref{wxGetBatteryState}{wxgetbatterystate} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPowerEvent::Veto}\label{wxpowereventveto} - -\func{void}{Veto}{\void} - -Call this to prevent suspend from taking place in -\texttt{wxEVT\_POWER\_SUSPENDING} handler (it is ignored for all the others). - - diff --git a/docs/latex/wx/prevwin.tex b/docs/latex/wx/prevwin.tex deleted file mode 100644 index 33d7d31096..0000000000 --- a/docs/latex/wx/prevwin.tex +++ /dev/null @@ -1,191 +0,0 @@ -\section{\class{wxPreviewCanvas}}\label{wxpreviewcanvas} - -A preview canvas is the default canvas used by the print preview -system to display the preview. - -\wxheading{Derived from} - -\helpref{wxScrolledWindow}{wxscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\helpref{wxPreviewFrame}{wxpreviewframe}, \helpref{wxPreviewControlBar}{wxpreviewcontrolbar},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewCanvas::wxPreviewCanvas}\label{wxpreviewcanvasctor} - -\func{}{wxPreviewCanvas}{\param{wxPrintPreview* }{preview}, \param{wxWindow* }{parent}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, - \param{long}{ style = 0}, \param{const wxString\& }{name = ``canvas"}} - -Constructor. - -\membersection{wxPreviewCanvas::\destruct{wxPreviewCanvas}}\label{wxpreviewcanvasdtor} - -\func{}{\destruct{wxPreviewCanvas}}{\void} - -Destructor. - -\membersection{wxPreviewCanvas::OnPaint}\label{wxpreviewcanvasonpaint} - -\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} - -Calls \helpref{wxPrintPreview::PaintPage}{wxprintpreviewpaintpage} to refresh the canvas. - -\section{\class{wxPreviewControlBar}}\label{wxpreviewcontrolbar} - -This is the default implementation of the preview control bar, a panel -with buttons and a zoom control. You can derive a new class from this and -override some or all member functions to change the behaviour and appearance; -or you can leave it as it is. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\helpref{wxPreviewFrame}{wxpreviewframe}, \helpref{wxPreviewCanvas}{wxpreviewcanvas},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewControlBar::wxPreviewControlbar}\label{wxpreviewcontrolbarctor} - -\func{}{wxPreviewControlBar}{\param{wxPrintPreview* }{preview}, \param{long}{ buttons}, \param{wxWindow* }{parent}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, - \param{long}{ style = 0}, \param{const wxString\& }{name = ``panel"}} - -Constructor. - -The buttons parameter may be a combination of the following, using the bitwise `or' operator. - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxPREVIEW\_PRINT}{Create a print button.} -\twocolitem{wxPREVIEW\_NEXT}{Create a next page button.} -\twocolitem{wxPREVIEW\_PREVIOUS}{Create a previous page button.} -\twocolitem{wxPREVIEW\_ZOOM}{Create a zoom control.} -\twocolitem{wxPREVIEW\_DEFAULT}{Equivalent to a combination of wxPREVIEW\_PREVIOUS, wxPREVIEW\_NEXT and -wxPREVIEW\_ZOOM.} -\end{twocollist} - -\membersection{wxPreviewControlBar::\destruct{wxPreviewControlBar}}\label{wxpreviewcontrolbardtor} - -\func{}{\destruct{wxPreviewControlBar}}{\void} - -Destructor. - -\membersection{wxPreviewControlBar::CreateButtons}\label{wxpreviewcontrolbarcreatebuttons} - -\func{void}{CreateButtons}{\void} - -Creates buttons, according to value of the button style flags. - -\membersection{wxPreviewControlBar::GetPrintPreview}\label{wxpreviewcontrolbargetprintpreview} - -\func{wxPrintPreview *}{GetPrintPreview}{\void} - -Gets the print preview object associated with the control bar. - -\membersection{wxPreviewControlBar::GetZoomControl}\label{wxpreviewcontrolbargetzoomcontrol} - -\func{int}{GetZoomControl}{\void} - -Gets the current zoom setting in percent. - -\membersection{wxPreviewControlBar::SetZoomControl}\label{wxpreviewcontrolbarsetzoomcontrol} - -\func{void}{SetZoomControl}{\param{int }{percent}} - -Sets the zoom control. - -\section{\class{wxPreviewFrame}}\label{wxpreviewframe} - -This class provides the default method of managing the print preview interface. -Member functions may be overridden to replace functionality, or the -class may be used without derivation. - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\helpref{wxPreviewCanvas}{wxpreviewcanvas}, \helpref{wxPreviewControlBar}{wxpreviewcontrolbar},\rtfsp -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPreviewFrame::wxPreviewFrame}\label{wxpreviewframector} - -\func{}{wxPreviewFrame}{\param{wxPrintPreview* }{preview}, \param{wxWindow* }{parent}, \param{const wxString\& }{title}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& size }{size = wxDefaultSize}, - \param{long}{ style = wxDEFAULT\_FRAME\_STYLE}, \param{const wxString\& }{name = ``frame"}} - -Constructor. Pass a print preview object plus other normal frame arguments. -The print preview object will be destroyed by the frame when it closes. - -\membersection{wxPreviewFrame::\destruct{wxPreviewFrame}}\label{wxpreviewframedtor} - -\func{}{\destruct{wxPreviewFrame}}{\void} - -Destructor. - -\membersection{wxPreviewFrame::CreateControlBar}\label{wxpreviewframecreatecontrolbar} - -\func{void}{CreateControlBar}{\void} - -Creates a wxPreviewControlBar. Override this function to allow -a user-defined preview control bar object to be created. - -\membersection{wxPreviewFrame::CreateCanvas}\label{wxpreviewframecreatecanvas} - -\func{void}{CreateCanvas}{\void} - -Creates a wxPreviewCanvas. Override this function to allow -a user-defined preview canvas object to be created. - -\membersection{wxPreviewFrame::Initialize}\label{wxpreviewframeinitialize} - -\func{void}{Initialize}{\void} - -Creates the preview canvas and control bar, and calls -wxWindow::MakeModal(true) to disable other top-level windows -in the application. - -This function should be called by the application prior to -showing the frame. - -\membersection{wxPreviewFrame::OnCloseWindow}\label{wxpreviewframeonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}} - -Enables the other frames in the application, and deletes the print preview -object, implicitly deleting any printout objects associated with the print -preview object. - diff --git a/docs/latex/wx/print.tex b/docs/latex/wx/print.tex deleted file mode 100644 index b3a562a06d..0000000000 --- a/docs/latex/wx/print.tex +++ /dev/null @@ -1,1429 +0,0 @@ -\section{\class{wxPrintData}}\label{wxprintdata} - -This class holds a variety of information related to printers and -printer device contexts. This class is used to create a wxPrinterDC -and a wxPostScriptDC. It is also used as a data member of wxPrintDialogData -and wxPageSetupDialogData, as part of the mechanism for transferring data -between the print dialogs and the application. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/cmndata.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog}, -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}, -\helpref{wxPrintDialog Overview}{wxprintdialogoverview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPostScriptDC}{wxpostscriptdc} - -\wxheading{Remarks} - -The following functions are specific to PostScript printing -and have not yet been documented: - -\begin{verbatim} -const wxString& GetPrinterCommand() const ; -const wxString& GetPrinterOptions() const ; -const wxString& GetPreviewCommand() const ; -const wxString& GetFilename() const ; -const wxString& GetFontMetricPath() const ; -double GetPrinterScaleX() const ; -double GetPrinterScaleY() const ; -long GetPrinterTranslateX() const ; -long GetPrinterTranslateY() const ; -// wxPRINT_MODE_PREVIEW, wxPRINT_MODE_FILE, wxPRINT_MODE_PRINTER -wxPrintMode GetPrintMode() const ; - -void SetPrinterCommand(const wxString& command) ; -void SetPrinterOptions(const wxString& options) ; -void SetPreviewCommand(const wxString& command) ; -void SetFilename(const wxString& filename) ; -void SetFontMetricPath(const wxString& path) ; -void SetPrinterScaleX(double x) ; -void SetPrinterScaleY(double y) ; -void SetPrinterScaling(double x, double y) ; -void SetPrinterTranslateX(long x) ; -void SetPrinterTranslateY(long y) ; -void SetPrinterTranslation(long x, long y) ; -void SetPrintMode(wxPrintMode printMode) ; -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrintData::wxPrintData}\label{wxprintdatactor} - -\func{}{wxPrintData}{\void} - -Default constructor. - -\func{}{wxPrintData}{\param{const wxPrintData\&}{ data}} - -Copy constructor. - - -\membersection{wxPrintData::\destruct{wxPrintData}}\label{wxprintdatadtor} - -\func{}{\destruct{wxPrintData}}{\void} - -Destructor. - - -\membersection{wxPrintData::GetCollate}\label{wxprintdatagetcollate} - -\constfunc{bool}{GetCollate}{\void} - -Returns true if collation is on. - - -\membersection{wxPrintData::GetBin}\label{wxprintdatagetbin} - -\constfunc{wxPrintBin}{GetBin}{\void} - -Returns the current bin (papersource). By default, the system is left to select -the bin (\texttt{wxPRINTBIN\_DEFAULT} is returned). - -See \helpref{SetBin()}{wxprintdatasetbin} for the full list of bin values. - - -\membersection{wxPrintData::GetColour}\label{wxprintdatagetcolour} - -\constfunc{bool}{GetColour}{\void} - -Returns true if colour printing is on. - - -\membersection{wxPrintData::GetDuplex}\label{wxprintdatagetduplex} - -\constfunc{wxDuplexMode}{GetDuplex}{\void} - -Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL. - - -\membersection{wxPrintData::GetNoCopies}\label{wxprintdatagetnocopies} - -\constfunc{int}{GetNoCopies}{\void} - -Returns the number of copies requested by the user. - - -\membersection{wxPrintData::GetOrientation}\label{wxprintdatagetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Gets the orientation. This can be wxLANDSCAPE or wxPORTRAIT. - - -\membersection{wxPrintData::GetPaperId}\label{wxprintdatagetpaperid} - -\constfunc{wxPaperSize}{GetPaperId}{\void} - -Returns the paper size id. For more information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}. - - -\membersection{wxPrintData::GetPrinterName}\label{wxprintdatagetprintername} - -\constfunc{const wxString\&}{GetPrinterName}{\void} - -Returns the printer name. If the printer name is the empty string, it indicates that the default -printer should be used. - - -\membersection{wxPrintData::GetQuality}\label{wxprintdatagetquality} - -\constfunc{wxPrintQuality}{GetQuality}{\void} - -Returns the current print quality. This can be a positive integer, denoting the number of dots per inch, or -one of the following identifiers: - -\begin{verbatim} -wxPRINT_QUALITY_HIGH -wxPRINT_QUALITY_MEDIUM -wxPRINT_QUALITY_LOW -wxPRINT_QUALITY_DRAFT -\end{verbatim} - -On input you should pass one of these identifiers, but on return you may get back a positive integer -indicating the current resolution setting. - - -\membersection{wxPrintData::IsOk}\label{wxprintdataisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the print data is valid for using in print dialogs. -This can return false on Windows if the current printer is not set, for example. -On all other platforms, it returns true. - - -\membersection{wxPrintData::SetBin}\label{wxprintdatasetbin} - -\func{void}{SetBin}{\param{wxPrintBin }{flag}} - -Sets the current bin. Possible values are: - -\small{ -\begin{verbatim} -enum wxPrintBin -{ - wxPRINTBIN_DEFAULT, - - wxPRINTBIN_ONLYONE, - wxPRINTBIN_LOWER, - wxPRINTBIN_MIDDLE, - wxPRINTBIN_MANUAL, - wxPRINTBIN_ENVELOPE, - wxPRINTBIN_ENVMANUAL, - wxPRINTBIN_AUTO, - wxPRINTBIN_TRACTOR, - wxPRINTBIN_SMALLFMT, - wxPRINTBIN_LARGEFMT, - wxPRINTBIN_LARGECAPACITY, - wxPRINTBIN_CASSETTE, - wxPRINTBIN_FORMSOURCE, - - wxPRINTBIN_USER, -}; -\end{verbatim} -} - - -\membersection{wxPrintData::SetCollate}\label{wxprintdatasetcollate} - -\func{void}{SetCollate}{\param{bool }{flag}} - -Sets collation to on or off. - - -\membersection{wxPrintData::SetColour}\label{wxprintdatasetcolour} - -\func{void}{SetColour}{\param{bool }{flag}} - -Sets colour printing on or off. - - -\membersection{wxPrintData::SetDuplex}\label{wxprintdatasetduplex} - -\func{void}{SetDuplex}{\param{wxDuplexMode}{ mode}} - -Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL. - - -\membersection{wxPrintData::SetNoCopies}\label{wxprintdatasetnocopies} - -\func{void}{SetNoCopies}{\param{int }{n}} - -Sets the default number of copies to be printed out. - - -\membersection{wxPrintData::SetOrientation}\label{wxprintdatasetorientation} - -\func{void}{SetOrientation}{\param{int }{orientation}} - -Sets the orientation. This can be wxLANDSCAPE or wxPORTRAIT. - - -\membersection{wxPrintData::SetPaperId}\label{wxprintdatasetpaperid} - -\func{void}{SetPaperId}{\param{wxPaperSize}{ paperId}} - -\index{wxPaperSize}Sets the paper id. This indicates the type of paper to be used. For a mapping between -paper id, paper size and string name, see wxPrintPaperDatabase in {\tt paper.h} (not yet documented). - -{\it paperId} can be one of: - -{\small -\begin{verbatim} - wxPAPER_NONE, // Use specific dimensions - wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches - wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches - wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters - wxPAPER_CSHEET, // C Sheet, 17 by 22 inches - wxPAPER_DSHEET, // D Sheet, 22 by 34 inches - wxPAPER_ESHEET, // E Sheet, 34 by 44 inches - wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches - wxPAPER_TABLOID, // Tabloid, 11 by 17 inches - wxPAPER_LEDGER, // Ledger, 17 by 11 inches - wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches - wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches - wxPAPER_A3, // A3 sheet, 297 by 420 millimeters - wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters - wxPAPER_A5, // A5 sheet, 148 by 210 millimeters - wxPAPER_B4, // B4 sheet, 250 by 354 millimeters - wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper - wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper - wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper - wxPAPER_10X14, // 10-by-14-inch sheet - wxPAPER_11X17, // 11-by-17-inch sheet - wxPAPER_NOTE, // Note, 8 1/2 by 11 inches - wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches - wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches - wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches - wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches - wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches - wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters - wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters - wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters - wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters - wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters - wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters - wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters - wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters - wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters - wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters - wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches - wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches - wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches - wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches - wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches - -Windows 95 only: - wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm - wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm - wxPAPER_9X11, // 9 x 11 in - wxPAPER_10X11, // 10 x 11 in - wxPAPER_15X11, // 15 x 11 in - wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm - wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in - wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in - wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in - wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in - wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in - wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm - wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in - wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm - wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm - wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in - wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm - wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm - wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm - wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm - wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm - wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm - wxPAPER_A2, // A2 420 x 594 mm - wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm - wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm -\end{verbatim} -} - - -\membersection{wxPrintData::SetPrinterName}\label{wxprintdatasetprintername} - -\func{void}{SetPrinterName}{\param{const wxString\& }{printerName}} - -Sets the printer name. This can be the empty string to indicate that the default -printer should be used. - - -\membersection{wxPrintData::SetQuality}\label{wxprintdatasetquality} - -\func{void}{SetQuality}{\param{wxPrintQuality}{ quality}} - -Sets the desired print quality. This can be a positive integer, denoting the number of dots per inch, or -one of the following identifiers: - -\begin{verbatim} -wxPRINT_QUALITY_HIGH -wxPRINT_QUALITY_MEDIUM -wxPRINT_QUALITY_LOW -wxPRINT_QUALITY_DRAFT -\end{verbatim} - -On input you should pass one of these identifiers, but on return you may get back a positive integer -indicating the current resolution setting. - - -\membersection{wxPrintData::operator $=$}\label{wxprintdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPrintSetupData\&}{ data}} - -Assigns print setup data to this object. wxPrintSetupData is deprecated, -but retained for backward compatibility. - -\section{\class{wxPrintDialog}}\label{wxprintdialog} - -This class represents the print and print setup common dialogs. -You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from -a successfully dismissed print dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/printdlg.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrintDialog Overview}{wxprintdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrintDialog::wxPrintDialog}\label{wxprintdialogctor} - -\func{}{wxPrintDialog}{\param{wxWindow* }{parent}, \param{wxPrintDialogData* }{data = NULL}} - -Constructor. Pass a parent window, and optionally a pointer to a block of print -data, which will be copied to the print dialog's print data. - -\wxheading{See also} - -\helpref{wxPrintDialogData}{wxprintdialogdata} - - -\membersection{wxPrintDialog::\destruct{wxPrintDialog}}\label{wxprintdialogdtor} - -\func{}{\destruct{wxPrintDialog}}{\void} - -Destructor. If wxPrintDialog::GetPrintDC has {\it not} been called, -the device context obtained by the dialog (if any) will be deleted. - - -\membersection{wxPrintDialog::GetPrintDialogData}\label{wxprintdialoggetprintdialogdata} - -\func{wxPrintDialogData\&}{GetPrintDialogData}{\void} - -Returns the \helpref{print dialog data}{wxprintdialogdata} associated with the print dialog. - - -\membersection{wxPrintDialog::GetPrintDC}\label{wxprintdialoggetprintdc} - -\func{wxDC* }{GetPrintDC}{\void} - -Returns the device context created by the print dialog, if any. -When this function has been called, the ownership of the device context -is transferred to the application, so it must then be deleted -explicitly. - - -\membersection{wxPrintDialog::ShowModal}\label{wxprintdialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. After this function is called, a device context may -be retrievable using \helpref{wxPrintDialog::GetPrintDC}{wxprintdialoggetprintdc}. - -\section{\class{wxPrintDialogData}}\label{wxprintdialogdata} - -This class holds information related to the visual characteristics of wxPrintDialog. -It contains a wxPrintData object with underlying printing settings. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/cmndata.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPrintDialog Overview}{wxprintdialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrintDialogData::wxPrintDialogData}\label{wxprintdialogdatactor} - -\func{}{wxPrintDialogData}{\void} - -Default constructor. - -\func{}{wxPrintDialogData}{\param{wxPrintDialogData\&}{ dialogData}} - -Copy constructor. - -\func{}{wxPrintDialogData}{\param{wxPrintData\&}{ printData}} - -Construct an object from a print dialog data object. - - -\membersection{wxPrintDialogData::\destruct{wxPrintDialogData}}\label{wxprintdialogdatadtor} - -\func{}{\destruct{wxPrintDialogData}}{\void} - -Destructor. - - -\membersection{wxPrintDialogData::EnableHelp}\label{wxprintdialogdataenablehelp} - -\func{void}{EnableHelp}{\param{bool }{flag}} - -Enables or disables the `Help' button. - - -\membersection{wxPrintDialogData::EnablePageNumbers}\label{wxprintdialogdataenablepagenumbers} - -\func{void}{EnablePageNumbers}{\param{bool }{flag}} - -Enables or disables the `Page numbers' controls. - - -\membersection{wxPrintDialogData::EnablePrintToFile}\label{wxprintdialogdataenableprinttofile} - -\func{void}{EnablePrintToFile}{\param{bool }{flag}} - -Enables or disables the `Print to file' checkbox. - - -\membersection{wxPrintDialogData::EnableSelection}\label{wxprintdialogdataenableselection} - -\func{void}{EnableSelection}{\param{bool }{flag}} - -Enables or disables the `Selection' radio button. - - -\membersection{wxPrintDialogData::GetAllPages}\label{wxprintdialogdatagetallpages} - -\constfunc{bool}{GetAllPages}{\void} - -Returns true if the user requested that all pages be printed. - - -\membersection{wxPrintDialogData::GetCollate}\label{wxprintdialogdatagetcollate} - -\constfunc{bool}{GetCollate}{\void} - -Returns true if the user requested that the document(s) be collated. - - -\membersection{wxPrintDialogData::GetFromPage}\label{wxprintdialogdatagetfrompage} - -\constfunc{int}{GetFromPage}{\void} - -Returns the {\it from} page number, as entered by the user. - - -\membersection{wxPrintDialogData::GetMaxPage}\label{wxprintdialogdatagetmaxpage} - -\constfunc{int}{GetMaxPage}{\void} - -Returns the {\it maximum} page number. - - -\membersection{wxPrintDialogData::GetMinPage}\label{wxprintdialogdatagetminpage} - -\constfunc{int}{GetMinPage}{\void} - -Returns the {\it minimum} page number. - - -\membersection{wxPrintDialogData::GetNoCopies}\label{wxprintdialogdatagetnocopies} - -\constfunc{int}{GetNoCopies}{\void} - -Returns the number of copies requested by the user. - - -\membersection{wxPrintDialogData::GetPrintData}\label{wxprintdialogdatagetprintdata} - -\func{wxPrintData\&}{GetPrintData}{\void} - -Returns a reference to the internal wxPrintData object. - - -\membersection{wxPrintDialogData::GetPrintToFile}\label{wxprintdialogdatagetprinttofile} - -\constfunc{bool}{GetPrintToFile}{\void} - -Returns true if the user has selected printing to a file. - - -\membersection{wxPrintDialogData::GetSelection}\label{wxprintdialogdatagetselection} - -\constfunc{bool}{GetSelection}{\void} - -Returns true if the user requested that the selection be printed (where 'selection' is -a concept specific to the application). - - -\membersection{wxPrintDialogData::GetToPage}\label{wxprintdialogdatagettopage} - -\constfunc{int}{GetToPage}{\void} - -Returns the {\it to} page number, as entered by the user. - - -\membersection{wxPrintDialogData::IsOk}\label{wxprintdialogdataisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the print data is valid for using in print dialogs. -This can return false on Windows if the current printer is not set, for example. -On all other platforms, it returns true. - - -\membersection{wxPrintDialogData::SetCollate}\label{wxprintdialogdatasetcollate} - -\func{void}{SetCollate}{\param{bool }{flag}} - -Sets the 'Collate' checkbox to true or false. - - -\membersection{wxPrintDialogData::SetFromPage}\label{wxprintdialogdatasetfrompage} - -\func{void}{SetFromPage}{\param{int }{page}} - -Sets the {\it from} page number. - - -\membersection{wxPrintDialogData::SetMaxPage}\label{wxprintdialogdatasetmaxpage} - -\func{void}{SetMaxPage}{\param{int }{page}} - -Sets the {\it maximum} page number. - - -\membersection{wxPrintDialogData::SetMinPage}\label{wxprintdialogdatasetminpage} - -\func{void}{SetMinPage}{\param{int }{page}} - -Sets the {\it minimum} page number. - - -\membersection{wxPrintDialogData::SetNoCopies}\label{wxprintdialogdatasetnocopies} - -\func{void}{SetNoCopies}{\param{int }{n}} - -Sets the default number of copies the user has requested to be printed out. - - -\membersection{wxPrintDialogData::SetPrintData}\label{wxprintdialogdatasetprintdata} - -\func{void}{SetPrintData}{\param{const wxPrintData\& }{printData}} - -Sets the internal wxPrintData. - - -\membersection{wxPrintDialogData::SetPrintToFile}\label{wxprintdialogdatasetprinttofile} - -\func{void}{SetPrintToFile}{\param{bool }{flag}} - -Sets the 'Print to file' checkbox to true or false. - - -\membersection{wxPrintDialogData::SetSelection}\label{wxprintdialogdatasetselection} - -\func{void}{SetSelection}{\param{bool}{ flag}} - -Selects the 'Selection' radio button. The effect of printing the selection depends on how the application -implements this command, if at all. - - -\membersection{wxPrintDialogData::SetSetupDialog}\label{wxprintdialogdatasetsetupdialog} - -\func{void}{SetSetupDialog}{\param{bool }{flag}} - -Determines whether the dialog to be shown will be the Print dialog -(pass false) or Print Setup dialog (pass true). - -This function has been deprecated since version 2.5.4. - -\membersection{wxPrintDialogData::SetToPage}\label{wxprintdialogdatasettopage} - -\func{void}{SetToPage}{\param{int }{page}} - -Sets the {\it to} page number. - - -\membersection{wxPrintDialogData::operator $=$}\label{wxprintdialogdataassign} - -\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}} - -Assigns print data to this object. - -\func{void}{operator $=$}{\param{const wxPrintDialogData\&}{ data}} - -Assigns another print dialog data object to this object. - -\section{\class{wxPrinter}}\label{wxprinter} - -This class represents the Windows or PostScript printer, and is the vehicle through -which printing may be launched by an application. Printing can also -be achieved through using of lower functions and classes, but -this and associated classes provide a more convenient and general -method of printing. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPrintout}{wxprintout}, -\helpref{wxPrintPreview}{wxprintpreview}. - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrinter::wxPrinter}\label{wxprinterctor} - -\func{}{wxPrinter}{\param{wxPrintDialogData* }{data = NULL}} - -Constructor. Pass an optional pointer to a block of print -dialog data, which will be copied to the printer object's local data. - -\wxheading{See also} - -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPrintData}{wxprintdata} - - - -\membersection{wxPrinter::CreateAbortWindow}\label{wxprintercreateabortwindow} - -\func{void}{CreateAbortWindow}{\param{wxWindow* }{parent}, \param{wxPrintout* }{printout}} - -Creates the default printing abort window, with a cancel button. - - -\membersection{wxPrinter::GetAbort}\label{wxprintergetabort} - -\func{bool}{GetAbort}{\void} - -Returns true if the user has aborted the print job. - - -\membersection{wxPrinter::GetLastError}\label{wxprintergetlasterror} - -\func{static wxPrinterError}{GetLastError}{\void} - -Return last error. Valid after calling \helpref{Print}{wxprinterprint}, -\helpref{PrintDialog}{wxprinterprintdialog} or -\helpref{wxPrintPreview::Print}{wxprintpreviewprint}. These functions -set last error to {\bf wxPRINTER\_NO\_ERROR} if no error happened. - -Returned value is one of the following: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxPRINTER\_NO\_ERROR}}{No error happened.} -\twocolitem{{\bf wxPRINTER\_CANCELLED}}{The user cancelled printing.} -\twocolitem{{\bf wxPRINTER\_ERROR}}{There was an error during printing.} -\end{twocollist} - - - -\membersection{wxPrinter::GetPrintDialogData}\label{wxprintergetprintdialogdata} - -\func{wxPrintDialogData\&}{GetPrintDialogData}{\void} - -Returns the \helpref{print data}{wxprintdata} associated with the printer object. - - -\membersection{wxPrinter::Print}\label{wxprinterprint} - -\func{bool}{Print}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{bool }{prompt=true}} - -Starts the printing process. Provide a parent window, a user-defined wxPrintout object which controls -the printing of a document, and whether the print dialog should be invoked first. - -Print could return false if there was a problem initializing the printer device context -(current printer not set, for example) or the user cancelled printing. Call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - - -\membersection{wxPrinter::PrintDialog}\label{wxprinterprintdialog} - -\func{wxDC*}{PrintDialog}{\param{wxWindow *}{parent}} - -Invokes the print dialog. If successful (the user did not press Cancel -and no error occurred), a suitable device context will be returned -(otherwise NULL is returned -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error). - -The application must delete this device context to avoid a memory leak. - - -\membersection{wxPrinter::ReportError}\label{wxprinterreporterror} - -\func{void}{ReportError}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{const wxString\& }{message}} - -Default error-reporting function. - - -\membersection{wxPrinter::Setup}\label{wxprintersetup} - -\func{bool}{Setup}{\param{wxWindow *}{parent}} - -Invokes the print setup dialog. Note that the setup dialog is obsolete from -Windows 95, though retained for backward compatibility. - -\section{\class{wxPrinterDC}}\label{wxprinterdc} - -A printer device context is specific to MSW and Mac, and allows access to any -printer with a Windows or Macintosh driver. See \helpref{wxDC}{wxdc} for further -information on device contexts, and \helpref{wxDC::GetSize}{wxdcgetsize} for -advice on achieving the correct scaling for the page. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxdc} - -\wxheading{Include files} - -<wx/dcprint.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxDC}{wxdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrinterDC::wxPrinterDC}\label{wxprinterdcctor} - -\func{}{wxPrinterDC}{\param{const wxPrintData\& }{printData}} - -Constructor. Pass a \helpref{wxPrintData}{wxprintdata} object with information -necessary for setting up a suitable printer device context. This -is the recommended way to construct a wxPrinterDC. Make sure you -specify a reference to a \helpref{wxPrintData}{wxprintdata} object, -not a pointer - you may not even get a warning if you pass a pointer -instead. - -\func{}{wxPrinterDC}{\param{const wxString\& }{driver}, \param{const wxString\& }{device}, \param{const wxString\& }{output}, - \param{const bool }{interactive = true}, \param{int }{orientation = wxPORTRAIT}} - -Constructor. With empty strings for the first three arguments, the default printer dialog is -displayed. {\it device} indicates the type of printer and {\it output} -is an optional file for printing to. The {\it driver} parameter is -currently unused. Use the {\it Ok} member to test whether the -constructor was successful in creating a usable device context. - -This constructor is deprecated and retained only for backward compatibility. - -\membersection{wxPrinterDC::GetPaperRect}\label{wxprinterdcgetpaperrect} - -\func{wxRect}{wxPrinterDC::GetPaperRect}{} - -Return the rectangle in device coordinates that corresponds to the full paper -area, including the nonprinting regions of the paper. The point (0,0) in device -coordinates is the top left corner of the page rectangle, which is the printable -area on MSW and Mac. The coordinates of the top left corner of the paper -rectangle will therefore have small negative values, while the bottom right -coordinates will be somewhat larger than the values returned by -\helpref{wxDC::GetSize}{wxdcgetsize}. - - -\section{\class{wxPrintout}}\label{wxprintout} - -This class encapsulates the functionality of printing out an application -document. A new class must be derived and members overridden to respond to calls -such as OnPrintPage and HasPage and to render the print image onto an associated -\helpref{wxDC}{wxdc}. Instances of this class are passed to wxPrinter::Print or -to a wxPrintPreview object to initiate printing or previewing. - -Your derived wxPrintout is responsible for drawing both the preview image and -the printed page. If your windows' drawing routines accept an arbitrary DC as an -argument, you can re-use those routines within your wxPrintout subclass to draw -the printout image. You may also add additional drawing elements within your -wxPrintout subclass, like headers, footers, and/or page numbers. However, the -image on the printed page will often differ from the image drawn on the screen, -as will the print preview image -- not just in the presence of headers and -footers, but typically in scale. A high-resolution printer presents a much -larger drawing surface (i.e., a higher-resolution DC); a zoomed-out preview -image presents a much smaller drawing surface (lower-resolution DC). By using -the routines FitThisSizeToXXX() and/or MapScreenSizeToXXX() within your -wxPrintout subclass to set the user scale and origin of the associated DC, you -can easily use a single drawing routine to draw on your application's windows, -to create the print preview image, and to create the printed paper image, and -achieve a common appearance to the preview image and the printed page. - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\helpref{Printing framework overview}{printingoverview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog}, -\helpref{wxPrinter}{wxprinter}, -\helpref{wxPrintPreview}{wxprintpreview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrintout::wxPrintout}\label{wxprintoutctor} - -\func{}{wxPrintout}{\param{const wxString\& }{title = "Printout"}} - -Constructor. Pass an optional title argument - the current filename would be a good idea. This will appear in the printing list -(at least in MSW) - - -\membersection{wxPrintout::\destruct{wxPrintout}}\label{wxprintoutdtor} - -\func{}{\destruct{wxPrintout}}{\void} - -Destructor. - - -\membersection{wxPrintout::GetDC}\label{wxprintoutgetdc} - -\func{wxDC *}{GetDC}{\void} - -Returns the device context associated with the printout (given to the printout at start of -printing or previewing). This will be a wxPrinterDC if printing under Windows or Mac, -a wxPostScriptDC if printing on other platforms, and a wxMemoryDC if previewing. - - -\membersection{wxPrintout::GetPageInfo}\label{wxprintoutgetpageinfo} - -\func{void}{GetPageInfo}{\param{int *}{minPage}, \param{int *}{maxPage}, \param{int *}{pageFrom}, \param{int *}{pageTo}} - -Called by the framework to obtain information from the application about minimum -and maximum page values that the user can select, and the required page range to -be printed. By default this returns 1, 32000 for the page minimum and maximum -values, and 1, 1 for the required page range. - -If {\it minPage} is zero, the page number controls in the print dialog will be disabled. - -\pythonnote{When this method is implemented in a derived Python class, -it should be designed to take no parameters (other than the self -reference) and to return a tuple of four integers. -} - -\perlnote{When this method is overridden in a derived class, -it must not take any parameters, and returns a 4-element list. -} - - -\membersection{wxPrintout::GetPageSizeMM}\label{wxprintoutgetpagesizemm} - -\func{void}{GetPageSizeMM}{\param{int *}{w}, \param{int *}{h}} - -Returns the size of the printer page in millimetres. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\perlnote{In wxPerl this method takes no arguments and returns a -2-element list {\tt ( w, h )}} - - -\membersection{wxPrintout::GetPageSizePixels}\label{wxprintoutgetpagesizepixels} - -\func{void}{GetPageSizePixels}{\param{int *}{w}, \param{int *}{h}} - -Returns the size of the printer page in pixels, called the \em{page rectangle}. -The page rectangle has a top left corner at (0,0) and a bottom right corner at -(w,h). These values may not be the same as the values returned from -\helpref{wxDC::GetSize}{wxdcgetsize}; if the printout is being used for -previewing, a memory device context is used, which uses a bitmap size reflecting -the current preview zoom. The application must take this discrepancy into -account if previewing is to be supported. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\perlnote{In wxPerl this method takes no arguments and returns a -2-element list {\tt ( w, h )}} - - -\membersection{wxPrintout::GetPaperRectPixels}\label{wxprintoutgetpaperrectpixels} - -\func{wxRect}{GetPaperRectPixels}{} - -Returns the rectangle that corresponds to the entire paper in pixels, called the -\em{paper rectangle}. This distinction between paper rectangle and page -rectangle reflects the fact that most printers cannot print all the way to the -edge of the paper. The page rectangle is a rectangle whose top left corner is at -(0,0) and whose width and height are given by -\helpref{wxDC::GetPageSizePixels}{wxprintoutgetpagesizepixels}. On MSW and Mac, -the page rectangle gives the printable area of the paper, while the paper -rectangle represents the entire paper, including non-printable borders. Thus, -the rectangle returned by GetPaperRectPixels will have a top left corner whose -coordinates are small negative numbers and the bottom right corner will have -values somewhat larger than the width and height given by -\helpref{wxDC::GetPageSizePixels}{wxprintoutgetpagesizepixels}. On other -platforms and for PostScript printing, the paper is treated as if its entire -area were printable, so this function will return the same rectangle as the page -rectangle. - - -\membersection{wxPrintout::GetPPIPrinter}\label{wxprintoutgetppiprinter} - -\func{void}{GetPPIPrinter}{\param{int *}{w}, \param{int *}{h}} - -Returns the number of pixels per logical inch of the printer device context. -Dividing the printer PPI by the screen PPI can give a suitable scaling factor -for drawing text onto the printer. Remember to multiply this by a scaling factor -to take the preview DC size into account. Or you can just use the -FitThisSizeToXXX() and MapScreenSizeToXXX routines below, which do most of the -scaling calculations for you. - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\perlnote{In wxPerl this method takes no arguments and returns a -2-element list {\tt ( w, h )}} - - -\membersection{wxPrintout::GetPPIScreen}\label{wxprintoutgetppiscreen} - -\func{void}{GetPPIScreen}{\param{int *}{w}, \param{int *}{h}} - -Returns the number of pixels per logical inch of the screen device context. -Dividing the printer PPI by the screen PPI can give a suitable scaling factor -for drawing text onto the printer. If you are doing your own scaling, remember -to multiply this by a scaling factor to take the preview DC size into account. - - -\membersection{wxPrintout::GetTitle}\label{wxprintoutgettitle} - -\func{wxString}{GetTitle}{\void} - -Returns the title of the printout - -\pythonnote{This method returns the output-only parameters as a tuple.} - -\perlnote{In wxPerl this method takes no arguments and returns a -2-element list {\tt ( w, h )}} - - -\membersection{wxPrintout::HasPage}\label{wxprintouthaspage} - -\func{bool}{HasPage}{\param{int}{ pageNum}} - -Should be overridden to return true if the document has this page, or false -if not. Returning false signifies the end of the document. By default, -HasPage behaves as if the document has only one page. - - -\membersection{wxPrintout::IsPreview}\label{wxprintoutispreview} - -\func{bool}{IsPreview}{\void} - -Returns true if the printout is currently being used for previewing. - - -\membersection{wxPrintout::FitThisSizeToPaper}\label{wxprintoutfitthissizetopaper} - -\func{void}{FitThisSizeToPaper}{\param{const wxSize\& }{imageSize}} - -Set the user scale and device origin of the wxDC associated with this wxPrintout -so that the given image size fits entirely within the paper and the origin is at -the top left corner of the paper. Note that with most printers, the region -around the edges of the paper are not printable so that the edges of the image -could be cut off. Use this if you're managing your own page margins. - -\membersection{wxPrintout::FitThisSizeToPage}\label{wxprintoutfitthissizetopage} - - -\func{void}{FitThisSizeToPage}{\param{const wxSize\& }{imageSize}} - -Set the user scale and device origin of the wxDC associated with this wxPrintout -so that the given image size fits entirely within the page rectangle and the -origin is at the top left corner of the page rectangle. On MSW and Mac, the page -rectangle is the printable area of the page. On other platforms and PostScript -printing, the page rectangle is the entire paper. Use this if you want your -printed image as large as possible, but with the caveat that on some platforms, -portions of the image might be cut off at the edges. - - -\membersection{wxPrintout::FitThisSizeToPageMargins}\label{wxprintoutfitthissizetopagemargins} - -\func{void}{FitThisSizeToPageMargins}{\param{const wxSize\& }{imageSize}, \param{const wxPageSetupDialogData\& }{pageSetupData}} - -Set the user scale and device origin of the wxDC associated with this wxPrintout -so that the given image size fits entirely within the page margins set in the -given wxPageSetupDialogData object. This function provides the greatest -consistency across all platforms because it does not depend on having access to -the printable area of the paper. Note that on Mac, the native wxPageSetupDialog -does not let you set the page margins; you'll have to provide your own mechanism, -or you can use the Mac-only class wxMacPageMarginsDialog. - - -\membersection{wxPrintout::MapScreenSizeToPaper}\label{wxprintoutmapscreensizetopaper} - -\func{void}{MapScreenSizeToPaper}{} - -Set the user scale and device origin of the wxDC associated with this wxPrintout -so that the printed page matches the screen size as closely as possible -and the logical origin is in the top left corner of the paper rectangle. -That is, -a 100-pixel object on screen should appear at the same size on the printed page. (It -will, of course, be larger or smaller in the preview image, depending on the zoom -factor.) Use this if you want WYSIWYG behavior, e.g., in a text editor. - - -\membersection{wxPrintout::MapScreenSizeToPage}\label{wxprintoutmapscreensizetopage} - -\func{void}{MapScreenSizeToPage}{} - -This sets the user scale of the wxDC assocated with this wxPrintout to the same -scale as \helpref{MapScreenSizeToPaper}{wxprintoutmapscreensizetopaper} but sets -the logical origin to the top left corner of the page rectangle. - - -\membersection{wxPrintout::MapScreenSizeToPageMargins}\label{wxprintoutmapscreensizetopagemargins} - -\func{void}{MapScreenSizeToPageMargins}{\param{const wxPageSetupDialogData\& }{pageSetupData}} - -This sets the user scale of the wxDC assocated with this wxPrintout to the same -scale as -\helpref{MapScreenSizeToPageMargins}{wxprintoutmapscreensizetopagemargins} but -sets the logical origin to the top left corner of the page margins specified by -the given wxPageSetupDialogData object. - - -\membersection{wxPrintout::MapScreenSizeToDevice}\label{wxprintoutmapscreensizetodevice} - -\func{void}{MapScreenSizeToDevice}{} - -Set the user scale and device origin of the wxDC associated with this wxPrintout -so that one screen pixel maps to one device pixel on the DC. That is, the user -scale is set to (1,1) and the device origin is set to (0,0). Use this if you -want to do your own scaling prior to calling wxDC drawing calls, for example, if -your underlying model is floating-point and you want to achieve maximum drawing -precision on high-resolution printers. (Note that while the underlying drawing -model of Mac OS X is floating-point, wxWidgets's drawing model scales from integer -coordinates.) You can use the GetLogicalXXXRect() routines below to obtain the -paper rectangle, page rectangle, or page margins rectangle to perform your own scaling. - - -\membersection{wxPrintout::GetLogicalPaperRect}\label{wxprintoutgetlogicalpaperrect} - -\func{wxRect}{GetLogicalPaperRect}{} - -Return the rectangle corresponding to the paper in the associated wxDC's -logical coordinates for the current user scale and device origin. - - -\membersection{wxPrintout::GetLogicalPageRect}\label{wxprintoutgetlogicalpagerect} - -\func{wxRect}{GetLogicalPageRect}{} - -Return the rectangle corresponding to the page in the associated wxDC's -logical coordinates for the current user scale and device origin. -On MSW and Mac, this will be the printable area of the paper. On other platforms -and PostScript printing, this will be the full paper rectangle. - - -\membersection{wxPrintout::GetLogicalPageMarginsRect}\label{wxprintoutgetlogicalpagemarginsrect} - -\func{wxRect}{GetLogicalPageMarginsRect}{\param{const wxPageSetupDialogData\& }{pageSetupData}} - -Return the rectangle corresponding to the page margins specified by the given -wxPageSetupDialogData object in the associated wxDC's logical coordinates for the -current user scale and device origin. The page margins are specified -with respect to the edges of the paper on all platforms. - - -\membersection{wxPrintout::SetLogicalOrigin}\label{wxprintoutsetlogicalorigin} - -\func{void}{SetLogicalOrigin}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Set the device origin of the associated wxDC so that the current logical point -becomes the new logical origin. - - -\membersection{wxPrintout::OffsetLogicalOrigin}\label{wxprintoutoffsetlogicalorigin} - -\func{void}{OffsetLogicalOrigin}{\param{wxCoord }{xoff}, \param{wxCoord }{yoff}} - -Shift the device origin by an amount specified in logical coordinates. - - -\membersection{wxPrintout::OnBeginDocument}\label{wxprintoutonbegindocument} - -\func{bool}{OnBeginDocument}{\param{int}{ startPage}, \param{int}{ endPage}} - -Called by the framework at the start of document printing. Return false from -this function cancels the print job. OnBeginDocument is called once for every -copy printed. - -The base wxPrintout::OnBeginDocument {\it must} be called (and the return value -checked) from within the overridden function, since it calls wxDC::StartDoc. - -\pythonnote{If this method is overridden in a Python class then the -base class version can be called by using the method -{\tt base\_OnBeginDocument(startPage, endPage)}. } - - -\membersection{wxPrintout::OnEndDocument}\label{wxprintoutonenddocument} - -\func{void}{OnEndDocument}{\void} - -Called by the framework at the end of document printing. OnEndDocument -is called once for every copy printed. - -The base wxPrintout::OnEndDocument {\it must} be called -from within the overridden function, since it calls wxDC::EndDoc. - - -\membersection{wxPrintout::OnBeginPrinting}\label{wxprintoutonbeginprinting} - -\func{void}{OnBeginPrinting}{\void} - -Called by the framework at the start of printing. OnBeginPrinting is called once for every -print job (regardless of how many copies are being printed). - - -\membersection{wxPrintout::OnEndPrinting}\label{wxprintoutonendprinting} - -\func{void}{OnEndPrinting}{\void} - -Called by the framework at the end of printing. OnEndPrinting -is called once for every print job (regardless of how many copies are being printed). - - -\membersection{wxPrintout::OnPreparePrinting}\label{wxprintoutonprepareprinting} - -\func{void}{OnPreparePrinting}{\void} - -Called once by the framework before any other demands are made of the -wxPrintout object. This gives the object an opportunity to calculate the -number of pages in the document, for example. - - -\membersection{wxPrintout::OnPrintPage}\label{wxprintoutonprintpage} - -\func{bool}{OnPrintPage}{\param{int}{ pageNum}} - -Called by the framework when a page should be printed. Returning false cancels -the print job. The application can use wxPrintout::GetDC to obtain a device -context to draw on. - -\section{\class{wxPrintPreview}}\label{wxprintpreview} - -Objects of this class manage the print preview process. The object is passed -a wxPrintout object, and the wxPrintPreview object itself is passed to -a wxPreviewFrame object. Previewing is started by initializing and showing -the preview frame. Unlike wxPrinter::Print, flow of control returns to the application -immediately after the frame is shown. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/print.h> - -\wxheading{See also} - -\overview{Printing framework overview}{printingoverview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPrintout}{wxprintout}, -\helpref{wxPrinter}{wxprinter}, -\helpref{wxPreviewCanvas}{wxpreviewcanvas}, -\helpref{wxPreviewControlBar}{wxpreviewcontrolbar}, -\helpref{wxPreviewFrame}{wxpreviewframe}. - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxPrintPreview::wxPrintPreview}\label{wxprintpreviewctor} - -\func{}{wxPrintPreview}{\param{wxPrintout* }{printout}, \param{wxPrintout* }{printoutForPrinting}, -\param{wxPrintData* }{data=NULL}} - -Constructor. Pass a printout object, an optional printout object to be -used for actual printing, and the address of an optional -block of printer data, which will be copied to the print preview object's -print data. - -If {\it printoutForPrinting} is non-NULL, a {\bf Print...} button will be placed on the -preview frame so that the user can print directly from the preview interface. - -Do not explicitly delete the printout objects once this destructor has been -called, since they will be deleted in the wxPrintPreview constructor. -The same does not apply to the {\it data} argument. - -Test the Ok member to check whether the wxPrintPreview object was created correctly. -Ok could return false if there was a problem initializing the printer device context -(current printer not set, for example). - - -\membersection{wxPrintPreview::\destruct{wxPrintPreview}}\label{wxprintpreviewdtor} - -\func{}{\destruct{wxPrinter}}{\void} - -Destructor. Deletes both print preview objects, so do not destroy these objects -in your application. - - -\membersection{wxPrintPreview::GetCanvas}\label{wxprintpreviewgetcanvas} - -\func{wxPreviewCanvas* }{GetCanvas}{\void} - -Gets the preview window used for displaying the print preview image. - - -\membersection{wxPrintPreview::GetCurrentPage}\label{wxprintpreviewgetcurrentpage} - -\func{int}{GetCurrentPage}{\void} - -Gets the page currently being previewed. - - -\membersection{wxPrintPreview::GetFrame}\label{wxprintpreviewgetframe} - -\func{wxFrame *}{GetFrame}{\void} - -Gets the frame used for displaying the print preview canvas -and control bar. - - -\membersection{wxPrintPreview::GetMaxPage}\label{wxprintpreviewgetmaxpage} - -\func{int}{GetMaxPage}{\void} - -Returns the maximum page number. - - -\membersection{wxPrintPreview::GetMinPage}\label{wxprintpreviewgetminpage} - -\func{int}{GetMinPage}{\void} - -Returns the minimum page number. - - -\membersection{wxPrintPreview::GetPrintout}\label{wxprintpreviewgetprintout} - -\func{wxPrintout *}{GetPrintout}{\void} - -Gets the preview printout object associated with the wxPrintPreview object. - - -\membersection{wxPrintPreview::GetPrintoutForPrinting}\label{wxprintpreviewgetprintoutforprinting} - -\func{wxPrintout *}{GetPrintoutForPrinting}{\void} - -Gets the printout object to be used for printing from within the preview interface, -or NULL if none exists. - - -\membersection{wxPrintPreview::IsOk}\label{wxprintpreviewisok} - -\func{bool}{Ok}{\void} - -Returns true if the wxPrintPreview is valid, false otherwise. It could return false if there was a -problem initializing the printer device context (current printer not set, for example). - - -\membersection{wxPrintPreview::PaintPage}\label{wxprintpreviewpaintpage} - -\func{bool}{PaintPage}{\param{wxPreviewCanvas *}{canvas}, \param{wxDC& }{dc}} - -This refreshes the preview window with the preview image. -It must be called from the preview window's OnPaint member. - -The implementation simply blits the preview bitmap onto -the canvas, creating a new preview bitmap if none exists. - - -\membersection{wxPrintPreview::Print}\label{wxprintpreviewprint} - -\func{bool}{Print}{\param{bool }{prompt}} - -Invokes the print process using the second wxPrintout object -supplied in the wxPrintPreview constructor. -Will normally be called by the {\bf Print...} panel item on the -preview frame's control bar. - -Returns false in case of error -- call -\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed -information about the kind of the error. - - -\membersection{wxPrintPreview::RenderPage}\label{wxprintpreviewrenderpage} - -\func{bool}{RenderPage}{\param{int }{pageNum}} - -Renders a page into a wxMemoryDC. Used internally by wxPrintPreview. - - -\membersection{wxPrintPreview::SetCanvas}\label{wxprintpreviewsetcanvas} - -\func{void}{SetCanvas}{\param{wxPreviewCanvas* }{window}} - -Sets the window to be used for displaying the print preview image. - - -\membersection{wxPrintPreview::SetCurrentPage}\label{wxprintpreviewsetcurrentpage} - -\func{void}{SetCurrentPage}{\param{int}{ pageNum}} - -Sets the current page to be previewed. - - -\membersection{wxPrintPreview::SetFrame}\label{wxprintpreviewsetframe} - -\func{void}{SetFrame}{\param{wxFrame *}{frame}} - -Sets the frame to be used for displaying the print preview canvas -and control bar. - - -\membersection{wxPrintPreview::SetPrintout}\label{wxprintpreviewsetprintout} - -\func{void}{SetPrintout}{\param{wxPrintout *}{printout}} - -Associates a printout object with the wxPrintPreview object. - - -\membersection{wxPrintPreview::SetZoom}\label{wxprintpreviewsetzoom} - -\func{void}{SetZoom}{\param{int}{ percent}} - -Sets the percentage preview zoom, and refreshes the preview canvas -accordingly. - diff --git a/docs/latex/wx/process.tex b/docs/latex/wx/process.tex deleted file mode 100644 index 771d57a141..0000000000 --- a/docs/latex/wx/process.tex +++ /dev/null @@ -1,282 +0,0 @@ -\section{\class{wxProcess}}\label{wxprocess} - -The objects of this class are used in conjunction with the -\helpref{wxExecute}{wxexecute} function. When a wxProcess object is passed to -wxExecute(), its \helpref{OnTerminate()}{wxprocessonterminate} virtual method -is called when the process terminates. This allows the program to be -(asynchronously) notified about the process termination and also retrieve its -exit status which is unavailable from wxExecute() in the case of -asynchronous execution. - -Please note that if the process termination notification is processed by the -parent, it is responsible for deleting the wxProcess object which sent it. -However, if it is not processed, the object will delete itself and so the -library users should only delete those objects whose notifications have been -processed (and call \helpref{Detach()}{wxprocessdetach} for others). - -wxProcess also supports IO redirection of the child process. For this, you have -to call its \helpref{Redirect}{wxprocessredirect} method before passing it to -\helpref{wxExecute}{wxexecute}. If the child process was launched successfully, -\helpref{GetInputStream}{wxprocessgetinputstream}, -\helpref{GetOutputStream}{wxprocessgetoutputstream} and -\helpref{GetErrorStream}{wxprocessgeterrorstream} can then be used to retrieve -the streams corresponding to the child process standard output, input and -error output respectively. - -\perlnote{In wxPerl this class has an additional {\tt Destroy} method, -for explicit destruction.} - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/process.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxExecute}{wxexecute}\\ -\helpref{exec sample}{sampleexec} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProcess::wxProcess}\label{wxprocessctor} - -\func{}{wxProcess}{\param{wxEvtHandler *}{ parent = NULL}, \param{int}{ id = -1}} - -\func{}{wxProcess}{\param{int }{flags}} - -Constructs a process object. {\it id} is only used in the case you want to -use wxWidgets events. It identifies this object, or another window that will -receive the event. - -If the {\it parent} parameter is different from NULL, it will receive -a wxEVT\_END\_PROCESS notification event (you should insert EVT\_END\_PROCESS -macro in the event table of the parent to handle it) with the given {\it id}. - -The second constructor creates an object without any associated parent (and -hence no id neither) but allows to specify the {\it flags} which can have the -value of {\tt wxPROCESS\_DEFAULT} or {\tt wxPROCESS\_REDIRECT}. Specifying the -former value has no particular effect while using the latter one is equivalent -to calling \helpref{Redirect}{wxprocessredirect}. - -\wxheading{Parameters} - -\docparam{parent}{The event handler parent.} - -\docparam{id}{id of an event.} - -\docparam{flags}{either {\tt wxPROCESS\_DEFAULT} or {\tt wxPROCESS\_REDIRECT}} - -\membersection{wxProcess::\destruct{wxProcess}}\label{wxprocessdtor} - -\func{}{\destruct{wxProcess}}{\void} - -Destroys the wxProcess object. - -\membersection{wxProcess::CloseOutput}\label{wxprocesscloseoutput} - -\func{void}{CloseOutput}{\void} - -Closes the output stream (the one connected to the stdin of the child -process). This function can be used to indicate to the child process that -there is no more data to be read - usually, a filter program will only -terminate when the input stream is closed. - -\membersection{wxProcess::Detach}\label{wxprocessdetach} - -\func{void}{Detach}{\void} - -Normally, a wxProcess object is deleted by its parent when it receives the -notification about the process termination. However, it might happen that the -parent object is destroyed before the external process is terminated (e.g. a -window from which this external process was launched is closed by the user) -and in this case it {\bf should not delete} the wxProcess object, but -{\bf should call Detach()} instead. After the wxProcess object is detached -from its parent, no notification events will be sent to the parent and the -object will delete itself upon reception of the process termination -notification. - -\membersection{wxProcess::GetErrorStream}\label{wxprocessgeterrorstream} - -\constfunc{wxInputStream* }{GetErrorStream}{\void} - -Returns an input stream which corresponds to the standard error output (stderr) -of the child process. - -\membersection{wxProcess::GetInputStream}\label{wxprocessgetinputstream} - -\constfunc{wxInputStream* }{GetInputStream}{\void} - -It returns an input stream corresponding to the standard output stream of the -subprocess. If it is NULL, you have not turned on the redirection. -See \helpref{wxProcess::Redirect}{wxprocessredirect}. - -\membersection{wxProcess::GetOutputStream}\label{wxprocessgetoutputstream} - -\constfunc{wxOutputStream* }{GetOutputStream}{\void} - -It returns an output stream correspoding to the input stream of the subprocess. -If it is NULL, you have not turned on the redirection. -See \helpref{wxProcess::Redirect}{wxprocessredirect}. - -\membersection{wxProcess::IsErrorAvailable}\label{wxprocessiserroravailable} - -\constfunc{bool}{IsErrorAvailable}{\void} - -Returns {\tt true} if there is data to be read on the child process standard -error stream. - -\wxheading{See also} - -\helpref{IsInputAvailable}{wxprocessisinputavailable} - -\membersection{wxProcess::IsInputAvailable}\label{wxprocessisinputavailable} - -\constfunc{bool}{IsInputAvailable}{\void} - -Returns {\tt true} if there is data to be read on the child process standard -output stream. This allows to write simple (and extremely inefficient) -polling-based code waiting for a better mechanism in future wxWidgets versions. - -See the \helpref{exec sample}{sampleexec} for an example of using this -function. - -\wxheading{See also} - -\helpref{IsInputOpened}{wxprocessisinputopened} - -\membersection{wxProcess::IsInputOpened}\label{wxprocessisinputopened} - -\constfunc{bool}{IsInputOpened}{\void} - -Returns {\tt true} if the child process standard output stream is opened. - -\membersection{wxProcess::Kill}\label{wxprocesskill} - -\func{static wxKillError}{Kill}{\param{int}{ pid}, \param{wxSignal}{ signal = wxSIGNONE}, \param{int }{flags = wxKILL\_NOCHILDREN}} - -Send the specified signal to the given process. Possible signal values are: - -\begin{verbatim} -enum wxSignal -{ - wxSIGNONE = 0, // verify if the process exists under Unix - wxSIGHUP, - wxSIGINT, - wxSIGQUIT, - wxSIGILL, - wxSIGTRAP, - wxSIGABRT, - wxSIGEMT, - wxSIGFPE, - wxSIGKILL, // forcefully kill, dangerous! - wxSIGBUS, - wxSIGSEGV, - wxSIGSYS, - wxSIGPIPE, - wxSIGALRM, - wxSIGTERM // terminate the process gently -}; -\end{verbatim} - -{\tt wxSIGNONE}, {\tt wxSIGKILL} and {\tt wxSIGTERM} have the same meaning -under both Unix and Windows but all the other signals are equivalent to -{\tt wxSIGTERM} under Windows. - -The {\it flags} parameter can be wxKILL\_NOCHILDREN (the default), -or wxKILL\_CHILDREN, in which case the child processes of this -process will be killed too. Note that under Unix, for wxKILL\_CHILDREN -to work you should have created the process passing wxEXEC\_MAKE\_GROUP\_LEADER. - -Returns the element of {\tt wxKillError} enum: - -\begin{verbatim} -enum wxKillError -{ - wxKILL_OK, // no error - wxKILL_BAD_SIGNAL, // no such signal - wxKILL_ACCESS_DENIED, // permission denied - wxKILL_NO_PROCESS, // no such process - wxKILL_ERROR // another, unspecified error -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxProcess::Exists}{wxprocessexists},\rtfsp -\helpref{wxKill}{wxkill},\rtfsp -\helpref{Exec sample}{sampleexec} - -\membersection{wxProcess::Exists}\label{wxprocessexists} - -\func{static bool}{Exists}{\param{int}{ pid}} - -Returns {\tt true} if the given process exists in the system. - -\wxheading{See also} - -\helpref{wxProcess::Kill}{wxprocesskill},\rtfsp -\helpref{Exec sample}{sampleexec} - -\membersection{wxProcess::OnTerminate}\label{wxprocessonterminate} - -\func{void}{OnTerminate}{\param{int}{ pid}, \param{int}{ status}} - -It is called when the process with the pid {\it pid} finishes. -It raises a wxWidgets event when it isn't overridden. - -\docparam{pid}{The pid of the process which has just terminated.} - -\docparam{status}{The exit code of the process.} - -\membersection{wxProcess::Open}\label{wxprocessopen} - -\func{static wxProcess *}{Open}{\param{const wxString\& }{cmd}, \param{int }{flags = wxEXEC\_ASYNC}} - -This static method replaces the standard {\tt popen()} function: it launches -the process specified by the {\it cmd} parameter and returns the wxProcess -object which can be used to retrieve the streams connected to the standard -input, output and error output of the child process. - -If the process couldn't be launched, {\tt NULL} is returned. Note that in any -case the returned pointer should {\bf not} be deleted, rather the process -object will be destroyed automatically when the child process terminates. This -does mean that the child process should be told to quit before the main program -exits to avoid memory leaks. - -\wxheading{Parameters} - -\docparam{cmd}{The command to execute, including optional arguments.} -\docparam{flags}{The flags to pass to \helpref{wxExecute}{wxexecute}. - NOTE: wxEXEC\_SYNC should not be used.} - -\wxheading{Return value} - -A pointer to new wxProcess object or {\tt NULL} on error. - -\wxheading{See also} - -\helpref{wxExecute}{wxexecute} - -\membersection{wxProcess::GetPid}\label{wxprocessgetpid} - -\constfunc{long}{GetPid}{\void} - -Returns the process ID of the process launched by \helpref{Open}{wxprocessopen}. - -\membersection{wxProcess::Redirect}\label{wxprocessredirect} - -\func{void}{Redirect}{\void} - -Turns on redirection. wxExecute will try to open a couple of pipes -to catch the subprocess stdio. The caught input stream is returned by -GetOutputStream() as a non-seekable stream. The caught output stream is returned -by GetInputStream() as a non-seekable stream. - diff --git a/docs/latex/wx/procevt.tex b/docs/latex/wx/procevt.tex deleted file mode 100644 index c48cceed56..0000000000 --- a/docs/latex/wx/procevt.tex +++ /dev/null @@ -1,61 +0,0 @@ -\section{\class{wxProcessEvent}}\label{wxprocessevent} - -A process event is sent when a process is terminated. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/process.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Event table macros} - -To process a wxProcessEvent, use these event handler macros to direct input to a member -function that takes a wxProcessEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_END\_PROCESS(id, func)}}{Process a wxEVT\_END\_PROCESS event. -{\it id} is the identifier of the process object (the id passed to the wxProcess constructor) -or a window to receive the event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxProcess}{wxprocess},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProcessEvent::wxProcessEvent}\label{wxprocesseventctor} - -\func{}{wxProcessEvent}{\param{int }{id = 0}, \param{int }{pid = 0}, \param{int }{exitcode = 0}} - -Constructor. Takes a wxProcessObject or window id, a process id and an -exit status. - -%\membersection{wxProcessEvent::m\_pid} -% -%\member{int}{m\_pid} -% -%Contains the process id. -% -\membersection{wxProcessEvent::GetPid}\label{wxprocesseventgetpid} - -\constfunc{int}{GetPid}{\void} - -Returns the process id. - -\membersection{wxProcessEvent::GetExitCode}\label{wxprocesseventgetexitcode} - -\func{int}{GetExitCode}{\void} - -Returns the exist status. - diff --git a/docs/latex/wx/progdlg.tex b/docs/latex/wx/progdlg.tex deleted file mode 100644 index 2798c7be8a..0000000000 --- a/docs/latex/wx/progdlg.tex +++ /dev/null @@ -1,125 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: progdlg.tex -%% Purpose: wxProgressDialog documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: 01.06.03 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxProgressDialog}}\label{wxprogressdialog} - -This class represents a dialog that shows a short message and a -progress bar. Optionally, it can display ABORT and SKIP buttons, -the elapsed, remaining and estimated time for the end of the progress. - - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/progdlg.h> - - -\wxheading{Window styles} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxPD\_APP\_MODAL}}{Make the progress dialog modal. If this flag is -not given, it is only "locally" modal - that is the input to the parent -window is disabled, but not to the other ones.} -\twocolitem{\windowstyle{wxPD\_AUTO\_HIDE}}{Causes the progress dialog to disappear -from screen as soon as the maximum value of the progress meter has been -reached.} -\twocolitem{\windowstyle{wxPD\_SMOOTH}}{Causes smooth progress of the gauge control.} -\twocolitem{\windowstyle{wxPD\_CAN\_ABORT}}{This flag tells the dialog that it should have a -"Cancel" button which the user may press. If this happens, the next call to -\helpref{Update()}{wxprogressdialogupdate} will return false.} -\twocolitem{\windowstyle{wxPD\_CAN\_SKIP}}{This flag tells the dialog that it should have a -"Skip" button which the user may press. If this happens, the next call to -\helpref{Update()}{wxprogressdialogupdate} will return true in its skip parameter.} -\twocolitem{\windowstyle{wxPD\_ELAPSED\_TIME}}{This flag tells the dialog that it should show elapsed time (since creating the dialog).} -\twocolitem{\windowstyle{wxPD\_ESTIMATED\_TIME}}{This flag tells the dialog that it should show estimated time.} -\twocolitem{\windowstyle{wxPD\_REMAINING\_TIME}}{This flag tells the dialog that it should show remaining time.} -\end{twocollist}% - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProgressDialog::wxProgressDialog}\label{wxprogressdialogctor} - -\func{}{wxProgressDialog}{\param{const wxString\& }{title}, \param{const wxString\& }{message},\rtfsp -\param{int }{maximum = 100}, \param{wxWindow * }{parent = NULL},\rtfsp -\param{int }{style = wxPD\_AUTO\_HIDE | wxPD\_APP\_MODAL}} - -Constructor. Creates the dialog, displays it and disables user input -for other windows, or, if wxPD\_APP\_MODAL flag is not given, for its parent -window only. - -\wxheading{Parameters} - -\docparam{title}{Dialog title to show in titlebar.} - -\docparam{message}{Message displayed above the progress bar.} - -\docparam{maximum}{Maximum value for the progress bar.} - -\docparam{parent}{Parent window.} - -\docparam{style}{The dialog style. See \helpref{wxProgressDialog}{wxprogressdialog}.} - -\membersection{wxProgressDialog::\destruct{wxProgressDialog}}\label{wxprogressdialogdtor} - -\func{}{\destruct{wxProgressDialog}}{\void} - -Destructor. Deletes the dialog and enables all top level windows. - -\membersection{wxProgressDialog::Resume}\label{wxprogressdialogresume} - -\func{void}{Resume}{\void} - -Can be used to continue with the dialog, after the user had chosen -ABORT. - -\membersection{wxProgressDialog::Update}\label{wxprogressdialogupdate} - -\func{virtual bool}{Update}{\param{int }{value}, \param{const wxString\& }{newmsg = ""},\rtfsp -\param{bool *}{skip = NULL}} - -Updates the dialog, setting the progress bar to the new value and, if -given changes the message above it. Returns \true unless the Cancel button -has been pressed. - -If \false is returned, the application can either immediately destroy the dialog -or ask the user for the confirmation and if the abort is not confirmed the -dialog may be resumed with \helpref{Resume}{wxprogressdialogresume} function. - -\wxheading{Parameters} - -\docparam{value}{The new value of the progress meter. It should be less than or -equal to the maximum value given to the constructor and the dialog is closed if -it is equal to the maximum.} -\docparam{newmsg}{The new messages for the progress dialog text, if it is -empty (which is the default) the message is not changed.} -\docparam{skip}{If "Skip" button was pressed since last -\helpref{Update}{wxprogressdialogupdate} call, this is set to true.} - - -\membersection{wxProgressDialog::Pulse}\label{wxprogressdialogpdatepulse} - -\func{virtual bool}{Pulse}{\param{const wxString\& }{newmsg = ""},\rtfsp -\param{bool *}{skip = NULL}} - -Just like \helpref{Update}{wxprogressdialogupdate} but makes -the gauge control run in indeterminate mode (see \helpref{wxGauge}{wxgauge} documentation), -sets the remaining and the estimated time labels (if present) to {\tt Unknown} and moves -the progress bar a bit to indicate that some progress was done. - diff --git a/docs/latex/wx/propdlg.tex b/docs/latex/wx/propdlg.tex deleted file mode 100644 index 72a41e449a..0000000000 --- a/docs/latex/wx/propdlg.tex +++ /dev/null @@ -1,164 +0,0 @@ -\section{\class{wxPropertySheetDialog}}\label{wxpropertysheetdialog} - -This class represents a property sheet dialog: a tabbed dialog -for showing settings. It is optimized to show flat tabs -on PocketPC devices, and can be customized to use different -controllers instead of the default notebook style. - -To use this class, call \helpref{wxPropertySheetDialog::Create}{wxpropertysheetdialogcreate} from your own -Create function. Then call \helpref{CreateButtons}{wxpropertysheetdialogcreatebuttons}, and create pages, adding them to the book control. -Finally call \helpref{LayoutDialog}{wxpropertysheetdialoglayoutdialog}. - -For example: - -\begin{verbatim} -bool MyPropertySheetDialog::Create(...) -{ - if (!wxPropertySheetDialog::Create(...)) - return false; - - CreateButtons(wxOK|wxCANCEL|wxHELP); - - // Add page - wxPanel* panel = new wxPanel(GetBookCtrl(), ...); - GetBookCtrl()->AddPage(panel, wxT("General")); - - LayoutDialog(); - return true; -} -\end{verbatim} - -If necessary, override CreateBookCtrl and AddBookCtrl to create and add a different -kind of book control. You would then need to use two-step construction for the dialog. -Or, change the style of book control by calling \helpref{SetSheetStyle}{wxpropertysheetdialogsetsheetstyle} -before calling Create. - -The dialogs sample shows this class being used with notebook and toolbook controllers (for -Windows-style and Mac-style settings dialogs). - -To make pages of the dialog scroll when the display is too small to fit the whole dialog, you can switch -layout adaptation on globally with \helpref{wxDialog::EnableLayoutAdaptation}{wxdialogenablelayoutadaptation} or -per dialog with \helpref{wxDialog::SetLayoutAdaptationMode}{wxdialogsetlayoutadaptationmode}. For more -about layout adaptation, see \helpref{Automatic scrolling dialogs}{autoscrollingdialogs}. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/propdlg.h> -<wx/generic/propdlg.h> -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPropertySheetDialog::wxPropertySheetDialog}\label{wxpropertysheetdialogctor} - -\func{}{wxPropertySheetDialog}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Constructor. - -\membersection{wxPropertySheetDialog::AddBookCtrl}\label{wxpropertysheetdialogaddbookctrl} - -\func{virtual void}{AddBookCtrl}{\param{wxSizer* }{sizer}} - -Override this if you wish to add the book control in a way different from the -standard way (for example, using different spacing). - -\membersection{wxPropertySheetDialog::Create}\label{wxpropertysheetdialogcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxString\& }{title},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxDEFAULT\_DIALOG\_STYLE},\rtfsp -\param{const wxString\& }{name = ``dialogBox"}} - -Call this from your own Create function, before adding buttons and pages. - -\membersection{wxPropertySheetDialog::CreateBookCtrl}\label{wxpropertysheetdialogcreatebookctrl} - -\func{virtual wxBookCtrlBase*}{CreateBookCtrl}{\void} - -Override this if you wish to create a different kind of book control; by default, the value -passed to \helpref{SetSheetStyle}{wxpropertysheetdialogsetsheetstyle} is used to determine the control. -The default behaviour is to create a notebook except on Smartphone, where a choicebook is used. - -\membersection{wxPropertySheetDialog::CreateButtons}\label{wxpropertysheetdialogcreatebuttons} - -\func{void}{CreateButtons}{\param{int }{flags=wxOK|wxCANCEL}} - -Call this to create the buttons for the dialog. This calls \helpref{wxDialog::CreateButtonSizer}{wxdialogcreatebuttonsizer}, and -the flags are the same. On PocketPC, no buttons are created. - -\membersection{wxPropertySheetDialog::GetBookCtrl}\label{wxpropertysheetdialoggetbookctrl} - -\constfunc{wxBookCtrlBase*}{GetBookCtrl}{\void} - -Returns the book control that will contain your settings pages. - -\membersection{wxPropertySheetDialog::GetInnerSizer}\label{wxpropertysheetdialoggetinnersizer} - -\constfunc{wxSizer*}{GetInnerSizer}{\void} - -Returns the inner sizer that contains the book control and button sizer. - -\membersection{wxPropertySheetDialog::GetSheetStyle}\label{wxpropertysheetdialoggetsheetstyle} - -\constfunc{long}{GetSheetStyle}{\void} - -Returns the sheet style. See \helpref{SetSheetStyle}{wxpropertysheetdialogsetsheetstyle} for -permissable values. - -\membersection{wxPropertySheetDialog::LayoutDialog}\label{wxpropertysheetdialoglayoutdialog} - -\func{void}{LayoutDialog}{\param{int}{ centreFlags=wxBOTH}} - -Call this to lay out the dialog. On PocketPC, this does nothing, since the dialog will be shown -full-screen, and the layout will be done when the dialog receives a size event. - -\membersection{wxPropertySheetDialog::SetBookCtrl}\label{wxpropertysheetdialogsetbookctrl} - -\func{void}{SetBookCtrl}{\param{wxBookCtrlBase* }{bookCtrl}} - -Sets the book control used for the dialog. You will normally not need to use this. - -\membersection{wxPropertySheetDialog::SetInnerSizer}\label{wxpropertysheetdialogsetinnersizer} - -\func{void}{SetInnerSizer}{\param{wxSizer*}{ sizer}} - -Sets the inner sizer that contains the book control and button sizer. You will normally not need to use this. - -\membersection{wxPropertySheetDialog::SetSheetStyle}\label{wxpropertysheetdialogsetsheetstyle} - -\func{void}{SetSheetStyle}{\param{long}{ style}} - -You can customize the look and feel of the dialog by setting the sheet style. It is -a bit list of the following values: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxPROPSHEET\_DEFAULT}{Uses the default look and feel for the controller window, -normally a notebook except on Smartphone where a choice control is used.} -\twocolitem{wxPROPSHEET\_NOTEBOOK}{Uses a notebook for the controller window.} -\twocolitem{wxPROPSHEET\_TOOLBOOK}{Uses a toolbook for the controller window.} -\twocolitem{wxPROPSHEET\_CHOICEBOOK}{Uses a choicebook for the controller window.} -\twocolitem{wxPROPSHEET\_LISTBOOK}{Uses a listbook for the controller window.} -\twocolitem{wxPROPSHEET\_TREEBOOK}{Uses a treebook for the controller window.} -\twocolitem{wxPROPSHEET\_SHRINKTOFIT}{Shrinks the dialog window to fit the currently selected page (common behaviour for -property sheets on Mac OS X).} -\end{twocollist} - diff --git a/docs/latex/wx/protocol.tex b/docs/latex/wx/protocol.tex deleted file mode 100644 index e1ba47af07..0000000000 --- a/docs/latex/wx/protocol.tex +++ /dev/null @@ -1,112 +0,0 @@ -\section{\class{wxProtocol}}\label{wxprotocol} - -\wxheading{Derived from} - -\helpref{wxSocketClient}{wxsocketclient} -\helpref{wxSocketBase}{wxsocketbase} -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/protocol/protocol.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxURL}{wxurl} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxProtocol::Reconnect}\label{wxprotocolreconnect} - -\func{bool}{Reconnect}{\void} - -Tries to reestablish a previous opened connection (close and renegotiate connection). - -\wxheading{Return value} - -true, if the connection is established, else false. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetInputStream}\label{wxprotocolgetinput} - -\func{wxInputStream *}{GetInputStream}{\param{const wxString\&}{ path}} - -Creates a new input stream on the specified path. You can use all but seek -functionality of wxStream. Seek isn't available on all streams. For example, -HTTP or FTP streams don't deal with it. Other functions like StreamSize and -Tell aren't available for the moment for this sort of stream. -You will be notified when the EOF is reached by an error. - -\wxheading{Return value} - -Returns the initialized stream. You will have to delete it yourself once you -don't use it anymore. The destructor closes the network connection. - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::Abort}\label{wxprotocolabort} - -\func{bool}{Abort}{\void} - -Abort the current stream. - -\wxheading{Warning} - -It is advised to destroy the input stream instead of aborting the stream this way. - -\wxheading{Return value} - -Returns true, if successful, else false. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetError}\label{wxprotocolgeterror} - -\func{wxProtocolError}{GetError}{\void} - -Returns the last occurred error. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxPROTO\_NOERR}}{No error.} -\twocolitem{{\bf wxPROTO\_NETERR}}{A generic network error occurred.} -\twocolitem{{\bf wxPROTO\_PROTERR}}{An error occurred during negotiation.} -\twocolitem{{\bf wxPROTO\_CONNERR}}{The client failed to connect the server.} -\twocolitem{{\bf wxPROTO\_INVVAL}}{Invalid value.} -\twocolitem{{\bf wxPROTO\_NOHNDLR}}{.} -\twocolitem{{\bf wxPROTO\_NOFILE}}{The remote file doesn't exist.} -\twocolitem{{\bf wxPROTO\_ABRT}}{Last action aborted.} -\twocolitem{{\bf wxPROTO\_RCNCT}}{An error occurred during reconnection.} -\twocolitem{{\bf wxPROTO\_STREAM}}{Someone tried to send a command during a transfer.} -\end{twocollist} - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::GetContentType}\label{wxprotocolgetcontenttype} - -\func{wxString}{GetContentType}{\void} - -Returns the type of the content of the last opened stream. It is a mime-type. - -% ---------------------------------------------------------------------------- -\membersection{wxProtocol::SetUser}\label{wxprotocolsetuser} - -\func{void }{SetUser}{\param{const wxString\&}{ user}} - -Sets the authentication user. It is mainly useful when FTP is used. - -\membersection{wxProtocol::SetPassword}\label{wxprotocolsetpassword} - -\func{void}{SetPassword}{\param{const wxString\&}{ user}} - -Sets the authentication password. It is mainly useful when FTP is used. - diff --git a/docs/latex/wx/psbox.tex b/docs/latex/wx/psbox.tex deleted file mode 100644 index 9ecfc6fab4..0000000000 --- a/docs/latex/wx/psbox.tex +++ /dev/null @@ -1,520 +0,0 @@ -% -% %%%%%%% %%%%% %%%%%% %%%%% % % -% % % % % % % % % % -% % % % % % % % % % -% %%%%%%% %%%%% %%%%%% % % % -% % % % % % % % % -% % % % % % % % % -% % %%%%%% %%%%%% %%%%% % % -% -% By Jean Orloff -% Comments & suggestions by e-mail: ORLOFF@surya11.cern.ch -% No modification of this file allowed if not e-sent to me. -% -% A simple way to measure the size of encapsulated postscript figures -% from inside TeX, and to use it for automatically formatting texts -% with inserted figures. Works both under Plain TeX-based macros -% (Phyzzx, Harvmac, Psizzl, ...) and LaTeX environment. -% Provides exactly the same result on any PostScript printer provided -% the single instruction \psfor... is changed to fit the needs of the -% particular dvi->ps translator used. -% History: -% 1.31: adds \psforDVIALW(?) -% 1.30: adds \splitfile & \joinfiles for multi-file management -% 1.24: fix error handling & add \psonlyboxes -% 1.23: adds \putsp@ce for OzTeX fix -% 1.22: makes \drawingBox \global for use in Phyzzx -% 1.21: accepts %%BoundingBox: (atend) -% 1.20: tries to add \psfordvitps for the TeXPS package. -% 1.10: adds \psforoztex, error handling... -%2345678 1 2345678 2 2345678 3 2345678 4 2345678 5 2345678 6 2345678 7 23456789 -% -\def\temp{1.31} -\let\tempp=\relax -\expandafter\ifx\csname psboxversion\endcsname\relax - \message{version: \temp} -\else - \ifdim\temp cm>\psboxversion cm - \message{version: \temp} - \else - \message{psbox(\psboxversion) is already loaded: I won't load - psbox(\temp)!} - \let\temp=\psboxversion - \let\tempp=\endinput - \fi -\fi -\tempp -\let\psboxversion=\temp -\catcode`\@=11 -% Every macro likes a little privacy... -% -% Some common defs -% -\def\execute#1{#1}% NOT stupid: cs in #1 are then identified BEFORE execution -\def\psm@keother#1{\catcode`#112\relax}% borrowed from latex -\def\executeinspecs#1{% -\execute{\begingroup\let\do\psm@keother\dospecials\catcode`\^^M=9#1\endgroup}} -% -%Trying to tame the variety of \special commands for Postscript: the -% universal internal command \PSspeci@l##1##2 takes ##1 to be the -% filename and ##2 to be the integer scale factor*1000 (as for usual -% TeX \scale commands) -% -\def\psfortextures{% For TeXtures on the Macintosh -%----------------- -\def\PSspeci@l##1##2{% -\special{illustration ##1\space scaled ##2}% -}} -% -\def\psfordvitops{% For the DVItoPS converter on IBM mainframes -%---------------- -\def\PSspeci@l##1##2{% -\special{dvitops: import ##1\space \the\drawingwd \the\drawinght}% -}} -% -\def\psfordvips{% For DVIPS converter on VAX, UNIX and PC's -%-------------- -\def\PSspeci@l##1##2{% -% \special{/@scaleunit 1000 def}% never read dox without trying! -\d@my=0.1bp \d@mx=\drawingwd \divide\d@mx by\d@my% -\special{PSfile=##1\space llx=\psllx\space lly=\pslly\space% -urx=\psurx\space ury=\psury\space rwi=\number\d@mx}% -}} -% -\def\psforoztex{% For the OzTeX shareware on the Macintosh -%-------------- -\def\PSspeci@l##1##2{% -\special{##1 \space - ##2 1000 div dup scale - \putsp@ce{\number-\psllx} \putsp@ce{\number-\pslly} translate -}% -}} -\def\putsp@ce#1{#1 } -% -\def\psfordvitps{% From the UNIX TeXPS package, vers.>3.12 -%--------------- -% Convert a dimension into the number \psn@sp (in scaled points) -\def\psdimt@n@sp##1{\d@mx=##1\relax\edef\psn@sp{\number\d@mx}} -\def\PSspeci@l##1##2{% -% psfig.psr contains the def of "startTexFig": if you can locate it -% and include the correct pathname, it should work -\special{dvitps: Include0 "psfig.psr"}% contains def of "startTexFig" -\psdimt@n@sp{\drawingwd} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\drawinght} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psllx bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\pslly bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psurx bp} -\special{dvitps: Literal "\psn@sp\space"} -\psdimt@n@sp{\psury bp} -\special{dvitps: Literal "\psn@sp\space startTexFig\space"} -\special{dvitps: Include1 "##1"} -\special{dvitps: Literal "endTexFig\space"} -}} -\def\psforDVIALW{% Try for dvialw, a UNIX public domain -%--------------- -\def\PSspeci@l##1##2{ -\special{language "PS" -literal "##2 1000 div dup scale" -include "##1"}}} -\def\psonlyboxes{% Draft-like behaviour if none of the others works -%--------------- -\def\PSspeci@l##1##2{% -\at(0cm;0cm){\boxit{\vbox to\drawinght - {\vss - \hbox to\drawingwd{\at(0cm;0cm){\hbox{(##1)}}\hss} - }}} -}% -} -% -\def\psloc@lerr#1{% -\let\savedPSspeci@l=\PSspeci@l% -\def\PSspeci@l##1##2{% -\at(0cm;0cm){\boxit{\vbox to\drawinght - {\vss - \hbox to\drawingwd{\at(0cm;0cm){\hbox{(##1) #1}}\hss} - }}} -\let\PSspeci@l=\savedPSspeci@l% restore normal output for other figs! -}% -} -% -%\def\psfor... add your own! -% -% \ReadPSize{PSfilename} reads the dimensions of a PostScript drawing -% and stores it in \drawinght(wd) -\newread\pst@mpin -\newdimen\drawinght\newdimen\drawingwd -\newdimen\psxoffset\newdimen\psyoffset -\newbox\drawingBox -\newif\ifNotB@undingBox -\newhelp\PShelp{Proceed: you will have a 5cm square blank box instead of -your graphics (Jean Orloff).} -\def\@mpty{} -\def\s@tsize#1 #2 #3 #4\@ndsize{ - \def\psllx{#1}\def\pslly{#2}% - \def\psurx{#3}\def\psury{#4}% needed by a craziness of dvips! - \ifx\psurx\@mpty\NotB@undingBoxtrue% this is not a valid one! - \else - \drawinght=#4bp\advance\drawinght by-#2bp - \drawingwd=#3bp\advance\drawingwd by-#1bp -% !Units related by crazy factors as bp/pt=72.27/72 should be BANNED! - \fi - } -\def\sc@nline#1:#2\@ndline{\edef\p@rameter{#1}\edef\v@lue{#2}} -\def\g@bblefirstblank#1#2:{\ifx#1 \else#1\fi#2} -\def\psm@keother#1{\catcode`#112\relax}% borrowed from latex -\def\execute#1{#1}% Seems stupid, but cs are identified BEFORE execution -{\catcode`\%=12 -\xdef\B@undingBox{%%BoundingBox} -} %% is not a true comment in PostScript, even if % is! -\def\ReadPSize#1{ - \edef\PSfilename{#1} - \openin\pst@mpin=#1\relax - \ifeof\pst@mpin \errhelp=\PShelp - \errmessage{I haven't found your postscript file (\PSfilename)} - \psloc@lerr{was not found} - \s@tsize 0 0 142 142\@ndsize - \closein\pst@mpin - \else - \immediate\write\psbj@inaux{#1,} - \loop - \executeinspecs{\catcode`\ =10\global\read\pst@mpin to\n@xtline} - \ifeof\pst@mpin - \errhelp=\PShelp - \errmessage{(\PSfilename) is not an Encapsulated PostScript File: - I could not find any \B@undingBox: line.} - \edef\v@lue{0 0 142 142:} - \psloc@lerr{is not an EPSFile} - \NotB@undingBoxfalse - \else - \expandafter\sc@nline\n@xtline:\@ndline - \ifx\p@rameter\B@undingBox\NotB@undingBoxfalse - \edef\t@mp{% - \expandafter\g@bblefirstblank\v@lue\space\space\space} - \expandafter\s@tsize\t@mp\@ndsize - \else\NotB@undingBoxtrue - \fi - \fi - \ifNotB@undingBox\repeat - \closein\pst@mpin - \fi -\message{#1} -} -% -% \psboxto(xdim;ydim){psfilename}: you specify the dimensions and -% TeX uniformly scales to fit the largest one. If xdim=0pt, the -% scale is fully determined by ydim and vice versa. -% Notice: psboxes are a real vboxes; couldn't take hbox otherwise all -% indentation and all cr's would be interpreted as spaces (hugh!). -% -\newcount\xscale \newcount\yscale \newdimen\pscm\pscm=1cm -\newdimen\d@mx \newdimen\d@my -\let\ps@nnotation=\relax -\def\psboxto(#1;#2)#3{\vbox{ - \ReadPSize{#3} - \divide\drawingwd by 1000 - \divide\drawinght by 1000 - \d@mx=#1 - \ifdim\d@mx=0pt\xscale=1000 - \else \xscale=\d@mx \divide \xscale by \drawingwd\fi - \d@my=#2 - \ifdim\d@my=0pt\yscale=1000 - \else \yscale=\d@my \divide \yscale by \drawinght\fi - \ifnum\yscale=1000 - \else\ifnum\xscale=1000\xscale=\yscale - \else\ifnum\yscale<\xscale\xscale=\yscale\fi - \fi - \fi - \divide \psxoffset by 1000\multiply\psxoffset by \xscale - \divide \psyoffset by 1000\multiply\psyoffset by \xscale - \global\divide\pscm by 1000 - \global\multiply\pscm by\xscale - \multiply\drawingwd by\xscale \multiply\drawinght by\xscale - \ifdim\d@mx=0pt\d@mx=\drawingwd\fi - \ifdim\d@my=0pt\d@my=\drawinght\fi - \message{scaled \the\xscale} - \hbox to\d@mx{\hss\vbox to\d@my{\vss - \global\setbox\drawingBox=\hbox to 0pt{\kern\psxoffset\vbox to 0pt{ - \kern-\psyoffset - \PSspeci@l{\PSfilename}{\the\xscale} - \vss}\hss\ps@nnotation} - \global\ht\drawingBox=\the\drawinght - \global\wd\drawingBox=\the\drawingwd - \baselineskip=0pt - \copy\drawingBox - \vss}\hss} - \global\psxoffset=0pt - \global\psyoffset=0pt% These are local to one figure - \global\pscm=1cm - \global\drawingwd=\drawingwd - \global\drawinght=\drawinght -}} -% -% \psboxscaled{scalefactor*1000}{PSfilename} allows to bypass the -% rounding errors of TeX integer divisions for situations where the -% TeX box should fit the original BoundingBox with a precision better -% than 1/1000. -% -\def\psboxscaled#1#2{\vbox{ - \ReadPSize{#2} - \xscale=#1 - \message{scaled \the\xscale} - \divide\drawingwd by 1000\multiply\drawingwd by\xscale - \divide\drawinght by 1000\multiply\drawinght by\xscale - \divide \psxoffset by 1000\multiply\psxoffset by \xscale - \divide \psyoffset by 1000\multiply\psyoffset by \xscale - \global\divide\pscm by 1000 - \global\multiply\pscm by\xscale - \global\setbox\drawingBox=\hbox to 0pt{\kern\psxoffset\vbox to 0pt{ - \kern-\psyoffset - \PSspeci@l{\PSfilename}{\the\xscale} - \vss}\hss\ps@nnotation} - \global\ht\drawingBox=\the\drawinght - \global\wd\drawingBox=\the\drawingwd - \baselineskip=0pt - \copy\drawingBox - \global\psxoffset=0pt - \global\psyoffset=0pt% These are local to one figure - \global\pscm=1cm - \global\drawingwd=\drawingwd - \global\drawinght=\drawinght -}} -% -% \psbox{PSfilename} makes a TeX box having the minimal size to -% enclose the picture -\def\psbox#1{\psboxscaled{1000}{#1}} -% -% -% \joinfiles file1, file2, ...n \into joinedfilename . -% makes one file out of many -% \splitfile joinedfilename -% the opposite -% -%\def\execute#1{#1}% NOT stupid: cs in #1 are then identified BEFORE execution -%\def\psm@keother#1{\catcode`#112\relax}% borrowed from latex -%\def\executeinspecs#1{% -%\execute{\begingroup\let\do\psm@keother\dospecials\catcode`\^^M=9#1\endgroup}} -%\newread\pst@mpin -\newif\ifn@teof\n@teoftrue -\newif\ifc@ntrolline -\newif\ifmatch -\newread\j@insplitin -\newwrite\j@insplitout -\newwrite\psbj@inaux -\immediate\openout\psbj@inaux=psbjoin.aux -\immediate\write\psbj@inaux{\string\joinfiles} -\immediate\write\psbj@inaux{\jobname,} -% -% We redefine input to keep track of the various files inputted -% -\immediate\let\oldinput=\input -\def\input#1 { - \immediate\write\psbj@inaux{#1,} - \oldinput #1 } -\def\empty{} -\def\setmatchif#1\contains#2{ - \def\match##1#2##2\endmatch{ - \def\tmp{##2} - \ifx\empty\tmp - \matchfalse - \else - \matchtrue - \fi} - \match#1#2\endmatch} -\def\warnopenout#1#2{ - \setmatchif{TrashMe,psbjoin.aux,psbjoin.all}\contains{#2} - \ifmatch - \else - \immediate\openin\pst@mpin=#2 - \ifeof\pst@mpin - \else - \errhelp{If the content of this file is so precious to you, abort (ie -press x or e) and rename it before retrying.} - \errmessage{I'm just about to replace your file named #2} - \fi - \immediate\closein\pst@mpin - \fi - \message{#2} - \immediate\openout#1=#2} -% No comments allowed below: % will have an unusual catcode -{ -\catcode`\%=12 -\gdef\splitfile#1 { - \immediate\openin\j@insplitin=#1 - \message{Splitting file #1 into:} - \warnopenout\j@insplitout{TrashMe} - \loop - \ifeof - \j@insplitin\immediate\closein\j@insplitin\n@teoffalse - \else - \n@teoftrue - \executeinspecs{\global\read\j@insplitin to\spl@tinline\expandafter - \ch@ckbeginnewfile\spl@tinline%Beginning-Of-File-Named:%\endcheck} - \ifc@ntrolline - \else - \toks0=\expandafter{\spl@tinline} - \immediate\write\j@insplitout{\the\toks0} - \fi - \fi - \ifn@teof\repeat - \immediate\closeout\j@insplitout} -\gdef\ch@ckbeginnewfile#1%Beginning-Of-File-Named:#2%#3\endcheck{ - \def\t@mp{#1} - \ifx\empty\t@mp - \def\t@mp{#3} - \ifx\empty\t@mp - \global\c@ntrollinefalse - \else - \immediate\closeout\j@insplitout - \warnopenout\j@insplitout{#2} - \global\c@ntrollinetrue - \fi - \else - \global\c@ntrollinefalse - \fi} -\gdef\joinfiles#1\into#2 { - \message{Joining following files into} - \warnopenout\j@insplitout{#2} - \message{:} - { - \edef\w@##1{\immediate\write\j@insplitout{##1}} - \w@{% This text was produced with psbox's \string\joinfiles.} - \w@{% To decompose and tex it:} - \w@{%-save this with a filename CONTAINING ONLY LETTERS, and no extensions} - \w@{% (say, JOINTFIL), in some uncrowded directory;} - \w@{%-make sure you can \string\input\space psbox.tex (version>=1.3);} - \w@{%-tex JOINTFIL using Plain, or LaTeX, or whatever is needed by} - \w@{% the first part in the joining (after splitting JOINTFIL into} - \w@{% it is constituents, TeX will try to process it as it stands).} - \w@{\string\input\space psbox.tex} - \w@{\string\splitfile{\string\jobname}} - } - \tre@tfilelist#1, \endtre@t - \immediate\closeout\j@insplitout} -\gdef\tre@tfilelist#1, #2\endtre@t{ - \def\t@mp{#1} - \ifx\empty\t@mp - \else - \llj@in{#1} - \tre@tfilelist#2, \endtre@t - \fi} -\gdef\llj@in#1{ - \immediate\openin\j@insplitin=#1 - \ifeof\j@insplitin - \errmessage{I couldn't find file #1.} - \else - \message{#1} - \toks0={%Beginning-Of-File-Named:#1} - \immediate\write\j@insplitout{\the\toks0} - \executeinspecs{\global\read\j@insplitin to\oldj@ininline} - \loop - \ifeof\j@insplitin\immediate\closein\j@insplitin\n@teoffalse - \else\n@teoftrue - \executeinspecs{\global\read\j@insplitin to\j@ininline} - \toks0=\expandafter{\oldj@ininline} - \let\oldj@ininline=\j@ininline - \immediate\write\j@insplitout{\the\toks0} - \fi - \ifn@teof - \repeat - \immediate\closein\j@insplitin - \fi} -} -% To be put at the end of a file, for making an tar-like file containing -% everything it used. -\def\autojoin{ - \immediate\write\psbj@inaux{\string\into\space psbjoin.all} - \immediate\closeout\psbj@inaux - \input psbjoin.aux -} -% -% Annotations & Captions etc... -% -% -% \centinsert{anybox} is just a centered \midinsert, but is included as -% people barely use the original inserts from TeX. -% -\def\centinsert#1{\midinsert\line{\hss#1\hss}\endinsert} -\def\psannotate#1#2{\def\ps@nnotation{#2\global\let\ps@nnotation=\relax}#1} -\def\pscaption#1#2{\vbox{ - \setbox\drawingBox=#1 - \copy\drawingBox - \vskip\baselineskip - \vbox{\hsize=\wd\drawingBox\setbox0=\hbox{#2} - \ifdim\wd0>\hsize - \noindent\unhbox0\tolerance=5000 - \else\centerline{\box0} - \fi -}}} -% for compatibility with older versions -\def\psfig#1#2#3{\pscaption{\psannotate{#1}{#2}}{#3}} -\def\psfigurebox#1#2#3{\pscaption{\psannotate{\psbox{#1}}{#2}}{#3}} -% -% \at(#1;#2)#3 puts #3 at #1-higher and #2-right of the current -% position without moving it (to be used in annotations). -\def\at(#1;#2)#3{\setbox0=\hbox{#3}\ht0=0pt\dp0=0pt - \rlap{\kern#1\vbox to0pt{\kern-#2\box0\vss}}} -% -% \gridfill(ht;wd) makes a 1cm*1cm grid of ht by wd whose lower-left -% corner is the current point -\newdimen\gridht \newdimen\gridwd -\def\gridfill(#1;#2){ - \setbox0=\hbox to 1\pscm - {\vrule height1\pscm width.4pt\leaders\hrule\hfill} - \gridht=#1 - \divide\gridht by \ht0 - \multiply\gridht by \ht0 - \gridwd=#2 - \divide\gridwd by \wd0 - \multiply\gridwd by \wd0 - \advance \gridwd by \wd0 - \vbox to \gridht{\leaders\hbox to\gridwd{\leaders\box0\hfill}\vfill}} -% -% Useful to measure where to put annotations -\def\fillinggrid{\at(0cm;0cm){\vbox{ - \gridfill(\drawinght;\drawingwd)}}} -% -% \textleftof\anybox: Sample text\endtext -% inserts "Sample text" on the left of \anybox ie \vbox, \psbox. -% \textrightof is the symmetric (not documented, too ugly) -% Welcome any suggestion about clean wraparound macros from -% TeXhackers reading this -% -\def\textleftof#1:{ - \setbox1=#1 - \setbox0=\vbox\bgroup - \advance\hsize by -\wd1 \advance\hsize by -2em} -\def\textrightof#1:{ - \setbox0=#1 - \setbox1=\vbox\bgroup - \advance\hsize by -\wd0 \advance\hsize by -2em} -\def\endtext{ - \egroup - \hbox to \hsize{\valign{\vfil##\vfil\cr% -\box0\cr% -\noalign{\hss}\box1\cr}}} -% -% \frameit{\thick}{\skip}{\anybox} -% draws with thickness \thick a box around \anybox, leaving \skip of -% blank around it. eg \frameit{0.5pt}{1pt}{\hbox{hello}} -% \boxit{\anybox} is a shortcut. -\def\frameit#1#2#3{\hbox{\vrule width#1\vbox{ - \hrule height#1\vskip#2\hbox{\hskip#2\vbox{#3}\hskip#2}% - \vskip#2\hrule height#1}\vrule width#1}} -\def\boxit#1{\frameit{0.4pt}{0pt}{#1}} -% -% -\catcode`\@=12 % cs containing @ are unreachable -% -% CUSTOMIZE YOUR DEFAULT DRIVER: -% Uncomment the line corresponding to your TeX system: -%\psfortextures% For TeXtures on the Macintosh -%\psforoztex % For OzTeX shareware on the Macintosh -%\psfordvitops % For the DVItoPS converter for TeX on IBM mainframes - \psfordvips % For DVIPS converter on VAX and UNIX -%\psfordvitps % For dvitps from TeXPS package under UNIX -%\psforDVIALW % For DVIALW, UNIX public domain -%\psonlyboxes % Blank Boxes (when all else fails). diff --git a/docs/latex/wx/quantize.tex b/docs/latex/wx/quantize.tex deleted file mode 100644 index 7b0df4a353..0000000000 --- a/docs/latex/wx/quantize.tex +++ /dev/null @@ -1,53 +0,0 @@ -\section{\class{wxQuantize}}\label{wxquantize} - -Performs quantization, or colour reduction, on a wxImage. - -Functions in this class are static and so a wxQuantize object need not be created. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/quantize.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxQuantize::wxQuantize}\label{wxquantizewxquantize} - -\func{}{wxQuantize}{\void} - -Constructor. You do not need to construct a wxQuantize object since its functions are static. - -\membersection{wxQuantize::Quantize}\label{wxquantizequantize} - -\func{bool}{Quantize}{\param{const wxImage\& }{src}, \param{wxImage\& }{dest}, \param{wxPalette** }{pPalette}, \param{int }{desiredNoColours = 236}, \param{unsigned char** }{eightBitData = 0}, \param{int }{flags = wxQUANTIZE\_INCLUDE\_WINDOWS\_COLOURS|wxQUANTIZE\_FILL\_DESTINATION\_IMAGE|wxQUANTIZE\_RETURN\_8BIT\_DATA}} - -Reduce the colours in the source image and put the result into the -destination image. Both images may be the same, to overwrite the source image. -Specify an optional palette pointer to receive the resulting palette. -This palette may be passed to ConvertImageToBitmap, for example. - -If you pass a palette pointer, you must free the palette yourself. - -\func{bool}{Quantize}{\param{const wxImage\& }{src}, \param{wxImage\& }{dest}, \param{int }{desiredNoColours = 236}, \param{unsigned char** }{eightBitData = 0}, \param{int }{flags = wxQUANTIZE\_INCLUDE\_WINDOWS\_COLOURS|wxQUANTIZE\_FILL\_DESTINATION\_IMAGE|wxQUANTIZE\_RETURN\_8BIT\_DATA}} - -This version sets a palette in the destination image so you don't -have to manage it yourself. - -\membersection{wxQuantize::DoQuantize}\label{wxquantizedoquantize} - -\func{void}{DoQuantize}{\param{unsigned }{w}, \param{unsigned }{h}, \param{unsigned char** }{in\_rows}, \param{unsigned char** }{out\_rows}, \param{unsigned char* }{palette}, \param{int }{desiredNoColours}} - -Converts input bitmap(s) into 8bit representation with custom palette. - -in\_rows and out\_rows are arrays [0..h-1] of pointer to rows -(in\_rows contains w * 3 bytes per row, out\_rows w bytes per row). - -Fills out\_rows with indexes into palette (which is also stored into palette variable). - diff --git a/docs/latex/wx/qylayevt.tex b/docs/latex/wx/qylayevt.tex deleted file mode 100644 index 0d2561bf40..0000000000 --- a/docs/latex/wx/qylayevt.tex +++ /dev/null @@ -1,126 +0,0 @@ -\section{\class{wxQueryLayoutInfoEvent}}\label{wxquerylayoutinfoevent} - -This event is sent when \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} wishes to get -the size, orientation and alignment of a window. More precisely, the event is sent -by the OnCalculateLayout handler which is itself invoked by wxLayoutAlgorithm. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/laywin.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event table macros} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_QUERY\_LAYOUT\_INFO(func)}}{Process a wxEVT\_QUERY\_LAYOUT\_INFO event, -to get size, orientation and alignment from a window.} -\end{twocollist} - -\wxheading{Data structures} - -{\small -\begin{verbatim} -enum wxLayoutOrientation { - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment { - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM, -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent},\rtfsp -\helpref{wxSashLayoutWindow}{wxsashlayoutwindow},\rtfsp -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxQueryLayoutInfoEvent::wxQueryLayoutInfoEvent}\label{wxquerylayoutinfoeventctor} - -\func{}{wxQueryLayoutInfoEvent}{\param{wxWindowID }{id = 0}} - -Constructor. - -\membersection{wxQueryLayoutInfoEvent::GetAlignment}\label{wxquerylayoutinfoeventgetalignment} - -\constfunc{void}{GetAlignment}{\void} - -Specifies the alignment of the window (which side of the remaining parent client area -the window sticks to). One of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxQueryLayoutInfoEvent::GetFlags}\label{wxquerylayoutinfoeventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags associated with this event. Not currently used. - -\membersection{wxQueryLayoutInfoEvent::GetOrientation}\label{wxquerylayoutinfoeventgetorientation} - -\constfunc{wxLayoutOrientation}{GetOrientation}{\void} - -Returns the orientation that the event handler specified to the event object. May be one of wxLAYOUT\_HORIZONTAL, -wxLAYOUT\_VERTICAL. - -\membersection{wxQueryLayoutInfoEvent::GetRequestedLength}\label{wxquerylayoutinfoeventgetrequestedlength} - -\constfunc{int}{GetRequestedLength}{\void} - -Returns the requested length of the window in the direction of the window orientation. This information -is not yet used. - -\membersection{wxQueryLayoutInfoEvent::GetSize}\label{wxquerylayoutinfoeventgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the size that the event handler specified to the event object as being the requested size of the window. - -\membersection{wxQueryLayoutInfoEvent::SetAlignment}\label{wxquerylayoutinfoeventsetalignment} - -\func{void}{SetAlignment}{\param{wxLayoutAlignment }{alignment}} - -Call this to specify the alignment of the window (which side of the remaining parent client area -the window sticks to). May be one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxQueryLayoutInfoEvent::SetFlags}\label{wxquerylayoutinfoeventsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets the flags associated with this event. Not currently used. - -\membersection{wxQueryLayoutInfoEvent::SetOrientation}\label{wxquerylayoutinfoeventsetorientation} - -\func{void}{SetOrientation}{\param{wxLayoutOrientation }{orientation}} - -Call this to specify the orientation of the window. May be one of wxLAYOUT\_HORIZONTAL, -wxLAYOUT\_VERTICAL. - -\membersection{wxQueryLayoutInfoEvent::SetRequestedLength}\label{wxquerylayoutinfoeventsetrequestedlength} - -\func{void}{SetRequestedLength}{\param{int}{ length}} - -Sets the requested length of the window in the direction of the window orientation. This information -is not yet used. - -\membersection{wxQueryLayoutInfoEvent::SetSize}\label{wxquerylayoutinfoeventsetsize} - -\func{void}{SetSize}{\param{const wxSize\& }{size}} - -Call this to let the calling code know what the size of the window is. - diff --git a/docs/latex/wx/radiobox.tex b/docs/latex/wx/radiobox.tex deleted file mode 100644 index 9472c47cf6..0000000000 --- a/docs/latex/wx/radiobox.tex +++ /dev/null @@ -1,439 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: radiobox.tex -%% Purpose: wxRadioBox documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRadioBox}}\label{wxradiobox} - -A radio box item is used to select one of number of mutually exclusive -choices. It is displayed as a vertical column or horizontal row of -labelled buttons. - -\wxheading{Derived from} - -\helpref{wxControlWithItems}{wxcontrolwithitems}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/radiobox.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRA\_SPECIFY\_ROWS}}{The major dimension parameter refers to the -maximum number of rows.} -\twocolitem{\windowstyle{wxRA\_SPECIFY\_COLS}}{The major dimension parameter refers to the -maximum number of columns.} -\twocolitem{\windowstyle{wxRA\_USE\_CHECKBOX}}{Use of the checkbox controls instead of radio -buttons (currently supported only on PalmOS)} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_RADIOBOX(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event, -when a radiobutton is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioButton}{wxradiobutton},\rtfsp -\helpref{wxCheckBox}{wxcheckbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRadioBox::wxRadioBox}\label{wxradioboxctor} - -\func{}{wxRadioBox}{\void} - -Default constructor. - -\func{}{wxRadioBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString}{ choices[] = NULL},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -\func{}{wxRadioBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point}, \param{const wxSize\& }{size},\rtfsp -\param{const wxArrayString\&}{ choices},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -Constructor, creating and showing a radiobox. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Label for the static box surrounding the radio buttons.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{n}{Number of choices with which to initialize the radiobox.} - -\docparam{choices}{An array of choices with which to initialize the radiobox.} - -\docparam{majorDimension}{Specifies the maximum number of rows (if style contains wxRA\_SPECIFY\_ROWS) or columns (if style contains wxRA\_SPECIFY\_COLS) for a two-dimensional -radiobox.} - -\docparam{style}{Window style. See \helpref{wxRadioBox}{wxradiobox}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxRadioBox::Create}{wxradioboxcreate}, \helpref{wxValidator}{wxvalidator} - -\pythonnote{The wxRadioBox constructor in wxPython reduces the {\tt n} -and {\tt choices} arguments are to a single argument, which is -a list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}.} - - -\membersection{wxRadioBox::\destruct{wxRadioBox}}\label{wxradioboxdtor} - -\func{}{\destruct{wxRadioBox}}{\void} - -Destructor, destroying the radiobox item. - - -\membersection{wxRadioBox::Create}\label{wxradioboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{int}{ n = 0}, \param{const wxString}{ choices[] = NULL},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{point}, \param{const wxSize\& }{size},\rtfsp -\param{const wxArrayString\&}{ choices},\rtfsp -\param{int}{ majorDimension = 0}, \param{long}{ style = wxRA\_SPECIFY\_COLS},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioBox"}} - -Creates the radiobox for two-step construction. See \helpref{wxRadioBox::wxRadioBox}{wxradioboxctor}\rtfsp -for further details. - - -\membersection{wxRadioBox::Enable}\label{wxradioboxenable} - -\func{virtual bool}{Enable}{\param{bool}{ enable = {\tt true}}} - -Enables or disables the entire radiobox. - -\func{virtual bool}{Enable}{\param{unsigned int}{ n}, \param{bool}{ enable = {\tt true}}} - -Enables or disables an individual button in the radiobox. - -\wxheading{Parameters} - -\docparam{enable}{true to enable, false to disable.} - -\docparam{n}{The zero-based button to enable or disable.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Enable(flag)}}{Enables or disables the entire radiobox.} -\twocolitem{{\bf EnableItem(n, flag)}}{Enables or disables an -individual button in the radiobox.} -\end{twocollist}} -} - -\wxheading{See also} - -\helpref{wxWindow::Enable}{wxwindowenable} - - - -\membersection{wxRadioBox::FindString}\label{wxradioboxfindstring} - -\constfunc{int}{FindString}{\param{const wxString\& }{string}} - -Finds a button matching the given string, returning the position if found, or --1 if not found. - -\wxheading{Parameters} - -\docparam{string}{The string to find.} - - -\membersection{wxRadioBox::GetColumnCount}\label{wxradioboxgetcolumncount} - -\constfunc{unsigned int}{GetColumnCount}{\void} - -Returns the number of columns in the radiobox. - - -\membersection{wxRadioBox::GetItemHelpText}\label{wxradioboxgetitemhelptext} - -\constfunc{wxString}{GetItemHelpText}{\param{unsigned int}{ item}} - -Returns the helptext associated with the specified \arg{item} if any or {\tt wxEmptyString}. - -\wxheading{Parameters} - -\docparam{item}{The zero-based item index.} - -\wxheading{See also} - -\helpref{SetItemHelpText}{wxradioboxsetitemhelptext} - - -\membersection{wxRadioBox::GetItemToolTip}\label{wxradioboxgetitemtooltip} - -\constfunc{wxToolTip *}{GetItemToolTip}{\param{unsigned int}{ item}} - -Returns the tooltip associated with the specified \arg{item} if any or \NULL. - -\wxheading{See also} - -\helpref{SetItemToolTip}{wxradioboxsetitemtooltip},\\ -\helpref{wxWindow::GetToolTip}{wxwindowgettooltip} - - -\membersection{wxRadioBox::GetItemFromPoint}\label{wxradioboxgetitemfrompoint} - -\constfunc{int}{GetItemFromPoint}{\param{const wxPoint&}{ pt}} - -Returns a radio box item under the point, a zero-based item index, or {\tt wxNOT\_FOUND} if no item is under the point. - -\docparam{pt}{Point in client coordinates.} - - -\membersection{wxRadioBox::GetLabel}\label{wxradioboxgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the radiobox label. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button index.} - -\wxheading{See also} - -\helpref{wxRadioBox::SetLabel}{wxradioboxsetlabel} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetLabel()}}{Returns the radiobox label.} -\twocolitem{{\bf GetItemLabel(n)}}{Returns the label for the given button.} -\end{twocollist}} -} - - -\membersection{wxRadioBox::GetRowCount}\label{wxradioboxgetrowcount} - -\constfunc{unsigned int}{GetRowCount}{\void} - -Returns the number of rows in the radiobox. - - -\membersection{wxRadioBox::GetSelection}\label{wxradioboxgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the zero-based position of the selected button. - - -\membersection{wxRadioBox::GetStringSelection}\label{wxradioboxgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the selected string. - - -\membersection{wxRadioBox::GetString}\label{wxradioboxgetstring} - -\constfunc{wxString}{GetString}{\param{unsigned int}{ n}} - -Returns the label for the button at the given position. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - - -\membersection{wxRadioBox::IsItemEnabled}\label{wxradioboxisitemenabled} - -\constfunc{bool}{IsItemEnabled}{\param{unsigned int}{ n}} - -Returns \true if the item is enabled or \false if it was disabled using -\helpref{Enable(n, false)}{wxradioboxenable}. - -{\bf Platform note:} Currently only implemented in wxMSW, wxGTK and wxUniversal -and always returns \true in the other ports. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - - -\membersection{wxRadioBox::IsItemShown}\label{wxradioboxisitemshown} - -\constfunc{bool}{IsItemShown}{\param{unsigned int}{ n}} - -Returns \true if the item is currently shown or \false if it was hidden using -\helpref{Show(n, false)}{wxradioboxshow}. - -Note that this function returns \true for an item which hadn't been hidden even -if the entire radiobox is not currently shown. - -{\bf Platform note:} Currently only implemented in wxMSW, wxGTK and wxUniversal -and always returns \true in the other ports. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - - -\membersection{wxRadioBox::SetItemHelpText}\label{wxradioboxsetitemhelptext} - -\func{void}{SetItemHelpText}{\param{unsigned int}{ item}, \param{const wxString\&}{ helptext}} - -Sets the helptext for an item. Empty string erases any existing helptext. - -\wxheading{Parameters} - -\docparam{item}{The zero-based item index.} - -\docparam{helptext}{The help text to set for the item.} - -\wxheading{See also} - -\helpref{GetItemHelpText}{wxradioboxgetitemhelptext} - - -\membersection{wxRadioBox::SetLabel}\label{wxradioboxsetlabel} - -\func{void}{SetLabel}{\param{const wxString\&}{ label}} - -Sets the radiobox label. - - -\wxheading{Parameters} - -\docparam{label}{The label to set.} - -\docparam{n}{The zero-based button index.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf SetLabel(string)}}{Sets the radiobox label.} -\twocolitem{{\bf SetItemLabel(n, string)}}{Sets a label for a radio button.} -\end{twocollist}} -} - - -\membersection{wxRadioBox::SetSelection}\label{wxradioboxsetselection} - -\func{void}{SetSelection}{\param{int}{ n}} - -Sets a button by passing the desired string position. This does not cause -a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{n}{The zero-based button position.} - - -\membersection{wxRadioBox::SetStringSelection}\label{wxradioboxsetstringselection} - -\func{void}{SetStringSelection}{\param{const wxString\& }{string}} - -Sets the selection to a button by passing the desired string. This does not cause -a wxEVT\_COMMAND\_RADIOBOX\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{string}{The label of the button to select.} - - -\membersection{wxRadioBox::SetItemToolTip}\label{wxradioboxsetitemtooltip} - -\func{void}{SetItemToolTip}{\param{unsigned int}{ item}, \param{const wxString\& }{text}} - -Sets the tooltip text for the specified item in the radio group. - -{\bf Platform note:} Currently only implemented in wxMSW and wxGTK2 and does -nothing in the other ports. - -\wxheading{Parameters} - -\docparam{item}{Index of the item the tooltip will be shown for.} - -\docparam{text}{Tooltip text for the item, the tooltip is removed if empty.} - -\wxheading{See also} - -\helpref{GetItemToolTip}{wxradioboxgetitemtooltip},\\ -\helpref{wxWindow::SetToolTip}{wxwindowsettooltip} - - -\membersection{wxRadioBox::Show}\label{wxradioboxshow} - -\func{virtual bool}{Show}{\param{const bool}{ show = {\tt true}}} - -Shows or hides the entire radiobox. - -\func{virtual bool}{Show}{\param{unsigned int}{ item}, \param{const bool}{ show = {\tt true}}} - -Shows or hides individual buttons. - -\wxheading{Parameters} - -\docparam{show}{true to show, false to hide.} - -\docparam{item}{The zero-based position of the button to show or hide.} - -\wxheading{Return value} - -{\tt true} if the box or item has been shown or hidden or {\tt false} if nothing was -done because it already was in the requested state. - -\wxheading{See also} - -\helpref{wxWindow::Show}{wxwindowshow} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Show(flag)}}{Shows or hides the entire radiobox.} -\twocolitem{{\bf ShowItem(n, flag)}}{Shows or hides individual buttons.} -\end{twocollist}} -} diff --git a/docs/latex/wx/radiobut.tex b/docs/latex/wx/radiobut.tex deleted file mode 100644 index b0355c34ca..0000000000 --- a/docs/latex/wx/radiobut.tex +++ /dev/null @@ -1,123 +0,0 @@ -\section{\class{wxRadioButton}}\label{wxradiobutton} - -A radio button item is a button which usually denotes one of several mutually -exclusive options. It has a text label next to a (usually) round button. - -You can create a group of mutually-exclusive radio buttons by specifying {\tt wxRB\_GROUP} for -the first in the group. The group ends when another radio button group is created, or there are no more radio buttons. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/radiobut.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRB\_GROUP}}{Marks the beginning of a new group of radio buttons.} -\twocolitem{\windowstyle{wxRB\_SINGLE}}{In some circumstances, radio buttons that are not -consecutive siblings trigger a hang bug in Windows (only). If this happens, add this style -to mark the button as not belonging to a group, and implement the mutually-exclusive group behaviour yourself.} -\twocolitem{\windowstyle{wxRB\_USE\_CHECKBOX}}{Use a checkbox button instead of radio -button (currently supported only on PalmOS).} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_RADIOBUTTON(id, func)}}{Process a wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event, -when the radiobutton is clicked.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxRadioBox}{wxradiobox},\rtfsp -\helpref{wxCheckBox}{wxcheckbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRadioButton::wxRadioButton}\label{wxradiobuttonctor} - -\func{}{wxRadioButton}{\void} - -Default constructor. - -\func{}{wxRadioButton}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioButton"}} - -Constructor, creating and showing a radio button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Label for the radio button.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxRadioButton}{wxradiobutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxRadioButton::Create}{wxradiobuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxRadioButton::\destruct{wxRadioButton}}\label{wxradiobuttondtor} - -\func{void}{\destruct{wxRadioButton}}{\void} - -Destructor, destroying the radio button item. - -\membersection{wxRadioButton::Create}\label{wxradiobuttoncreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``radioButton"}} - -Creates the choice for two-step construction. See \helpref{wxRadioButton::wxRadioButton}{wxradiobuttonctor} for -further details. - -\membersection{wxRadioButton::GetValue}\label{wxradiobuttongetvalue} - -\constfunc{bool}{GetValue}{\void} - -Returns true if the radio button is depressed, false otherwise. - -\membersection{wxRadioButton::SetValue}\label{wxradiobuttonsetvalue} - -\func{void}{SetValue}{\param{const bool}{ value}} - -Sets the radio button to selected or deselected status. This does not cause a -wxEVT\_COMMAND\_RADIOBUTTON\_SELECTED event to get emitted. - -\wxheading{Parameters} - -\docparam{value}{true to select, false to deselect.} - - diff --git a/docs/latex/wx/re_syntax.tex b/docs/latex/wx/re_syntax.tex deleted file mode 100644 index 7e5ca974c7..0000000000 --- a/docs/latex/wx/re_syntax.tex +++ /dev/null @@ -1,660 +0,0 @@ -% manual page source format generated by PolyglotMan v3.0.9, -% available from http://polyglotman.sourceforge.net/ - -\section{Syntax of the builtin regular expression library}\label{wxresyn} - -A {\it regular expression} describes strings of characters. It's a -pattern that matches certain strings and doesn't match others. - -\wxheading{See also} - -\helpref{wxRegEx}{wxregex} - -\subsection{Different Flavors of REs}\label{differentflavors} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -Regular expressions (``RE''s), as defined by POSIX, come in two -flavors: {\it extended} REs (``EREs'') and {\it basic} REs (``BREs''). EREs are roughly those -of the traditional {\it egrep}, while BREs are roughly those of the traditional - {\it ed}. This implementation adds a third flavor, {\it advanced} REs (``AREs''), basically -EREs with some significant extensions. - -This manual page primarily describes -AREs. BREs mostly exist for backward compatibility in some old programs; -they will be discussed at the \helpref{end}{wxresynbre}. POSIX EREs are almost an exact subset -of AREs. Features of AREs that are not present in EREs will be indicated. - -\subsection{Regular Expression Syntax}\label{resyntax} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -These regular expressions are implemented using -the package written by Henry Spencer, based on the 1003.2 spec and some -(not quite all) of the Perl5 extensions (thanks, Henry!). Much of the description -of regular expressions below is copied verbatim from his manual entry. - -An ARE is one or more {\it branches}, separated by `{\bf $|$}', matching anything that matches -any of the branches. - -A branch is zero or more {\it constraints} or {\it quantified -atoms}, concatenated. It matches a match for the first, followed by a match -for the second, etc; an empty branch matches the empty string. - -A quantified atom is an {\it atom} possibly followed by a single {\it quantifier}. Without a quantifier, -it matches a match for the atom. The quantifiers, and what a so-quantified -atom matches, are: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf *}}{a sequence of 0 or more matches of the atom} -\twocolitem{{\bf +}}{a sequence of 1 or more matches of the atom} -\twocolitem{{\bf ?}}{a sequence of 0 or 1 matches of the atom} -\twocolitem{{\bf \{m\}}}{a sequence of exactly {\it m} matches of the atom} -\twocolitem{{\bf \{m,\}}}{a sequence of {\it m} or more matches of the atom} -\twocolitem{{\bf \{m,n\}}}{a sequence of {\it m} through {\it n} (inclusive) -matches of the atom; {\it m} may not exceed {\it n}} -\twocolitem{{\bf *? +? ?? \{m\}? \{m,\}? \{m,n\}?}}{{\it non-greedy} quantifiers, -which match the same possibilities, but prefer the -smallest number rather than the largest number of matches (see \helpref{Matching}{wxresynmatching})} -\end{twocollist} - -The forms using {\bf \{} and {\bf \}} are known as {\it bound}s. The numbers {\it m} and {\it n} are unsigned -decimal integers with permissible values from 0 to 255 inclusive. -An atom is one of: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf (re)}}{(where {\it re} is any regular expression) matches a match for - {\it re}, with the match noted for possible reporting} -\twocolitem{{\bf (?:re)}}{as previous, but -does no reporting (a ``non-capturing'' set of parentheses)} -\twocolitem{{\bf ()}}{matches an empty -string, noted for possible reporting} -\twocolitem{{\bf (?:)}}{matches an empty string, without reporting} -\twocolitem{{\bf $[chars]$}}{a {\it bracket expression}, matching any one of the {\it chars} -(see \helpref{Bracket Expressions}{wxresynbracket} for more detail)} -\twocolitem{{\bf .}}{matches any single character } -\twocolitem{{\bf $\backslash$k}}{(where {\it k} is a non-alphanumeric character) -matches that character taken as an ordinary character, e.g. $\backslash\backslash$ matches a backslash -character} -\twocolitem{{\bf $\backslash$c}}{where {\it c} is alphanumeric (possibly followed by other characters), -an {\it escape} (AREs only), see \helpref{Escapes}{wxresynescapes} below} -\twocolitem{{\bf \{}}{when followed by a character -other than a digit, matches the left-brace character `{\bf \{}'; when followed by -a digit, it is the beginning of a {\it bound} (see above)} -\twocolitem{{\bf x}}{where {\it x} is a single -character with no other significance, matches that character.} -\end{twocollist} - -A {\it constraint} matches an empty string when specific conditions are met. A constraint may -not be followed by a quantifier. The simple constraints are as follows; -some more constraints are described later, under \helpref{Escapes}{wxresynescapes}. - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf \caret}}{matches at the beginning of a line} -\twocolitem{{\bf \$}}{matches at the end of a line} -\twocolitem{{\bf (?=re)}}{{\it positive lookahead} -(AREs only), matches at any point where a substring matching {\it re} begins} -\twocolitem{{\bf (?!re)}}{{\it negative lookahead} (AREs only), -matches at any point where no substring matching {\it re} begins} -\end{twocollist} - -The lookahead constraints may not contain back references -(see later), and all parentheses within them are considered non-capturing. - -An RE may not end with `{\bf $\backslash$}'. - -\subsection{Bracket Expressions}\label{wxresynbracket} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -A {\it bracket expression} is a list -of characters enclosed in `{\bf $[]$}'. It normally matches any single character from -the list (but see below). If the list begins with `{\bf \caret}', it matches any single -character (but see below) {\it not} from the rest of the list. - -If two characters -in the list are separated by `{\bf -}', this is shorthand for the full {\it range} of -characters between those two (inclusive) in the collating sequence, e.g. - {\bf $[0-9]$} in ASCII matches any decimal digit. Two ranges may not share an endpoint, -so e.g. {\bf a-c-e} is illegal. Ranges are very collating-sequence-dependent, and portable -programs should avoid relying on them. - -To include a literal {\bf $]$} or {\bf -} in the -list, the simplest method is to enclose it in {\bf $[.$} and {\bf $.]$} to make it a collating -element (see below). Alternatively, make it the first character (following -a possible `{\bf \caret}'), or (AREs only) precede it with `{\bf $\backslash$}'. -Alternatively, for `{\bf -}', make -it the last character, or the second endpoint of a range. To use a literal - {\bf -} as the first endpoint of a range, make it a collating element or (AREs -only) precede it with `{\bf $\backslash$}'. With the exception of these, some combinations using - {\bf $[$} (see next paragraphs), and escapes, all other special characters lose -their special significance within a bracket expression. - -Within a bracket -expression, a collating element (a character, a multi-character sequence -that collates as if it were a single character, or a collating-sequence -name for either) enclosed in {\bf $[.$} and {\bf $.]$} stands for the -sequence of characters of that collating element. - -{\it wxWidgets}: Currently no multi-character collating elements are defined. -So in {\bf $[.X.]$}, {\it X} can either be a single character literal or -the name of a character. For example, the following are both identical - {\bf $[[.0.]-[.9.]]$} and {\bf $[[.zero.]-[.nine.]]$} and mean the same as - {\bf $[0-9]$}. - See \helpref{Character Names}{wxresynchars}. - -%The sequence is a single element of the bracket -%expression's list. A bracket expression in a locale that has multi-character -%collating elements can thus match more than one character. So (insidiously), -%a bracket expression that starts with {\bf \caret} can match multi-character collating -%elements even if none of them appear in the bracket expression! ({\it Note:} -%Tcl currently has no multi-character collating elements. This information -%is only for illustration.) -% -%For example, assume the collating sequence includes -%a {\bf ch} multi-character collating element. Then the RE {\bf $[[.ch.]]*c$} (zero or more -% {\bf ch}'s followed by {\bf c}) matches the first five characters of `{\bf chchcc}'. Also, the -%RE {\bf $[^c]b$} matches all of `{\bf chb}' (because {\bf $[^c]$} matches the multi-character {\bf ch}). - -Within a bracket expression, a collating element enclosed in {\bf $[=$} and {\bf $=]$} -is an equivalence class, standing for the sequences of characters of all -collating elements equivalent to that one, including itself. -%(If there are -%no other equivalent collating elements, the treatment is as if the enclosing -%delimiters were `{\bf $[.$}' and `{\bf $.]$}'.) For example, if {\bf o} -%and {\bf \caret} are the members of an -%equivalence class, then `{\bf $[[$=o=$]]$}', `{\bf $[[$=\caret=$]]$}', -%and `{\bf $[o^]$}' are all synonymous. -An equivalence class may not be an endpoint of a range. - -%({\it Note:} Tcl currently -%implements only the Unicode locale. It doesn't define any equivalence classes. -%The examples above are just illustrations.) - -{\it wxWidgets}: Currently no equivalence classes are defined, so -{\bf $[=X=]$} stands for just the single character {\it X}. - {\it X} can either be a single character literal or the name of a character, -see \helpref{Character Names}{wxresynchars}. - -Within a bracket expression, -the name of a {\it character class} enclosed in {\bf $[:$} and {\bf $:]$} stands for the list -of all characters (not all collating elements!) belonging to that class. -Standard character classes are: - -\begin{twocollist}\twocolwidtha{3cm} -\twocolitem{{\bf alpha}}{A letter.} -\twocolitem{{\bf upper}}{An upper-case letter.} -\twocolitem{{\bf lower}}{A lower-case letter.} -\twocolitem{{\bf digit}}{A decimal digit.} -\twocolitem{{\bf xdigit}}{A hexadecimal digit.} -\twocolitem{{\bf alnum}}{An alphanumeric (letter or digit).} -\twocolitem{{\bf print}}{An alphanumeric (same as alnum).} -\twocolitem{{\bf blank}}{A space or tab character.} -\twocolitem{{\bf space}}{A character producing white space in displayed text.} -\twocolitem{{\bf punct}}{A punctuation character.} -\twocolitem{{\bf graph}}{A character with a visible representation.} -\twocolitem{{\bf cntrl}}{A control character.} -\end{twocollist} - -%A locale may provide others. (Note that the current Tcl -%implementation has only one locale: the Unicode locale.) -A character class may not be used as an endpoint of a range. - -{\it wxWidgets}: In a non-Unicode build, these character classifications depend on the -current locale, and correspond to the values return by the ANSI C 'is' -functions: isalpha, isupper, etc. In Unicode mode they are based on -Unicode classifications, and are not affected by the current locale. - -There are two special cases of bracket expressions: -the bracket expressions {\bf $[[:$<$:]]$} and {\bf $[[:$>$:]]$} are constraints, matching empty -strings at the beginning and end of a word respectively. A word is defined -as a sequence of word characters that is neither preceded nor followed -by word characters. A word character is an {\it alnum} character or an underscore -({\bf \_}). These special bracket expressions are deprecated; users of AREs should -use constraint escapes instead (see \helpref{Escapes}{wxresynescapes} below). - -\subsection{Escapes}\label{wxresynescapes} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -Escapes (AREs only), -which begin with a {\bf $\backslash$} followed by an alphanumeric character, come in several -varieties: character entry, class shorthands, constraint escapes, and back -references. A {\bf $\backslash$} followed by an alphanumeric character but not constituting -a valid escape is illegal in AREs. In EREs, there are no escapes: outside -a bracket expression, a {\bf $\backslash$} followed by an alphanumeric character merely stands -for that character as an ordinary character, and inside a bracket expression, - {\bf $\backslash$} is an ordinary character. (The latter is the one actual incompatibility -between EREs and AREs.) - -Character-entry escapes (AREs only) exist to make -it easier to specify non-printing and otherwise inconvenient characters -in REs: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf $\backslash$a}}{alert (bell) character, as in C} -\twocolitem{{\bf $\backslash$b}}{backspace, as in C} -\twocolitem{{\bf $\backslash$B}}{synonym -for {\bf $\backslash$} to help reduce backslash doubling in some applications where there -are multiple levels of backslash processing} -\twocolitem{{\bf $\backslash$c{\it X}}}{(where X is any character) -the character whose low-order 5 bits are the same as those of {\it X}, and whose -other bits are all zero} -\twocolitem{{\bf $\backslash$e}}{the character whose collating-sequence name is -`{\bf ESC}', or failing that, the character with octal value 033} -\twocolitem{{\bf $\backslash$f}}{formfeed, as in C} -\twocolitem{{\bf $\backslash$n}}{newline, as in C} -\twocolitem{{\bf $\backslash$r}}{carriage return, as in C} -\twocolitem{{\bf $\backslash$t}}{horizontal tab, as in C} -\twocolitem{{\bf $\backslash$u{\it wxyz}}}{(where {\it wxyz} is exactly four hexadecimal digits) -the Unicode -character {\bf U+{\it wxyz}} in the local byte ordering} -\twocolitem{{\bf $\backslash$U{\it stuvwxyz}}}{(where {\it stuvwxyz} is -exactly eight hexadecimal digits) reserved for a somewhat-hypothetical Unicode -extension to 32 bits} -\twocolitem{{\bf $\backslash$v}}{vertical tab, as in C are all available.} -\twocolitem{{\bf $\backslash$x{\it hhh}}}{(where - {\it hhh} is any sequence of hexadecimal digits) the character whose hexadecimal -value is {\bf 0x{\it hhh}} (a single character no matter how many hexadecimal digits -are used).} -\twocolitem{{\bf $\backslash$0}}{the character whose value is {\bf 0}} -\twocolitem{{\bf $\backslash${\it xy}}}{(where {\it xy} is exactly two -octal digits, and is not a {\it back reference} (see below)) the character whose -octal value is {\bf 0{\it xy}}} -\twocolitem{{\bf $\backslash${\it xyz}}}{(where {\it xyz} is exactly three octal digits, and is -not a back reference (see below)) -the character whose octal value is {\bf 0{\it xyz}}} -\end{twocollist} - -Hexadecimal digits are `{\bf 0}'-`{\bf 9}', `{\bf a}'-`{\bf f}', and `{\bf A}'-`{\bf F}'. Octal -digits are `{\bf 0}'-`{\bf 7}'. - -The character-entry -escapes are always taken as ordinary characters. For example, {\bf $\backslash$135} is {\bf ]} in -ASCII, but {\bf $\backslash$135} does not terminate a bracket expression. Beware, however, -that some applications (e.g., C compilers) interpret such sequences themselves -before the regular-expression package gets to see them, which may require -doubling (quadrupling, etc.) the `{\bf $\backslash$}'. - -Class-shorthand escapes (AREs only) provide -shorthands for certain commonly-used character classes: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf $\backslash$d}}{{\bf $[[:digit:]]$}} -\twocolitem{{\bf $\backslash$s}}{{\bf $[[:space:]]$}} -\twocolitem{{\bf $\backslash$w}}{{\bf $[[:alnum:]\_]$} (note underscore)} -\twocolitem{{\bf $\backslash$D}}{{\bf $[^[:digit:]]$}} -\twocolitem{{\bf $\backslash$S}}{{\bf $[^[:space:]]$}} -\twocolitem{{\bf $\backslash$W}}{{\bf $[^[:alnum:]\_]$} (note underscore)} -\end{twocollist} - -Within bracket expressions, `{\bf $\backslash$d}', `{\bf $\backslash$s}', and -`{\bf $\backslash$w}' lose their outer brackets, and `{\bf $\backslash$D}', -`{\bf $\backslash$S}', and `{\bf $\backslash$W}' are illegal. (So, for example, - {\bf $[$a-c$\backslash$d$]$} is equivalent to {\bf $[a-c[:digit:]]$}. -Also, {\bf $[$a-c$\backslash$D$]$}, which is equivalent to - {\bf $[a-c^[:digit:]]$}, is illegal.) - -A constraint escape (AREs only) is a constraint, -matching the empty string if specific conditions are met, written as an -escape: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf $\backslash$A}}{matches only at the beginning of the string -(see \helpref{Matching}{wxresynmatching}, below, -for how this differs from `{\bf \caret}')} -\twocolitem{{\bf $\backslash$m}}{matches only at the beginning of a word} -\twocolitem{{\bf $\backslash$M}}{matches only at the end of a word} -\twocolitem{{\bf $\backslash$y}}{matches only at the beginning or end of a word} -\twocolitem{{\bf $\backslash$Y}}{matches only at a point that is not the beginning or end of -a word} -\twocolitem{{\bf $\backslash$Z}}{matches only at the end of the string -(see \helpref{Matching}{wxresynmatching}, below, for -how this differs from `{\bf \$}')} -\twocolitem{{\bf $\backslash${\it m}}}{(where {\it m} is a nonzero digit) a {\it back reference}, -see below} -\twocolitem{{\bf $\backslash${\it mnn}}}{(where {\it m} is a nonzero digit, and {\it nn} is some more digits, -and the decimal value {\it mnn} is not greater than the number of closing capturing -parentheses seen so far) a {\it back reference}, see below} -\end{twocollist} - -A word is defined -as in the specification of {\bf $[[:$<$:]]$} and {\bf $[[:$>$:]]$} above. Constraint escapes are -illegal within bracket expressions. - -A back reference (AREs only) matches -the same string matched by the parenthesized subexpression specified by -the number, so that (e.g.) {\bf ($[bc]$)$\backslash$1} matches {\bf bb} or {\bf cc} but not `{\bf bc}'. -The subexpression -must entirely precede the back reference in the RE. Subexpressions are numbered -in the order of their leading parentheses. Non-capturing parentheses do not -define subexpressions. - -There is an inherent historical ambiguity between -octal character-entry escapes and back references, which is resolved by -heuristics, as hinted at above. A leading zero always indicates an octal -escape. A single non-zero digit, not followed by another digit, is always -taken as a back reference. A multi-digit sequence not starting with a zero -is taken as a back reference if it comes after a suitable subexpression -(i.e. the number is in the legal range for a back reference), and otherwise -is taken as octal. - -\subsection{Metasyntax}\label{remetasyntax} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -In addition to the main syntax described above, -there are some special forms and miscellaneous syntactic facilities available. - -Normally the flavor of RE being used is specified by application-dependent -means. However, this can be overridden by a {\it director}. If an RE of any flavor -begins with `{\bf ***:}', the rest of the RE is an ARE. If an RE of any flavor begins -with `{\bf ***=}', the rest of the RE is taken to be a literal string, with all -characters considered ordinary characters. - -An ARE may begin with {\it embedded options}: a sequence {\bf (?xyz)} -(where {\it xyz} is one or more alphabetic characters) -specifies options affecting the rest of the RE. These supplement, and can -override, any options specified by the application. The available option -letters are: - -\begin{twocollist}\twocolwidtha{4cm} -\twocolitem{{\bf b}}{rest of RE is a BRE} -\twocolitem{{\bf c}}{case-sensitive matching (usual default)} -\twocolitem{{\bf e}}{rest of RE is an ERE} -\twocolitem{{\bf i}}{case-insensitive matching (see \helpref{Matching}{wxresynmatching}, below)} -\twocolitem{{\bf m}}{historical synonym for {\bf n}} -\twocolitem{{\bf n}}{newline-sensitive matching (see \helpref{Matching}{wxresynmatching}, below)} -\twocolitem{{\bf p}}{partial newline-sensitive matching (see \helpref{Matching}{wxresynmatching}, below)} -\twocolitem{{\bf q}}{rest of RE -is a literal (``quoted'') string, all ordinary characters} -\twocolitem{{\bf s}}{non-newline-sensitive matching (usual default)} -\twocolitem{{\bf t}}{tight syntax (usual default; see below)} -\twocolitem{{\bf w}}{inverse -partial newline-sensitive (``weird'') matching (see \helpref{Matching}{wxresynmatching}, below)} -\twocolitem{{\bf x}}{expanded syntax (see below)} -\end{twocollist} - -Embedded options take effect at the {\bf )} terminating the -sequence. They are available only at the start of an ARE, and may not be -used later within it. - -In addition to the usual ({\it tight}) RE syntax, in which -all characters are significant, there is an {\it expanded} syntax, available -%in all flavors of RE with the {\bf -expanded} switch, or -in AREs with the embedded -x option. In the expanded syntax, white-space characters are ignored and -all characters between a {\bf \#} and the following newline (or the end of the -RE) are ignored, permitting paragraphing and commenting a complex RE. There -are three exceptions to that basic rule: -{\itemize -\item% -a white-space character or `{\bf \#}' preceded -by `{\bf $\backslash$}' is retained -\item% -white space or `{\bf \#}' within a bracket expression is retained -\item% -white space and comments are illegal within multi-character symbols like -the ARE `{\bf (?:}' or the BRE `{\bf $\backslash$(}' -} -Expanded-syntax white-space characters are blank, -tab, newline, and any character that belongs to the {\it space} character class. - -Finally, in an ARE, outside bracket expressions, the sequence `{\bf (?\#ttt)}' (where - {\it ttt} is any text not containing a `{\bf )}') is a comment, completely ignored. Again, -this is not allowed between the characters of multi-character symbols like -`{\bf (?:}'. Such comments are more a historical artifact than a useful facility, -and their use is deprecated; use the expanded syntax instead. - -{\it None} of these -metasyntax extensions is available if the application (or an initial {\bf ***=} -director) has specified that the user's input be treated as a literal string -rather than as an RE. - -\subsection{Matching}\label{wxresynmatching} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -In the event that an RE could match more than -one substring of a given string, the RE matches the one starting earliest -in the string. If the RE could match more than one substring starting at -that point, its choice is determined by its {\it preference}: either the longest -substring, or the shortest. - -Most atoms, and all constraints, have no preference. -A parenthesized RE has the same preference (possibly none) as the RE. A -quantified atom with quantifier {\bf \{m\}} or {\bf \{m\}?} has the same preference (possibly -none) as the atom itself. A quantified atom with other normal quantifiers -(including {\bf \{m,n\}} with {\it m} equal to {\it n}) prefers longest match. A quantified -atom with other non-greedy quantifiers (including {\bf \{m,n\}?} with {\it m} equal to - {\it n}) prefers shortest match. A branch has the same preference as the first -quantified atom in it which has a preference. An RE consisting of two or -more branches connected by the {\bf $|$} operator prefers longest match. - -Subject to the constraints imposed by the rules for matching the whole RE, subexpressions -also match the longest or shortest possible substrings, based on their -preferences, with subexpressions starting earlier in the RE taking priority -over ones starting later. Note that outer subexpressions thus take priority -over their component subexpressions. - -Note that the quantifiers {\bf \{1,1\}} and - {\bf \{1,1\}?} can be used to force longest and shortest preference, respectively, -on a subexpression or a whole RE. - -Match lengths are measured in characters, -not collating elements. An empty string is considered longer than no match -at all. For example, {\bf bb*} matches the three middle characters -of `{\bf abbbc}', {\bf (week$|$wee)(night$|$knights)} -matches all ten characters of `{\bf weeknights}', when {\bf (.*).*} is matched against - {\bf abc} the parenthesized subexpression matches all three characters, and when - {\bf (a*)*} is matched against {\bf bc} both the whole RE and the parenthesized subexpression -match an empty string. - -If case-independent matching is specified, the effect -is much as if all case distinctions had vanished from the alphabet. When -an alphabetic that exists in multiple cases appears as an ordinary character -outside a bracket expression, it is effectively transformed into a bracket -expression containing both cases, so that {\bf x} becomes `{\bf $[xX]$}'. When it appears -inside a bracket expression, all case counterparts of it are added to the -bracket expression, so that {\bf $[x]$} becomes {\bf $[xX]$} and {\bf $[^x]$} becomes `{\bf $[^xX]$}'. - -If newline-sensitive -matching is specified, {\bf .} and bracket expressions using {\bf \caret} will never match -the newline character (so that matches will never cross newlines unless -the RE explicitly arranges it) and {\bf \caret} and {\bf \$} will match the empty string after -and before a newline respectively, in addition to matching at beginning -and end of string respectively. ARE {\bf $\backslash$A} and {\bf $\backslash$Z} continue to match beginning -or end of string {\it only}. - -If partial newline-sensitive matching is specified, -this affects {\bf .} and bracket expressions as with newline-sensitive matching, -but not {\bf \caret} and `{\bf \$}'. - -If inverse partial newline-sensitive matching is specified, -this affects {\bf \caret} and {\bf \$} as with newline-sensitive matching, but not {\bf .} and bracket -expressions. This isn't very useful but is provided for symmetry. - -\subsection{Limits And Compatibility}\label{relimits} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -No particular limit is imposed on the length of REs. Programs -intended to be highly portable should not employ REs longer than 256 bytes, -as a POSIX-compliant implementation can refuse to accept such REs. - -The only -feature of AREs that is actually incompatible with POSIX EREs is that {\bf $\backslash$} -does not lose its special significance inside bracket expressions. All other -ARE features use syntax which is illegal or has undefined or unspecified -effects in POSIX EREs; the {\bf ***} syntax of directors likewise is outside -the POSIX syntax for both BREs and EREs. - -Many of the ARE extensions are -borrowed from Perl, but some have been changed to clean them up, and a -few Perl extensions are not present. Incompatibilities of note include `{\bf $\backslash$b}', -`{\bf $\backslash$B}', the lack of special treatment for a trailing newline, the addition of -complemented bracket expressions to the things affected by newline-sensitive -matching, the restrictions on parentheses and back references in lookahead -constraints, and the longest/shortest-match (rather than first-match) matching -semantics. - -The matching rules for REs containing both normal and non-greedy -quantifiers have changed since early beta-test versions of this package. -(The new rules are much simpler and cleaner, but don't work as hard at guessing -the user's real intentions.) - -Henry Spencer's original 1986 {\it regexp} package, still in widespread use, -%(e.g., in pre-8.1 releases of Tcl), -implemented an early version of today's EREs. There are four incompatibilities between {\it regexp}'s -near-EREs (`RREs' for short) and AREs. In roughly increasing order of significance: -{\itemize -\item In AREs, {\bf $\backslash$} followed by an alphanumeric character is either an escape or -an error, while in RREs, it was just another way of writing the alphanumeric. -This should not be a problem because there was no reason to write such -a sequence in RREs. - -\item {\bf \{} followed by a digit in an ARE is the beginning of -a bound, while in RREs, {\bf \{} was always an ordinary character. Such sequences -should be rare, and will often result in an error because following characters -will not look like a valid bound. - -\item In AREs, {\bf $\backslash$} remains a special character -within `{\bf $[]$}', so a literal {\bf $\backslash$} within {\bf $[]$} must be -written `{\bf $\backslash\backslash$}'. {\bf $\backslash\backslash$} also gives a literal - {\bf $\backslash$} within {\bf $[]$} in RREs, but only truly paranoid programmers routinely doubled -the backslash. - -\item AREs report the longest/shortest match for the RE, rather -than the first found in a specified search order. This may affect some RREs -which were written in the expectation that the first match would be reported. -(The careful crafting of RREs to optimize the search order for fast matching -is obsolete (AREs examine all possible matches in parallel, and their performance -is largely insensitive to their complexity) but cases where the search -order was exploited to deliberately find a match which was {\it not} the longest/shortest -will need rewriting.) -} - -\subsection{Basic Regular Expressions}\label{wxresynbre} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -BREs differ from EREs in -several respects. `{\bf $|$}', `{\bf +}', and {\bf ?} are ordinary characters and there is no equivalent -for their functionality. The delimiters for bounds -are {\bf $\backslash$\{} and `{\bf $\backslash$\}}', with {\bf \{} and - {\bf \}} by themselves ordinary characters. The parentheses for nested subexpressions -are {\bf $\backslash$(} and `{\bf $\backslash$)}', with {\bf (} and {\bf )} by themselves -ordinary characters. {\bf \caret} is an ordinary -character except at the beginning of the RE or the beginning of a parenthesized -subexpression, {\bf \$} is an ordinary character except at the end of the RE or -the end of a parenthesized subexpression, and {\bf *} is an ordinary character -if it appears at the beginning of the RE or the beginning of a parenthesized -subexpression (after a possible leading `{\bf \caret}'). Finally, single-digit back references -are available, and {\bf $\backslash<$} and {\bf $\backslash>$} are synonyms -for {\bf $[[:<:]]$} and {\bf $[[:>:]]$} respectively; -no other escapes are available. - -\subsection{Regular Expression Character Names}\label{wxresynchars} - -\helpref{Syntax of the builtin regular expression library}{wxresyn} - -Note that the character names are case sensitive. - -\begin{twocollist} -\twocolitem{NUL}{'$\backslash$0'} -\twocolitem{SOH}{'$\backslash$001'} -\twocolitem{STX}{'$\backslash$002'} -\twocolitem{ETX}{'$\backslash$003'} -\twocolitem{EOT}{'$\backslash$004'} -\twocolitem{ENQ}{'$\backslash$005'} -\twocolitem{ACK}{'$\backslash$006'} -\twocolitem{BEL}{'$\backslash$007'} -\twocolitem{alert}{'$\backslash$007'} -\twocolitem{BS}{'$\backslash$010'} -\twocolitem{backspace}{'$\backslash$b'} -\twocolitem{HT}{'$\backslash$011'} -\twocolitem{tab}{'$\backslash$t'} -\twocolitem{LF}{'$\backslash$012'} -\twocolitem{newline}{'$\backslash$n'} -\twocolitem{VT}{'$\backslash$013'} -\twocolitem{vertical-tab}{'$\backslash$v'} -\twocolitem{FF}{'$\backslash$014'} -\twocolitem{form-feed}{'$\backslash$f'} -\twocolitem{CR}{'$\backslash$015'} -\twocolitem{carriage-return}{'$\backslash$r'} -\twocolitem{SO}{'$\backslash$016'} -\twocolitem{SI}{'$\backslash$017'} -\twocolitem{DLE}{'$\backslash$020'} -\twocolitem{DC1}{'$\backslash$021'} -\twocolitem{DC2}{'$\backslash$022'} -\twocolitem{DC3}{'$\backslash$023'} -\twocolitem{DC4}{'$\backslash$024'} -\twocolitem{NAK}{'$\backslash$025'} -\twocolitem{SYN}{'$\backslash$026'} -\twocolitem{ETB}{'$\backslash$027'} -\twocolitem{CAN}{'$\backslash$030'} -\twocolitem{EM}{'$\backslash$031'} -\twocolitem{SUB}{'$\backslash$032'} -\twocolitem{ESC}{'$\backslash$033'} -\twocolitem{IS4}{'$\backslash$034'} -\twocolitem{FS}{'$\backslash$034'} -\twocolitem{IS3}{'$\backslash$035'} -\twocolitem{GS}{'$\backslash$035'} -\twocolitem{IS2}{'$\backslash$036'} -\twocolitem{RS}{'$\backslash$036'} -\twocolitem{IS1}{'$\backslash$037'} -\twocolitem{US}{'$\backslash$037'} -\twocolitem{space}{' '} -\twocolitem{exclamation-mark}{'!'} -\twocolitem{quotation-mark}{'"'} -\twocolitem{number-sign}{'\#'} -\twocolitem{dollar-sign}{'\$'} -\twocolitem{percent-sign}{'\%'} -\twocolitem{ampersand}{'\&'} -\twocolitem{apostrophe}{'$\backslash$''} -\twocolitem{left-parenthesis}{'('} -\twocolitem{right-parenthesis}{')'} -\twocolitem{asterisk}{'*'} -\twocolitem{plus-sign}{'+'} -\twocolitem{comma}{','} -\twocolitem{hyphen}{'-'} -\twocolitem{hyphen-minus}{'-'} -\twocolitem{period}{'.'} -\twocolitem{full-stop}{'.'} -\twocolitem{slash}{'/'} -\twocolitem{solidus}{'/'} -\twocolitem{zero}{'0'} -\twocolitem{one}{'1'} -\twocolitem{two}{'2'} -\twocolitem{three}{'3'} -\twocolitem{four}{'4'} -\twocolitem{five}{'5'} -\twocolitem{six}{'6'} -\twocolitem{seven}{'7'} -\twocolitem{eight}{'8'} -\twocolitem{nine}{'9'} -\twocolitem{colon}{':'} -\twocolitem{semicolon}{';'} -\twocolitem{less-than-sign}{'<'} -\twocolitem{equals-sign}{'='} -\twocolitem{greater-than-sign}{'>'} -\twocolitem{question-mark}{'?'} -\twocolitem{commercial-at}{'@'} -\twocolitem{left-square-bracket}{'$[$'} -\twocolitem{backslash}{'$\backslash$'} -\twocolitem{reverse-solidus}{'$\backslash$'} -\twocolitem{right-square-bracket}{'$]$'} -\twocolitem{circumflex}{'\caret'} -\twocolitem{circumflex-accent}{'\caret'} -\twocolitem{underscore}{'\_'} -\twocolitem{low-line}{'\_'} -\twocolitem{grave-accent}{'`'} -\twocolitem{left-brace}{'\{'} -\twocolitem{left-curly-bracket}{'\{'} -\twocolitem{vertical-line}{'$|$'} -\twocolitem{right-brace}{'\}'} -\twocolitem{right-curly-bracket}{'\}'} -\twocolitem{tilde}{'\destruct{}'} -\twocolitem{DEL}{'$\backslash$177'} -\end{twocollist} - diff --git a/docs/latex/wx/realpoin.tex b/docs/latex/wx/realpoin.tex deleted file mode 100644 index c5b1b6d2ab..0000000000 --- a/docs/latex/wx/realpoin.tex +++ /dev/null @@ -1,39 +0,0 @@ -\section{\class{wxRealPoint}}\label{wxrealpoint} - -A {\bf wxRealPoint} is a useful data structure for graphics operations. -It contains floating point {\it x} and {\it y} members. -See also \helpref{wxPoint}{wxpoint} for an integer version. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/gdicmn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRealPoint::wxRealPoint}\label{wxrealpointctor} - -\func{}{wxRealPoint}{\void} - -\func{}{wxRealPoint}{\param{double}{ x}, \param{double}{ y}} - -Create a point. - -\member{double}{ x} - -\member{double}{ y} - -Members of the {\bf wxRealPoint} object. - - diff --git a/docs/latex/wx/recguard.tex b/docs/latex/wx/recguard.tex deleted file mode 100644 index 7f1f3b4b81..0000000000 --- a/docs/latex/wx/recguard.tex +++ /dev/null @@ -1,109 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: recguard.tex -%% Purpose: wxRecursionGuard documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRecursionGuard}}\label{wxrecursionguard} - -wxRecursionGuard is a very simple class which can be used to prevent reentrancy -problems in a function. It is not thread-safe and so should be used only in -single-threaded programs or in combination with some thread synchronization -mechanisms. - -wxRecursionGuard is always used together with the -\helpref{wxRecursionGuardFlag}{wxrecursionguardflag} like in this example: -\begin{verbatim} - void Foo() - { - static wxRecursionGuardFlag s_flag; - wxRecursionGuard guard(s_flag); - if ( guard.IsInside() ) - { - // don't allow reentrancy - return; - } - - ... - } -\end{verbatim} - -As you can see, wxRecursionGuard simply tests the flag value and sets it to -true if it hadn't been already set. -\helpref{IsInside()}{wxrecursionguardisinside} allows testing the old flag -value. The advantage of using this class compared to directly manipulating the -flag is that the flag is always reset in the wxRecursionGuard destructor and so -you don't risk to forget to do it even if the function returns in an unexpected -way (for example because an exception has been thrown). - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/recguard.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRecursionGuard::wxRecursionGuard}\label{wxrecursionguardctor} - -\func{}{wxRecursionGuard}{\param{wxRecursionGuardFlag\& }{flag}} - -A wxRecursionGuard object must always be initialized with a (static) -\helpref{wxRecursionGuardFlag}{wxrecursionguardflag}. The constructor saves the -value of the flag to be able to return the correct value from -\helpref{IsInside}{wxrecursionguardisinside}. - - -\membersection{wxRecursionGuard::\destruct{wxRecursionGuard}}\label{wxrecursionguarddtor} - -\func{}{\destruct{wxRecursionGuard}}{\void} - -The destructor resets the flag value so that the function can be entered again -the next time. - -Note that it is not virtual and so this class is not meant to be derived from -(besides, there is absolutely no reason to do it anyhow). - - -\membersection{wxRecursionGuard::IsInside}\label{wxrecursionguardisinside} - -\constfunc{bool}{IsInside}{\void} - -Returns \true if we're already inside the code block ``protected'' by this -wxRecursionGuard (i.e. between this line and the end of current scope). Usually -the function using wxRecursionGuard takes some specific actions in such case -(may be simply returning) to prevent reentrant calls to itself. - -If this method returns \false, it is safe to continue. - - - -\section{\class{wxRecursionGuardFlag}}\label{wxrecursionguardflag} - -This is a completely opaque class which exists only to be used with -\helpref{wxRecursionGuard}{wxrecursionguard}, please see the example in that -class documentation. - -Please notice that wxRecursionGuardFlag object \emph{must} be declared -\texttt{static} or the recursion would never be detected. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/recguard.h> - diff --git a/docs/latex/wx/rect.tex b/docs/latex/wx/rect.tex deleted file mode 100644 index 94251a289e..0000000000 --- a/docs/latex/wx/rect.tex +++ /dev/null @@ -1,401 +0,0 @@ -\section{\class{wxRect}}\label{wxrect} - -A class for manipulating rectangles. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/gdicmn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{wxSize}{wxsize} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRect::wxRect}\label{wxrectctor} - -\func{}{wxRect}{\void} - -Default constructor. - -\func{}{wxRect}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height}} - -Creates a wxRect object from x, y, width and height values. - -\func{}{wxRect}{\param{const wxPoint\&}{ topLeft}, \param{const wxPoint\&}{ bottomRight}} - -Creates a wxRect object from top-left and bottom-right points. - -\func{}{wxRect}{\param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}} - -Creates a wxRect object from position and size values. - -\func{}{wxRect}{\param{const wxSize\&}{ size}} - -Creates a wxRect object from size values at the origin. - - -\membersection{wxRect::x}\label{wxrectx} - -\member{int}{x} - -x coordinate of the top-level corner of the rectangle. - - -\membersection{wxRect::y}\label{wxrecty} - -\member{int}{y} - -y coordinate of the top-level corner of the rectangle. - - -\membersection{wxRect::width}\label{wxrectwidth} - -\member{int}{width} - -Width member. - - -\membersection{wxRect::height}\label{wxrectheight} - -\member{int}{height} - -Height member. - - -\membersection{wxRect::CentreIn}\label{wxrectcentrein} - -\constfunc{wxRect}{CentreIn}{\param{const wxRect\& }{r}, \param{int }{dir = wxBOTH}} - -\constfunc{wxRect}{CenterIn}{\param{const wxRect\& }{r}, \param{int }{dir = wxBOTH}} - -Returns the rectangle having the same size as this one but centered relatively -to the given rectangle \arg{r}. By default, rectangle is centred in both -directions but if \arg{dir} includes only \texttt{wxVERTICAL} or only -\texttt{wxHORIZONTAL} flag, then it is only centered in this direction while -the other component of its position remains unchanged. - - -\membersection{wxRect::Contains}\label{wxrectcontains} - -\constfunc{bool}{Contains}{\param{int }{x}, \param{int }{y}} - -\constfunc{bool}{Contains}{\param{const wxPoint\& }{pt}} - -Returns {\tt true} if the given point is inside the rectangle (or on its -boundary) and {\tt false} otherwise. - -\constfunc{bool}{Contains}{\param{const wxRect\& }{rect}} - -Returns \true if the given rectangle is completely inside this rectangle -(or touches its boundary) and \false otherwise. - - -\membersection{wxRect::Deflate}\label{wxrectdeflate} - -\func{void}{Deflate}{\param{wxCoord }{dx}, \param{wxCoord }{dy}} - -\func{void}{Deflate}{\param{const wxSize\& }{diff}} - -\func{void}{Deflate}{\param{wxCoord }{diff}} - -\constfunc{wxRect}{Deflate}{\param{wxCoord }{dx}, \param{wxCoord }{dy}} - -Decrease the rectangle size. - -This method is the opposite from \helpref{Inflate}{wxrectinflate}: -Deflate(a, b) is equivalent to Inflate(-a, -b). -Please refer to \helpref{Inflate}{wxrectinflate} for full description. - -\wxheading{See also} - -\helpref{Inflate}{wxrectinflate} - - -\membersection{wxRect::GetBottom}\label{wxrectgetbottom} - -\constfunc{int}{GetBottom}{\void} - -Gets the bottom point of the rectangle. - - -\membersection{wxRect::GetHeight}\label{wxrectgetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height member. - - -\membersection{wxRect::GetLeft}\label{wxrectgetleft} - -\constfunc{int}{GetLeft}{\void} - -Gets the left point of the rectangle (the same as \helpref{wxRect::GetX}{wxrectgetx}). - - -\membersection{wxRect::GetPosition}\label{wxrectgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -Gets the position. - - -\membersection{wxRect::GetTopLeft}\label{wxrectgettopleft} - -\constfunc{wxPoint}{GetTopLeft}{\void} - -Gets the position of the top left corner of the rectangle, same as -\helpref{GetPosition}{wxrectgetposition}. - - -\membersection{wxRect::GetTopRight}\label{wxrectgettopright} - -\constfunc{wxPoint}{GetTopRight}{\void} - -Gets the position of the top right corner. - - -\membersection{wxRect::GetBottomLeft}\label{wxrectgetbottomleft} - -\constfunc{wxPoint}{GetBottomLeft}{\void} - -Gets the position of the bottom left corner. - - -\membersection{wxRect::GetBottomRight}\label{wxrectgetbottomright} - -\constfunc{wxPoint}{GetBottomRight}{\void} - -Gets the position of the bottom right corner. - - -\membersection{wxRect::GetRight}\label{wxrectgetright} - -\constfunc{int}{GetRight}{\void} - -Gets the right point of the rectangle. - - -\membersection{wxRect::GetSize}\label{wxrectgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Gets the size. - -\wxheading{See also} - -\helpref{wxRect::SetSize}{wxrectsetsize} - - -\membersection{wxRect::GetTop}\label{wxrectgettop} - -\constfunc{int}{GetTop}{\void} - -Gets the top point of the rectangle (the same as \helpref{wxRect::GetY}{wxrectgety}). - - -\membersection{wxRect::GetWidth}\label{wxrectgetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width member. - - -\membersection{wxRect::GetX}\label{wxrectgetx} - -\constfunc{int}{GetX}{\void} - -Gets the x member. - - -\membersection{wxRect::GetY}\label{wxrectgety} - -\constfunc{int}{GetY}{\void} - -Gets the y member. - - -\membersection{wxRect::Inflate}\label{wxrectinflate} - -\func{void}{Inflate}{\param{wxCoord }{dx}, \param{wxCoord }{dy}} - -\func{void}{Inflate}{\param{const wxSize\& }{diff}} - -\func{void}{Inflate}{\param{wxCoord }{diff}} - -\constfunc{wxRect}{Inflate}{\param{wxCoord }{dx}, \param{wxCoord }{dy}} - -Increases the size of the rectangle. - -The second form uses the same {\it diff} for both {\it dx} and {\it dy}. - -The first two versions modify the rectangle in place, the last one returns a -new rectangle leaving this one unchanged. - -The left border is moved farther left and the right border is moved farther -right by {\it dx}. The upper border is moved farther up and the bottom border -is moved farther down by {\it dy}. (Note the the width and height of the -rectangle thus change by 2*{\it dx} and 2*{\it dy}, respectively.) If one or -both of {\it dx} and {\it dy} are negative, the opposite happens: the rectangle -size decreases in the respective direction. - -Inflating and deflating behaves ``naturally''. Defined more precisely, that -means: -\begin{enumerate} - \item ``Real'' inflates (that is, {\it dx} and/or {\it dy} >= 0) are not - constrained. Thus inflating a rectangle can cause its upper left corner - to move into the negative numbers. (the versions prior to 2.5.4 forced - the top left coordinate to not fall below (0, 0), which implied a - forced move of the rectangle.) - - \item Deflates are clamped to not reduce the width or height of the - rectangle below zero. In such cases, the top-left corner is nonetheless - handled properly. For example, a rectangle at (10, 10) with size (20, - 40) that is inflated by (-15, -15) will become located at (20, 25) at - size (0, 10). Finally, observe that the width and height are treated - independently. In the above example, the width is reduced by 20, - whereas the height is reduced by the full 30 (rather than also stopping - at 20, when the width reached zero). -\end{enumerate} - -\wxheading{See also} - -\helpref{Deflate}{wxrectdeflate} - - -\membersection{wxRect::Intersect}\label{wxrectintersect} - -\constfunc{wxRect}{Intersect}{\param{const wxRect\& }{rect}} - -\func{wxRect\&}{Intersect}{\param{const wxRect\& }{rect}} - -Modifies the rectangle to contain the overlapping box of this rectangle and the -one passed in as parameter. The const version returns the new rectangle, the -other one modifies this rectangle in place. - - -\membersection{wxRect::Intersects}\label{wxrectintersects} - -\constfunc{bool}{Intersects}{\param{const wxRect\& }{rect}} - -Returns {\tt true} if this rectangle has a non-empty intersection with the -rectangle {\it rect} and {\tt false} otherwise. - - -\membersection{wxRect::IsEmpty}\label{wxrectisempty} - -\constfunc{bool}{IsEmpty}{} - -Returns {\tt true} if this rectangle has a width or height less than or equal to -0 and {\tt false} otherwise. - - -\membersection{wxRect::Offset}\label{wxrectoffset} - -\func{void}{Offset}{\param{wxCoord }{dx}, \param{wxCoord }{dy}} - -\func{void}{Offset}{\param{const wxPoint\& }{pt}} - -Moves the rectangle by the specified offset. If {\it dx} is positive, the -rectangle is moved to the right, if {\it dy} is positive, it is moved to the -bottom, otherwise it is moved to the left or top respectively. - - -\membersection{wxRect::SetHeight}\label{wxrectsetheight} - -\func{void}{SetHeight}{\param{int}{ height}} - -Sets the height. - - -\membersection{wxRect::SetSize}\label{wxrectsetsize} - -\func{void}{SetSize}{\param{const wxSize\&}{ s}} - -Sets the size. - -\wxheading{See also} - -\helpref{wxRect::GetSize}{wxrectgetsize} - - -\membersection{wxRect::SetWidth}\label{wxrectsetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the width. - - -\membersection{wxRect::SetX}\label{wxrectsetx} - -\func{void}{SetX}{\param{int}{ x}} - -Sets the x position. - - -\membersection{wxRect::SetY}\label{wxrectsety} - -\func{void}{SetY}{\param{int}{ y}} - -Sets the y position. - - -\membersection{wxRect::Union}\label{wxrectunion} - -\constfunc{wxRect}{Union}{\param{const wxRect\&}{ rect}} - -\func{wxRect\&}{Union}{\param{const wxRect\&}{ rect}} - -Modifies the rectangle to contain the bounding box of this rectangle and the -one passed in as parameter. The const version returns the new rectangle, the -other one modifies this rectangle in place. - - -\membersection{wxRect::operator $=$}\label{wxrectassign} - -\func{void}{operator $=$}{\param{const wxRect\& }{rect}} - -Assignment operator. - - -\membersection{wxRect::operator $==$}\label{wxrectequal} - -\func{bool}{operator $==$}{\param{const wxRect\& }{r1}, \param{const wxRect\& }{r2}} - -Equality operator. - - -\membersection{wxRect::operator $!=$}\label{wxrectnotequal} - -\func{bool}{operator $!=$}{\param{const wxRect\& }{r1}, \param{const wxRect\& }{r2}} - -Inequality operator. - - -\func{wxRect}{operator $+$}{\param{const wxRect\& }{r1}, \param{const wxRect\& }{r2}} - -\func{wxRect\&}{operator $+=$}{\param{const wxRect\& }{r}} - -Like \helpref{Union}{wxrectunion} but don't treat empty rectangles specially. - -\wxheading{See also} - -\helpref{wxRect::Union}{wxrectunion} - - -\func{wxRect}{operator $*$}{\param{const wxRect\& }{r1}, \param{const wxRect\& }{r2}} - -\func{wxRect\&}{operator $*=$}{\param{const wxRect\& }{r}} - -Returns the intersection of two rectangles (which may be empty). - - diff --git a/docs/latex/wx/referenc.tex b/docs/latex/wx/referenc.tex deleted file mode 100644 index 379695ad55..0000000000 --- a/docs/latex/wx/referenc.tex +++ /dev/null @@ -1,82 +0,0 @@ -\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{thesis} -%KB: -\addtolength{\textwidth}{1in} -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\topmargin}{-0.5in} -\addtolength{\textheight}{1in} -\sloppy -%end of my changes -%\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\newcommand{\indexit}[1]{#1\index{#1}} -\newcommand{\pipe}[0]{$\|$\ }% -\input psbox.tex - -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} - -\parskip=10pt -\parindent=0pt -\title{Reference Manual for wxWidgets 2.0: a portable C++ GUI toolkit} -\author{Julian Smart} -\date{November 4th 1998} - -\makeindex -\begin{document} -\maketitle - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\pagenumbering{roman} -\tableofcontents - - -\chapter*{Copyright notice} -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -\begin{center} -Copyright (c) 1998 Julian Smart, Robert Roebling and other -members of the wxWidgets team\\ -Portions (c) 1996 Artificial Intelligence Applications Institute\\ -\end{center} - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose is hereby granted without fee, provided that the -above copyright notice, author statement and this permission notice appear in -all copies of this software and related documentation. - -THE SOFTWARE IS PROVIDED ``AS-IS'' AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, -IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF -MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - -IN NO EVENT SHALL THE ARTIFICIAL INTELLIGENCE APPLICATIONS INSTITUTE OR THE -UNIVERSITY OF EDINBURGH OR ANY MEMBERS OF THE WXWINDOWS TEAM BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF -DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -\chapter{This manual} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -wxWidgets is a class library for C++ providing GUI (Graphical User -Interface) and other facilities on more than one platform. This document -gives detailed information about the classes and functions that make up -the wxWidgets API (Application Programming Interface). Please refer to the -wxWidgets user manual for a more general description of wxWidgets. - -\input{classes.tex} -\input{category.tex} -\input{topics.tex} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage} -\printindex - -\end{document} - diff --git a/docs/latex/wx/refs.bib b/docs/latex/wx/refs.bib deleted file mode 100644 index 836814c312..0000000000 --- a/docs/latex/wx/refs.bib +++ /dev/null @@ -1,59 +0,0 @@ -@techreport{robins87, -author = {Robins, Gabriel}, -title = {The {ISI} grapher: a portable tool for displaying graphs pictorially (ISI/RS-87-196)}, -institution = {University of South California}, -year = {1987}, -month = {September} -} -@book{helpbook, -author = {Boggan, Scott and Fakas, David and Welinske, Joe} -, title = {Developing on-line help for {W}indows} -, publisher = {Sams Publishing} -, address = {11711 North College, Carmel, Indiana 46032, USA} -, year = {1993} -} -@book{wong93, -author = {Wong, William} -, title = {Plug and play programming} -, publisher = {M and T Books} -, address = {115 West 18th Street, New York, New York 10011} -, year = {1993} -} -@book{pree94, -author = {Pree, Wolfgang} -, title = {Design patterns for object-oriented software development} -, publisher = {Addison-Wesley} -, address = {Reading, MA} -, year = {1994} -} -@book{gamma95, -author = {Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides, John} -, title = {Design patterns: elements of reusable object-oriented software} -, publisher = {Addison-Wesley} -, address = {Reading, MA} -, year = {1994} -} -@book{kopka, -author = {Kopka, Helmut and Daly, Patrick W.} -, title = {A Guide to LaTeX} -, publisher = {Addison-Wesley} -, year = {1993} -} -@manual{smart95a, -author = {Smart, Julian} -, title = {wxCLIPS User Manual} -, publisher = {Artificial Intelligence Applications Institute} -, organization = {University of Edinburgh} -, address = {80 South Bridge, Edinburgh, EH1 1HN} -, year = {1995} -} - -@manual{smart95b, -author = {Smart, Julian} -, title = {Tex2RTF User Manual} -, publisher = {Artificial Intelligence Applications Institute} -, organization = {University of Edinburgh} -, address = {80 South Bridge, Edinburgh, EH1 1HN} -, year = {1995} -} - diff --git a/docs/latex/wx/regex.tex b/docs/latex/wx/regex.tex deleted file mode 100644 index 59026f0d71..0000000000 --- a/docs/latex/wx/regex.tex +++ /dev/null @@ -1,253 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: regex.tex -%% Purpose: wxRegEx documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 14.07.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRegEx}}\label{wxregex} - -wxRegEx represents a regular expression. This class provides support -for regular expressions matching and also replacement. - -It is built on top of either the system library (if it has support -for POSIX regular expressions - which is the case of the most modern -Unices) or uses the built in Henry Spencer's library. Henry Spencer -would appreciate being given credit in the documentation of software -which uses his library, but that is not a requirement. - -Regular expressions, as defined by POSIX, come in two flavours: {\it extended} -and {\it basic}. The builtin library also adds a third flavour -of expression \helpref{advanced}{wxresyn}, which is not available -when using the system library. - -Unicode is fully supported only when using the builtin library. -When using the system library in Unicode mode, the expressions and data -are translated to the default 8-bit encoding before being passed to -the library. - -On platforms where a system library is available, the default is to use -the builtin library for Unicode builds, and the system library otherwise. -It is possible to use the other if preferred by selecting it when building -the wxWidgets. - -\wxheading{Derived from} - -No base class - -\wxheading{Data structures} - -Flags for regex compilation to be used with \helpref{Compile()}{wxregexcompile}: - -\begin{verbatim} -enum -{ - // use extended regex syntax - wxRE_EXTENDED = 0, - - // use advanced RE syntax (built-in regex only) -#ifdef wxHAS_REGEX_ADVANCED - wxRE_ADVANCED = 1, -#endif - - // use basic RE syntax - wxRE_BASIC = 2, - - // ignore case in match - wxRE_ICASE = 4, - - // only check match, don't set back references - wxRE_NOSUB = 8, - - // if not set, treat '\n' as an ordinary character, otherwise it is - // special: it is not matched by '.' and '^' and '$' always match - // after/before it regardless of the setting of wxRE_NOT[BE]OL - wxRE_NEWLINE = 16, - - // default flags - wxRE_DEFAULT = wxRE_EXTENDED -} -\end{verbatim} - -Flags for regex matching to be used with \helpref{Matches()}{wxregexmatches}. - -These flags are mainly useful when doing several matches in a long string -to prevent erroneous matches for {\tt '\textasciicircum'} and {\tt '\$'}: - -\begin{verbatim} -enum -{ - // '^' doesn't match at the start of line - wxRE_NOTBOL = 32, - - // '$' doesn't match at the end of line - wxRE_NOTEOL = 64 -} -\end{verbatim} - -\wxheading{Examples} - -A bad example of processing some text containing email addresses (the example -is bad because the real email addresses can have more complicated form than -{\tt user@host.net}): - -\begin{verbatim} -wxString text; -... -wxRegEx reEmail = wxT("([^@]+)@([[:alnum:].-_].)+([[:alnum:]]+)"); -if ( reEmail.Matches(text) ) -{ - wxString text = reEmail.GetMatch(email); - wxString username = reEmail.GetMatch(email, 1); - if ( reEmail.GetMatch(email, 3) == wxT("com") ) // .com TLD? - { - ... - } -} - -// or we could do this to hide the email address -size_t count = reEmail.ReplaceAll(text, wxT("HIDDEN@\\2\\3")); -printf("text now contains %u hidden addresses", count); -\end{verbatim} - -\wxheading{Include files} - -<wx/regex.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRegEx::wxRegEx}\label{wxregexwxregex} - -\func{}{wxRegEx}{\void} - -Default ctor: use \helpref{Compile()}{wxregexcompile} later. - -\func{}{wxRegEx}{\param{const wxString\& }{expr}, \param{int }{flags = wxRE\_DEFAULT}} - -Create and compile the regular expression, use -\helpref{IsValid}{wxregexisvalid} to test for compilation errors. - -\membersection{wxRegEx::\destruct{wxRegEx}}\label{wxregexdtor} - -\func{}{\destruct{wxRegEx}}{\void} - -dtor not virtual, don't derive from this class - -\membersection{wxRegEx::Compile}\label{wxregexcompile} - -\func{bool}{Compile}{\param{const wxString\& }{pattern}, \param{int }{flags = wxRE\_DEFAULT}} - -Compile the string into regular expression, return {\tt true} if ok or {\tt false} -if string has a syntax error. - -\membersection{wxRegEx::IsValid}\label{wxregexisvalid} - -\constfunc{bool}{IsValid}{\void} - -Return {\tt true} if this is a valid compiled regular expression, {\tt false} -otherwise. - -\membersection{wxRegEx::GetMatch}\label{wxregexgetmatch} - -\constfunc{bool}{GetMatch}{\param{size\_t* }{start}, \param{size\_t* }{len}, \param{size\_t }{index = 0}} - -Get the start index and the length of the match of the expression -(if {\it index} is $0$) or a bracketed subexpression ({\it index} different -from $0$). - -May only be called after successful call to \helpref{Matches()}{wxregexmatches} -and only if {\tt wxRE\_NOSUB} was {\bf not} used in -\helpref{Compile()}{wxregexcompile}. - -Returns {\tt false} if no match or if an error occurred. - -\constfunc{wxString}{GetMatch}{\param{const wxString\& }{text}, \param{size\_t }{index = 0}} - -Returns the part of string corresponding to the match where {\it index} is -interpreted as above. Empty string is returned if match failed - -May only be called after successful call to \helpref{Matches()}{wxregexmatches} -and only if {\tt wxRE\_NOSUB} was {\bf not} used in -\helpref{Compile()}{wxregexcompile}. - -\membersection{wxRegEx::GetMatchCount}\label{wxregexgetmatchcount} - -\constfunc{size\_t}{GetMatchCount}{\void} - -Returns the size of the array of matches, i.e. the number of bracketed -subexpressions plus one for the expression itself, or $0$ on error. - -May only be called after successful call to \helpref{Compile()}{wxregexcompile}. -and only if {\tt wxRE\_NOSUB} was {\bf not} used. - -\membersection{wxRegEx::Matches}\label{wxregexmatches} - -\constfunc{bool}{Matches}{\param{const wxChar* }{text}, \param{int }{flags = 0}} - -\constfunc{bool}{Matches}{\param{const wxChar* }{text}, \param{int }{flags}, \param{size\_t }{len}} - -\constfunc{bool}{Matches}{\param{const wxString\& }{text}, \param{int }{flags = 0}} - -Matches the precompiled regular expression against the string {\it text}, -returns {\tt true} if matches and {\tt false} otherwise. - -{\it Flags} may be combination of {\tt wxRE\_NOTBOL} and {\tt wxRE\_NOTEOL}. - -Some regex libraries assume that the text given is null terminated, while -others require the length be given as a separate parameter. Therefore for -maximum portability assume that {\it text} cannot contain embedded nulls. - -When the {\it Matches(const wxChar *text, int flags = 0)} form is used, -a {\it wxStrlen()} will be done internally if the regex library requires the -length. When using {\it Matches()} in a loop -the {\it Matches(text, flags, len)} form can be used instead, making it -possible to avoid a {\it wxStrlen()} inside the loop. - -May only be called after successful call to \helpref{Compile()}{wxregexcompile}. - -\membersection{wxRegEx::Replace}\label{wxregexreplace} - -\constfunc{int}{Replace}{\param{wxString* }{text}, \param{const wxString\& }{replacement}, \param{size\_t }{maxMatches = 0}} - -Replaces the current regular expression in the string pointed to by -{\it text}, with the text in {\it replacement} and return number of matches -replaced (maybe $0$ if none found) or $-1$ on error. - -The replacement text may contain back references {\tt $\backslash$number} which will be -replaced with the value of the corresponding subexpression in the -pattern match. {\tt $\backslash$0} corresponds to the entire match and {\tt \&} is a -synonym for it. Backslash may be used to quote itself or {\tt \&} character. - -{\it maxMatches} may be used to limit the number of replacements made, setting -it to $1$, for example, will only replace first occurrence (if any) of the -pattern in the text while default value of $0$ means replace all. - -\membersection{wxRegEx::ReplaceAll}\label{wxregexreplaceall} - -\constfunc{int}{ReplaceAll}{\param{wxString* }{text}, \param{const wxString\& }{replacement}} - -Replace all occurrences: this is actually a synonym for -\helpref{Replace()}{wxregexreplace}. - -\wxheading{See also} - -\helpref{ReplaceFirst}{wxregexreplacefirst} - -\membersection{wxRegEx::ReplaceFirst}\label{wxregexreplacefirst} - -\constfunc{int}{ReplaceFirst}{\param{wxString* }{text}, \param{const wxString\& }{replacement}} - -Replace the first occurrence. - -\wxheading{See also} - -\helpref{Replace}{wxregexreplace} - diff --git a/docs/latex/wx/region.tex b/docs/latex/wx/region.tex deleted file mode 100644 index 060b19f31a..0000000000 --- a/docs/latex/wx/region.tex +++ /dev/null @@ -1,409 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: region.tex -%% Purpose: wxRegion documentation -%% Author: wxTeam -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxTeam -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRegion}}\label{wxregion} - -A wxRegion represents a simple or complex region on a device context or window. - -This class uses \helpref{reference counting and copy-on-write}{trefcount} -internally so that assignments between two instances of this class are very -cheap. You can therefore use actual objects instead of pointers without -efficiency problems. If an instance of this class is changed it will create -its own data internally so that other instances, which previously shared the -data using the reference counting, are not affected. - -\wxheading{Derived from} - -\helpref{wxGDIObject}{wxgdiobject}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/region.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxRegionIterator}{wxregioniterator} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRegion::wxRegion}\label{wxregionctor} - -\func{}{wxRegion}{\void} - -Default constructor. - -\func{}{wxRegion}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Constructs a rectangular region with the given position and size. - -\func{}{wxRegion}{\param{const wxPoint\&}{ topLeft}, \param{const wxPoint\&}{ bottomRight}} - -Constructs a rectangular region from the top left point and the bottom right point. - -\func{}{wxRegion}{\param{const wxRect\&}{ rect}} - -Constructs a rectangular region a wxRect object. - -\func{}{wxRegion}{\param{const wxRegion\&}{ region}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxRegion}{\param{size\_t}{ n}, \param{const wxPoint }{*points}, \param{int }{fillStyle = wxWINDING\_RULE}} - -Constructs a region corresponding to the polygon made of {\it n} points in the -provided array. {\it fillStyle} parameter may have values -{\tt wxWINDING\_RULE} or {\tt wxODDEVEN\_RULE}. - -\func{}{wxRegion}{\param{const wxBitmap\&}{ bmp}} - -\func{}{wxRegion}{\param{const wxBitmap\&}{ bmp}, - \param{const wxColour\&}{ transColour}, - \param{int}{ tolerance = 0}} - -Constructs a region using the non-transparent pixels of a bitmap. See -\helpref{Union}{wxregionunion} for more details. - - - -\membersection{wxRegion::\destruct{wxRegion}}\label{wxregiondtor} - -\func{}{\destruct{wxRegion}}{\void} - -Destructor. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - - -\membersection{wxRegion::Clear}\label{wxregionclear} - -\func{void}{Clear}{\void} - -Clears the current region. - - -\membersection{wxRegion::Contains}\label{wxregioncontains} - -\constfunc{wxRegionContain}{Contains}{\param{long\& }{x}, \param{long\& }{y}} - -Returns a value indicating whether the given point is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{const wxPoint\&}{ pt}} - -Returns a value indicating whether the given point is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{long\& }{x}, \param{long\& }{y}, \param{long\& }{width}, \param{long\& }{height}} - -Returns a value indicating whether the given rectangle is contained within the region. - -\constfunc{wxRegionContain}{Contains}{\param{const wxRect\& }{rect}} - -Returns a value indicating whether the given rectangle is contained within the region. - -\wxheading{Return value} - -The return value is one of wxOutRegion, wxPartRegion and wxInRegion. - -On Windows, only wxOutRegion and wxInRegion are returned; a value wxInRegion then indicates that -all or some part of the region is contained in this region. - - -\membersection{wxRegion::ConvertToBitmap}\label{wxregionconverttobitmap} - -\constfunc{wxBitmap}{ConvertToBitmap}{} - -Convert the region to a black and white bitmap with the white pixels -being inside the region. - - -\membersection{wxRegion::GetBox}\label{wxregiongetbox} - -\constfunc{void}{GetBox}{\param{wxCoord\& }{x}, \param{wxCoord\& }{y}, \param{wxCoord\& }{width}, \param{wxCoord\& }{height}} - -Returns the outer bounds of the region. - -\constfunc{wxRect}{GetBox}{\void} - -Returns the outer bounds of the region. - - -\membersection{wxRegion::Intersect}\label{wxregionintersect} - -\func{bool}{Intersect}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Finds the intersection of this region and another, rectangular region, specified using position and size. - -\func{bool}{Intersect}{\param{const wxRect\&}{ rect}} - -Finds the intersection of this region and another, rectangular region. - -\func{bool}{Intersect}{\param{const wxRegion\&}{ region}} - -Finds the intersection of this region and another region. - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise. - -\wxheading{Remarks} - -Creates the intersection of the two regions, that is, the parts which are in both regions. The result -is stored in this region. - - -\membersection{wxRegion::IsEmpty}\label{wxregionisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns {\tt true} if the region is empty, {\tt false} otherwise. - - -\membersection{wxRegion::IsEqual}\label{wxregionisequal} - -\constfunc{bool}{IsEqual}{\param{const wxRegion\& }{region}} - -Returns {\tt true} if the region is equal to, i.e. covers the same area as, -another one. Note that if both this region and \arg{region} are invalid, they -are considered to be equal. - - -\membersection{wxRegion::Subtract}\label{wxregionsubtract} - -\func{bool}{Subtract}{\param{const wxRect\&}{ rect}} - -Subtracts a rectangular region from this region. - -\func{bool}{Subtract}{\param{const wxRegion\&}{ region}} - -Subtracts a region from this region. - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise. - -\wxheading{Remarks} - -This operation combines the parts of 'this' region that are not part of the second region. -The result is stored in this region. - - -\membersection{wxRegion::Offset}\label{wxregionoffset} - -\func{bool}{Offset}{\param{wxCoord}{ x}, \param{wxCoord}{ y}} - -\func{bool}{Offset}{\param{const wxPoint\& }{ pt}} - -Moves the region by the specified offsets in horizontal and vertical -directions. - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise (the region is unchanged then). - - -\membersection{wxRegion::Union}\label{wxregionunion} - -\func{bool}{Union}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Finds the union of this region and another, rectangular region, specified using position and size. - -\func{bool}{Union}{\param{const wxRect\&}{ rect}} - -Finds the union of this region and another, rectangular region. - -\func{bool}{Union}{\param{const wxRegion\&}{ region}} - -Finds the union of this region and another region. - -\func{bool}{Union}{\param{const wxBitmap\&}{ bmp}} - -Finds the union of this region and the non-transparent pixels of a -bitmap. Bitmap's mask is used to determine transparency. If the bitmap doesn't -have a mask, solid rectangle of bitmap's dimensions is used. - -\func{bool}{Union}{\param{const wxBitmap\&}{ bmp}, - \param{const wxColour\&}{ transColour}, - \param{int}{ tolerance = 0}} - -Finds the union of this region and the non-transparent pixels of a -bitmap. Colour to be treated as transparent is specified in the -\arg{transColour} argument, along with an -optional colour tolerance value. - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise. - -\wxheading{Remarks} - -This operation creates a region that combines all of this region and the second region. -The result is stored in this region. - - -\membersection{wxRegion::Xor}\label{wxregionxor} - -\func{bool}{Xor}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}} - -Finds the Xor of this region and another, rectangular region, specified using position and size. - -\func{bool}{Xor}{\param{const wxRect\&}{ rect}} - -Finds the Xor of this region and another, rectangular region. - -\func{bool}{Xor}{\param{const wxRegion\&}{ region}} - -Finds the Xor of this region and another region. - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise. - -\wxheading{Remarks} - -This operation creates a region that combines all of this region and the second region, except -for any overlapping areas. The result is stored in this region. - - -\membersection{wxRegion::operator $=$}\label{wxregionassign} - -\func{void}{operator $=$}{\param{const wxRegion\&}{ region}} - -Assignment operator, using \helpref{reference counting}{trefcount}. - - - -\section{\class{wxRegionIterator}}\label{wxregioniterator} - -This class is used to iterate through the rectangles in a region, -typically when examining the damaged regions of a window within an OnPaint call. - -To use it, construct an iterator object on the stack and loop through the -regions, testing the object and incrementing the iterator at the end of the loop. - -See \helpref{wxPaintEvent}{wxpaintevent} for an example of use. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/region.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxPaintEvent}{wxpaintevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRegionIterator::wxRegionIterator}\label{wxregioniteratorctor} - -\func{}{wxRegionIterator}{\void} - -Default constructor. - -\func{}{wxRegionIterator}{\param{const wxRegion\&}{ region}} - -Creates an iterator object given a region. - - -\membersection{wxRegionIterator::GetX}\label{wxregioniteratorgetx} - -\constfunc{wxCoord}{GetX}{\void} - -Returns the x value for the current region. - - -\membersection{wxRegionIterator::GetY}\label{wxregioniteratorgety} - -\constfunc{wxCoord}{GetY}{\void} - -Returns the y value for the current region. - - -\membersection{wxRegionIterator::GetW}\label{wxregioniteratorgetw} - -\constfunc{wxCoord}{GetW}{\void} - -An alias for GetWidth. - - -\membersection{wxRegionIterator::GetHeight}\label{wxregioniteratorgetheight} - -\constfunc{wxCoord}{GetHeight}{\void} - -Returns the height value for the current region. - - -\membersection{wxRegionIterator::GetH}\label{wxregioniteratorgeth} - -\constfunc{wxCoord}{GetH}{\void} - -An alias for GetHeight. - - -\membersection{wxRegionIterator::GetRect}\label{wxregioniteratorgetrect} - -\constfunc{wxRect}{GetRect}{\void} - -Returns the current rectangle. - - -\membersection{wxRegionIterator::GetWidth}\label{wxregioniteratorgetwidth} - -\constfunc{wxCoord}{GetWidth}{\void} - -Returns the width value for the current region. - - -\membersection{wxRegionIterator::HaveRects}\label{wxregioniteratorhaverects} - -\constfunc{bool}{HaveRects}{\void} - -Returns {\tt true} if there are still some rectangles; otherwise returns {\tt false}. - - -\membersection{wxRegionIterator::Reset}\label{wxregioniteratorreset} - -\func{void}{Reset}{\void} - -Resets the iterator to the beginning of the rectangles. - -\func{void}{Reset}{\param{const wxRegion\&}{ region}} - -Resets the iterator to the given region. - - -\membersection{wxRegionIterator::operator $++$}\label{wxregioniteratorinc} - -\func{void}{operator $++$}{\void} - -Increment operator. Increments the iterator to the next region. - -\pythonnote{A wxPython alias for this operator is called {\tt Next}.} - - -\membersection{wxRegionIterator::operator bool}\label{wxregioniteratorbool} - -\constfunc{}{operator bool}{\void} - -Returns {\tt true} if there are still some rectangles; otherwise returns {\tt false}. - -You can use this to test the iterator object as if it were of type bool. - diff --git a/docs/latex/wx/regkey.tex b/docs/latex/wx/regkey.tex deleted file mode 100644 index 20519cd3fc..0000000000 --- a/docs/latex/wx/regkey.tex +++ /dev/null @@ -1,280 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: regkey.tex -%% Purpose: wxRegKey docs -%% Author: Ryan Norton <wxprojects@comcast.net>, C.C.Chakkaradeep -%% Modified by: -%% Created: 2/5/2005 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton (C.C.Chakkaradeep?) -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRegKey}}\label{wxregkey} - -wxRegKey is a class representing the Windows registry (it is only available -under Windows). One can create, query and delete registry keys using this -class. - -The Windows registry is easy to understand. There are five registry keys, -namely: - -\begin{enumerate}\itemsep=0pt -\item HKEY\_CLASSES\_ROOT (HKCR) -\item HKEY\_CURRENT\_USER (HKCU) -\item HKEY\_LOCAL\_MACHINE (HKLM) -\item HKEY\_CURRENT\_CONFIG (HKCC) -\item HKEY\_USERS (HKU) -\end{enumerate} - -After creating a key, it can hold a value. The values can be: - -\begin{enumerate}\itemsep=0pt -\item String Value -\item Binary Value -\item DWORD Value -\item Multi String Value -\item Expandable String Value -\end{enumerate} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/msw/registry.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Example} - -\begin{verbatim} -wxRegKey *pRegKey = new wxRegKey("HKEY_LOCAL_MACHINE\\Software\\MyKey"); - -//will create the Key if it does not exist -if( !pRegKey->Exists() ) - pRegKey->Create(); - -//will create a new value MYVALUE and set it to 12 -pRegKey->SetValue("MYVALUE",12); - -//Query for the Value and Retrieve it -long lMyVal; -wxString strTemp; -pRegKey->QueryValue("MYVALUE",&lMyVal); -strTemp.Printf("%d",lMyVal); -wxMessageBox(strTemp,"Registry Value",0,this); - -//Retrive the number of SubKeys and enumerate them -size_t nSubKeys; -pRegKey->GetKeyInfo(&nSubKeys,NULL,NULL,NULL); - -pRegKey->GetFirstKey(strTemp,1); -for(int i=0;i<nSubKeys;i++) -{ - wxMessageBox(strTemp,"SubKey Name",0,this); - pRegKey->GetNextKey(strTemp,1); -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRegKey::wxRegKey}\label{wxregkeyctor} - -\func{}{wxRegKey}{\void} - -The Constructor to set to HKCR - -\func{}{wxRegKey}{\param{const wxString\&}{ strKey}} - -The constructor to set the full name of the key. - -\func{}{wxRegKey}{\param{const wxRegKey\&}{ keyParent}, \param{const wxString\&}{ strKey}} - -The constructor to set the full name of the key under a previously created parent. - - -\membersection{wxRegKey::Close}\label{wxregkeyclose} - -\func{void}{Close}{\void} - -Closes the key. - - -\membersection{wxRegKey::Create}\label{wxregkeycreate} - -\func{bool}{Create}{\param{bool }{bOkIfExists = true}} - -Creates the key. Will fail if the key already exists and {\it bOkIfExists} is false. - - -\membersection{wxRegKey::DeleteSelf}\label{wxregkeydeleteself} - -\func{void}{DeleteSelf}{\void} - -Deletes this key and all of its subkeys and values recursively. - - -\membersection{wxRegKey::DeleteKey}\label{wxregkeydeletekey} - -\func{void}{DeleteKey}{\param{const wxChar *}{szKey}} - -Deletes the subkey with all of its subkeys/values recursively. - - -\membersection{wxRegKey::DeleteValue}\label{wxregkeydeletevalue} - -\func{void}{DeleteValue}{\param{const wxChar *}{szKey}} - -Deletes the named value. - - -\membersection{wxRegKey::Exists}\label{wxregkeyexists} - -\constfunc{static bool}{Exists}{\void} - -Returns true if the key exists. - - -\membersection{wxRegKey::GetName}\label{wxregkeygetname} - -\constfunc{wxString}{GetName}{\param{bool }{bShortPrefix = true}} - -Gets the name of the registry key. - - -\membersection{wxRegKey::GetFirstKey}\label{wxregkeygetfirstkey} - -\func{bool}{GetFirstKey}{\param{wxString\&}{ strKeyName}, \param{long\&}{ lIndex}} - -Gets the first key. - - -\membersection{wxRegKey::GetFirstValue}\label{wxregkeygetfirstvalue} - -\func{bool}{GetFirstValue}{\param{wxString\&}{ strValueName}, \param{long\&}{ lIndex}} - -Gets the first value of this key. - - -\membersection{wxRegKey::GetKeyInfo}\label{wxregkeygetkeyinfo} - -\constfunc{bool}{GetKeyInfo}{\param{size\_t *}{pnSubKeys}, \param{size\_t *}{pnValues}, \param{size\_t *}{pnMaxValueLen}} - -Gets information about the key. - -\wxheading{Parameters} - -\docparam{pnSubKeys}{The number of subkeys.} - -\docparam{pnMaxKeyLen}{The maximum length of the subkey name.} - -\docparam{pnValues}{The number of values.} - -\docparam{pnMaxValueLen}{The maximum length of a value.} - - -\membersection{wxRegKey::GetNextKey}\label{wxregkeygetnextkey} - -\constfunc{bool}{GetNextKey}{\param{wxString\&}{ strKeyName}, \param{long\&}{ lIndex}} - -Gets the next key. - - -\membersection{wxRegKey::GetNextValue}\label{wxregkeygetnextvalue} - -\constfunc{bool}{GetNextValue}{\param{wxString\&}{ strValueName}, \param{long\&}{ lIndex}} - -Gets the next key value for this key. - - -\membersection{wxRegKey::HasValue}\label{wxregkeyhasvalue} - -\constfunc{bool}{HasValue}{\param{const wxChar *}{szValue}} - -Returns true if the value exists. - - -\membersection{wxRegKey::HasValues}\label{wxregkeyhasvalues} - -\constfunc{bool}{HasValues}{\void} - -Returns true if any values exist. - - -\membersection{wxRegKey::HasSubKey}\label{wxregkeyhassubkey} - -\constfunc{bool}{HasSubKey}{\param{const wxChar *}{szKey}} - -Returns true if given subkey exists. - - -\membersection{wxRegKey::HasSubKeys}\label{wxregkeyhassubkeys} - -\constfunc{bool}{HasSubKeys}{\void} - -Returns true if any subkeys exist. - - -\membersection{wxRegKey::IsEmpty}\label{wxregkeyisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns true if this key is empty, nothing under this key. - - -\membersection{wxRegKey::IsOpened}\label{wxregkeyisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns true if the key is opened. - - -\membersection{wxRegKey::Open}\label{wxregkeyopen} - -\func{bool}{Open}{\param{AccessMode }{mode = Write}} - -Explicitly opens the key. This method also allows the key to be opened in -read-only mode by passing \texttt{wxRegKey::Read} instead of default -\texttt{wxRegKey::Write} parameter. - - -\membersection{wxRegKey::QueryValue}\label{wxregkeyqueryvalue} - -\constfunc{bool}{QueryValue}{\param{const wxChar *}{szValue}, \param{wxString\&}{ strValue}} - -Retrieves the string value. - -\constfunc{bool}{QueryValue}{\param{const wxChar *}{szValue}, \param{long *}{plValue}} - -Retrieves the numeric value. - - -\membersection{wxRegKey::Rename}\label{wxregkeyrename} - -\func{bool}{Rename}{\param{const wxChar *}{ szNewName}} - -Renames the key. - - -\membersection{wxRegKey::RenameValue}\label{wxregkeyrenamevalue} - -\func{bool}{RenameValue}{\param{const wxChar *}{szValueOld}, \param{const wxChar *}{szValueNew}} - -Renames a value. - - -\membersection{wxRegKey::SetValue}\label{wxregkeysetvalue} - -\func{bool}{SetValue}{\param{const wxChar *}{szValue}, \param{long}{ lValue}} - -\func{bool}{SetValue}{\param{const wxChar *}{szValue}, \param{const wxString\&}{ strValue}} - -\func{bool}{SetValue}{\param{const wxChar *}{szValue}, \param{const wxMemoryBuffer\&}{ buf}} - -Sets the given \arg{szValue} which must be numeric, string or binary depending -on the overload used. If the value doesn't exist, it is created. - diff --git a/docs/latex/wx/renderer.tex b/docs/latex/wx/renderer.tex deleted file mode 100644 index 88f6923d74..0000000000 --- a/docs/latex/wx/renderer.tex +++ /dev/null @@ -1,292 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: renderer.tex -%% Purpose: wxRenderer and wxRendererNative documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 06.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRendererNative}}\label{wxrenderernative} - -First, a brief introduction to wxRenderer and why it is needed. - -Usually wxWidgets uses the underlying low level GUI system to draw all the -controls - this is what we mean when we say that it is a ``native'' framework. -However not all controls exist under all (or even any) platforms and in this -case wxWidgets provides a default, generic, implementation of them written in -wxWidgets itself. - -These controls don't have the native appearance if only the standard -line drawing and other graphics primitives are used, because the native -appearance is different under different platforms while the lines are always -drawn in the same way. - -This is why we have renderers: wxRenderer is a class which virtualizes the -drawing, i.e. it abstracts the drawing operations and allows you to draw say, a -button, without caring about exactly how this is done. Of course, as we -can draw the button differently in different renderers, this also allows us to -emulate the native look and feel. - -So the renderers work by exposing a large set of high-level drawing functions -which are used by the generic controls. There is always a default global -renderer but it may be changed or extended by the user, see -\helpref{Render sample}{samplerender}. - -All drawing functions take some standard parameters: -\begin{itemize} -\item \arg{win} is the window being drawn. It is normally not used and when -it is it should only be used as a generic \helpref{wxWindow}{wxwindow} -(in order to get its low level handle, for example), but you should -\emph{not} assume that it is of some given type as the same renderer -function may be reused for drawing different kinds of control. -\item \arg{dc} is the \helpref{wxDC}{wxdc} to draw on. Only this device -context should be used for drawing. It is not necessary to restore -pens and brushes for it on function exit but, on the other hand, you -shouldn't assume that it is in any specific state on function entry: -the rendering functions should always prepare it. -\item \arg{rect} the bounding rectangle for the element to be drawn. -\item \arg{flags} the optional flags (none by default) which can be a -combination of the \texttt{wxCONTROL\_XXX} constants below. -\end{itemize} - -Note that each drawing function restores the \helpref{wxDC}{wxdc} attributes if -it changes them, so it is safe to assume that the same pen, brush and colours -that were active before the call to this function are still in effect after it. - - -\wxheading{Constants} - -The following rendering flags are defined: - -\begin{verbatim} -enum -{ - wxCONTROL_DISABLED = 0x00000001, // control is disabled - wxCONTROL_FOCUSED = 0x00000002, // currently has keyboard focus - wxCONTROL_PRESSED = 0x00000004, // (button) is pressed - wxCONTROL_SPECIAL = 0x00000008, // control-specific bit: - wxCONTROL_ISDEFAULT = wxCONTROL_SPECIAL, // only for the buttons - wxCONTROL_ISSUBMENU = wxCONTROL_SPECIAL, // only for the menu items - wxCONTROL_EXPANDED = wxCONTROL_SPECIAL, // only for the tree items - wxCONTROL_SIZEGRIP = wxCONTROL_SPECIAL, // only for the status bar panes - wxCONTROL_FLAT = wxCONTROL_SPECIAL, // checkboxes only: flat border - wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control - wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox - wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked - wxCONTROL_CHECKABLE = 0x00000080, // (menu) item can be checked - wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE // (check) undetermined state -}; -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/renderer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRendererNative::\destruct{wxRendererNative}}\label{wxrenderernativedtor} - -\func{}{\destruct{wxRendererNative}}{\void} - -Virtual destructor as for any base class. - - -\membersection{wxRendererNative::DrawCheckBox}\label{wxrenderernativedrawcheckbox} - -\func{void}{DrawCheckBox}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} - -Draw a check box (used by wxDataViewCtrl). - -\arg{flags} may have the \texttt{wxCONTROL\_CHECKED}, \texttt{wxCONTROL\_CURRENT} or -\texttt{wxCONTROL\_UNDETERMINED} bit set. - - -\membersection{wxRendererNative::DrawComboBoxDropButton}\label{wxrenderernativedrawcomboboxdropbutton} - -\func{void}{DrawComboBoxDropButton}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} - -Draw a button like the one used by \helpref{wxComboBox}{wxcombobox} to show a -drop down window. The usual appearance is a downwards pointing arrow. - -\arg{flags} may have the \texttt{wxCONTROL\_PRESSED} or \texttt{wxCONTROL\_CURRENT} bit set. - - -\membersection{wxRendererNative::DrawDropArrow}\label{wxrenderernativedrawdroparrow} - -\func{void}{DrawDropArrow}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} - -Draw a drop down arrow that is suitable for use outside a combo box. Arrow will have -transparent background. - -\arg{rect} is not entirely filled by the arrow. Instead, you should use bounding -rectangle of a drop down button which arrow matches the size you need. -\arg{flags} may have the \texttt{wxCONTROL\_PRESSED} or \texttt{wxCONTROL\_CURRENT} bit set. - - -\membersection{wxRendererNative::DrawFocusRect}\label{wxrenderernativedrawfocusrect} - -\func{void}{DrawFocusRect}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} - -Draw a focus rectangle using the specified rectangle. -\helpref{wxListCtrl}{wxlistctrl}. The only supported flags is -\texttt{wxCONTROL\_SELECTED} for items which are selected. - - -\membersection{wxRendererNative::DrawHeaderButton}\label{wxrenderernativedrawheaderbutton} - -\func{int}{DrawHeaderButton}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}, \param{wxHeaderSortIconType }{sortArrow = wxHDR\_SORT\_ICON\_NONE}, \param{wxHeaderButtonParams* }{params = NULL}} - -Draw the header control button (used, for example, by -\helpref{wxListCtrl}{wxlistctrl}). Depending on platforms the -\arg{flags} parameter may support the \texttt{wxCONTROL\_SELECTED} -\texttt{wxCONTROL\_DISABLED} and \texttt{wxCONTROL\_CURRENT} bits. -The \arg{sortArrow} parameter can be one of -\texttt{wxHDR\_SORT\_ICON\_NONE}, \texttt{wxHDR\_SORT\_ICON\_UP}, or -\texttt{wxHDR\_SORT\_ICON\_DOWN}. Additional values controlling the -drawing of a text or bitmap label can be passed in \arg{params}. The -value returned is the optimal width to contain the the unabreviated -label text or bitmap, the sort arrow if present, and internal margins. - - - -\membersection{wxRendererNative::DrawItemSelectionRect}\label{wxrenderernativedrawitemselectionrect} - -\func{void}{DrawItemSelectionRect}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} - -Draw a selection rectangle underneath the text as used e.g. in a -\helpref{wxListCtrl}{wxlistctrl}. The supported \arg{flags} are -\texttt{wxCONTROL\_SELECTED} for items which are selected (e.g. often a blue -rectangle) and \texttt{wxCONTROL\_CURRENT} for the item that has the focus -(often a dotted line around the item's text). \texttt{wxCONTROL\_FOCUSED} may -be used to indicate if the control has the focus (othewise the the selection -rectangle is e.g. often grey and not blue). This may be ignored by the renderer -or deduced by the code directly from the \arg{win}. - - -\membersection{wxRendererNative::DrawPushButton}\label{wxrenderernativedrawpushbutton} - -\func{void}{DrawPushButton}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} - -Draw a blank push button that looks very similar to \helpref{wxButton}{wxbutton}. - -\arg{flags} may have the \texttt{wxCONTROL\_PRESSED}, \texttt{wxCONTROL\_CURRENT} or -\texttt{wxCONTROL\_ISDEFAULT} bit set. - - -\membersection{wxRendererNative::DrawSplitterBorder}\label{wxrenderernativedrawsplitterborder} - -\func{void}{DrawSplitterBorder}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} - -Draw the border for sash window: this border must be such that the sash -drawn by \helpref{DrawSash}{wxrenderernativedrawsplittersash} blends into it -well. - - -\membersection{wxRendererNative::DrawSplitterSash}\label{wxrenderernativedrawsplittersash} - -\func{void}{DrawSplitterSash}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxSize\& }{size}, \param{wxCoord }{position}, \param{wxOrientation }{orient}, \param{int }{flags = 0}} - -Draw a sash. The \arg{orient} parameter defines whether the sash should be -vertical or horizontal and how the \arg{position} should be interpreted. - - -\membersection{wxRendererNative::DrawTreeItemButton}\label{wxrenderernativedrawtreeitembutton} - -\func{void}{DrawTreeItemButton}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} - -Draw the expanded/collapsed icon for a tree control item. To draw an expanded -button the \arg{flags} parameter must contain {\tt wxCONTROL\_EXPANDED} bit. - - -\membersection{wxRendererNative::Get}\label{wxrenderernativeget} - -\func{wxRendererNative\&}{Get}{\void} - -Return the currently used renderer. - - -\membersection{wxRendererNative::GetDefault}\label{wxrenderernativegetdefault} - -\func{wxRendererNative\&}{GetDefault}{\void} - -Return the default (native) implementation for this platform -- this is also -the one used by default but this may be changed by calling -\helpref{Set}{wxrenderernativeset} in which case the return value of this -method may be different from the return value of \helpref{Get}{wxrenderernativeget}. - - -\membersection{wxRendererNative::GetGeneric}\label{wxrenderernativegetgeneric} - -\func{wxRendererNative\&}{GetGeneric}{\void} - -Return the generic implementation of the renderer. Under some platforms, this -is the default renderer implementation, others have platform-specific default -renderer which can be retrieved by calling \helpref{GetDefault}{wxrenderernativegetdefault}. - - -\membersection{wxRendererNative::GetHeaderButtonHeight}\label{wxrenderernativegetheaderbuttonheight} - -\func{int}{GetHeaderButtonHeight}{\param{const wxWindow* }{win}} - -Returns the height of a header button, either a fixed platform height if available, or a -generic height based on the window's font. - - -\membersection{wxRendererNative::GetSplitterParams}\label{wxrenderernativegetsplitterparams} - -\func{wxSplitterRenderParams}{GetSplitterParams}{\param{const wxWindow* }{win}} - -Get the splitter parameters, see -\helpref{wxSplitterRenderParams}{wxsplitterrenderparams}. - - -\membersection{wxRendererNative::GetVersion}\label{wxrenderernativegetversion} - -\constfunc{wxRendererVersion}{GetVersion}{\void} - -This function is used for version checking: \helpref{Load}{wxrenderernativeload} -refuses to load any shared libraries implementing an older or incompatible -version. - -The implementation of this method is always the same in all renderers (simply -construct \helpref{wxRendererVersion}{wxrendererversion} using the -{\tt wxRendererVersion::Current\_XXX} values), but it has to be in the derived, -not base, class, to detect mismatches between the renderers versions and so you -have to implement it anew in all renderers. - - -\membersection{wxRendererNative::Load}\label{wxrenderernativeload} - -\func{wxRendererNative*}{Load}{\param{const wxString\& }{name}} - -Load the renderer from the specified DLL, the returned pointer must be -deleted by caller if not {\tt NULL} when it is not used any more. - -The \arg{name} should be just the base name of the renderer and not the full -name of the DLL file which is constructed differently (using -\helpref{wxDynamicLibrary::CanonicalizePluginName}{wxdynamiclibrarycanonicalizepluginname}) -on different systems. - - -\membersection{wxRendererNative::Set}\label{wxrenderernativeset} - -\func{wxRendererNative*}{Set}{\param{wxRendererNative* }{renderer}} - -Set the renderer to use, passing {\tt NULL} reverts to using the default -renderer (the global renderer must always exist). - -Return the previous renderer used with Set() or {\tt NULL} if none. - diff --git a/docs/latex/wx/rendver.tex b/docs/latex/wx/rendver.tex deleted file mode 100644 index 7c412f6fd2..0000000000 --- a/docs/latex/wx/rendver.tex +++ /dev/null @@ -1,63 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: rendver.tex -%% Purpose: wxRendererVersion documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 11.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxRendererVersion}}\label{wxrendererversion} - -This simple struct represents the \helpref{wxRendererNative}{wxrenderernative} -interface version and is only used as the return value of -\helpref{wxRendererNative::GetVersion}{wxrenderernativegetversion}. - -The version has two components: the version itself and the age. If the main -program and the renderer have different versions they are never compatible with -each other because the version is only changed when an existing virtual -function is modified or removed. The age, on the other hand, is incremented -each time a new virtual method is added and so, at least for the compilers -using a common C++ object model, the calling program is compatible with any -renderer which has the age greater or equal to its age. This verification is -done by \helpref{IsCompatible}{wxrenderernativeiscompatible} method. - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/renderer.h> - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRendererVersion::IsCompatible}\label{wxrenderernativeiscompatible} - -\func{static bool}{IsCompatible}{\param{const wxRendererVersion\& }{ver}} - -Checks if the main program is compatible with the renderer having the version -\arg{ver}, returns \true if it is and \false otherwise. - -This method is used by -\helpref{wxRendererNative::Load}{wxrenderernativeload} to determine whether a -renderer can be used. - - -\membersection{wxRendererVersion::version}\label{wxrendererversionversion} - -\member{const int}{version} - -The version component. - - -\membersection{wxRendererVersion::age}\label{wxrendererversionage} - -\member{const int}{age} - -The age component. - diff --git a/docs/latex/wx/richtextbuffer.tex b/docs/latex/wx/richtextbuffer.tex deleted file mode 100644 index 76b48fc6d3..0000000000 --- a/docs/latex/wx/richtextbuffer.tex +++ /dev/null @@ -1,834 +0,0 @@ -\section{\class{wxRichTextBuffer}}\label{wxrichtextbuffer} - -This class represents the whole buffer associated with a \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -\wxheading{Derived from} - -wxRichTextParagraphLayoutBox - -\wxheading{Include files} - -<wx/richtext/richtextbuffer.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\wxheading{See also} - -\helpref{wxTextAttr}{wxtextattr}, \helpref{wxRichTextCtrl}{wxrichtextctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextBuffer::wxRichTextBuffer}\label{wxrichtextbufferwxrichtextbuffer} - -\func{}{wxRichTextBuffer}{\param{const wxRichTextBuffer\& }{obj}} - -Copy constructor. - -\func{}{wxRichTextBuffer}{\void} - -Default constructors. - -\membersection{wxRichTextBuffer::\destruct{wxRichTextBuffer}}\label{wxrichtextbufferdtor} - -\func{}{\destruct{wxRichTextBuffer}}{\void} - -Destructor. - -\membersection{wxRichTextBuffer::AddEventHandler}\label{wxrichtextbufferaddeventhandler} - -\func{bool}{AddEventHandler}{\param{wxEvtHandler* }{handler}} - -Adds an event handler to the buffer's list of handlers. A buffer associated with -a contol has the control as the only event handler, but the application is free -to add more if further notification is required. All handlers are notified -of an event originating from the buffer, such as the replacement of a style sheet -during loading. The buffer never deletes any of the event handlers, unless -\helpref{wxRichTextBuffer::RemoveEventHandler}{wxrichtextbufferremoveeventhandler} is -called with \true as the second argument. - -\membersection{wxRichTextBuffer::AddHandler}\label{wxrichtextbufferaddhandler} - -\func{void}{AddHandler}{\param{wxRichTextFileHandler* }{handler}} - -Adds a file handler. - -\membersection{wxRichTextBuffer::AddParagraph}\label{wxrichtextbufferaddparagraph} - -\func{wxRichTextRange}{AddParagraph}{\param{const wxString\& }{text}} - -Adds a paragraph of text. - -\membersection{wxRichTextBuffer::BatchingUndo}\label{wxrichtextbufferbatchingundo} - -\constfunc{bool}{BatchingUndo}{\void} - -Returns \true if the buffer is currently collapsing commands into a single notional command. - -\membersection{wxRichTextBuffer::BeginAlignment}\label{wxrichtextbufferbeginalignment} - -\func{bool}{BeginAlignment}{\param{wxTextAttrAlignment }{alignment}} - -Begins using alignment. - -\membersection{wxRichTextBuffer::BeginBatchUndo}\label{wxrichtextbufferbeginbatchundo} - -\func{bool}{BeginBatchUndo}{\param{const wxString\& }{cmdName}} - -Begins collapsing undo/redo commands. Note that this may not work properly -if combining commands that delete or insert content, changing ranges for -subsequent actions. - -{\it cmdName} should be the name of the combined command that will appear -next to Undo and Redo in the edit menu. - -\membersection{wxRichTextBuffer::BeginBold}\label{wxrichtextbufferbeginbold} - -\func{bool}{BeginBold}{\void} - -Begin applying bold. - -\membersection{wxRichTextBuffer::BeginCharacterStyle}\label{wxrichtextbufferbegincharacterstyle} - -\func{bool}{BeginCharacterStyle}{\param{const wxString\& }{characterStyle}} - -Begins applying the named character style. - -\membersection{wxRichTextBuffer::BeginFont}\label{wxrichtextbufferbeginfont} - -\func{bool}{BeginFont}{\param{const wxFont\& }{font}} - -Begins using this font. - -\membersection{wxRichTextBuffer::BeginFontSize}\label{wxrichtextbufferbeginfontsize} - -\func{bool}{BeginFontSize}{\param{int }{pointSize}} - -Begins using the given point size. - -\membersection{wxRichTextBuffer::BeginItalic}\label{wxrichtextbufferbeginitalic} - -\func{bool}{BeginItalic}{\void} - -Begins using italic. - -\membersection{wxRichTextBuffer::BeginLeftIndent}\label{wxrichtextbufferbeginleftindent} - -\func{bool}{BeginLeftIndent}{\param{int }{leftIndent}, \param{int }{leftSubIndent = 0}} - -Begin using {\it leftIndent} for the left indent, and optionally {\it leftSubIndent} for -the sub-indent. Both are expressed in tenths of a millimetre. - -The sub-indent is an offset from the left of the paragraph, and is used for all but the -first line in a paragraph. A positive value will cause the first line to appear to the left -of the subsequent lines, and a negative value will cause the first line to be indented -relative to the subsequent lines. - -\membersection{wxRichTextBuffer::BeginLineSpacing}\label{wxrichtextbufferbeginlinespacing} - -\func{bool}{BeginLineSpacing}{\param{int }{lineSpacing}} - -Begins line spacing using the specified value. {\it spacing} is a multiple, where 10 means single-spacing, -15 means 1.5 spacing, and 20 means double spacing. The following constants are -defined for convenience: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10 -#define wxTEXT_ATTR_LINE_SPACING_HALF 15 -#define wxTEXT_ATTR_LINE_SPACING_TWICE 20 -\end{verbatim} -} - -\membersection{wxRichTextBuffer::BeginListStyle}\label{wxrichtextbufferbeginliststyle} - -\func{bool}{BeginListStyle}{\param{const wxString\&}{ listStyle}, \param{int}{ level=1}, \param{int}{ number=1}} - -Begins using a specified list style. Optionally, you can also pass a level and a number. - -\membersection{wxRichTextBuffer::BeginNumberedBullet}\label{wxrichtextbufferbeginnumberedbullet} - -\func{bool}{BeginNumberedBullet}{\param{int }{bulletNumber}, \param{int }{leftIndent}, \param{int }{leftSubIndent}, \param{int }{bulletStyle = wxTEXT\_ATTR\_BULLET\_STYLE\_ARABIC|wxTEXT\_ATTR\_BULLET\_STYLE\_PERIOD}} - -Begins a numbered bullet. This call will be needed for each item in the list, and the -application should take care of incrementing the numbering. - -{\it bulletNumber} is a number, usually starting with 1. - -{\it leftIndent} and {\it leftSubIndent} are values in tenths of a millimetre. - -{\it bulletStyle} is a bitlist of the following values: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_BULLET_STYLE_NONE 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ARABIC 0x00000001 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER 0x00000002 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER 0x00000004 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER 0x00000008 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER 0x00000010 -#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL 0x00000020 -#define wxTEXT_ATTR_BULLET_STYLE_BITMAP 0x00000040 -#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES 0x00000080 -#define wxTEXT_ATTR_BULLET_STYLE_PERIOD 0x00000100 -#define wxTEXT_ATTR_BULLET_STYLE_STANDARD 0x00000200 -#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS 0x00000400 -#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE 0x00000800 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT 0x00001000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE 0x00002000 -\end{verbatim} -} - -wxRichTextBuffer uses indentation to render a bulleted item. The left indent is the distance between -the margin and the bullet. The content of the paragraph, including the first line, starts -at leftMargin + leftSubIndent. So the distance between the left edge of the bullet and the -left of the actual paragraph is leftSubIndent. - -\membersection{wxRichTextBuffer::BeginParagraphSpacing}\label{wxrichtextbufferbeginparagraphspacing} - -\func{bool}{BeginParagraphSpacing}{\param{int }{before}, \param{int }{after}} - -Begins paragraph spacing; pass the before-paragraph and after-paragraph spacing in tenths of -a millimetre. - -\membersection{wxRichTextBuffer::BeginParagraphStyle}\label{wxrichtextbufferbeginparagraphstyle} - -\func{bool}{BeginParagraphStyle}{\param{const wxString\& }{paragraphStyle}} - -Begins applying the named paragraph style. - -\membersection{wxRichTextBuffer::BeginRightIndent}\label{wxrichtextbufferbeginrightindent} - -\func{bool}{BeginRightIndent}{\param{int }{rightIndent}} - -Begins a right indent, specified in tenths of a millimetre. - -\membersection{wxRichTextBuffer::BeginStyle}\label{wxrichtextbufferbeginstyle} - -\func{bool}{BeginStyle}{\param{const wxTextAttr\& }{style}} - -Begins using a specified style. - -\membersection{wxRichTextBuffer::BeginSuppressUndo}\label{wxrichtextbufferbeginsuppressundo} - -\func{bool}{BeginSuppressUndo}{\void} - -Begins suppressing undo/redo commands. The way undo is suppressed may be implemented -differently by each command. If not dealt with by a command implementation, then -it will be implemented automatically by not storing the command in the undo history -when the action is submitted to the command processor. - -\membersection{wxRichTextBuffer::BeginStandardBullet}\label{wxrichtextbufferbeginstandardbullet} - -\func{bool}{BeginStandardBullet}{\param{const wxString\&}{ bulletName}, \param{int }{leftIndent}, \param{int }{leftSubIndent}, \param{int }{bulletStyle = wxTEXT\_ATTR\_BULLET\_STYLE\_STANDARD}} - -Begins applying a standard bullet, using one of the standard bullet names (currently {\tt standard/circle} or {\tt standard/square}. -See \helpref{BeginNumberedBullet}{wxrichtextbufferbeginnumberedbullet} for an explanation of how indentation is used to render the bulleted paragraph. - -\membersection{wxRichTextBuffer::BeginSymbolBullet}\label{wxrichtextbufferbeginsymbolbullet} - -\func{bool}{BeginSymbolBullet}{\param{wxChar }{symbol}, \param{int }{leftIndent}, \param{int }{leftSubIndent}, \param{int }{bulletStyle = wxTEXT\_ATTR\_BULLET\_STYLE\_SYMBOL}} - -Begins applying a symbol bullet, using a character from the current font. See \helpref{BeginNumberedBullet}{wxrichtextbufferbeginnumberedbullet} for -an explanation of how indentation is used to render the bulleted paragraph. - -\membersection{wxRichTextBuffer::BeginTextColour}\label{wxrichtextbufferbegintextcolour} - -\func{bool}{BeginTextColour}{\param{const wxColour\& }{colour}} - -Begins using the specified text foreground colour. - -\membersection{wxRichTextBuffer::BeginUnderline}\label{wxrichtextbufferbeginunderline} - -\func{bool}{BeginUnderline}{\void} - -Begins using underline. - -\membersection{wxRichTextBuffer::BeginURL}\label{wxrichtextbufferbeginurl} - -\func{bool}{BeginURL}{\param{const wxString\&}{ url}, \param{const wxString\&}{ characterStyle = wxEmptyString}} - -Begins applying wxTEXT\_ATTR\_URL to the content. Pass a URL and optionally, a character style to apply, -since it is common to mark a URL with a familiar style such as blue text with underlining. - -\membersection{wxRichTextBuffer::CanPasteFromClipboard}\label{wxrichtextbuffercanpastefromclipboard} - -\constfunc{bool}{CanPasteFromClipboard}{\void} - -Returns \true if content can be pasted from the clipboard. - -\membersection{wxRichTextBuffer::CleanUpHandlers}\label{wxrichtextbuffercleanuphandlers} - -\func{void}{CleanUpHandlers}{\void} - -Cleans up the file handlers. - -\membersection{wxRichTextBuffer::Clear}\label{wxrichtextbufferclear} - -\func{void}{Clear}{\void} - -Clears the buffer. - -\membersection{wxRichTextBuffer::ClearListStyle}\label{wxrichtextbufferclearliststyle} - -\func{bool}{ClearListStyle}{\param{const wxRichTextRange\& }{range}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -\func{bool}{ClearListStyle}{\param{const wxRichTextRange\& }{range}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -Clears the list style from the given range, clearing list-related attributes and applying any named paragraph style associated with each paragraph. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\end{itemize} - -See also \helpref{wxRichTextBuffer::SetListStyle}{wxrichtextbuffersetliststyle}, \helpref{wxRichTextBuffer::PromoteList}{wxrichtextbufferpromotelist}, \helpref{wxRichTextBuffer::NumberList}{wxrichtextbuffernumberlist}. - -\membersection{wxRichTextBuffer::ClearStyleStack}\label{wxrichtextbufferclearstylestack} - -\func{void}{ClearStyleStack}{\void} - -Clears the style stack. - -\membersection{wxRichTextBuffer::Clone}\label{wxrichtextbufferclone} - -\constfunc{wxRichTextObject*}{Clone}{\void} - -Clones the object. - -\membersection{wxRichTextBuffer::Copy}\label{wxrichtextbuffercopy} - -\func{void}{Copy}{\param{const wxRichTextBuffer\& }{obj}} - -Copies the given buffer. - -\membersection{wxRichTextBuffer::CopyToClipboard}\label{wxrichtextbuffercopytoclipboard} - -\func{bool}{CopyToClipboard}{\param{const wxRichTextRange\& }{range}} - -Copy the given range to the clipboard. - -\membersection{wxRichTextBuffer::DeleteRangeWithUndo}\label{wxrichtextbufferdeleterangewithundo} - -\func{bool}{DeleteRangeWithUndo}{\param{const wxRichTextRange\& }{range}, \param{wxRichTextCtrl* }{ctrl}} - -Submits a command to delete the given range. - -\membersection{wxRichTextBuffer::Dump}\label{wxrichtextbufferdump} - -\func{void}{Dump}{\void} - -\func{void}{Dump}{\param{wxTextOutputStream\& }{stream}} - -Dumps the contents of the buffer for debugging purposes. - -\membersection{wxRichTextBuffer::EndAlignment}\label{wxrichtextbufferendalignment} - -\func{bool}{EndAlignment}{\void} - -Ends alignment. - -\membersection{wxRichTextBuffer::EndAllStyles}\label{wxrichtextbufferendallstyles} - -\func{bool}{EndAllStyles}{\void} - -Ends all styles that have been started with a Begin... command. - -\membersection{wxRichTextBuffer::EndBatchUndo}\label{wxrichtextbufferendbatchundo} - -\func{bool}{EndBatchUndo}{\void} - -Ends collapsing undo/redo commands, and submits the combined command. - -\membersection{wxRichTextBuffer::EndBold}\label{wxrichtextbufferendbold} - -\func{bool}{EndBold}{\void} - -Ends using bold. - -\membersection{wxRichTextBuffer::EndCharacterStyle}\label{wxrichtextbufferendcharacterstyle} - -\func{bool}{EndCharacterStyle}{\void} - -Ends using the named character style. - -\membersection{wxRichTextBuffer::EndFont}\label{wxrichtextbufferendfont} - -\func{bool}{EndFont}{\void} - -Ends using a font. - -\membersection{wxRichTextBuffer::EndFontSize}\label{wxrichtextbufferendfontsize} - -\func{bool}{EndFontSize}{\void} - -Ends using a point size. - -\membersection{wxRichTextBuffer::EndItalic}\label{wxrichtextbufferenditalic} - -\func{bool}{EndItalic}{\void} - -Ends using italic. - -\membersection{wxRichTextBuffer::EndLeftIndent}\label{wxrichtextbufferendleftindent} - -\func{bool}{EndLeftIndent}{\void} - -Ends using a left indent. - -\membersection{wxRichTextBuffer::EndLineSpacing}\label{wxrichtextbufferendlinespacing} - -\func{bool}{EndLineSpacing}{\void} - -Ends using a line spacing. - -\membersection{wxRichTextBuffer::EndListStyle}\label{wxrichtextbufferendliststyle} - -\func{bool}{EndListStyle}{\void} - -Ends using a specified list style. - -\membersection{wxRichTextBuffer::EndNumberedBullet}\label{wxrichtextbufferendnumberedbullet} - -\func{bool}{EndNumberedBullet}{\void} - -Ends a numbered bullet. - -\membersection{wxRichTextBuffer::EndParagraphSpacing}\label{wxrichtextbufferendparagraphspacing} - -\func{bool}{EndParagraphSpacing}{\void} - -Ends paragraph spacing. - -\membersection{wxRichTextBuffer::EndParagraphStyle}\label{wxrichtextbufferendparagraphstyle} - -\func{bool}{EndParagraphStyle}{\void} - -Ends applying a named character style. - -\membersection{wxRichTextBuffer::EndRightIndent}\label{wxrichtextbufferendrightindent} - -\func{bool}{EndRightIndent}{\void} - -Ends using a right indent. - -\membersection{wxRichTextBuffer::EndStyle}\label{wxrichtextbufferendstyle} - -\func{bool}{EndStyle}{\void} - -Ends the current style. - -\membersection{wxRichTextBuffer::EndSuppressUndo}\label{wxrichtextbufferendsuppressundo} - -\func{bool}{EndSuppressUndo}{\void} - -Ends suppressing undo/redo commands. - -\membersection{wxRichTextBuffer::EndSymbolBullet}\label{wxrichtextbufferendsymbolbullet} - -\func{bool}{EndSymbolBullet}{\void} - -Ends using a symbol bullet. - -\membersection{wxRichTextBuffer::EndStandardBullet}\label{wxrichtextbufferendstandardbullet} - -\func{bool}{EndStandardBullet}{\void} - -Ends using a standard bullet. - -\membersection{wxRichTextBuffer::EndTextColour}\label{wxrichtextbufferendtextcolour} - -\func{bool}{EndTextColour}{\void} - -Ends using a text foreground colour. - -\membersection{wxRichTextBuffer::EndUnderline}\label{wxrichtextbufferendunderline} - -\func{bool}{EndUnderline}{\void} - -Ends using underline. - -\membersection{wxRichTextBuffer::EndURL}\label{wxrichtextbufferendurl} - -\func{bool}{EndURL}{\void} - -Ends applying a URL. - -\membersection{wxRichTextBuffer::FindHandler}\label{wxrichtextbufferfindhandler} - -\func{wxRichTextFileHandler*}{FindHandler}{\param{int }{imageType}} - -Finds a handler by type. - -\func{wxRichTextFileHandler*}{FindHandler}{\param{const wxString\& }{extension}, \param{int }{imageType}} - -Finds a handler by extension and type. - -\func{wxRichTextFileHandler*}{FindHandler}{\param{const wxString\& }{name}} - -Finds a handler by name. - -\membersection{wxRichTextBuffer::FindHandlerFilenameOrType}\label{wxrichtextbufferfindhandlerfilenameortype} - -\func{wxRichTextFileHandler*}{FindHandlerFilenameOrType}{\param{const wxString\& }{filename}, \param{int }{imageType}} - -Finds a handler by filename or, if supplied, type. - -\membersection{wxRichTextBuffer::GetBasicStyle}\label{wxrichtextbuffergetbasicstyle} - -\constfunc{const wxTextAttr\&}{GetBasicStyle}{\void} - -Gets the basic (overall) style. This is the style of the whole -buffer before further styles are applied, unlike the default style, which -only affects the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -\membersection{wxRichTextBuffer::GetBatchedCommand}\label{wxrichtextbuffergetbatchedcommand} - -\constfunc{wxRichTextCommand*}{GetBatchedCommand}{\void} - -Gets the collapsed command. - -\membersection{wxRichTextBuffer::GetCommandProcessor}\label{wxrichtextbuffergetcommandprocessor} - -\constfunc{wxCommandProcessor*}{GetCommandProcessor}{\void} - -Gets the command processor. A text buffer always creates its own command processor when it is -initialized. - -\membersection{wxRichTextBuffer::GetDefaultStyle}\label{wxrichtextbuffergetdefaultstyle} - -\constfunc{const wxTextAttr\&}{GetDefaultStyle}{\void} - -Returns the current default style, affecting the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -\membersection{wxRichTextBuffer::GetExtWildcard}\label{wxrichtextbuffergetextwildcard} - -\func{wxString}{GetExtWildcard}{\param{bool }{combine = false}, \param{bool }{save = false}, \param{wxArrayInt* }{types = NULL}} - -Gets a wildcard incorporating all visible handlers. If {\it types} is present, -it will be filled with the file type corresponding to each filter. This can be -used to determine the type to pass to \helpref{LoadFile}{wxrichtextbuffergetextwildcard} given a selected filter. - -\membersection{wxRichTextBuffer::GetHandlers}\label{wxrichtextbuffergethandlers} - -\func{wxList\&}{GetHandlers}{\void} - -Returns the list of file handlers. - -\membersection{wxRichTextBuffer::GetRenderer}\label{wxrichtextbuffergetrenderer} - -\func{static wxRichTextRenderer*}{GetRenderer}{\void} - -Returns the object to be used to render certain aspects of the content, such as bullets. - -\membersection{wxRichTextBuffer::GetStyle}\label{wxrichtextbuffergetstyle} - -\func{bool}{GetStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} - -Gets the attributes at the given position. - -This function gets the combined style - that is, the style you see on the screen as a result -of combining base style, paragraph style and character style attributes. To get the character -or paragraph style alone, use \helpref{GetUncombinedStyle}{wxrichtextbuffergetuncombinedstyle}. - -\membersection{wxRichTextBuffer::GetStyleForRange}\label{wxrichtextbuffergetstyleforrange} - -\func{bool}{GetStyleForRange}{\param{const wxRichTextRange\&}{ range}, \param{wxTextAttr\& }{style}} - -This function gets a style representing the common, combined attributes in the given range. -Attributes which have different values within the specified range will not be included the style -flags. - -The function is used to get the attributes to display in the formatting dialog: the user -can edit the attributes common to the selection, and optionally specify the values of further -attributes to be applied uniformly. - -To apply the edited attributes, you can use \helpref{SetStyle}{wxrichtextbuffersetstyle} specifying -the wxRICHTEXT\_SETSTYLE\_OPTIMIZE flag, which will only apply attributes that are different -from the {\it combined} attributes within the range. So, the user edits the effective, displayed attributes -for the range, but his choice won't be applied unnecessarily to content. As an example, -say the style for a paragraph specifies bold, but the paragraph text doesn't specify a weight. The -combined style is bold, and this is what the user will see on-screen and in the formatting -dialog. The user now specifies red text, in addition to bold. When applying with -SetStyle, the content font weight attributes won't be changed to bold because this is already specified -by the paragraph. However the text colour attributes {\it will} be changed to -show red. - -\membersection{wxRichTextBuffer::GetStyleSheet}\label{wxrichtextbuffergetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the current style sheet associated with the buffer, if any. - -\membersection{wxRichTextBuffer::GetStyleStackSize}\label{wxrichtextbuffergetstylestacksize} - -\constfunc{size\_t}{GetStyleStackSize}{\void} - -Get the size of the style stack, for example to check correct nesting. - -\membersection{wxRichTextBuffer::GetUncombinedStyle}\label{wxrichtextbuffergetuncombinedstyle} - -\func{bool}{GetUncombinedStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} - -Gets the attributes at the given position. - -This function gets the {\it uncombined style} - that is, the attributes associated with the -paragraph or character content, and not necessarily the combined attributes you see on the -screen. To get the combined attributes, use \helpref{GetStyle}{wxrichtextbuffergetstyle}. - -If you specify (any) paragraph attribute in {\it style}'s flags, this function will fetch -the paragraph attributes. Otherwise, it will return the character attributes. - -\membersection{wxRichTextBuffer::HitTest}\label{wxrichtextbufferhittest} - -\func{int}{HitTest}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pt}, \param{long\& }{textPosition}} - -Finds the text position for the given position, putting the position in {\it textPosition} if -one is found. {\it pt} is in logical units (a zero y position is -at the beginning of the buffer). - -The function returns one of the following values: - -{\small -\begin{verbatim} -// The point was not on this object -#define wxRICHTEXT_HITTEST_NONE 0x01 -// The point was before the position returned from HitTest -#define wxRICHTEXT_HITTEST_BEFORE 0x02 -// The point was after the position returned from HitTest -#define wxRICHTEXT_HITTEST_AFTER 0x04 -// The point was on the position returned from HitTest -#define wxRICHTEXT_HITTEST_ON 0x08 -// The point was on space outside content -#define wxRICHTEXT_HITTEST_OUTSIDE 0x10 -\end{verbatim} -} - -\membersection{wxRichTextBuffer::Init}\label{wxrichtextbufferinit} - -\func{void}{Init}{\void} - -Initialisation. - -\membersection{wxRichTextBuffer::InitStandardHandlers}\label{wxrichtextbufferinitstandardhandlers} - -\func{void}{InitStandardHandlers}{\void} - -Initialises the standard handlers. Currently, only the plain text loading/saving handler -is initialised by default. - -\membersection{wxRichTextBuffer::InsertHandler}\label{wxrichtextbufferinserthandler} - -\func{void}{InsertHandler}{\param{wxRichTextFileHandler* }{handler}} - -Inserts a handler at the front of the list. - -\membersection{wxRichTextBuffer::InsertImageWithUndo}\label{wxrichtextbufferinsertimagewithundo} - -\func{bool}{InsertImageWithUndo}{\param{long }{pos}, \param{const wxRichTextImageBlock\& }{imageBlock}, \param{wxRichTextCtrl* }{ctrl}} - -Submits a command to insert the given image. - -\membersection{wxRichTextBuffer::InsertNewlineWithUndo}\label{wxrichtextbufferinsertnewlinewithundo} - -\func{bool}{InsertNewlineWithUndo}{\param{long }{pos}, \param{wxRichTextCtrl* }{ctrl}} - -Submits a command to insert a newline. - -\membersection{wxRichTextBuffer::InsertTextWithUndo}\label{wxrichtextbufferinserttextwithundo} - -\func{bool}{InsertTextWithUndo}{\param{long }{pos}, \param{const wxString\& }{text}, \param{wxRichTextCtrl* }{ctrl}} - -Submits a command to insert the given text. - -\membersection{wxRichTextBuffer::IsModified}\label{wxrichtextbufferismodified} - -\constfunc{bool}{IsModified}{\void} - -Returns \true if the buffer has been modified. - -\membersection{wxRichTextBuffer::LoadFile}\label{wxrichtextbufferloadfile} - -\func{bool}{LoadFile}{\param{wxInputStream\& }{stream}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Loads content from a stream. - -\func{bool}{LoadFile}{\param{const wxString\& }{filename}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Loads content from a file. - -\membersection{wxRichTextBuffer::Modify}\label{wxrichtextbuffermodify} - -\func{void}{Modify}{\param{bool }{modify = true}} - -Marks the buffer as modified or unmodified. - -\membersection{wxRichTextBuffer::NumberList}\label{wxrichtextbuffernumberlist} - -\func{bool}{NumberList}{\param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -\func{bool}{Number}{\param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -Numbers the paragraphs in the given range. Pass flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextBuffer::SetListStyle}{wxrichtextbuffersetliststyle}, \helpref{wxRichTextBuffer::PromoteList}{wxrichtextbufferpromotelist}, \helpref{wxRichTextBuffer::ClearListStyle}{wxrichtextbufferclearliststyle}. - -\membersection{wxRichTextBuffer::PasteFromClipboard}\label{wxrichtextbufferpastefromclipboard} - -\func{bool}{PasteFromClipboard}{\param{long }{position}} - -Pastes the clipboard content to the buffer at the given position. - -\membersection{wxRichTextBuffer::PromoteList}\label{wxrichtextbufferpromotelist} - -\func{bool}{PromoteList}{\param{int}{ promoteBy}, \param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ listLevel = -1}} - -\func{bool}{PromoteList}{\param{int}{ promoteBy}, \param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ listLevel = -1}} - -Promotes or demotes the paragraphs in the given range. A positive {\it promoteBy} produces a smaller indent, and a negative number -produces a larger indent. Pass flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextBuffer::SetListStyle}{wxrichtextbuffersetliststyle}, See also \helpref{wxRichTextBuffer::SetListStyle}{wxrichtextbuffernumberlist}, \helpref{wxRichTextBuffer::ClearListStyle}{wxrichtextbufferclearliststyle}. - -\membersection{wxRichTextBuffer::RemoveEventHandler}\label{wxrichtextbufferremoveeventhandler} - -\func{bool}{RemoveEventHandler}{\param{wxEvtHandler* }{handler}, \param{bool}{ deleteHandler = false}} - -Removes an event handler from the buffer's list of handlers, deleting the object if {\it deleteHandler} is \true. - -\membersection{wxRichTextBuffer::RemoveHandler}\label{wxrichtextbufferremovehandler} - -\func{bool}{RemoveHandler}{\param{const wxString\& }{name}} - -Removes a handler. - -\membersection{wxRichTextBuffer::ResetAndClearCommands}\label{wxrichtextbufferresetandclearcommands} - -\func{void}{ResetAndClearCommands}{\void} - -Clears the buffer, adds a new blank paragraph, and clears the command history. - -\membersection{wxRichTextBuffer::SaveFile}\label{wxrichtextbuffersavefile} - -\func{bool}{SaveFile}{\param{wxOutputStream\& }{stream}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Saves content to a stream. - -\func{bool}{SaveFile}{\param{const wxString\& }{filename}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Saves content to a file. - -\membersection{wxRichTextBuffer::SetBasicStyle}\label{wxrichtextbuffersetbasicstyle} - -\func{void}{SetBasicStyle}{\param{const wxTextAttr\& }{style}} - -Sets the basic (overall) style. This is the style of the whole -buffer before further styles are applied, unlike the default style, which -only affects the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -\membersection{wxRichTextBuffer::SetDefaultStyle}\label{wxrichtextbuffersetdefaultstyle} - -\func{void}{SetDefaultStyle}{\param{const wxTextAttr\& }{style}} - -Sets the default style, affecting the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -This is not cumulative - setting the default style will replace the previous default style. - -\membersection{wxRichTextBuffer::SetListStyle}\label{wxrichtextbuffersetliststyle} - -\func{bool}{SetListStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -\func{bool}{SetListStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -Sets the list attributes for the given range, passing flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextBuffer::NumberList}{wxrichtextbuffernumberlist}, \helpref{wxRichTextBuffer::PromoteList}{wxrichtextbufferpromotelist}, \helpref{wxRichTextBuffer::ClearListStyle}{wxrichtextbufferclearliststyle}. - -\membersection{wxRichTextBuffer::SetRenderer}\label{wxrichtextbuffersetrenderer} - -\func{static void}{SetRenderer}{\param{wxRichTextRenderer* }{renderer}} - -Sets {\it renderer} as the object to be used to render certain aspects of the content, such as bullets. -You can override default rendering by deriving a new class from wxRichTextRenderer or wxRichTextStdRenderer, -overriding one or more virtual functions, and setting an instance of the class using this function. - -\membersection{wxRichTextBuffer::SetStyle}\label{wxrichtextbuffersetstyle} - -\func{bool}{SetStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxTextAttr\& }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -Sets the attributes for the given range. Pass flags to determine how the attributes are set. - -The end point of range is specified as the last character position of the span of text. -So, for example, to set the style for a character at position 5, use the range (5,5). -This differs from the wxRichTextCtrl API, where you would specify (5,6). - -{\it flags} may contain a bit list of the following values: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_NONE: no style flag. -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this operation should be undoable. -\item wxRICHTEXT\_SETSTYLE\_OPTIMIZE: specifies that the style should not be applied if the -combined style at this point is already the style in question. -\item wxRICHTEXT\_SETSTYLE\_PARAGRAPHS\_ONLY: specifies that the style should only be applied to paragraphs, -and not the content. This allows content styling to be preserved independently from that of e.g. a named paragraph style. -\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters, -and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style. -\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style. -\item wxRICHTEXT\_SETSTYLE\_REMOVE: removes the specified style. Only the style flags are used in this operation. -\end{itemize} - -\membersection{wxRichTextBuffer::SetStyleSheet}\label{wxrichtextbuffersetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} - -Sets the current style sheet, if any. This will allow the application to use -named character and paragraph styles found in the style sheet. - -\membersection{wxRichTextBuffer::SubmitAction}\label{wxrichtextbuffersubmitaction} - -\func{bool}{SubmitAction}{\param{wxRichTextAction* }{action}} - -Submit an action immediately, or delay it according to whether collapsing is on. - -\membersection{wxRichTextBuffer::SuppressingUndo}\label{wxrichtextbuffersuppressingundo} - -\constfunc{bool}{SuppressingUndo}{\void} - -Returns \true if undo suppression is currently on. - diff --git a/docs/latex/wx/richtextcharacterstyledefinition.tex b/docs/latex/wx/richtextcharacterstyledefinition.tex deleted file mode 100644 index cdf16280b1..0000000000 --- a/docs/latex/wx/richtextcharacterstyledefinition.tex +++ /dev/null @@ -1,33 +0,0 @@ -\section{\class{wxRichTextCharacterStyleDefinition}}\label{wxrichtextcharacterstyledefinition} - -This class represents a character style definition, usually added to a \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}. - -\wxheading{Derived from} - -\helpref{wxRichTextStyleDefinition}{wxrichtextstyledefinition}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextCharacterStyleDefinition::wxRichTextCharacterStyleDefinition}\label{wxrichtextcharacterstyledefinitionwxrichtextcharacterstyledefinition} - -\func{}{wxRichTextCharacterStyleDefinition}{\param{const wxString\& }{name = wxEmptyString}} - -Constructor. - -\membersection{wxRichTextCharacterStyleDefinition::\destruct{wxRichTextCharacterStyleDefinition}}\label{wxrichtextcharacterstyledefinitiondtor} - -\func{}{\destruct{wxRichTextCharacterStyleDefinition}}{\void} - -Destructor. - diff --git a/docs/latex/wx/richtextctrl.bmp b/docs/latex/wx/richtextctrl.bmp deleted file mode 100644 index 29bfb472fc22f3a6d0c012951c644fda31d2d53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351054 zcmeF)2fS9*l|TGD^M7YX(U?qPj0I5<1w;W0_HHs`G80WQnlYwLijL7}EJ-ZU7!zX` z#gNz=_LivFu%Tc@sfyB@(u>AIcX+?gU9dSm&n?fr_qhc)=ksvcXP>p!UVELhf4iKu z_Br_Lhkf^-stU*M{&n&1xPPds`ig)5P_=0xyJ}O{Kfgg$^}p&2f3E*x)m5A1zuW@3 z1#%0NWr04MR9*gsszF=+!{A;1`KA5V8`SIn8?@^`*7$p2mw$M1=c+dG>sj?;ZNEA+ ztc|5-)k{0q{HwdNwQ<R>i?Mb!>f)+hW<6@uQrt^wUCXZ?HEI!9xFZc$vJRHIFV$A- zy1DAU+8i?LF0u4#Z8t@JDRIiFO>_B)rp81ajI~`NXW&j%_jWA6%c!mYaq6KPy?bo? zNvG~J?c}{{{7pY`kC`X*s{eO<uNnC-w?J-zwZ#I{kM9*f?K%>Z58d$bt}Ah4#u1+z z_v?LMA2(s>_=!co*T+pvzt_f1^cym6g5Rq({azV6;pNQlrRuc5FO6CGdvVN!7siaw zf4K#63$#@WOwdUEMogJD^S$?97(3zZ=`$zKnfJom<NY1|&Wv|{*30lR#v29PIDOw? zlco%xIC=P_Nq)m5R{e%eoHVqS-;fEDGQY_~CioR{UL8N#@0AIYUl~8C`ZxLI@$sAV z^7x7QZ;i0PfT6=ZIctQfxsnyMz>DK2y)bs-Jx@M6ar%sBM~%Mk>4ERgU-0OwuRr$E zE0gEWfA{!L;l{)>_a8HT#<&?X$Ih5JX2uL4<2PpYZ^qm2&UkCpZ}ht};`ipe)8qHX zyVF<x-YFzTy)%8(wCN)YzjyscOq;&y_wKN1`ESjzz*ECUyuWZ^e!tc+3rrt2ZTjm| z-+kh>VK0r<#ZP|xwc$f1zw`X)u>*#VdTq+|89(16JKmUl)&Wyy&zU-V&XhTGCKrBl ztABGQ&6zW4cHuW6^BX^FPW;Bro-=ONoUya!jLH1oo;mC78MEJ-IeYZXIiqLH@_RG$ zdt>_SQTcC8u)wp!-}w8Y#re%zmn|^j-C2|7%%Ats!lBb<&V29h@4o-R%oF!4!i{(4 z&0G1KJ8zobym?bIzbW(PO`hvFcgozk{!W@Z&u`+Kxf7~?<LAuv8#ia}*x7T(RsSU7 z_x9|$Z_ir!du#UG(X-~hng7-V3k)3bCfvwx*1BkcnRDKpIp>X8b6*@g;nqi<Fg+RY z`iT3Ud2Y&r_lt02%5M&wId6XaX3U#Ez54g=ym@}W1cn5pz>}$~epA56%3;Y|0Fp3d z!kl@5Az&nsB#R+$&6=D4)(8tcK4j<zix#gDs^&^o+yW*Gpku^4Gp&)1oH6^gDesuG zjGQ^A6gOtQ_g>+*V1eJv_uiYnp!jEbB!1K8FNoii`3sCg3PX{3^ZjBFvT7(Y4}grT z{*9e8Z|t1;V~s}U%pEh^Z(jau`xY4R`tT1HFKPRF<{DPq0&mZr_g3|9^z3=@du{Tx zNi$~7{dnQ5llIEaQ;auq+^D$y*Jy!H4;z`|#u|MG8?AgPZag(~<h@TnH-7$mIc_xC zs_O{jGb2XjxUr7h>!NCw;>H^@=Zu;$`;FQ2a@;7gReoAzfoF5vSXU?1rMO{n*fQx# z+}L@w-&a0QDQY$O>A(?h<l~KX^D)SAW8J*(6{+=eBi_t$qav1E<Ajut8&iLC;OzGn z%wACV%~~*jrdKKp7R;Ex@;80{f>poy@6Mk;ZPjn;{P|Po&0qOGW$t_q9_f|J#5ue> zypUb_N@ZN(eagHse(UPkZ;h+?pf}%sZ{eafPVHRbrdeR+8&A;TS9qDS%Gby|#cZXp zzLA-yOg?k}X)~rzerKBBq-j$pPMzX6Vak;8)xU95ri`urjhQkfes52i^463oqgVaj zoIJ(vjq2a1$y5ABPMR`8z)R*gY~qxm`7gIXZh<yzf!8NY_IoY;CQc~?olTrPWYQGB z*QdNw@H5Zg#`s_DJ#^%VmxjFh;;XL=e)*;6Uwq-Y7yJefto}Xw!r*882Kx<qdhlSs zr>cJg1`U3q==c2K$Dbek*vj9aN1q?`NcQ*Kp#IMddN}{(7RW8oRxR+*bAwj?1`c|# z`uEVF7y7^OQvVlU9`M?*X~*r7#f`U4*?qvE7ao0Ppx+};KlAXDPv^hf0&BDd?tScu z+a7-On!E0~_mM}}=!&$u@&Mt{X9xN{IrxQX$MnqN#^_UaA30%?xRv~uTVO4)z?=_1 zp8df`X8HqO9eUGU_pAjqY713(f8nAJPTMbw8$*xpdG^JZ&7M2=|H?aVy6L6|AAB%q z2Mro@`Q?|F$Jf$SZ@>Na8E2f)h*HOm8~6L)|NifP|9c~NvD|jsZTH=GU*mXluDUHS z|HBXGPa8X9=u__ux_`>EcTIl!jww&yKIIv|JEji2YtD%0X3w56ZNd8qH-3BZrF9F; zua;whCCipGX(?{}=AujC#)=gy-h1!8pJa~Sy?e`y<F~*4tt(@zk6-@smqB&PDW{x$ z_SuO;lfjZsQ{v1s&m`odk3NbVY2Xv-VZ(+=#NR|O@$9qDo_5-467RnIF8Yfvz8K4& z{`99%=A@HOa%uML*^fN(h(s#))mLBr+0TB47uj!q^P4x`cq8Zs4<3vxvCE{=U;p~o zxau!P1WT4Ik)AYZQqP_}6K|p^N@S&7d+oJZTOEG*;fU3j&P81LX;Ul!Hx@3KwfLP0 zizdFYXwsX7-^5XiCyrP=armO~!xzt+K7HH>ulcgL(UjtH-mpNuxUqcs@;P(n9D3-X z{yGK@9H@0@O@I93A76a&MLECw-S3Dx{q)oSR(;H!JNLs6KMZ<*KltE-nKNg8;~U>V zdCxufXzT?kbLO0I!U-DVcfb4HI3*2baE%x-0{EPJ?zt|dawQfnT=>*ePifucUvb41 zFTC)A0yo`sQ@kghc;fi+<Ix)xeEjjp*>V>xTJ+Vgeii-GPe1*KKm1|YvSm?m`N-aX z|9z+ax-@$9=$mi8`Qe8jmP3d0&p)3)csOImjHOGLN+;fsQ2IB(fyHjP;Rf)PY!w2} zIp>^DKKVp7OBwT=Mq2=GESo=T;miG(4t;XTu&0*{dur*hCzcNFzhubY7QOPo!ZAbM z8TrE0IdgN|XtafEWULoAf-71?q;=nV{A}MX|CU>BfeDVQufE!8(8pix{lEYFzhyr0 z#1nu1^PfY=f&~kV0kUEfmu{W#AWH<17&2st1`Z-lJ@wQq!T<cv|ID91KXQ_sRBo0x z(Ihg7=bwN6vdb=uOF^8<&FY-xRo`D#A8)?-W+eRW)TxsZODY$A*h(U+b5>5CZlVRM zabxC^S07zI^10=sp8s&j<6|DWcG;-MmJNGo$q=~l>N_I`PswqkiB>LQFB3Pu{`IfF zRee14&_g<9J+G#H&_M@jU;FRBKdGsqNz9rxOBZk8aqz(h8*HR@RN4j)Iph%Z4(%%m zDa8#iMHHwB+?YCb>aTzOYvT%YDES!Sh7!s7<~P4tTCRLF!7GuD$amTZ+@R8!>f@DH zUNL(bHENVI)lv6UUy^g&NY-wqL;*Jz%vv(^$>pP8_~5lC`~CL#%a1!^^!-;Y8}{(h z*B@Fm)_5bwjmq1;Ox*a|*S=;Z;*ba>fPj(wg%@7vubf+Ny;a)LwQE=F9{cXQ?=#Ol zv)y*vNndcm1$W+gCz?{+um})b*bVIQIz9R1lOa;96-3j<PLv6evWO+h>Z^grdFP!c z->FqcrQq$;r%zG27HmVTd@P95(G=WBLL_LeA`&4m$BnFUnmb*<jrZm(88PtvAy3}+ z+Y>H3?g)P`{^>Wy{PpUkLmyo@ZfK4h&2bCL#EsO%H1PZHzdtmw2=LNNFL}!lr_ymu zpFUmZE7M=&4Lx!Yl;VbQORylAFk!-e`|aoS_S<j&;SYcK`s=UDOyv?~Jw&%2qWm>M zz>)|IC-7Rea4B1^S0N$RM8*mOmLwtZHe$Syghb-eM<2cBnrlK}jksaicJk!OMO^u5 z(=AZIjrZp)88ztM3x0XYvEO>@!5iOu@u7Za|L;{NerM{Vw^|y_*EgDO<WdO@#SQNW zEccblDJQ2CH;TBT-IdN$ipbI_eCW}mM>?%7krq{~qsHru#fujkAtc`Pnsw;Vp|Q+s z++rP-z%uJ=+G1q2*Is*Jv1n{yW<lefciu6ZGnp!#BGsm9p5IUl6maA3^OnB#^8DAH z8T;rR%iel<`S52JzVhhs+pk<Ubil&#Bi?!A<$PVVp;oPzzFypzH*cQiyu}t<`0MZv zrCyl`yyGY$yY$ja_uhMNZ!@h16kSTE1~ZDVSOE~S<(icwnrvd)v}yb7vrjgs-gN)| z{cpVSMort~BFpP#%J;wjeW0P46XKl+=qSIwSO7&Vwn!UsS-JJjXv&l+K*{_le~nV_ zt!W%V0XIIFzjWN|%O?$AK4!?Ww_jN{YVh)5Pc0w%<g%ep!Hsvv47Cex{ywE~=B<sZ zUfigSG0)E}&=xEJH<o|&{_?4#m%sD&@`)ps0}#+L`bF<nmJWNyJZ09@vAO?7#qU&( z8x=QcF0dsn05?8a{PFVXW0y`CzWA+|7r!xh@yO>E4S#0w>jM_P`sk7wljhEuId%Sf z`FNwUHzmi7%GxuR*1{Hm8w;24%X2JQR{dMPY^mQT@%!YH1s{G`<Y(T(8m^Va<+!m{ z-qtmxQWl!{`o>Y)DpuWffg5w*|8V{XAHDa{$A4eA@S{bG7cE(`c-gWg%K*nG%l_~G z=70E6jvIB`un|{V05_}(=C2?dacdgNvL@PD1dyfUIDYYqU+|i1XsvVHXsE?1LSHX# zaL*7b5=RQ`y6djHqI513F7d5$8Z=@~CA|7fP7z*xhM##>;gG=9A$a4`MHgL!H+hVE zeHk+S?bokgVkcaVhfVC81W|-YPzFsZH_=B~UX{9(G9!V@5jsb?+4{y+f3LglI`jyn zDVcaFkQIn5u|z@@c(6+gxXaoqxKtt0Ba8a-VRMzAiAxj<owK~bQm>uW7p1pCctdA) zkVEGvH||kL^Eb-nStp(K$w3_2Mv2+DJoWWjD$JYg5alBF+THyP`L4!2ic>y#rMAkJ zo21p7$Z?}y6Ez1xy|`iC=t(=^fCK#H=}iaC=Rf}AKP0>c<)|Rvn@!GLB2z@Eivr`d zCH6%3_m{u?MWz>&MdOXWefx4KCGAH)`q6R69mivwG>?rKRnj;@L`{W~MY;d}@Bhxr zD>D7{!W7w0fBIAJY7tDFIMK5$p>4kQ+G`r1w&u03hZZpnk2vB8uR*;e74>Fdoa9L0 zBI?Uu{<26qP91X8SLmEJC11H3-H}HgNimm{^7EhnT$-xEE0KM{>Jnls7_k$s3U}Xq z_wmOc?`>?>R@fZ^^uG7K?{VEnfGq0ER$S$Sn4P<H=^}zJ%gd!ix!xD!ee%gCYqK*H zB9<3Qw{G2p257c!6Rq&NN5RW0FD&4%a+Tsfq6sIKxWDWi+PYaT@qr<V88v(_wYk9v zEoAMW@%Pwck41L$(MNB)?Y7?92NxgUxJNE2%X{jum0Kp}kxU??`bkLni5xe|w^aox z>&1;Iizh=Q+<js42OfB!)6!TiuAcn8!xh}~?9r`JRo+k@6&?=6>c6Cs6~(3nW0Y&S z5+D$nnv8BV8gEi866sXK_b8&rOTJT=l$(Z3AqvnDrS+w_Hu+gz<)#=Dmpt}DYgJP^ z%F?}(-~boWh_S@@DhL>XDN1b>3NV68$yULV>RThP>O`ks#2W(BUw2CL7k?K(n(Uk{ zS2{{8DmQ3C=eU$8<5C^Ic|o7*%Q1#=fJ~AQ1Ys)<!x7F5vPO;^8NwU%H^+?znX6L7 z4aE&z7&plDZ0J*@1+C~4Jp*>^@q~z%7cidMLXoOQu;NN|E*==WWaxSfInboowA8`L zjDk`-3Q;`AbfY@WAP7haO5MF-gVKe!pfT*Z>Z+@hC0G@j8T=bpgpl|vL=KsFv{KwK z@c6I)`Y*!?`h<5nRSiYB%Z4|5lnBH~aG;5{U_2HI8!hOUQ`^tlDoW>FW&mUV5)SY& z9|@TWLS+W#WO>aC4CHLCQa5f8E)wy92OcoqASdAl<%2gMREd;~0VK8m^FRMn4v#e& zva?~5JA26`mpC=9a0$V^_udN)fUqJGZ`8=&s6yZd>ltY<j(eos!wx&l-BFgmMHpMJ zFL9Dzl*n<T$RI6q+92F8wv0z8o(-#59v*Gq^jSEGC*+u8jxo3unhHS74&Z~`Z;C2H zf=kE@WlbD3w_SGGMPoGL^=y-dE3rgDMYw?g*`9mui3|ZKa4M+HDY2$Gw!a_>j(Pqa zG9kkqcib_2_;6)K<VzG0ys$-pN#vL`X}02R>ABTbThU+WoWZstc(JOlI1~gFCQ4?^ zZh|-30z9NJ;A-E#y|hW0fqjv!f*ypLh7iT$T}4Q<-A7!Ka4HjS6!9A8tGfzPhDx>B z+4RkLgAfuF^xSjLxhYOn&HM=F*!;vPA$B$C*s-H>>C9zUrd5t)D?0-Sd1k{RTd9<) zsbKJi+RXKpuY5(?El`Al6i1+nxWDd#p&GNKdjxi(rpQchW5yby%KV$-Mwy1HELr)u zq2JLd>tZP2F$gvEm3kjts#6JvwiAh?jyg(P7V%M}ut{+u^X!RMb4oZer_vraX<K>t z8wC~N1_ES=gCI)u1Uhx-WECMnRb-AJ(Cg`8oeIaRCM^7kOR*bRWa=3WFtnzZs}Dj{ zA;@g+lj=+1-FDlJv{Y_LGf%;S)hQah$_>ehH%{X(WmJdGQG^AD$d@2I#v5|7yeJt> z^<`42Hap`gsxN)W#OsnqO*f~p8XWeQZ+s$?5fU%s$Wf?6B5NyEBP2Zx*i(H63>Xl0 z&fecB#ou&~uo&_Y8%GQsWtM;BxKX~XDo9x-ZrB=2LpJ`8qO*@mZORx<d$4P}T5rB0 z%+Q6jm>uZvYJ8&1m}1mXue1gcr1cG}8G(~EvS-IdL13>ixKSf<<1(!(8!gn$+Xy?u z3LBM}O4Kd6oU3t<%Asr~njANp$*^^cEy9hFTmR$qBR*$e;_UvSR>)(U3!+SHof^RV zs{^WAcvG&z4ewCQ1w7t*_8M`+C_TlrHl?g0Uga7*tDsed8p|!BPp9S%aKi}X`s=Sx znRO@hvzA|KqX8QA;zn(}b>v$b@(L-78=$fd`Z_MfJ*tBsd#TZ-WQ7!^bKEF0NXwko ziyJyzW9H<LV><6N4l9Svr)0eIjlb3&E#=i%RuI&9sVSMnMjdM_w?^S?#q$9Rg=-`z z&9ri89i}uta#%QKZM6|JI=`sgrkJsO-tsBSuUC#6<=d))l=b391<T4s<rb*81#;Y| zxJk<qnBzt{R?2DGtOau1Xq8)&<3_8PJukFU7RYg<QkHCxoE$eAWUidJtyv()jaIoM zIc~Iy+4DjxWq}+wDrLzA$;ok}LFUSd+nNP(+-Q|MlH*3Jm_0AFQWnT@qf(Y^kenPh z8f31uiI{KO52_C_vukd>a@=T@dsl=Tqe}cmTScq3Tqs8@QL(njXv<30tJ_&;oh5#R zf0{!$TWoz$FIO8R$Z?}pZc5<Bho|lL;?7l9ZBhj{W_;Suyb)Rnxe^;25vGEeq(xae zBpkM#aY+K1Csx8&*c=k#Qd4mvw&bKE2!c1hEQ!)4GYAq(By6T(YmTCFMe>TDLY#OL zmybxw7nCXoue6=71cpe&QN$}|Q^;rR8IpwX+)nisd@4Wci<dI1B%LhyH*^**ibmsg zDXJFRiO3WhCX)ixkf2g3CGi&NT*RBTRVq3X$_-w@HO3o}X+srZCQ*tF2V^q7Q`jg? zNokDI6e!ZU$j)foBlMz~q_g!+I=cmI757(hMdhYvL%!nFB?xN!o8v}pmTA`fisObz zYR`-yZt>=JZxE7T80^!KzT70XMeMeAA+Ab%gx$KtMG6D|=%bJ1V-e5|OrpNLuSMD8 zy|VfU8oVM^#bw*NO2DQdZd|r}iJ;D46wrZ-4vOF&?~vgBEle9R_3$Q>YL)h~knd^N z_VEG)dlGKB<(4w-H9_YhUe4q$(I*L!u$h?FC-!su?YGxJ<fL*1y9quOMrtojzUwv{ z!ETQ)!K8vyG((~gAPa%UGs-1O`?7r*vBGfT66bJrAw)=vgrS0fS=cN74za6Z+*pf= zvUXM+;`p28wHtuS+UPGkb^>=GC0yU_9)OFTZM=h#5JeQ}T;u(vEj-EA7rWxzK6c)D z=bhcJAOHBrgsYkgsz{WJz)hF$9*KNWT#=o_4%xpsZe*>|V(E(Gh9^0@2aa}X7YNbW z5eqNuE27~dqSo`{aZ=eD18hB$wsX-I9B6`9qwpkWS<?PjVKi+&;`)=!NTkysi@!y@ zMjcv>E-#2v{C<tRSvd#-b10dJBa!y)0S>9Y!JBNAbdLN~uD!*KB|uOrt4Me{t<hGv zf*|`hWg6XSv$hP1kx~?q-9IM@k4te{q;qZeSJ0eTW*}huj$oH?YKMU$W#axuxnZlI zFY|AX8)X`*vSiJN8@g$cp?Xh4O#=Yq4Pi~z;bJ>Dn?C7fQag&hq(ti*OGE{A>xL7L zKmNED;SelVgc|?{J7OF1*qk$&CAC4jOBvG0j|X*!9d?jVZVaS@KH&ysbh30d>o-#B z(4hl@)P8H^O(hZta12-Up$7aqN(&&a+GSMrqb(S6XK_QAt)5gH)NGZTbjD>KL~{go zLoxs}>q+s0SpMzb{w-T6Tdf-Kvy~x%oq3`S62ewtXI0i~Gi)hum<5a@PIX~SW+zb2 z?z``f=IdYoI^<WVqDytI?f$|IV;&o(#XTZT!f?VilEgYSrt&<vt%8URG81mt$Vj2a zZ-|ptbtH1!sKYqTcd6pI;epX*+X>3UrV(ixo`0vBk|w$1jyoEtJGFU~CgW+3jmph6 zWZGgY?Q)|b+jheaJQfoiI!7Z78+vGr#`cE6o?!`Gnt8I1$J+yG)~pfPc1)oN90+uF z656;)Q=+Gm5x#uN82p1NTkJYjmPyvGyY8yThkG^hh7j9>c*v<|PSL%4cjc0g5xY4H zKp>D<D#4AUvmK4>N6I)lWh#ZOLLfPvI(32@z|f>aePev(Dwb`w*(PkobaIq#?<`~x z1OAv<I81^-LD*S4Wl~!Omh!r!rch$P{r0o?6QzIaTi;@K0;yrHham0|BP*J%+#`EM zCY@`$zs4bflQu{pgm5>SC~0Dy+O>?4*)67xfg2tera<EnV!%+T?!P&1)NP+;x>|AE zpr=Wz?Vi&14)*19YKH5Q1r1wRJJnCwKs#+76`3)=NHw)LovAlQhlk&(zV$ob`Hmgu zV#=?tBr4HM5NjM_%C8{Z7Dfcod*YS0P?@Ed)+*&wCh`rWokqE~Uj|%JZjHQHbeb;N zxZA8;Lb<8F6mS}Qe;Gw&b+!v1UX9M2j!MZ^p@X49=nRF(RH?}K7h~8e4MLQQ%q1*v z(m?^Zq3FaL#TD@qiy)4)#37-+1QJVUSJOSh&Q@`cvO1^w(m|o29%8sb$&erV6Xldx zr;MYZ)J>%M5mTTETLo9$e{<ZZ+dj>7wK;I3nN$t2dSTC79YvT&TgKO0#dx?5%6c!Q zd5Q*JFL4op5m9XRTa=$Y)qQ8zg0hzymj+)BGbSUnX5Ce(UiHjA;6`m^rgA=nk-ci{ zVK$o0DKnkpMwy1HELmH|4gHRJMC0nK+uCD~JsQWGxU@l=CqoY-|CCu~0&f;KjC``6 zjtU{>2sPq{@qBjM(lSd-WXdYSjqLYL5?Qk*e6giLxM77h$BkyaBb622mT|*`J%;Oz zt8!DCUMkV<{gxUUwCh*m%_?AP)-<z71Txhzou&lF#+8^PC@U)=t4X41)<li<&6ZfC zk{ey4DY7gzrt|Sejb>@?%(jdh&0Y6g{#syx95-6!CMMi?sdE0Jtx}P^&~?)SIc~Jd zeP3sB!&?AradE^7f2-I(FSLmk$Z?~I25cPrx``X!$@-3)w~BFaNNAk(a;{dlK#m)& zatoRXH-tfjr-b+TUKuzd+Djd+_B%zuv#9z?;g8oJ{wB9iJ`d?qBx2DlcoFl@M4V_e zf6hWqd5Z-vPs?OaUQE>Blt?8scnvTt;3szeW73>jOL+<5V-Ow`5j$h0G%-qq=D`~t zXjBaX3B1zb!lAxC6qU5%u@Gc*mgxhCaT<R^Y<$2vSfaj>AN3`Wy9N5lRL!82NSO%2 z&Wdw2DB~}k<)~Vbt?*_&MnYza8%l}bMI5d#;#{QJnGsUyZVFYM;!5?c&CXF!L;vQu z(NK$3guddqVI^Orm=~8E3&mS;XxwL?efU3c2MUEb4vBa|z=@H&An!-7BR$^SI|mIK z6g1oyg|u)D!sy`Y%$bw3rLTxO^<vZ)kvyMRoRSYu1dtjw2t(ufDU;-o#{W>`<y6U) zol1y#cPK@Zl*!LrXq(c%{q1j4Nx2BJo{Ib)l_kfgl)TslI4T%AQ(GeOat-wXR%*zk zfI|*O0>c{<Xaqz=9l179lFr`O$e~8mmsSp9zwwQ4WP@RSyqiofH>19M(s;2V;A$?D z|1BTRkj&u|C3<$|VSC0IXE^nildrq_QV)I97rl>1drPaD(qSvaDZn-a3SjZ2EnvdU zmCYfid}^EJAtu2k9$yr5yS;%`F8x)_lfaRKp*V$d-RDGCo1LSeM*PijqY*}HI!ncI z!-J%M3B@!7iTImT73t~u<cy6BvFFOe>}rZP3Cg0l2`&wMAj6kQcj?Jbu`MA#%GJAh zm_tJ3C*Q3iWwdAyyh61FACn@GSd2y5h99F$V(EztP3Y`Y!fEiP7?UCiMW>-#`~@A_ zJ|PY;C?-^XHpV3Dy9M-+fuIl=e^Y(ILX0R#fUYR{d{QZFl?pA=Sw1<5H`yxDM}jnr zD49zl?r*9u0Kpid{Ec`ViMYSe8!mzFxWBd8ISOjT-yAm@VYH^Rv^;Lm*{FaMlvtH= zaKnS=z*Sk?h_*m%-Osa4BzRnlwi7YI50i%{U&r7rYJ;gA2_n<P9MNk_)Nz}%BSRFT z3=)E@Hr(Lwfb7H*PYi+aw?^DBv_naadT~QgysANR)l|CXFS>_hTXQ6xjU}9_JLra8 z5~g+jrux>68|0X#;Wgd>^*L@N!>-YZisJ@%BZJatX!>-|B!6$y+cdS8sSV1}292EU z#t;O0f03KXn7Z1nx8B+_EJjRIl25YeFpNhYd8EhB!>q|01Dk;8(FCn%EZUK1GK(jI z>CBQ8%AeVTE#gCf7_AU{><zq4>P-_!JLHf<#GMgHtkZ0hu`)n6RWMH%-KnvN8iNLO zR+dW=_uO+2fu;ipsKLS25W-c5gi(YN)i=9_km@MGRtm))<r?{@ufsIWgd##;gWezw zr9+ifEsUlL)VAY?kUBMWRh5B&gozd1qM19T8*7VRfjn$w@<j-pRW0t3%Azq2q`A3X zQj&3)h@9Y+a8rcMx*f<!R-80mHDz|j7td?95*TZw5q5TeDWKd^JEyW5k;umzjWAl% zSt^bjp^}cwi%x0N-kv>sY8`s*q^(PGVot5eh=Oz~kq9KxJOyLowaS6g6Rw$SVlfWU zBqglN;fns(N(DD>rx?*&pL8ly4q`L_B+{-r@DfO@v?5%J!wRY#RRCNPp(ozZ*{Ote z5&}iH`NF%kRs|^zu|t9!C8{rjtdd&%zh;>FZr7@-JJI5ya<ioB8)9XuZ&(#H@n)wU z;!qDe)1i#|BBq|xu+`6h{&Uc$zKkFA!HYm;5i3_Z`(hf#$_e6>h+Q?1$w`wbHBEL# z5cii%`N-n_rgF1(M$_mc$Bjmtt|^Sogd16vw2L@3J;~<Roldxc%)6MZ!+GqWRU^9| zHmz^eNKj*@*RqD_vA$6wK{=ULCyH8nIb3K?I_V?>l7{kH?ZgWuuDkBKG7CZmJ+iy> zl+V~^DRbOtm0J_I@j*rR7cHuYuGSdUQAeL!#G;4#-~avJ9zA*lW9QDD%{3B@1vkS3 zon3lwn=a|N8-W|f_LdjQ#|@pPPCOOb!~{`|(7B0)8jX16(L^C_fj!5KR=Eo;fEz-b ztZ6tT%B-UWv|vepv%FRajdG1ZvK#1yWP|zann0PwAtSIT(y9(#+k#mwtb?FIml~~e zgGwnPZcu%Tc-z!zjvK9VJ6ZrYTBTljq3ehRa@=T@8=d1utC&46v{Dwxaida}Y>=EB zH;T-~E0se<-CK$kvE-+%Xn`CzTE+M|ZWNiF6ZK<{J;rT2ZL`A%qjVvqh$}yBEeqth z(JGd&IBxJ7@-oz68*tGR;l+`yTEx3qR}=#k`Et<nKEliOns<RyOQVU)UfczV)rXh4 zJdq@m13=_kT}1DVs#7luyc~&qf4$Q6H)1{TDmQe<mK(%$jzW_Uq*GP!34o-G<<lfH zC5T0!2swgf5;0ymN$1c+P7p+WBc0_{-`Hw6$&v6WM(=S#bEm3LPIh@VU5W$)B4A7= zmB5>o#t3w#m`mAv#P2KnUI{Nx47VmZX@t&E1S?_3LUP<Ayo@i?jgT3(avBv^1?4&o zJ0lKWloE+7bdGXmDvR<Gl*v{h(m8IF+N1??DvlezPAK$Aj1|vGyIk6AKR)CUb>X2M z4%LF5yi1Kt4j#OxL{;px(@xwN?2zx26K1NuJ$|`R%Jet9m=uu$<>Hcp(7Q?+FQeUd z+l{{^Hz$YJtiCnIsnWA&@ZepokGV)>%MIaaJ5wz}B$u{8rhtoph0sTPR0RVP$FavA zOE_hes6h$zASdf_iZ`n>Vk{Vmq5!8#Z(w6E!&ZrxGYOCG0J<oY(*>_f-k3BOJttG` z&~qXU0>r*kAdQSZ65cDRAa_tEr9;Hz2C=`4&uK&eolBIAe7yYs`Gs<0lS47;QBpu( z+_j`LH5ij6>3{`e+#}9i97lPCMg$))kNU=&ZcyN>C`x2!MQ}k0US+x6ynm5}&R(^v zphp5R2&KG4jV>-ZZp6K7;lCBf4f=Z~qtEgT810AKWYkNH2`>&`&=BJ40gG;nyRye# zr^Y`S8NULjzxc&3vZf%)Y5XNTVUElQ&x}iikmgDA-4k(MoFN@(BDO^<04!AEW9gAD zDmNrVp~5z`m*9<@^cQY;!W9ZAz@Yr7Z}RyJeG+|<&Jo)pGL#=U_iSotWr%gqYHe2# zX}Dn^ktRx<yZEtq?;M(w&$)%aH%iSgpaW#_X7Mdcyr7#WxvNoMiO@l7RfK~aI(x@$ zJdkSbzHo)jszfpB$+6%=cvfcyOuPuPw;;u}Dc2G8m54YXi6}7%SE!;Re$ds>8E&|V zN>A#g1e)xT<3`pREtYO>+{ji$f59(WE6~kpHR2;8@(YbGp6GFm3Z#u3oE9x9#A6eG zi*O@~NY9n$7HAl>)P@`A6LGfOl*y^mbF1sr^J*O-Km85da9WBR+Jc53!-+&+q;s^R z#EUEljL;|(5%=1D*3T_l-ylwH5DaQ)I(IJa3@dcSA>mYJ5pEd&E5f0fXR$q0t%leF z#yX;u`0KPbof%nu9S9OvnYfXJN4cfAA?7j3%qFC>M~)j=YqVH8aHF!{qmO4&hv>O7 zcjhG()v+6c!Kdfh_YlQHK?VeNeetLx(+`?cpfomcdel)zB_kM_i0(8<7CB{88ncEN zt0w}9cn*b8AT}M=aCBG(w+`V{R8o*~H8kb=!Wx!rxh5Kf<5jfrGgaY(WexP%Qly2k z7%U;v_QkaspR1JjFXFj$`Z5KJC6=ttDr=x_NG}ouEPzM6qWEL7ukK_*o+wwKM_Rx! zU=uciH<TnCjY82wHUkwv=kweQOQu7D9K=HWe18quF~=N}RFV)sNJ+PVG1VHF!*Kq$ zW-e@H;1sbW6r&y`BaSbtv#2_9+$r@nykRk>BT9X(R4_#pXViojF&$J8!bq5+x~d4} zDo&w_W*nh;EaS$BIEKA?7Pri8HCw^O8$V<g{mpTs$RI6q+I+a-VfL+0PetsLqdMBD zQ>$D4YCcvEBqIDu!V#UUg$wDl3r*M|T+02mwuZOVIH~_qF7}AR(CQt^)d^aflTWyE z<5Po#$Z<ruga@x2EEpvs0xnyeLA$o#Qj8faM8q-(8jrgCRNvsr>TK>4^^HqeUTry* zYli{NhtAn@gEv(ZLZSyCsoXHE%t%m%ts;#$E6V9!d+lW=h=6*KP<?|SY?X+^R%xyw zKXeW?lFmU-6tgQgu}fG84IL!1I=hrDm(kSMO?L}aO7L=guu?(69``6KInp_9l-i^P za+(h}C|}ggHEVTJgKE}N2-lm(%BMAi7@t?XM4|3QizHEmc53;wBE=b06oE-?Vy&yd z3Lu#Xv}>D*rPJm}03Sn<a_XDoMswJ|UYQlg4c)OV?98l<wCgRsd;&4BwGr#8ENJMX z{ne;zBdd76EpD0#H)>N=Q|j2UV{KQPDc>XlSY>fT+LnOLR9seUIrYtPBWtl1OII8> zj5B>c*kN_9g0)DV6{Rw*14N1b);5|g<!XA4a^s~&(?yjpp$<EgFQlQAs+ksBg15!g zsJEaTHyV03D?(p!+^C3FxscofWm+J|jWP{YS+X2ADr?VNS_@ks$Bh;?codi8Myr@T zFSJq?$Z?}mmTZum95)(duAI27Ss=%aR=FdqaieF|Rhv|e+WH@79PzoK$M^irMVHQA zEB29V6|3fjwwMKS+-NaVXA8=4BWsO3y~bG}$BkCGWjSuNirMo*D`kNkH!5Yx2FY1- zaYF>RxN<?A4XQ6<(JL6^sEt>|Xb?!$Mw92a1q<Z3(JFUg&BYC&6Qa2zK%;!q+2KJD z7GKsl#7x!5Yx{J89**oj>NQg4nXPMq95-6U{^j6?U7^Hc_+Xzy!XY+O6p}>R4Q9ZA z0fh_IhmCp!M@xp2p;)Kjjg2^r6I{~Xkx7VJ4PN0(K3x=>{0Pr<DR$=wvxx4b2Fhe5 z5`>e>Ntu+vMKS70IFySXR!E1=V&a61RbMRp@!?2+!-<_hY3eCRaS`7g<r0$Wix`<u z%~WnuDNnS#1#;YId7CS-9NZ8dF67y#f$j3-yQN~91a)fWwt>>bLT#~)PVMmEFAsCU zo3_3YEh0y3b?|DiMA;`wrcNIjVw=eXuTb>;_S+AQ=5I$GG{UI>h#p@;&^H#5+Ues> znz>IE+t13O3EMqJu)KIE5nF;dLKEBCP|w~DBEG34uH0Wimx9d&SwH}L`q}g&5I_Jd zovA0FTUaRE5Q87(0>D&X@%~saQoB`dSzc(?0y%DEt<hrXa&SYtv)PLvqu5U-_RgYV zQ3z_B#$RnvXq(V=#8H<b-pEW6N_mq7qTer~cN*i3$d7$&Y*GOh6rGiZKm@maB*cuz zJ~noKIPSRP{_DT~%kC4draf@%nG<*g+_HQApvel%mK&w#e_PQ4Ic~Iy@yo#tiuv%O zPTvRO1&%clH#FGqeeZiVz9Y6a+z{M~#v!b!eB2<=WW>IC_9@K@mj-&Ek65T;FR$!g zQVBPZDb9$+J~KIPu*Mp3<hao)x2YW5@Ld4?xTa)VOOpub@%`_AU-y0T$tNeB4eWt{ z`G~26hG`2In?9LhXvla4*PG+O99_Hx1ak!2H<<z;wqq4hrYCk0+<Wi6rOkaTSE4aF zvZ~;XhS7ql1R4{WRH98V%u_UThpjKoQ>;ZO&Te4#m7+7@mM;jjTa*xc^9y2aKx(E# zCHacOOUO@u`ctRAUVZ-g=UWm{ZtSvao)YC+AyF<o0ZNu@(zZWInLN>27RYg<RV*L4 zQSW!9wMR|f9G{ZH)opp<wCKacvAXE5-aNZa7GAA5?U|{mCSJrgg>y=*c5OT$ZB@jp zQVDH2*~B7-CDSxMk#A=kEF?G*89=}ody~qiuv6=?be14CC~a-$)PaVOs7_J2cpXu0 za4Fq_2@Fid<%w3eK#m)&atq4DjV9`5(|bF=)w?-H(H`bSh3fR1dz-1E60@iFpvZnj zC3`7Px1t4d+-Mc!R}eQWMATLV>jvGrb*mRQYGaRllaYfCI;d`%=DTYCvge+AHlO@l za^ozJ<3{7`)<muf;)c<F9m-f(Xu1zo-9^+<dPOd^Zs`@N!rCV!$BkCGrxnDFR?$B% zbRD-qjvKA=0OYvQDrV0Mt&|0F+^Cc#8zd*kjRu)3CvIyN$Z?}p?nsUstzz~X3-u-F z_|9XESM$soEs*0zjb>@?%p5nG+rs6`=ep)wNL<d!XUQpZ+-Q|&pd8%rl}}&)<SFW_ zsa!@KB0eI)fy!GFuAU-0_@euOc(xXtrhF5bk7axXgQwPY*Ima4Oe~woI7bLc(v(7A zWC}P%&tHq1DBmz`DoGaJ9yCRNDIfwxW<<yH<Km-L^f4w8YQZI#MRl}OF>Ye&lkiCJ z)}S`!xvf%<Z)&zIyvX>Ia2)lGY!P|sRS{e9a|<Dq_rcRh`|24Zu#))S_*OMaE^s99 zQ^mrG&MT)o?zn?Lf3U<~pMRyH_&(liTxU7I(S*;f&mjc?n+qJ4$^SMa`<A72_KR-} z8~UqqaItelE3=YI@nv56NYj}CCE~sm?Qr6hoeAML>mG$PZoTOF(Z#91*?UAz<l{x= zl2esRMM#9^$|W`labJR$!9V)wqm-Xb<hYTwMvJA(!3~ZRyu>wj{+9ppFaM&Yc;<Z_ zc*`xf^oVi`ceO{49zNF0(>sFYLx11-;-@XT&BK75zc;6Dp(27)x_0fV-R-v9Zo*YO z5)h`Us!GcukXUhNim-Ez$W~qx<iwYbL#(EUm`f_>b_wmy*OQ6T1U%AmG<Ipbb8s5j zci(+|HqjIycs-xK$h^@;8$kyCpQ=VZ0(~wjYjd%;KF4O(@cGYwUi_>mU}8C!CSHwB z@T`Kg1!_bK0&bcxuUCKrD8BKHZ=7}3S+VnvCeXfpdmolP<d8$|yz@@q+UBdzl8gX9 zH`rhUF7E0mSO$7zHPK|$LhLQe@ZSH)Pk!Qcup7bm9%87DpnhLr#-$couHxXB802h2 zQ+@c!nU(_{;Y$C`cfLbOX=*Tqn!*-F`@s)>K$P#$*>HeiwdixtJvXb58?9)~S#YuH zyTmQ$hd=xwA^dw&tEVtt68H%x1j9u!CL%#!fXgM=?oc#5L63k3FR^mA-F910CU77u zkX0k4bKFR#Xvsu5xFJ4tz4g`$tt6aE>)G8_2~jHCv2@%J!;_!I4Ur(aOKth+qmTAf z>nl5T>ZGA1UhyVc3L&0A4O6J8G_eRg>O1VPgNIf_&_K9+yA+299x-orkGF(OLLziU z*qR*OA3)fA^Udw;qy2I_56|;p7e4c^|N5`e`dnWiH81d;ddLu0<F61ESfo`(eF-Es zV&a0=Rv{2T?Tj?U+Gv#+sVdy&&_fUH*RLNW*=nn;g!U`KCGF8y>@_a-F+8Ifu#HdJ zC7rVhq;#^C0S0&3FusDs&Tx7c&adLpexU(e${H#OkzlJJlLmA?)EKytb=`M~O3)1c zOCzAaMD{>0lPHP>FWdkQSsLl!EsY(vzX3)MLyDD-xJA)VQ8m0FHh86#Mfu1qD#dAz z8>KdBft;q}hQWZ2RZjsl9NKA8+k@?P8!*_^LfhA5^c|YmvBw@8m{SLCXk!2T&;P75 zt(H30W0u5vChNrw6QXwQ+8GN4yUr`IC*06RjCMq;>EnugS+zl<9lfXVmFKw>H$V*> z02;;^y88nTIDmX}4PbKr{r5v5U8=eRkobJFW)3<u>d;5?`KN#Sr@+ZFaYGeAR^Xd* zMeQ*Tvl}~^LMq(=WBv8lH$zD^%_b6V7y>C#+Yj7u3+SmX5uvQgKm+>GtrRzc7g(u_ z@s9zdK?2jkKtgOwVki}b)`%MhA*|}AFq9i=%tPnE4TBKlI!}m8Y)go+>*>>{8#^gW z-A(0;m$EgAbdDRPHfe#JrsD=2Ffz9S06n0A7MIk952DvS2_`8zS%YLlSsk$e`Fe3f zR}PVmIN}JByL9Pdu93u+gBv<@V;j7VFMQz(+Hzt~xM4PJc|j{6&?B7)B(yAzg4(dF zM%*yDFc0#aYc=K$7A|mEx)H-dpxK$hhB1#hMJ#b303DPu8Zp8*=rXa2w<p#vVvLkk zAf?lI!;t={qmF{WE}116x*Kt^?N`70RgF%j`2|Cz#e^gw5`i1awO(ZCl5oQfvZCU! zW?~{nEPddHcp{Us{rBJBge4?|&cd9n+aNQuGrQbtuf1XbNrI_XS}Cd#HvqL&BSote z+%V<AVxOhZ86-j#BTNQ#I~2j5;6lO#7C4(ZX7N9?%5kIUMz_pqy||%kGix?n_lO!Z zNEpZJjC2RlFX%u$2^xqAvS-o|I%#fls=v@Nnd<6RP-<4zH>|?p)k}KLwFMC2sq+Nt zJ#{g=?6QlAye6sRBSCZU!07Rl*uV`V+ar%W(s)28j@PJ0Ycig(`37ak)PdqMIf6fF zxI%M%tInD<O-ai&A=0RUNs=$2D~ARoYvZQdrQ;19B~&y?*Jf40ldp6I{pd$O(!e!9 zMd(<O0ZD~IA)PhFSWoLP1F|q^oP*1lq&D0zcmr-WE?|5tM(megez|6a(c}n3BTx$m zyQzZqsKjhVQW}kd*d(TG2{+tRRfzV^{?bNz)=wnd1rv}M%#g!SGTBq}moSb}YYE+f zT1Ws}WI70IGBx6ctBKbg@d#m2Xi`$S9vG*t66k?pLkT)lL!xL{h%(2GWWAP5)QcPL zlrU8bcUrn8AM<^~2Hk{bm8u5n9ukOQj9SzkXhFIpkDvK0UJtp4%H|l+%X?xycve3k zgVv#Q*VthcIq|YUOYuB=!gX-qE14y5gG|quwg9O#aBa%N7Q1=C9K=>u%~lMg)3U!z za-62&G-%R+>fNAFk}sjw9)49;G&M?b1C92pB34l8gT_bzy`=+ByM#j<_t>kiO9(U& z&=HF&*yR|Iu$#ZN;Re95bYpFnG<8%j29&0A8rP}5HYJmtOPf`y6x=X}N~Z}oQch_i zR$@!@>&{^-&jw^ugo?-dRVj-FBDhhS-_V>KHyUcOiqO}K8(=|;w&12X>A;PO6y0bc zfg48Y^l>y)P9wPVgPOL{a+>2bw9q=}iLDJcs0ul~5~_o}oJ-);9ZX9f-~H})P2wy^ zWVcBvM@~63aKr2aGQ$mMYyegx7o5*=qejcD5t;SkhFa*+^dJ)En>~B>tZ{j&B`fQ- zUFXi7b+Xo7_16t8+6xp9c7wRgEVkQjJ3}TDF1r>th__y13q)o^F~=_@HY{nVwxvSW z;+%ZE(JD8$9Nb8Xd4>(Vxg4aNR!Nw`Te~x@Hsb~z4b{Q$+a$d~T;8Qxpzzl^1N3MR zZ@t9kQ)-ds9re=Z1X&B@xRJF+i=_iMK0Ix|7kAFTE8SvN&kL%U1#;Y|m?;|~DB;FS zIc_w>ZaHlmu|SR+t#Tt;5;u(VtpTnPN4!#Ol{=Cb+8_($xX~bURf@PJaU&dr_!zYP zgL_h?ES$?}Rtw~~(X8gJO?bVy!Rdlu1Wyb;6%rN(iQ*b0&0D}<ZWtCSCFF+-kc3w- za*&mlYjM>j1TOIxk}mQ(2ws`IK@^8T(R@WDD1(a^5Kj+_q9I(qgJXtFiSUN1&imA# z(3aChX}PL^6hZJ7d7(JX3UV6$A>^oU_EKrunx}WEBrBJd!kEY+XoZAO+fpsFAPxzs zzVfm7OG0|%92E)5aN<J4(?gDmAak?gs!|Y0yAcXvZ8{`5N=HB%OGcGL2zn)kg!rqP zhzXa^L`1nqtW9AulQq!9fgtKaeiRpS5XU`os=lkpoAiH<8%;7_W0~v44Y!!1FTVv2 zpZp<x$;cSq+gLB(c?ED4_N^s8MZBGbHgNLc3+k03$0P)N8hK|Gspc)JO9<rindCCc zKO{>Nyk4*ho!|q&(|}*rH^2E!ryg&wGq@b{@bo^E`<X&XbMU9)OwP5E2RJeg(!5M5 z?2y2#6rSFp9)E8vLP(-quGCIdjdL}xEj7*R<5chk7Yo5G$mq`{EL_B?$`QR+uU^L- za|~yD;UO%5hVv?VZW5eKxS6@S@x~i-9QEErK$%PYS{0$ad$rAvLI|)Cj<i@jA;8>4 zIJF|<>CGL2>xFn0EiSZD5kaiVmCvh9vvrkko^n|LM7Tk$szmvs4nuQpV{R7X1agKb zuh;pRt3LlXdaBz0`+xtB@<fST=6WGPZIuEV%q|YajdoAHkP@pXZqXeqdcg!VJOJEc zea(v7t!b&U#7a|xwmiW;^O?`Mcbxq~hbI2baifU_Y#e*NxS{jn70KV*11U&Ezpu$? zM~d^5YSbM6V2cOLyHQW9geNcv@Op2XRm>xrc5mQP82*r10_ouO%xmvFLL=5P;w3%& zo;|&oBKVdoE{Jg{J@HBiD#4=3JAzlH`4JWvs5vK=bjtNqq*ZF32-3k<#A6@$ro$y% zH8l`zR;(HONPx1<Hrp(Ed_ammx@qniV3w6Qp9{g@!s=2;*8i%bxGgTDj0rAai12)p zVF)t5+#FE3jxZEsCVdPNKKHrL!9A3G*I}c^3xx<*9A)^Kh<|Yv43gs`4ji#S4dq!c z$>Eox?UT$buoNS|J{<wGgC@7YXhB)7a(b~30O2w@rYepFR1gXYhfe|}7?6v;n@buO zSy#b0RHugeQW7w7vZY&=tI_EkHyUlarZCov8-zz2l+c7dMG{6DLNg>%qf6~K5=IL( z`bc=#fDA@HpT-h(;6`AP;<C6AKFru1QINj@4w^>Fl&Bjw^oGHOQfEpH39SRLNR%GR z_1GhbO9u7_9(Z7Y58Pk``TB07g&-gteb`E-VMENzTn$JGG7^vx9;g0_-%0g#i4mw2 zF@T9C5~*Bc9t2UAat(W67dyiZl*zX?TW%7Cl0T|3m``4YCrt7O21gJqMhocK*<dXE z|D9_7R;xJD8$Rg^l0XR$hS(e!D9y02R1v&GRVVCB+uH1$l~ZOq$Bi-#RavrfaKjT4 zLDn7sJro5r98FKJq{$dj%Ml$Zu1!Lhr%Ter?4IG-6BL#O5Hk*2TObqmXoMhMW1DTZ zktrt~0SJK`hz*#P8)Jr4t|ItYVoA6WyIvSb>kZ|@4V}0#iKe7GHbe2yrtwDLhD?;Y zPJOzBp0T#)xd=D(m1?cI;Y#hdHr(JPF4PVhICR9>_N%FGvdJdmYU3&dXasJEV>K(G ziLrqR6nh#!l!+VauHhTPNs!=3xFKyC=mxR5bWBo0Pk(^}R56h;Pqb!I;9PYW6Phgs z#u|+XMivpA<HjoUtR?@~iyIyrZPTH`kU>}CQIXbxir6xNH9ikppfSWX@HXVuvh;u+ zHjRR(W!6|8Ih3$SCgFexI7G{pW1?-0EnzgGBQvOW6^#Lmaj*PTu7aHEF$>BaemGGs zA+yz<=Q+k3;@Lg4V(Lv0j4NEC7&!(2SkfL}5X>noY7lM+B{Pq({YBm54QRkb#_IlB zZ2*{hUJHzPjoVEJs0Y)mz(71}3$b4i&@&U!?x<Avc*Fehu)_{Be*_oi8ssZWq_EWw zIpW|p+;Bs%ki{!@i^FWfIE_JIJ58)P#C{{@8g3BVTK%B5HB2|r@(v>lY*!p0g*JvC zG&BxbC9m*57%`t^d1De0F}SSF+FL`dbu{h~z&EqYvNR=~k2jiPy+-o}Zq)l-=_Ef* zOj1rtm~LwV>9n~MT6!Htq`6fcG)0%npQmW%wm5?`M&p)5tX&wu*#E~)K{|Se5sqde z(B4c$yB5)-MO$~(ek~E$<i~=E2JWSU1_*3{Bng%ijq5ZzixM^-u?T=yw+@=f45X#A zWfrFzxXDGt4Qcx}BCrmrJsRWTB8_6wwsVBTa;#BP31jviY4vcxJ=GT&MYsfTjL>Lh zHv_vhTG};)v)BSdtp5NpkPFj*13<QxtLW0OJ6(eXF{{Cd$%NIq02Z^@rLuM{D_Zp` zx)BXJ&2gha=BgBNnYfY01G+FzdyS<Vjp)=oGb!$}MzV@zD#DU%ZK8CGR_sk}BpkJo z73FJawT(AC{2E=Xi)u1(z>vmRNQ+<%BP$J1Bhti7uN=l0+O=lus_6rxAxLj9jR!PC zeY#5|$k!ti5|qU1-_h&MB@DpSg-k4=FiNMUZ@?kFhmAMF3L?aTm{^@V0y^mWy-5l6 zil!B=8ulm%7)EsnaayRxssoLpWf~?aC<cB`2}c~S=Cj76fKqTrm0hBVT4QuOqM$5& zQ_?wZG{t(2<}DL9%8{?{t1YOr9QKCNc%xSbi!~F?7Kl0OAj@9TDD1Y8&55-4Al^B` z4OjtKV59ZG)cboWX~uz4iF@p^hsLg4ja`2o&L{Eys8np3IRK<+A`pzaa&fYXBfqre zmI{wCQfYosjx~)|k6SEKsqWJpH|n-eGhMA9ZZwmItu9u-ne~mglAyKfQbRElqFBJu z|MJSP0g;zYmJ7VNGy>sPk)0PbqAtb&UOJaDYTeKYl$k#0)=LSBawuG*oFX#wh?WHZ zqS702n&U<zjMj9P95<S7!(2iuS|G=bRxy5#8?9pYywFNnAjgeLS+YTL)-~KPq_?VR z(V)mm-XQQXD9T*RPOV+2yTkjDwWex0ZnVm+T-R{Js{wBw!;LL#a4Q%VJo!*%GuNiH z7pB%O)ZHNtr3K!3wT$(0+-Mm)7nM>jZg9+a=pozF7uapGCp~s77oS2x&}(&UNFm|0 z`dc2KDy2qVZ!Wy)5EL1_)eK(Jd0iMs1b29W7^{w6cF5-r!I4Q5@XjK2n(~FraHa6- zL>d8MT$rTsIwaD8*Hr~sQT&vW)&7=V2^n~#e7xCJO>bKi5gycuCUlM$F<we4h+l`L z)Knth3F#;o7ge1S!r4qhMO=~yvLaprRmWB3T6dLjq@pDZpXAiYTOh42R}m84l5?V{ z&U=Wrp21a=8+J}Iy;}8R$U7RZO)aIee+Z|5x2T~rA>bDQ$GK3Cp^^k1UkGBUmd;qx zrRGTFxX~O|tygAQxS@>;!4Sdv>t7dIy00+z?770ng1KkQw442Q+ZCGsFMnA$?cIAt z_L~B=@g8*03J&LjB{LspHGSauAPUT1P6d?btH2*gf-?pmBwtAo)X8;<s}f%+FBG%| z#9XBKGw>|M8_%%U9K2OIn)18Wy>dFj!g&=hX<kYS7At+E;Rd(KFd82%?6?f?<?uLF zR`|UuH)#CzW|jgjApjTRR(RU`%jt^(boQ1um5ZKF7bP`JjZT8I8I=%l4k_i;TD_DZ zpE5L&a40L4jvX(jGEuAi%6y%K`&m(a(I`l9Jmo?HbRt2>uv1PTNty&{{O8%0x0u(v zFofe77d3uppoS2>ZE_TZfET*=M?O54-e21w-KVRGC4~DcJ9E>`%CC4j$Bl}cv>btD z;f4>w1{4UT{O)%PV#8N6{_<Y<&UXrU5~oX-YVE6wu7ejD;*ujdg6io!et{c0XfBZ+ zV~tTm(1`de>h*$HLVP!nNxVkmTDSM10`TSYlhmlSal8uDoVC891r1#%0u2WN768I~ zN{`8blP19{UqOmXT1SccVlQVkG&3M?U_l43%c3~kA{M8?OC`cfc{N@_gq#Fps#<jA zkr}*ll7B37mDV?SfsceEhD=b}my84pB*i4er|>Q3&MKfDYQZ#LZ&5q(I6TG?L_Cg5 z2#_Jhk|czkoiZjcHzqN*iNJ(JQ`tn08<n+ZnbI1D8-!*NBhrFNqfg<$X~^N1-E$-1 zMvc5RY3ae1&7D$YgvT#%LykV$ZVw_j0yiQYHHfQa7r4@?v<PwI2Qgno?TDuq$1MvQ zS}U@27|H8TwNoPpEUDZg%*hskx9F7f1AG%Z(@@+Xs)!fjWxtffcip(cVPP}r9Jt}M z9Nb8%MnZk53KEkviHK`6S>xvxb_Nvku>@D(hD!*LDL0E7?hzyjfw0{@vTEc5pxGiS zo6d2gvi2-fTDiEf|NblNq#=YYe2_Hl*|S$fK$Bf}0yp$WUP+h;WFBk}v;pyI-fON| zvEP0L-h&S=WPUo7GIWmT({w}RRBFHG6vht%NCjNz?2O4pg$Q%7Aq+0QSehyVVRyPn za{;R#mj3jxKEh~~AhmrG@LK=W72*|X6@}`2omxfFhe8a_-uzMRSwRRSacbV7u~^Np zMMl=P)=8*gE@O!9Dr7@ObDgX>6fWWfindGsrB)RvsV~N5rl33KEoS~z#2aH3f6Y^Z zmjVVzj_e3QHRY?X_DdR>qEwV9A{9J}ATvmi8H+g>r5$RjIF!<&fV0&B0^CrImkg^w z3i);=GOrO-A~p?W;0C)1#1j^$YFXSsz`NB)`baj*Gd?s;Gj&p5^BOkKmQ|5-jvEy* zV?%|MiyLOdXPhCVYNdR*F<^lB*uv?x*RHtlzCr>HpmCZ#;6@Q|zkUT?OCpGC+Vlx- z80tsJWWo(1HDQmRskCR_lW(r!)ZvnCVKhJq&XWi<UTHAmY6O)e+|Zh2TBd+Y66jGn zG!3WL^gQzt(Nv8Y2yvBjrpy@F<E`dc`NsmROB#NhYqL%<Iwiy@WzzINXcVehAv3j6 zZjHQw8&R%-0Y=1F93dqBT3!&{rU<wZRfzhsmC1|hL_w4c`jFtS8H(yigsqZHAYhnh zg(TKX%}}5;GB9Y$hAeP{7pr-nLLp=kZlF;v7Wznsol|{NL6u76xKSxfHb_qWxUqcs z3j670mpW}&R~^G%e?g_ZiRaVZT*{WPhzB%c4IzsgSsD*^_Dx6jQfb;Ug<h4HHLq`j zfl`7tm}5~<tE^Ws8)^wd_SVB+P*X2`y#zp@?s5Y+k{raPxRI{5KqAMD7BF&Y5%uGS zv8C^mW}nGB?_6=f0i~j9$SLJTRK2xk4aC*k9Rmcf72>L%&g!Lot7Pi<YGf%VQ)g!r zA)Ei$l44E44Qm2*x8H2VjsFF+XK}+qO;OxymcF*M)d??0>L}M*wD&0%E<%DL1QF-B zQJX#2;{5t?L*>0OseUWE+76lb^{X>$Of`hpYdaHa&wNNSHFg?@F11GSWoCjPs~pw= ztW=cA(z;|`Lr0ixnQ9=8H`hTQ^(~V(ky)5!?K;Z!ehNXF^)RW^EM6s1Etbf~8!cw) zY(Zt=MwTH@=N4#77RYg<RqjTP8?9pYywFNnAjgeLS+YTL+8}OtnPQ^tu;|yIy5z*` zpapW=XqB7Z)^LNLC#NjSp$>06`F*vDS;{F?n9j>DmqVD-G@}J_+-OGQ)-JkC-0&F= z9#hsWN#gS(?d`utE#a_|CU{DMXGJOsfgE96-t`xVh7Pst@2^n=H!TUy2^J~~7lsbS zPKbo<@2s;`=M4oQUbZUKDFu>b3E@}as30B0Ubqk_O}HW?qPWmG@xq~@Lw(<HWri0% zPUBsTFgxk+L{r)-mxltSFdC8f6DBCPKvTUhU?Gg}$Rk%IS0)55Wq+YEUYUIAv%E>4 zci!QWT@a3D>QtXQSuMd*bmC3)bU>NRoYfhP`{OE=ik7j(AVxkK%1cuQ@AT<~_yFau zK5QN4vR`a95K2dmzY6BVBN3aO8W3WpQ}zgBg`vZ~i9Jp$+7~n(H@G5p?6_i&Jqngl zUH4R|f$u`F&yRn+!shxCR^|CB{^c(P&qv?==-z#GSe1?Wd-Yne?Y4#d!wxI3RL3*% z`SD4e6<_(viavb`wmj*i6<cmu@RVc&-aRLtxZ;>&R&?&nt2t}CH6~pSZU|=(*~D?t zUmMKwp%R55-MMpTnf~%J;^`!jBE_`p#G)08igHMBK7<Awyt#d5C159n1VG`VC&W59 z4k<3liKvROtXF}2AURKR=?r2HTHK9D;JT>@1$pJ_BShE<2`;g)z8CGc>I07}&ONtq z8ewX@&Uv;9`Sr;l`F>h}qksPbjZ=3y{yz9%Az!1BpJH)*0uF(k_`BndKC!ftS0-Y- zAtyWiI`!1T6BT0lNnyblLImdebdvNcpRz)s9y#(O#?%XKSN-C>s9Hu5LWsWlRiUy4 zdWSH?Aam70c@o4Z@3mKfo-)<`S%pi50|=l-QT<7~0$tQ6G8KIM@r9=!LWw4j8LDTW zeoD(!D+Q3wMewMj3O@;N^YP-Uj!KRKoA|fsxIqEm%hJXfP#Zt{Y%X>MrNmSET!XLV zjTuvbNuaUSRx5lSnTK+9sO4(KJvopE`zN0i+@<5|TO9QE-n)PpzVpM=)^p`EeGI_b zpZQDyZh!KV!u?%Ck8*Is3;lT4#&yczfon1UVIbfmL24at;n{?=HXG3&!nHUqf(3{C z@Z017$%WDfdLsU!NP@T$Il{_}UXtGzAw-c72i$-U>5G#x<K-X+0}h|!G>tuiH*^jz z_cz?WVl45CU#uKd+<!ku)50YLx|LH-DKt9YQa<+B!eb-e*G)IN;8!By@vrTOOYzsE zrO_xt7v?aK01*y7_NouP7EWa<m+;_%Lh($-DGB`gi(KU5Qt-x*CaR;QMi77w^vp90 zk8vDOB`^RPeH<adU%EvbSxK7y`@s(ivf{TYKzJn^StKer8kn2HE>Uo>ldC>z6%_`B zq7VEe!~<%CLZrjfI2G4~L<Mof=f6}XItv=Dzy6AycP`*uj~>R@1z-t4@YI*$hVh2O zumrpqemKNlh^TP5<he??p&bAaH`;Txj^IYY3e^W!WWBskeK{*?^+AwuBTkEOLni-5 zLgHJ5MH1qa8#9p6_Bm_u#CC8V2x<OC%#;M;xC(8Y!WN2w4(WtB(s3l*h||;nqbUS# zxW8^_93GFjzcL-Exvjih@?Vw!FQ?k%@~NG9CXF2Yvg3MfE82eW7U70^Km)BXdnC2- zYP$qpe|_P4%Gar-a^)x7NHkeJ3!J5gv5wJ#vOW3%I%t9|Yph^Q1!qsysuVZa(Lg_q z_Daibcuu8o<7;0l4APD`V&(0i$d|rU7=Aqb@QTlWzA%MxFFJH6OaR@-Qr!5$7Ya85 zwwUG^pgMl_tHO8#z43-ykZ^;*4K^qMkquzhZrtz<9p3`b<7@1EwnZ~pi{K+9*2&~T zl$KWPstB@l+qq~OZ^*RHY4QR$d{j}R78fsCN(dMNzDZ&{BhE{h1L6olwY`J1(TJ}i za??U%J|ePJuvN%6=J7oj9!HQtp@mqlzx~Z;&bT3wZ`DOG1y6NzB~e{OrM<^RmS_;h z5)onoht4~%a4Lk?xG`|Uh|~k{!V85Mnyara3{Zdi)51+R@PGpb`I~N9cns1kAXQmH z1F{33r_15d!bP&Kn2?DRSA6^1g<e-<O7ntc%T|bDw_rfH2I?s_+R;zxjSoGvAjCtc zAcKc=*z$w|o=od7@&)CP8N|9vEfT%iRuOLKBIT>BDl5fETZvkV%$oh_`1QrWohoeM zNCiLn<O&h5Mh?FCX%Cja{&i)ALq)(BaxJOoXifRtH5J}{_riF?l!-t+x_w$IbW{pA zVqIe3z`~3wW?gnjI{N4p-~6VnR|<E~-85~11{!-QZWxMK*1-6^@2!ZiPQAnFr>{8V zkQL{jUqFe38wP0ZnxU-4khL2(++oeo&M>01;%?iL!l}7{Q}L(5rJWW%2p~n~&DBPX z@rDm0db=8A;+|YJ*$D}vpPWWa3bE30h;~<~bcDGDFF=4oW=Vl0L5bIA9Hqs$*^5Sk z3$(CMi3rGARc_(VRu@~y&_0~Tb{c^jLFNgm9<vmlaRlZpLibKPt#Hu<R+n2+-NL2l zc&m2?Dm+@+kj*nt#(D@ykzNIU1$txlu3cA%GAA6bNx!Ezjt~NEutd2lFH|c)h-U3@ z2?4S=+#jb<r3g2o=;Y)}_#JnwXy5)*yembd{|wFo=28x}RB&Y4^T++ojyF^|<Z6K+ zQk#hiD?7$53Z`NNLMF*gNK^_p!k*yNAUXz0wJBA{JjMD3Of~i>JrZuDOKbf+CDpXi zi8N1Xw1gtYG*2nY&z_dfQ?ge}(^=doy;@FAwgClh)XU`&&CXNmr7wq|j(JL!J*#at ze`UH9H)<fN&MFcVr)i#28&`$$n~ocR&CWyJx~;GegdwGMUoTK<JJ@!UO+Gc=P*I=t zHub>%t#1`(I=9_c1GhO}tc%7qBQ;B@YyEhm21AscWol!106NO%sGrbO#Zfn1Y>!zt zP4=oy%e0k7AI7LV>`>q~Ul3ul#TJF}M!m=K<-Q|d7~ckOq9>%$hoHkW-mo^JMWiK) zkQu@iUDx5Vkx)HED^^d;lB{4ca>{nw-Ycxy>Ld|XB++!-pszLL^z&G`Befl_qRd(a zapILQ_pFg!zN_h(4LLH`(4(C9DNU~$_Y6nV<ut1VuNE_V5;vwOOCpZ=Ytqr6ry{sg zsYRzLznp~WqpeWVVNIiGWwl)4WzyA1X6a<rthS(uRUWglW;mLT8_l59+Ap$YaAWPa zV_w5nvOta-tz!5bH(JH)d7+iEK#m)gvSfqgw0+$0BGqe`dRH?VRO>Z`n0LLpJ8XQq zrszyhJAwF6Ldz(e<3`Kaxu}%3j~n7p?4oJkydurl`qS8@Q{5fjET=7$%d9v*89M{V z(NNwpi%4X=aUAKCck!8Lo*CbrNtw-*$Z?~Y3|qI@2H}Qp6NC?yh>x@loegaDhF+TZ zn-W~a5peXfo36~P4tV861e{SsfhWVB(pj%^>~=4|pF8-fgV^l$R>maM;3QVGogh!J z5Qsilm0RPMUx_#N+*ZwkTB{U`+To4rC~lP^g}zm$ONqFeZ#8dGV4b(ai86Ff^pRj> zhcqV{Znu%?g9WjlYN(e=FHPWm;@M~SI{fgR{`Y^YUVJfr-A*_`&cg!+)XN?M6Pc=I zy<b$EJ~G)k6pO!HZaC+#QqqUz?RcExmE^}gN(9Wp=Bc2R-_S&k8x6HsMd%xZ8~iyv z_R96)3=W*3fQ0?_xsP(}v=zTy{rA{okCRS1i3j)(fA~YOExu&LDKu$o<MCsTIfi2= zhb|8fUZ=v`@cNbkUZVJ)<4r6Qy0D{<K03h46DY*~xZ{qqIk`)dCr{S9`5u!m6!=(J z;__^Ba3x#=3|?weOngnzM?;+AH7W3%+a8<*jm4Jfj{g1obEoHZX18P|KKbO6TWz(~ z&77T99d<6I4EYFXj@TCjvb-msd~&w=_?`$u5vbxAeQkk2N~XV@*&I#>4jky?bS^oN zMS<Z$zpC)!|Gl*8b^7U5S6orGVnq$VzI}WA>Q@|bi`h!fljncdPbTb4nb_aJJ+cX^ z`W|-JVL}e&XAy=-yy*)y=^jO}0D~}#Fd`MqJ{u*9)Sr>#M*TKw28!}=LnGxHD*A&K z;$cOXco?L${rHw2XK#(d?w}qRJ*mL7_%08Ja8d0^_jo2DfRQaSVXa0W+A>~#r+87q zBD{%3LVM@dE@(xXuPI(nDPrIg<x<0AoSn{4HOl3bF4V;n%bQ&vXX@>t%?ej8pLSxE z>xhkc!&ePnITgpJ3F!TCr8X53oKnVzTB40a3}EoaG@phPNX4lpg$ZOdIwyf4HVKae zhkOZNNJ-nPYO_gHQGyM3KIN3E>C<aKj07VyXLk4fm^03(W4%Zfd^?FH!6`sawhB8d zRDIn(hKl<eF^@&c1h3taBj2Z6%$3xaK$n77w1RFT`)m{mDd#lDjdHA1ahmdRBie$; zSZ8tWx#y;KRD>He^r0f7R*@q$K3Az}L|x2+MUj}o*MS>arKYDBj!$wV3DE}A^X$Wj z*=;%!S+sr1cwD2<bSX}K&r|@8?hml&I_&|%l|73a$Wncac;ht1@nvy?5TaBqN{PRr zvvfJQ5yDkU)q=gK^d#9xqX*DP_z($SRlD!Ls*xj$^H<?>V$UXEER(X8@7B4MsYIEE zh1~cZy!z|Ljo^iH5R&jDB<@l0X7jTOG$@_pMuW^%DdIA5L+9=bgJRWf!)1V-{njen z*mm1(1(-zpH4HYuFpz)-b>N0JC7eXJ1r5~2mrXP%UpC}f>QZ{HqMB)b6px>-FnF~} zy;yCyVO=ps^@kpMsOD_J#Ok7%IQ4v3A#1=8n{E51C;Cdz5txG*ZWxnDq$Us&60f~J zjARs4#4A&%PAV>o8^&xQ5W!A6?PSE>zJ2@9ImE`_EN<9;z^E@tiv(-$e&(6QBaIVJ ztlIH}s;aZ9x}I2Nts@I50(^e+8+I;|<5WNph-Ou`axdhh`m(c6y!mJpds3-x+z77J zrx+O;)Oj{=8S<t3n}nBYQf5w$8)X`*vSelAMvC>Y4yKK3gZk))L=0BXQ+zs2PwfCN zRu!~L&x4J04Agz-&^|oz#j()b`w>@7hb^61e$>jG2Cs32$I>OdX=HBVBZSRkEDqPo zfOvUhY|tTWEf!nMUqFHAT3;B9iA)qkIOrhU;(+EXQ;7!5MPFm-)29!yTCPSx0v#++ znDQ9g7z@R>8qLe#hWe5Q3`4%Zc!dMYwC({{4e8~Wb_Fj}fLV(+rW?Vco3<^0?;dKK z#v7p?V6mcT0MB}mFfwDoFl^<U&J<I@5aNT0hWbediN~LP_ET#b^XFH6`?RWmxTmV> z)~c%BRaLiCRXtGkjbBvFnX?)_7A@)}K)2*bI4P{y+|YF@NlU1g=C87h?-ta78|urX zZlbB5d&i`~YlftzrYDfc%Vl>hzT#b?MFTQ&+-QKYDo0u-ZfI-nvSQP7CG8RNH}xqs zDi!1Q8ZWh2W>)8h7Mgg|Jf%oN7$J>SimsNPX2%;$S4vP@j<*;_S+1t>RifPO@WWRF zf^o%>r&U$mSXK3ds;`||b>)>+hySXo>gWP`{O3tovTjB3Xw~8@lEl(ws&8%gw+`G$ zinTx@$Bh;+a%mCu;)b5WYXaX;vkL0)!a~m|Q<o>xC2tvGU9?oV9Pd72R8Zs9mdP|` zi19{)iZl3kP+k>$>DBBk)<uhi7=Xz!_|eePrQl7c*@RI#1keR{=+GgH8|h<4S>kM( z8eT#%xPCl4@iE=#cFZwZK&bj+`>G!QUNv-h)qC$1^51{I>W$HboQ*cgl5P9xaSNT} zMjK2T+ZcUW^PzxsOK(hE$|_^b(4|WkplUqnZ}w6Pr*qtBVS`6;_2P!d)f~ZLg5Zd> zOq20Q8*u6YTSfUY3pE+f?oC=ImzlmJ5vy;F3j#slQucjf5pNQbO)we&NjWx3P3hVa zR;1ayh*G~_HDpK@5UTFH^HZm3Wuqv6)n1NK9G&BavXyzIw2jnU0#lJ+q?Pw;W`&5E zx9Cz!p60mGlGaXT)r%X6GEcNk3)Fxc2`K7Ld>S{}X6@?L3U17q{Pv{h?w|DJZIhnr zH|eR{CRhKaJbnArf%nXP^M$$d=T2Mj{_GDv8Z&#|fLDk9_To#kGC}cv`|W29N}p)Z z2r3OAEs2|c%CY~g@u6+5jlQfn@hO6+(B3X~2(0|Lnw7Thq;uR@)9-bT8}CgVwRG-` zB{QcinKiZgH${5s%t=dTOk6bg-Ra}sm^%Nx+Hk|&w`?8@M=-(qymjxGcUy1g&Sxzh zO7MNPfZw}!Z*P`O++ssZ%f;zi#%uah)KL9%+-Ru9+8Vuuk?nu+i{gn%pFUM{=dRBD z;Df45E?IqAJr3FWlvCRNrYQAV+jwKy-{&tLHE78jFDw}~c<IPNOGXS_JmT3UuRp$c z$YYBpzxmD^FHfB_w+`G;L@aK{`)=zzUbuS~=53(YSg{5b1m<P2SGE_3miX$`Z7n9q zabqpGxu1HUGI(&+vSn2_-Bh(;!D^uR@WZNWuPvND_gu=X@qNk~XN>}Gyf+6{EPLza zWpBN-eDsUU-yFRB&F7bmczo&5M;4BI{hg76r__fVT>dP2TconM?XRU9a}%a8@G#hr z;A!KXI7kV9SB^bi=))GvJK065HO_jCRyfCvMw_nfFy8y{!&TQ`zY-8$e!1#`3kvD+ z<EtKcppfX_ziRa8LgM0!t6q3vCE1D<YZGoP9{Jp|w_jQQ)=QrhaAVN&QO_?M{=~AO zk1ZTOtQ_13Ut(Vv6fYAlB|cJo<dH`TBjU{CM#p=0?kKzLvWxdeKHOt=!y}r<W7cJ; z?K~3Atw|AXjNJMkryudTp~v_9%|(~a&V1*nxz)(!H^l;?ad-IDuU5NtdA)M!rB!F2 zUA2690VVuB_uQ)9y;p<A{P|tZIcI9~Z1~xfiZp^Z#v4t<4c{BJvf(Wuph)k<xTtYH zjQL35hO{^G@#dYX{PfU7gm@z~U!z%a+*qS;Us9gOMOUuoP$GVV2339Z(dyI1i>n3> zTzy(+d`gnJMkFeN8yu7P@ru4N8S#DL(u!N<5GIL?ott|zlhV@LU`~!3ZSbZvPNfr1 zI;qncXH?Cbw;CT3jHJZ;`5n(W=SQcV7CRC&uAnx>wF)<$Up-HGW6-h&&QrpV(L!i# zRpaO8ovc9M+6dOQ{2VvdraSJz?tacWRX5&PGj#Op*Y%upvY*Rb3+i6LjrZp)8TI_~ zF|QWZH{N`4c>y<`TRzPC#uJOi4=-nZV=b^l3s)h>jTSa|a~CJz_x1-L-0twhw>;s5 zs<C6^*Z$;_<=k}NeQVzsJI9UYexhoWpW{Z2W?2g|L4*+9IE37;1vRR%3OR1nXqM*A z%yFZ+Eu715Rtw~~(X8gJO?ZwQwOJ<5Un49~zzu$1)&3hR{l2Vkyz$)fYX6Nz<I3{i zSR-oMrj*QaqfOn8T$zSipc*%3FB$&KveB#jMMoF>MVF7P_7@%dTD~sYP?MHJpW{Y3 zR?2DGtOau1Xq8)2gd3x_{>K@)zi6x6iM-H8Ss=%aMwzXtOgU~e)q**Ht6E?cZaiBY z*B0}X^5WWBwFYZs;W=)sk+&^ZdX)vLabr#s<5N}%%l|Le0y%D!YpI;BO<EwwjaIoW zIc~Iy+4DjxWq}+wDrLzA$;ok}LFUSd+nNPd;YQ=*+H4$Z4~=x#GBiTtW6Lkw_=uMm z_!b0+eLKcqLHCi9KJ?SpEYqy|<haqS=FNpSw*?Bg(X_ZWn|HNq*Urc3e9^<#ifs}Y z-=_5K4Eu}PtoV{kF0ny}uVo=aY&S69KK5;?fBBbxv8OQ%Y3@3<LHRjuw85K_t5m)P znvNUF+I;iP?b~CRVQ679b6+HsxzR=&`C5?Oy*Aij1Dm+o{~4M5BaS%2H%x60xZZl} zHR8KG<yWmOQ|7qQmhVokTfG*j6mEb86A<5=GKBC21m#v$*`@U+pS6{U@8Je+_;O|J zXP)E62dC}#;?7l9ZBmu*6IkzqniI4s3sed>eAoNi-~RTOzx?G>Pd(LVeATgI$Bw>? z07JIeVhh2=X}n=N<BPp^@-a`z#~V3rw5jHhD^sQg3b;`n*S7raS4!gA9xpSl%|PPZ zbI%1ARyKSFec-@>O1JsIuYdh(U-9;x6pNn;H>`;E?c3L9>~h@5#~Wonr8!w!vp_X& zG&QabZh!?<^D<@cz4!KU?b2!{+(?)5c}k8O>0!tdYnBC8<Hp;sE*<vdlIQPS^86i3 zp1*zRpxX-HPbniF_L^(1@vh|HgAev`B_Dh=masp3krB*F5X3hT;*u#$uU@@kC8UUW zT{taT7tPl<)`gqCHq~)8Zj5<t*|;G~M?6*d4Ii-drMt_-jkU=dEmoHtH(Jcpc|px# zfmOKi?6Pq~m%lq^`J~~6-^8KIhWxb}H_G~6TXQJ3cFW9hW9`1bYklpiaicn}ZQN_i z#=N|A*yDxY(8rd(aCiCNYg_BBRPhStxKVMF<^o&N0;_Rj?2x4+pI!3ey@lTk_gLb{ zaijTeM2;KHXWLwI3s_(^Zj68ZlUb8LnKkK?Srb2*F}^|Hhiw5p*RmpV+*r$Q=(<*& z)wt1w?@F(0Mr(R~i*Tc@?Gw2C|CX;2zmJwITCnKjcR%|3n7_{(K5zDm?@sc2eEeJe z-hBP?H($B@#V3FNWdA=r^=R(_19}gA@h`6p{^Lu}{CU)C_l_BH@7PfTCX9P=+Qf+q z=1zTo{`8Oj{^8<9e#<^t*7hsj7Cxz5z>SD&d;3%0Yg?9oudV6mP`iY{jSpA(ndi7s zersL0bn!d$=DalKtvg1(e%_#Gj~)2X(NEof*faMY^jN=xAGmJcyZiRI^|DSkUeNxI z3pcy|cRjAVWcNQ`+UqYD?{RaVuD4vi-4$nT(f6D#w_e`q&MSJ{(Ywd3mml@SeaAlY zx6=pqKmFB5FBts96K@Y6JZswAk3KA4pO&X=Tey*b=dt!?UhykAZj{;F7B64+-p3zK znf>nYv7>Kz=z-HO`NP3KII8m@`)vO8gEv3%hg)8AUYCAX>~zbe2R(Gt*Y5iBj{SOX zchiNv?!2PoJ(p~A&n27oJ!_}iF5mCgE4%bQyVD=e*z5MbJM_D<^PN}h`ru8wJ#zEb zcU-ddt(WY4|DX1|^P29rT;A=5KlZ%k(!KBc^H=Y^?!f!6{q7@o{^r%EpO`q|jXATX zfBeA*OBR)>a0`&-xKZ);xTXlqaiiY$_2J@$6Q;j&=VOok`qB#y`N@%;58Zo{-FMu$ z$F}Wu-0E{XZnMFzoj3aTy*4@LxE*fz<L-C;>3~OW{My4e?{Led-EO+@h<mTw`L4@4 zTzk%D*Ph+s<_o&^yS&%kefRy_&EI(Po&%q_qt~N19q{<=hd+7$F8BRq`@8#ezoXBt zeJ|~K^+kJLf8~GP-*1=O{<Pc8SM|KD&ki?S-1Yj4_q*$weQ*Esw;#XzcS8ogH0dof znx$=EB9r6Bn$pZGu4j%LHR6Wlh4()CVDj{7w?6d156}43o?rdSR(tmRLibLe*>S7S z?y&Wjx^-H=<0cz)?$B<Bt=jF~rQN<=KYR3-H$LqLU%K>^FI{%ZrdOV}-8JX-xc0nV zuKmLSxAxxd`rmiF>5tpqcww)*`tE#t-`(%K_Tc_EeC3I|_U?au_xt{Q#1r@I`@l83 z-ub5;|MJIPH}u`<=BvBkZn$z~_uK!p%k@|7c+I7|UEO<^t1sL3s&hK_Ib+jn&+FXp z;yv!Z$~ffAm!5ol;@i_dc>klNOIm9&q^;nFxHjLTfBV%!Tw8pPe&zSt%8hHQc(YpT z1?IR>gd6(tcjwK0`sKkVo_B8d!w%Y@d&hR&w%WK`r_XlV`U_pR-eiaEzSy<n=eu>> zaN7<WZogH#UAJww(>CpPYTs`6jvE}@bE6}_{MjQ8+VJrGHu~P7o1OaoZLc|Z=YE&( zaPx(`-E+;(4_x1^-<5kmc=JL1Z~2eMZa?se+qb*zlFhICeb<{W?|H`+dtUv!?tOm0 z|GoXX-+cA9SDe4~pU>a^FBflq?x|fbI&-JX&g<Iy+-)vCbNlOlzs;?G?DfE3cDVbB z10TF`zXz`0^RB)>e)4bEjT|;|_Dl=2MHOj*(>8+}O^s_?>zjGSE12U(YF`T%FPu7O z=53EW_|;>M?zsQ1pWCTZyB#`gu+0|jw%lZc%{TeX=9_M?#TK90ro)C?Z`p2#E!*w5 zMZ29ktlwpe^|sw){jQs>zta}&y0_n8pROD1(Yc)|%&yyP^zXgCc+PQ~U3l^qeb4NA z>!n@qzOr+_-aFlT+1@wy?S5;Y{qMeRr#t&}=yy@KJ9>A$;rwpB&)oLnvv$7cnw_q? ze1|J8>G0drH$VMnTmJGVoi09Ov)}(>`^(Sle)WYr+<4)RcU*Dsqqlbd+cmu&=(~Hr ztM=&kr=GW8xzFEj{?-$BpY&}1`^Jx6uz2C3WlLLZ_>tpA#oObWA~44dxbfb{ACDOG z<^_Mga>v6Dh862|*m%9IHr}wq7VS3Oc*8Gkw&A9mZ@Af}8*aA6hMRZTuu})n(Qdmf z*6;YG^|t<EyX~Pz`*vNoT)*?C>u<lQzb;jy%GT|6Y`?)CT{imKo}c}nuWx$x&vv=t z@-8=Av~RyF54h>_U9b9W=Zj9??5yLq@B6zgFZ$IE7o4%hS;uess}nl+zOd5;=XE;g z?5)rJWyjNx-{Lnv`}~<d-uRM}w(EE4p11Vg>4pn-y{XSv@4uz%wU_j`|C*k6_1*3M z>v~!Sx$WwXw_MWkrpvnB@TdQN>fsw+A2M;)yhY2FBs^@sM2;J4N;9vxp6fVnEM30z z%}EnZzwDBpM|}B<yLWEa-9V!K`rB^0ey7dW-+GgFn{C{#!)Bk|X1mXJ>QX?AtvVFI zWUDW2u=VDCprc*4_63yavgP{QVcB%OZ8k1|$#(5G=+dF^>)xr|F57Ro*G?N8vdb1{ z9M|RM3%lHUap#-<xI>>aH$V5JFP{CgFPwM$#=rg9HkX{!{?rq;Ir+417hTxxf{VJI ze}1Pc&)@!%U$^gj_9lJL+T>4XZh7+sJKz4NJ#OuD#636v{PBnOz3I>Y+5escAG&$B zJFnXJ&TGH<$ioNTf9sC7|7DMUH}2E#re2p`dc*}+UjEmorp=qLcFj8WXiK>9?CS4I zzghUM^s<%Tm2QQ&Hd~bzwNtwp+u68(|NgJP{(4**GGvIbeaD@5-f4fr2OfC99%6m^ z^hu1iA`Ak5?Uo$8wnTOWO_X9IvLL(SiYv%T?AKj)-Sp|xqg<Jb7cai>!V4v$Tzi_? zcWCnD$@U{U<BT&xf<4<2B;}LN6tii7t2S0ei5J&8iyI#=Su|$KgkSf$Z0mp9r(KUN z3%~B|3!t&XX6tXadAn|M+Jl7+yLbG2_w6?AxnujDJvZ&q1sWJ#6qZA~cWBqMWA)Ht z%XXdHgO2sK-?UxVtv2Yq)kfVq|LdN+ezsSS4SRIiXuD1u$n4SSv;VPAr{A5>(>vB{ zFX(dZ@7mw^`)%*)-Ql|5|LY%r_N9w{+3mW^dfa&BPJMfKyS{J7i+;E5)faDb!yh)i z{<mMc{&!pS`~TT{&*-+UD{c61EK$X_#NG*l0Ei9{h3Evq-kV5@>b+VLB~fDU4ZZi? zJHe{r5<6{@j1wnu$~c*1(j42dJ&xnJXV$kNzN1(1Br{INem^M@)?HZVo_p@W6@~p^ z*Jsb=`=v;)ywtB?`m`O(q0ZG%Q`9DiIr(A7p5<82`tsqmr>c#%TB}cBG*U*Vu@}eD zCr^v6UXd<^|K;^pz;gMVRF3-wH}0=~Z6I8C<#%%coIfD2Kq?3<$D1<?3k#crp`oGg zeeZh`i3EsD@4f32n{3_-vJ9`yWt$7`E_?dvr{N>+?f}xg$%(o-`R=>#ZgQe-u7^u# zH2M>tyZK0WH~hpi!|kvM><{+>%Kc;F#&6&Loh=rsJhUf;hDnM)fCd(VBX^VyOlA@s z?%>8F==2nH_D*E>c4WchsG<~feoAp}(h-WyOWuVq0=P&5Nb)G$LPR{yD9aQHQ-yre zu?v*$qq~XdBxs=X9>L^pA?2qqN_QP>%pE<QGk-oyH=N;^N>yA>l@AoE#)?hTSlc4P zyqF^y&QJ{&yXBd>@l4}Hp=}WxHq>vdkb;_G_dGeMs)*UDmYoN0C7Q$buGO`!kgp@` z*%yoVg_igF{4AxED4DF*YUnx{MKN2ZnK`iG4}JfIw?26H^MH<rxN%ob?;YF~y}Og2 zkion2XU?1%A0LNK3jcfDxVz`(;J?QWSo1&P)hC|$E^ch@zlj@n`M&<{^F`l&_nq5c z`%=T{Lp#VQPy_D31xP)p7P*g<WP-l29haB1KJZzacE^^qU0YIjZB0*2Dac7$F4^GI z$lg+vkqp9u;(^WH1)G!=0xWDJpfft!3H?{H`VJPKIG5Mlx)Xzb42|20F4$U<pF|h{ z98T%ZRzZpYx8r2%j{ZHn7M{q}jOMDY?UGzTs>bjxG0`P1Fwdav3q^|I66pv<JlA0h zU%mM?qH#XcJb`mar~xC>rz>-*F%CJHC)Fm|L3^;%Vy>K@ZgZH((lMb!+qWKSNVuB9 zw(50H%aW53F<gG`#!Iii@`n%K|7_9YA#Qv^S~pJtH*Wvu3y8vC@)I%$GY*FXmVuQ4 zofqKrZ^jK^DuaFC1>|F3%WOUXynlM!V6j-6JKU>~zz&~yX1EGuXs}Ws5P)X#4}}}Q zdhL~IqY_cW+)64=Dixq$fGiVo9zkVn!54tSu!WGjlaP$7f`=2F6^~@!0gWVX?B0sV zegwRrCAnLXN$)7cVYec49>W$wQU?TTx8U=);)@=y;b-@sNIi3)sJoYV<a{Q-Ij6Dv zQ8wc-EGh*DT21~IDq>qXVMhghM<aJfGw;#9x?P8xb{uYa{8Tq`ZUCp8%o#qhd+L1Z z*g3?d)0NY+9kbdo=Z(qe3ehx^<(esgkcwTFryWhx45yhV3ba!tnmM6KC(^1)My?9A zQqtmZZ`@hC>fzfYEQgvM&{hUD<xvASV(wn@*uV4q@80{vX9yh+apSI>-a7!{QvK)a zTi^QDy)p=mS2kC|n#}<SJ2)afJ#JK2S8qbi<_>rFftC&Nc>L~T+{KM!$Bx0|C+rkJ zGb)w(2|HzTtJ2car=EHWZuzgcv1zA(;RBccL2v`qjKr6ot3J8^F%t3-WM<MM0fq^_ zXe+L8YjJi;5%@N9w-D}#cG3XJ-cphUQ58@&wgPA*kKHL*+1n5~yO4+^Xn>D2KN(m_ zDalI#FDST4AzWLKxkEt9ymX{+;sRpgDq?sr_w*Uu<w4xVQ`vj>ruVi!R?B^~hM#$~ zk8u53>8109M-Sw7x9@5YZWmCu)iQT>RX)~JwT(yJ`9$yIL&wva>ne{9Tva(F!CS3n zNwIDe<(y7kxcJz>{vGE#AHQ-aefCQ6{3KbU<OEHmfUYd8;)XP}5!b=h1kWzT*%rB8 z4MRVLGf&fe>ejHe!lmTcWY?ZufBw~%-~I5jiMBk%jk|Js@8GU1-<>p@%`d+AB9M`W z!(q7k+;h*}x^)W%@B#<s&wu`NkXHEJzt=Acm+syU1Gx9AU;Qe$M?4<SrhoEBKl%~O zfA_oJy|Yd8?CdPGg1URlCT_szf-eFVz%9@k2Ci;??zwa4&YnFBxB=YkuyS*U*Is)K z7MwnPTA@(D40u#te)(lQ9uEZX;1`A4H$NBdee12a{t<BF-(LCkgkJeL74wC{)T9=H zNX9;r(GW!Dw){KR2O?t&B5Mm8td%?NP|!E>Qy~=lNY;Pq8+XtnB|UvxcJ8*E<gq<J z4{!r?k1hEbkL0C3lCx_|VFm<Hb{}Yd>|)Q33%#jBXY#I{M~n}q&tFa-K8cukBJ;}0 z;;Cy{qfej~M>tj$M=fsF8&KD;rgyeKRxjGdqomMFw~;a1E6TQ2)3fX9%9@Uin{Nz8 zmypBfcb)Foefhx7j;a(MaR-&OtAd|e+kihdP%Cyay(V--Me)n4T)O6%eNWIr4{E3Z zbz{QG4jLf%n<Kr-RL|q4E~H&QSv-2F$zut8|ApVa_s;)b@py<Ecjffn0SMi_r=Mp0 zKk6HwW|Mo@Y~sefGoKi5`Zqo?`Cm`(_2u4s_3s-u-v8)>@BQi*&8Ln$iYrJ4NdYv9 zGrmv&q0-Eh+{~>R8Cx^cQu4Et!PEQ<usf1hi*_f2ss(9~ypcRoljs3<N=jyS5;Ssi zlec7Mg319dj;-k2M~c#tJLe}i--6EF(aL@7c=L`!^*j6brpm7tnCG+Yv&ELV9MwSf z?1c>ZK-&D3g6V4=0c+!uuQul5IrYU;!)Wnz!S!?LhxhJ2*q*(=EC1O3EMX<F_Ry65 zseWIuVBlQ#>4V780phjOxqLwe7N1ID;Y7WxQ_>Tb8;$WG#x{r7PVfwKeDMTzb{H!e zESbGfH2OsL#6`s1wai0(i2kdno&y=(UHP3oh>Pc`>Y3|bzWMSWe)qpDa(Rdw_lnZp z@zJA4H-Eu5-{Dsqw1t;mdg<<h|2lZ})mJy0J>9(oo7^44V10dk)8x5#^1m5_DY5BV z`Acg+h1k?s{?dZYc~CPzC;6{y{*H0ugO5LStwuQqIv*+Aozyf6Q$fv0S}5SpEXe_R zPo`&N?uJy2O-R{N0HBfjg`8cmGP$fM6HJw)iz6#_YuauAnUpk00LywLZ+8kJZz~4; zArM0;g6vRms3!A0U~^Q?R#xe@L-mhdJG4uDF~dBT=Uc=FG=<i=68&U>b~If*n5&&A zvCdOHYMM<^<IuGRocR;|c+Enc$3oXj`8HLzOJ6#0EQefP#A-e@?>=I5Q3hry!;@@@ zm@AvjXm8qGLL^l7w4I*1u;?3buUD8fh3b*KiL-hA$J6&Wm0UVWxpK1f%8AFCDt5Ou zrC&N(c>DzN{590Uv&cQC@uvn*W5ao-X=F&+cPsqdFMkGqrN3G6c!(SSRiOSsX8ta5 z1CpKI`or%%tFdf8ehU!-B}p6P5p?Djbk-IWxHmI54VI)OQjqq46oxz6ND@HulA6O8 zl2CI8QUF81gHe>7l9!#5o4vIJVkmiA$OT&{$VVXA0|jB1%&o;qtpjwJB-&7lwx4L+ zExxo{c_qy?h4ZVZ5i8NH#X039w-R9!mpCP8w;XMpLntP(swwouQ0df^KyDCewH<DA zL)2X#GL@b<lvTz-@q3O<xsRF>Rbyt#;0*D~K=I|1c?Y_)%PVM&y$1(11BU1xt1)xx z%x-Ca=Jff3$#c7&*q6G$C9AKw@Y<R5Bm1%k&ZUi<%{z5G_sFTVj_%CE2N*gzq?qRW z=5sys>FOcgl78)%KmOp4e<O6<x47}qcb|R86Zp9z*xw~?y#DrE!%9g8qcoYjRh;oi zQPO>pv_48R;T@90lem$$YfE1G*21i$$Ro2M*Xs+#smWaNWacN_k_P(5R@7$vG&>n; z0qp`@sel;CWRE);Vkp=R4v57hYu~ow5Re+0(m>ySs3F%dl{|D)M5nSY;^r<nt5;)0 zm$JkuBij{pw-)QvP(9i*ry4&!L{>>UqJhItuJ4T{L_RCWXGEPnTFPmnwhoL(zHuhJ zgqfR6J=n9eU6gvXFMV$xrKYpy@aUNH);_<x$T^p)A5OPUW*NqINiIHmec#SYJ-fz_ zXKRO2#h0?QLq&7_Z0#b&IEPk_=FD9#a4Z)1B)MU6c5ornHih;pg)5H8zy9F&AO0<6 zarX;uZ1R0Q<n8%fk>XD`{{(K_Z+(~k1{E4WV_dJ;#Xv*d8AMc*8p5XAv$P;-N+dyJ zchbcHpplmWr<=I(g`%`%rYQJJAvXiG3vgdx^0s0NlJQwU2}tq6<!_-Qwvg^5dw`{r zG<G2D0sxYiQjXouBy6u_WFI?}J#_lf3wudsCC#NN51H8kQ<c|Jx$LQmIh(?cGM5Hr zoGEq4Xf`d@u0)!pOpl50x6~(mbpe~eV4{d6WUT@<a2Y9Tt2!wbfAPBlk2Z7qQtHUL zN6+@`I@py}*Nmy%+je&PN^~9LmSx$d^ZfJaj;UShtGi7@k4rD?)?Q1skMB}n$<PdD z>4(zg19-QrETqbJOc(g()0|TUK}mLCA>A{R=UYJdrNp?Q@pdTu<L~_qf9i+0@u$M{ z4|Mi_af5h2_M`u6zsxWF{AVXdt~}1bZXx7tp%o<~s*p871SJ8&tOZ-3d^O3Nai^lB zFbz^NQqTq4P+7@DFTepv&4K~=C=h@K1<3*vzzsCycja!uLYxKiIsh~ZwvZ58pppen ziFsS8CEIH0kMD1NwEtkn=!Fv90$x3hoF1a;C8aah(nrr@WD_Xm2;Q#X*)>&OJuhf2 zc1wzUGNMa`waBRs700ftv8YI@1-xpJDi+fwX9=1GreuoH*i&;+dM>h>ub)NOB`BA) zWaL6-d36T062)z+JuhwxSc?PlqM(G}RhD`r>F$~Q;9@4c`xmm@(|N9`0?%BDeGX}# zE3!?KA__)ahl!~Wt7-s^9Nz+ZNk?5Z5aLSavY}?(!HjENKYaep_y4-=j)%DM4}=td z`cM6P!i`toc&+>D#m6X+I*zy_@7c*>RXFekTT1~nlF?NNj-=#e!YODJ5KB!dDTI3Y zt&sgynghzl7mCxqfJjS*R1j%Nl>?vylMgvvNlOIQpmUQcrX=JRCK`_Im1WyIg#`mA zkdl#1={1CY24#>GO2#NA8Bsoixp*aQ;52$>Qs8jZdQB9Y80S_Jy&9}_9_f<gn`cU) z#!Wp*7EdDv`_c20Xze^owTM?q@iq<KAkM4r6da#F5DAr9rFmX4+94}Abr>b=Msr)s zS}z@+_jg4C7>@#qRs<mv-XSaW%aGp1;(!bhR}dm9jC%p#qQoO9_Q()kF(syE-Efg& zn$m<aKPpA6s0eH3vUNKxu4!2Fl*f#fK_ks4S3duhzsgPe5I6o*nErvz{%&yNm#@8Y zVQ%bEa&fX+1edcDQ?L_Ju&p2mj%00nc3P4~BRzd<TKd-P^pxWKN0Eg)AOjqb0Wvv3 zqbSLKBzHHgNd{T6!55kZVODT-Kvu?`w9-NVkgbH`?L6w^ZMA7fJ9nMwdi+99#zH^V zFiZ2QaUOY*V}T#C(gVhFw_4~i2%To^#FR+lJQ-P`nx!PC9O;ph!bWyb&kE_W4hhP> zK+(@qRkPW%SF<G7(-*GhiHCAElSsR~L^FzO>|`Gw?eaxISIKjV$u2c>eumw75La`U zzHj8baiz{;AlWoTyPmJnAZLb46%w*eTI7ZbI3+V|rMfg2n;ak15|*?j5j8rhDO)p> zmvw}=f)Z7i_@!9Cm=aL3Bc|3RCo`%Ox)f-~JR_uw{P@K`eDrD4(eD@B0KTsmp8n_u zUrX|Reg7*Tzxbt(pdR)G=-RgS?o0na)WiNGz{lSQZU6=7RoP-169?YQt=K|P6_R{h zpfDis90f_f9YBL*naLd{jqSNbDTTRP3NwMTD_MF5>07z!$&f1|YimI=H{(w2Np1=W zwS$P=PR8zJlD7+Jk2Z;NE*>wOA0W!6QL6Fm#mh+Rd=e-^CX8QI=2o|bZCK?9y8lSt zxr3z936WOU7z|b{xhWwN+N%T}QRb4pCho3`*a?OipbX_kZDfd^xYY>rJj%L=^Qs6| zDc-9oRg4r?w^SV)ZZ%p^+6AoJ$n%-F3K?tfF>LceLgy2mGgjJ=q-;*cRjPSXBWqD# zWArhd=4|II+N0+=^yLO6$*wB)%27deNmK&|GNLZ@ON#vB63<)?_))Es`Sxj2SXZ8K zaN?HoWjk;WR>o{CHv%g^`_ZS=I_?wP`1tKNKm75xKK|)<KK}9ZAOHB9AA^GwdZ~Qx zi_o6_-Iu=g@=GuL{I{>a`u00NdiC|2Uw?jdLHv&(*Pr*l@$UdPAmpm?In&wXEyQ97 zY9vD>`DrOxnMt~g!kqsD9Z<)bo|?=UPfJb7%-EKddnbu2CnYNbGRC(ea*|=z{OmiP z4JdKV+s-DZwN&SyISjw@l!@!4(d)${7m(MlVW&n2;!%oxlA@i@mJenaCeVsGoMaj` zalI6r63U76ONSn><2_a@C_HiqFPp?KjN|N@x`-19z62o$%WYyiY$SuKSUFeb*3lz& zX28OPfkTaz&QU!EvO`TaN$CUU^D7!E&rXS?O7zqS&I(>uEnBCoIe&%LeuS}qc%LO& zsWXej+IpjdYc%m(PJYM<0ak|9NLH#VBxcIwY=LgN(6*56ngh6?FFR0C4LYht2bB5l z`C`AcG^nA+%!Ht-ETUs3Y{C^6)vKU6<bsg($Ww_IUU~V`K*#-p8^DqH>d!v>*^3{% z^!x|^^3U)8@aymW;Gf?A-k09}_R}A}@$wsQzVVAU{{10te6~pPcYqs?rD#D#`Bq%f zRxAQgBI&ir18%Ntpy~pkNXbY`$;sZD3FGu6c~@rk){OLIu6S1NjzUCoke-_itmLLc z7$sQ}3oL)+f=8PKe90tLHd|>_)N526m7JiOXPFc%y|luirD<m?>@uQ5zI(C1NHJ3+ zpUR&cM9Ze|`sw`HtK@}Q)R}X|{pWBq6NLVA*pW*Dxu!N6tX&V%R-6?pA^x(D=m%56 z%yU|60<IdHv(jQ_$W%<TmZX#B&yVDvKSrqSskk&>7jmH7az@O`ShKL)`tn0($~q1a z_MfXTTT#;!=&50XPJ)$*sZI;QXP}yuLaC{F&Ra8Ys?eCQHVMI}&U8#?I%je{3y7!! z7d5h0o%pDp88Y)DR$ACV4y%ZM6)R$>U-J}8hKLJ8H1$H2+j3}m>ASD~`hRpv-zT{7 z`}f{|_k$1K`{2X(KLnD*k3RxhnLqv!jz9j#f57qP@89{wn{PeDjfc2#_xlX_UElx7 zzZ6umw-#<vYyoW!)SBf#T8iC?#Y5%$e^#a4(KJ$1Q_`}x<>sa2WNypJ*`8atBd;`B zX_ARZ$;<)u11NWrpg}C&Qie=nU~)Pd(C1H;&o9!YiYk?yEm5&dnhJ}WsartHr#QxG zl4%jEnJ20x807@el@~bYDQ-2|sbq!il|e7xXRfel+4FN;g|s2)<*s_U>)x^zd*!;H zz3k#eom{_}=e9Ef*2;jV#vf=6x>;c>BcMlG#igf@6^WX;r-twjWsygU4r{;#T47XB z4xPZ)@1vg@W!cRHm%buuCkG68ms+swp}7sEsyXh0zJ1zLt8i4gtfdZlu}e}Eloy5M z$dD4{*P?tXa>9m*XmK7jCu}LUED*gabWlM~m^m>!K`Uij)wt==8k>=$ke*wOy!y`D zcmLFXc5t8I#&6&H{Tpw;^Y8Ec;dk%8`_6mszxTlh?|<~s2OoX(;UE9_(SQ8M8xL{g zvxSU1yFJkQ#xGubrL+HR3IVwth1^a=Z>Qq6Q7~!MBGje+oQtP+*6>m=Nk0bY8{pR1 zmQetz#rAAO3aTBi$M4hHx)V7#NKct>F|xIH0UvK4MY6#!{QE}M^RYArZ+6ghFd zP%?;KguusjtZF`AH<hItE-=qBJzD6LRPWbwE%HjAiR2Jt%yR_GBE_RBOPI?ehL*K( z`)ZIEFqK7(<Rud>rYj97aZ4t8!VYA@6pxkeH*td2%7|m{+LF+q6M>V{X(*G9XEisb zG5AHz`zR_U$|5FNHDzuMQ!OR-o+z%~BkWf+ha=p$yDs78#%$F<{1vlP-5QK|zGl(U zG;iSO0g){1s7tsU=H3Y6mrR(bj=W|ku2^yF=KP4XC@RN<w5+6O!^VtSF@8m!ahB}Y z3F4mS^%Z`^TW+<{)ne20{|r6p{w!i_PCmqq&p{#|j4dBr+yLrb)pJkNhp&?cuJE4d z7hE4@T)U3Da27doiENZ17DfuMo_(~vW;>4pCJgX&rIZwdcCn+VBuV=TN(BYTKY?%~ z2Wm_Jc6OAYA!3qrlNQ|Zc$DOC!<VFB5Gi!rV|@)p@{tnNSjpu<qE3;mo5<FUVy$9| zLq_+gfi4)Ynjpx=*qRy4;y6Y!jFJsv9gA3-lpfI3C;ZiGK5pF3i0H}!>e8Sb9afYD zbj*;x%%fvPY$ThCX_PZ(MhlOf%s$+gdteW0-`-ti>|LbtbVem-M#J-%D;ypY6vZpV zWqS@6R<>1N5g&@h1x|Ch&4e>6nQ=R7#Yyz($yOE9XQOGA7`p;xT4b1YwJuk=%fd^z zs0kbWhMRWFMZRe#EgKL~S#eN~38;w)b7|aA98{KtO?$umWYb!VA9E4|c6Q9oUGa84 z8GrWIKl^VON+06JgCXRf!&5$>xbgl+AKw1izp_0>(DwNW7t3vLFxdri8P5U=fSVh1 zaGW-V(L`1$iF1=h*DfNu_GI(Rck{Sg$v~ll+(yJcR?gU2#Yv%Kwo;MX>G+*&MjBt3 z*;t=167HlBA%?PpjNd`RZpR{1%cwhh>QgTt$-8!xFmW+={4`?vJZ9<%>dYkyoSxsC z+Fn<D^dM&73FO5~c&!8@AEY^yc<pTd>_Fb^5ZhuD*o>uy#eCUFfqtySwurZhnJzWn zB%>>(Smhj1JYIU_aL)cC8LaA5EbCE1*=`(jH=dhD;Zsge<K1Rj$V7A~==0;Kt^>u5 z`>IC_2f}OZiD>6iq-H%RTJ=^YJhkfquz(tF2864=s*nwuyD@AUoJK`asf1onnO%+a zD@qfF(zqTKP+=o#Zo<WjI5{`Hl~0E&pA1#sjJ2-BJ8rKu+)VVY#p{-XjHrzeH+9^K zzVQ01e@W$dh#Q}SL_Qc>ZsG>?mHsN}LCP0>?RRfoUQU!7O>CEu;nh*?YV7n3f6ge9 zTB_C1=}bek8bslx`lS_y+s^e`xK@ZV%$1D|?5g7JrZCZ+2grkiC1Y229qY<CvA?+g z5^8p+Wa=_vW&k@gRy=ey|Kiz#^M_DpPM{9-W!G1vH;eLmYj@Uj9;;zL*2H_fP4sw2 z^-dw{F$QzDfSrLSrgC^$hxVr**_%831akaR>iNF3u9l3dMpEC<LFdz_eM>Z}y3(Se zSY+)Xe|soU<<y`Tr<m7fiE0%ZnoZA2*kV0%T+Tas`Eh)CI+2~v5Ecr1dnP?Xy94Lb z6q^@HE?vs1>(1sjmK_*uR6APzkxqZKJ?1M9T7*lU`dGN$>!^u3sw0kCpPgsbazobg zn6q^$P`@5!gBvz(MlES+2@}pQCj~T(%i*qDOU+-5H$5E_h3u7HM`JY5w;JAmBXR7R zjhdK?A9awzT6)wh`R>;r;>KSk%s?%^Z{I%P89sUPBn*JV9Ny2LKM$J#!yYhNz-yDU z3nt;xFMs(<D3gZ)aQNJNFHFKMi9`Y}0k7cZGr+yD37o$9=9_=jQ+>9JA4J>$x+=#v zzSE?&itP4Mleki)<T>pEvx6fsv9Bu_6B6|FWWH{W7Bu60I;=*_2j64J(h+vDEh?^7 zA+nfSf?kH-fOksh4h_qpEw^bXE)CP9!dRpj(;{6zL$k}-7I}lqTo-cljmm2MeEHlY z;>yYV6Nh&;@^{e4yBO^4ICL7aw18NiM`9yt_M(O_rXB4~JKB};#IaqK+*A_1q~T=S zux)1bCr6ey$S!4tQy~ai+Y`<*)fCOFq^Kl<32~*&AaGh~4wKLq=u9kE4PMQnvh&JC z2v#++s`rS*zt869MXk_SHt*>E9ByNJnXtI!09R!s>&0lvc)3QwaTsd?!Jhb9Z6ef> zSQZ5BXswtM(s9>Z>~%-|tw86RpS$7|uDC0g-PE`m=Uzm5q?DkRwrt@qJ48!Pky!`H zW3`~X=_Hk5>#;B0YI<^c-_vUiw}PS#-=15+FaP=%A3&JmKR*7%@lfCRv%(0xTXl7H zfD9WO8`IO%&_Q5$co_N@0Q=VR@-lFCWo2c-3{dMpa|Gbd0<H|`QvkOB5#QZ=>+9?F zdOc9~0l^Ne0opF$--tvaE|=@eU;c7_em-y-|JhIfe>3?Y;>Hhu^V%V|yIvvVShYas zi`34NJ$kB7&#{@xrWY9#3aV5Bkpf&uh4#oOW-;9`UtyGx#iQ8KVKD#e?4W)a*e*kb z$5rQcROvNrrMPtRDp4`Xw5y3O3BfLAIn`W=^ss-e-D#;d8yoEgx<UdmS@h_+$J*<5 zmvd4Z>$3y`An@6dRgg#E3I-r!d<-!?fSkKVUK~kpZAitG(V8!wmxlGve(&g7glHF& z-7=z6igAju4l&uQ;@ag6dUKP)Kpmf_tK<!l;Gwl(*~K$i6jmmQiQ(5X+s<DxtzBEY zDTMSe>tb$uTMn~6gDT8#=p#+fBQ^6SCNa}u;^|FIu28c#TpJ6Dye`g?lN>daM@)<* zBR!&FhIAsIk#CkULnfL}U*uXSwaro^dQrkz8!>UsYPwohqt%zml_ImAsaF!*8ezg+ zvl^<4dN@lCT1ZE5NlvT;|LyI6{{(2j=|kN3OG3Iy`2{Km5P89xKg-p5>eQ)U{pweD zci6lIPB#ae??B}TxN&#Q-98APxcBaY|7U{-4mThlN&KZR)>sT3E*o2?A!--daVsxj zXZRr-)5`H08$#adrEuk%haJ{&>?)CY5h)wWo$1e<>o1ueCM-^~M<wM~WL4wF9*Ku{ zeUW(J9P-fqw5B@r*j2t$QRg%A%!>RYUAdJ_v@=)A#>XnO8i7X3HtVW=&RQs99qGqh zzg{vtQq<PAvk;Ym;Z_|Ps?e%XKn3hE@|;GIYQD6lE}K#(+B?v3QPO5K^MhuVUjr@M zAcwOx?k$IwNgfr!AuD%j>cSq9PDOWG%Dq<jbYlPMGzPDbSy?D(5*!;D4c<PtlxSV^ z5GBKT^(}eaCM36k(0#5|=^!{Xgn*f1(K13-LD*Rl3JQI`Qk$aG0i7RBthkvHP#3$T z1;!byRf0E3h;}8zrNMd?&|eaCjK+kgOertCcp>k~1={=qNhRxEjdw2jX#uk!;t+<M zESH|;Gm)L@VzZdw(|CUH!b9Bn^isJg^-ia=zrP=JiF<Ja><i!)2Gs&&zpAPVR>C`Q zd-C~wpf`t)_yleskw};U_EA8gP270<?YFzSy6(lCPyb+_)yfABH=h6XFPnT8u30Yf z`Rhy$fz1xyQDM{yWn5Xt@luzh%m?|~7QRo%($8RJQxxMO+Pz3{i;1QwhHREES1`uJ zf)TZ7#$G*U!5zDVJ9wh#<dNJ<XA2a=6t@y*660huJB9R}$dX5q*qpjHx=Ia2?(GqO zbr75Y?kc~jF=!?076_Hq#k8t@L)L+nTil3&9MIN;Y^>=~#Gc*~egnSl{5fg-q&-k( zQ_+3;YQKr;FjYrFtxLW=8%rF&5${+m){G$3<B$YGv#DxrGNfjLFxH>L78TM(rIqb% zm!&7P4!%vt4C=^Z137#VqM|L2*Tn2T*QbtFhP_O`g=N$615QfBg7F#3!(Lq2NDS#& zF%v0fAp6yMu7v{Y0?DDGSe5l2qsXeH*kvf~6k0Jsv?!<=1xd1iH^^%t^*v;3Sq%w; zPJu(m@Y@6tH#uPCM?AGFk#fJ4=G1q@L$AO4$!gh$`o>=p!%f)-|At5;f(|KTV`CuZ zU;p~oVGJ)|AqLz4CUY1=e>C6${>oRr0{8&S;MD8&f=>g5Lc#clKm6h5B)mhzBVZxE zv%xs9kw3(Zzx2n4`A_`D0geCcSDq&Ov`EuD)u}EKPmp9X-n^1)GnHs3vF7>mprI_J zZVH>Z9xcfxXSh|2poSaP3H^Gkeu`<GFSjV6PhykD-WBpxxhz8YBJS#i?Bn}#jN|FH z$!yak{6<sklGN_{WKaXgEbY8pu2qxaM?9b->1FwggOIA-z3M}qJD5pk<x*=-C_;yp z;}sijNQY=~>Py->GN|0lvPy2>*!1ex`hq@&ZjrB3P~~!gOxvh2)>-YnAs5S`DfjD9 zrb(oEitbTV`}K`JJ=HGbNyqbqb-Ao6Y*h>U;L*C#Q9;zshD!ry(ADiIehZ<xh1z}T ztU6ZX4|1Jmir37Gx+noFE?~w*^kpF}HD+c7^yG*E<Cio229#BTvd*D(GbqIvQZ|yM z7)l#Gn|9@7fo6)~)^fe38n1yDws74>k=tGyiHpK6LCjUN8mU|hvRB+S39lgTYFYNT z#R7q!y!gQ%|HRAj5I6qPS9cRPKrwjbl~=&lfKCUSD}iP7r$7Da-5y5Y`ObI1Yr5HA z;3q%%36ObiHiCo>j65C>#-OVJJt+);^L%p$xE(fmXs7(8zx?L>CvfAdFaM_PcAT^7 zVkR8qm<6SoC(X$OE;q+(MJeZS`gyinTkSViyS4RU3*QM@k*4IaWFbP<B@~W@HDzH9 zD`6>Lu~gsmSKn|7oeGR`8f~2|a!lu2#)=)YSf9L5KY<*$M(7<XKRjE1T}PXrE_BS7 z1Z0Gm3FDKZBTABfBE70I6JMS~u4o%I>|0;1-3YWU2inb=Y@RT$Oi;{kueqoma^GyX zIhissZDEo#wJ4e~3Z`|9YOTPauJTz3c4>)q2I*WZvP_Z9GbEd&VDb{_$~lyv3c+u{ z)wC0v_cqN*x<X!&&(0p`C)KqRt6ESs&8)qH7i>2hJua5tQWi1Mf+j)4&JCK`Ars55 z7sTvLn}TST7D~r4hIy1>mSj_sU7BL!T!wxu*Eo}Fo`s4PLQqc(7~sY-uL0#$k&Fta z(ZDy^T9y-aORnZ6SA|>0(~4Q(RSsKw)}uYE{!6#le)Rfl_x_JO#En1u?Ok16#o=(@ z|Ni&?>{alElF8&vtoXAFHYbfn<6pW87{cLj9_kx^>F)#c_kK%(e0%1fztVCe$X|1d z*1fd2jUBNay|vzaJIajN$w8Aa;jOb9Xv!IaY-Z1DNaV4KR(<>pU&nJR{Dh4XR1?D* zO59Yj=Bc_B*!ygv?uMTqwb3Jba#V{5Nr0-i*axIK;#B=mmTm&6m>0?&wMGxuZzIRG z#3d7D#l~KT1S$vKGzGYUV$~F~Iu6KI_J)ELQAhKNzfmj3*S8jO8!@%#4lcwF1mY~8 zji^&rTJ^M<ao&uQIy6q38Y`P0tMD3WK*!;cQZ3UZrtxC^c&>UBIxZETK8g`Fl<;eC zwH@W1hicT8HoLFGXr^84FYi8#6xNkgG_j5hU$ckHjgmt3M5b!E1S(}bI(E<o1cPNx z6*yfHy76@7V47td8d4WKr39OTZ<G=(D!fYpogy(|MM*%3@u{#uEhlCn1&k#+3EC*( zJKQ3tzb5JxdW{tENaoe!kM}ia9`4P*{zU2A2!COMHb3e3+Mf_~Jj9JZ`_+Bng%_Yr z$z2`e6Kj6+o8N5uH$E}{=}%vO{dH(%0(!`&zvVMu`2hJhUijtDD?Db7L&paj#HHkW z^i|Q|v765xiUxRg9oKCT8MTLe!6t`E;MB7N=8CXKwC3gC@Cw&M<pCqkE(4-1yidUm z=^HkD4PRbqcqZ0$!(W?l@;AKTM};T@E~YGs%8(HSCa%IS>6q(I&a#cW;V9p*^OkMp zaYNmTr)JsR;xkfv`!eYwgy7KirKc;yX0k(y*U#alGez|sx!eX!&A9>lvwPPgD7Op` z?%8D<&7;KXX3Bv0D`*ipHB7sT=#=5S(h}za#i=NC%;cD+v*g#&$ByD^Tadzr5@8dw z_e8bD)f|k~sBM%BL-d{l#QF|=O$+bP)nl%Bv34@YJe}p5#{`U}J~Q5LDm5zU79GkW z%P~wqH@CciB-c9&##e@A5@TN!E!nwo1KqFVE!n_+VTT=zkb~>7@$9BjyP`xj$M@Kp z!gjV@UOe%{<EMHu4tMT8)A#7L!#jr#7cC57#p6`T;@)83w}1G*UXF*j@tMoxgR<dW z-1y4<o%i+o_up4M{q@71r9EC}m2L(%HN;q)7usAjiIQm6mTF~!kiFSwsq~okBx2P; zPqNhF_EPT`mpH3#N>GP!DvPXQzzw8Z#$Pr!-wHBgh6=y3Dq^kmT6i`M)2(b+byK4n z(uSG3VX3(3slMT^S#wjuYEnd58j|Ad^Gt`D?o`$L&D9|js=EvFIg$0pJ3KL*Q&tET zhjEgjk>ES`7x0_V)kn_TZxN%K;;@vsY-T2m?3kGt)bdtbLU0$X`lxPIjtwlM$xPiy zfnmD9wE+2?DD8OB-fm1qeHL4UYiQv-ak0#0WZKQ3u2hXo6T9{^oA*!~dMJC&AFz4J zE=6fbo9UX(vo0X*N|IAg7ptjS1y&`4=8u3I8TKipd$BOESQ3#Emo&7P1{YNT_ZKy+ zuL(K%0ee-<-4hRXg@atb1#MWQ_>3H%gKIUR<m0L1XLA%osfx?HWS3ISBWe1fA_z~L z<?MjvxnKU<T_x}#ZagSr{+U1LCT`sAD}CSc694qKZya^`_JjfrJ`+zeQ3WOH$Db%0 zk(L>BWj-_0uB}c4fP$uC)!n=nXj};%*jVX}g#|&I(4i<*j$lj+r6Dyoq$vd)2x~YY z6V)oC=oY9>8D2Y6W}Fsz4A3x<ldup&YIH<~3@eE-9d%hx3V}+$K+z8GnmCyy8^p~| zwRk-(J`?8fp)|SxQFp4t6X!*3q=+HkGL2CT7uC0B(<*Sy=g#<V^W$bt!d9_l5hWb0 zH$$M(@L~>b*aGnpk`4F(=V?xLsaJ}2F66t!#o#%aAH}tHkz3pFjqSYN1H91@YSaQ^ z&T%Mt6QfP%FR@#DX>EJCd(U*ZLS<fUMckaDoygFR09_Aj*&|%{m&YBLfTqYL&GOF| zg=8fGNsec(I3&*r%;y0Yv1KC5K3(V%(?W)ph^sZ^;OV6-%?wU8htSRw>`(~f7dl-W zx0UGElVj$5_hPzpD$_fg<(@-E)%jj=S;TVXnWumI?*Hj-{}4Amb9sDFHhfTU<L1wQ zQX91b|6ZL#$Fr*&T~@xyz>0gTZiFkAoYa81<C&*xZ-r}DBh9gJRn*tMp6GmX4ZMYL zFkKp=d6DQ<)&wm4pb4@jYJ(<<U5T-XK~E^L%yXA*!ew{c%~;)rhrMLML{<2hk`h*6 zLuzQQ%J4{$=84^^D>=GJoJj%(5k)mu)VFsRg_Y0m6WRUEem~Ewqv_@B*$Hf0Zw8}+ z+}^*>8?RaQ)U3GsZY|YEZIw%&a<`sn)o|i2wpULyi3=syvD#UJOIGGl6-mcR7RQJe z&*W4$<?}1@S=FrWUct;5D`JAK&=lP`b!J3xwqJPgG`*p#eD4X~^nAHbNB5}mP17j1 zwAdpri<%irW(pL&CiH|Q4SGdW7?NZ;XMwaFAJd_Hi%7o|<&$GWI+RCAhvZnrG)_F4 zclliI)eD6agPC&!xw3JxQpu1?X`>RhTrCXPm@779ScYHLV-h;TiW%jU<9)iiRnK?- zvts2TZagSr{+U1LgMu69zIu}!($al8q+N{iD(UO4iVZJ!+10-0<A*E_9z#RGR$(>P znB2{BA77^7+bs=ik;<q?5b^MWcF4$Lhb&OZ!im@*ObMKLw6K;CGZ2EBlAyX~&BX}o zI&TJRRy@pA7b$L}1XV=ie2IPnYg@#)#KefA#3v<14UC|c;nfyvCh~jtWY8<}ggvxL z8C5E!YZX+pf--moTicdFt!nDmw*)-}zC|F^g1ipC-&p1JR;n!=hk+fj;JgZi{2F5H zT$Xa6NHR*W>KJlG>HKt2Pj5kGJ*ujaT;IVxa+EncMvWNgAuX6l*ul%Sr~3ux&hxqt zV5%CJPh5fGHE!I7aVvOXJ3nl%h&%a9PHw_R4XN=V1tOwA29?Dwu*>8qw-V)&bHTp> zEQL{LgHuOUEtJd-rw^Zbw10o<@ago$D;bLG2)B&l*7KYWfy*WGgxi-Rg0O`cQPWne z^bHpsG_)v`*4pbf{J|f;xLG9o5H~(^d3;bdd?0Y+?f2iUh}*D!HQ5863ZS+#<Cn~W z6?bnUTyIqKOgffMf*iTdofu~ikJnu_x2u<1<gwG98x>{?)n{Rcoej%gfESkAAdER# zQ7bQODu!N%&^^tkDh=yF{icU3qGbRXJ2zk^2MtJ<tYmJmcyf?#ke50ZY4B6)T&xLM z1R)!=T`Q6d<n?x?k+|uC))M(V)}}&QC57fG+=;{Z+KwV_Yx9_c?E%&cO=(Qeid(7^ z&ibWD^U5kG?uL?fsHO)#^8(`}(YipiLHJ{?U~#<UN<X5yA+4OB#o#0PHJrVDjQI(i zTMV`p-lrtYjR?;5w_Y3OA39EJ?k+!g9IE6BY}47MDS}T&^r-nUH(;q?-HnZCkpTrJ zqQ*rHWid0!t-%J>*svBC*J7ipWGaY7QL329*H5L2ucXSa?N(e#HH;K`B)P76q+5%( zDS(p@j5t77APHe5Y^-I6VA<VzBi6bR?Yyzvmxw67@wMLrHQ&QL^9M!9KZoahAaLWK ze)+3vlNP6uku@rw!9ojJiNJIhvbV<qT(PXq;jIZctAplp)eKE0<<IMyy-Nqew=X^Y z!nw6)_N_hLwi4yL%|yGZ%xNG-%}_{A45;u{Das<HMXY5}Yh}>U>T_|dI-1kW^cZWs zHoQ(sw<wuTEx{r~>ZYNtq)<OekD3}1o|a_~#V}pErz4FbC}`SW>e7`0D-KvRP6hMm znL>U;7PYQr%31C+l0wExw_X^skeza(M^PR!6nQ1ZF-1{ASrn0B69#U=3e5}BZ4<jC z{b{FrbA%$KpbjBwqW2xFJbFqvbsgi8mIPJEfSe_pWuL#&d3~(@!ev}bFRHPVK0A$d z%L@aN0>2pPmD6LEiWN8Th(dRR@+CVnW(61l7B7CpPV%d<0Sz&3hVUx^sMqb{Jo{XM zSDdLCNjHtAyQXs7^F?7<iBE~~YiVH<$)iLYW>9`5XW3N-c`|Vmd&Sv$GuV4G!gCr# zPV@fN#IN3d>mhD@4&wO0Z23Uo#>_M8DB#Q)nB_}tm1dv7YiC*1T%&<!)=~|s3X?-< z^HeVfs&9l_Zp8U3?uwwZ$ziUxxjVw~&b6h6kPWI|E5mNqvK1RvVFFr0*u(_CN7&5s zJ6J&%%W5p18Y`R_DwIx<f>x?WU#OYEn^nB9gTLfphAhme86VKGf+m{RAPCzV?TX^= z4)AXj^c*M)T0nJYN6kW$jCS-4v7sB?c&>55LD#FuG6_K}E}NS!f#O{IBH1p@vQ6ds z=hGZhg&r~JA#|?>=ThXl=dx^*`N#JX8d|~3A=h`3yZ2U|Jj=g2Ot&eE14<e^=i;33 zd_VK@^~zJ1D4o6J=5E57b3DI^9=Gsf=JKe$=4PmI)mOJ35Ux47F+0t#1#(fmbXI6| zR(b=XgugQ3#{+UgA<w#tw&pBfaT1oz*cB80hMBx>Esg6yHKN8WtTi`d$wYz*mxQf( zBiyj+ukxC3E+sOg!a{gRJB!p#WyuC^|MW)>apQpz^3UNx?|<9?mH437Sa|6Q`tn%$ zv_`15i`>5EfSYa73C!juhnKgY7b%@x;nf3QeEPuCH}>3KJ9}g8^2SD!KOsnXc`+y3 zrGs9IRWWZXq)*4}70b|p$bxgLNl^V7u&@JehQlm~xhsInV#!;6)5l#65#yGs)p+Gn z0Qj#cQ5$c`K@Zy~VRMmX7GsyO)bqHmu3b<;f9P1Lb&=wba6P(4;4$v#&F9n-JFd4# z-6g}<OV3}YT$`fLiGe+s0tS&~Cfhub>6|X{ic4LKB(JPgGerXeAHM<tjnz&Zz*aTk zD;t@$Ev2F+eD_|~r3*ym48kiT_>{uM8OphS>bZ;jOGBKa$MG#)xaRIAt-jLhtaeyf zb}hxC<a+EJsBw$CAv2`Rp)NB^P^w9xE7BIcQ5%a_`(jNVH_@%<2Rz)cl@)W)gGOL1 z<ga-+2^T-^0@5(fvQu=!2RZWspf?BFK$ot?Yawao5$c&FD``ww=v&Nk&q9nw`Gaph z#Es8E93Pl1?|<C**SFrNkJxfXFBeab<F#_C6)bc;L8Gp+n86!a;q^6zS2|)(wyoYc z_Uu#5ONkbDuu>&0*Xx=+!OA6XW!yvZDVYIV%}S&;=Azp)G`E`NH;{sQs5)V<Iq`95 z2cX5<rJ$mN>rb>165b5gesM{#;cs3Kw?>1_v0(dBxH{y7dUlRWm8TpbO<zT}cBj!Q z3wn-WHB!jfMCvBWFPtxJ?84OUq3<2*H2UaT6=7(SIyOl+Lw^A+)Q-_2`cjX$zzsIS ze7<)c=a!%Y@?7sieqb@*Hc2_y$LrZ&(RWy|?+CB=5aaY2*7fUUlM_h!Bt(2LBiAu! z&*Ls!WnLO5o;b@pa-#g$8Bza`P_2X7v^>cO+NPugjQnLF+3>JDx(bi3%%sTIPa-@r z?2?h@w}7{^IUFE+tW`mOXClt<+VM6ybZ@D@x!itpRkRTmt-1xP9;{c12L3>&B2PR} zFy7B`seuuZ9Wf>wCBzI#o<m3lx#>Lh{4?)<^x;Fl=mR6?pY?;@|G4q3*I(^=YMm9a zQ-f9lbSbhZFb*BjZ?9X4Qr*V7wIxx|+j?W8{i%)a8ylVRc%@lYJlJ2Rkkj-kcF@XS z_JHBfTyeBMndrC`u3HIGgL-;MR}Gn;>%K~0=8PMu5fde1V#clHF!&N}^|#_x>%P`o z8+}VpwnhEIpsN~m^|>LsW?o>Bl}=v9oj#e%ug&2!<kfZK<YJskR=hA>bm&lST~l5~ zBf0ZZt2M&$n)n_Q&#vc0EtI%{z3QYdnQ>t?Dj?5u&Vi#N-?s?51j4yc<P;+<6UeTv z@}}O#!)FMMd%*2Udg3zu`ZdnvBp3P}%#9XaK8rkiHoyN;>Ch<V%vs!#6BQ>;Hw@3V z217)zzQhXsP_*pTWK^0Tu`#_Gfm6%y7>ayS{Hm#V4Vo^g2p$a$ie5L?8gH%EZA5FA zBfNwg>Rub-E3Hr8XnS&%v+l0k2(dyIT-Z<oecv==MVe7YK#2}1AZH9pjB8iyOz5Pr z;-sxOx}HkB{Lb$m;>Kq!jt|U!_c?BS^v91^e)Lj(*i*9<7Tu21A^CIJP7Fg0mrLZe z5e?cZi??I>M(^@7txllhP*ppP^-fa<_&=317|SfqqhdffBWi~tGKxc4W|r4NhL}Y~ zH;QRCMWtRQP%Khpl5&?0Yn0L)hCC}sw5&ugMrp-3oxIv-#W_@H^;F61P|?W?1=B+` zmmWJcm@8^R)wbtw>T-Cs#F0t*nd`)BBV|4NNlkl-`E|(Vqjhq7Mbw7&%1ga+l260* zYb#gW!nnOWYNf}GrC}{LqR4kFKtDA^SXtthV+XIY4;*eddWzWGS#k6v`RGyH`6tRw zon>7gsk}Z&JaPnC-&xe!jyQHU|LjG?`EzBLu8<ELr|m!AVsb!f8!Dn<Y`E*6j#jS) zY7<_l`x7iXcu$9@H|^z5`lzc8(yEQW;ct0rg}vk?hD@9_ck_)%<BeGRN~n7+!Sgz* zBHrqi2r#t@JQ{>e4*jpIm%yQ_Edd8|L<bc;)ob3`Rc}4Ca)=oyQB&21|68yB<{@r8 zFmnD`Kj{6B8=mj~K;U+;BEHJyICH~CTCy@7_6E;tmpwteKG8T6nfd0=`q#cfo)|*S z3{gz--i>(Mim%>p1FvJgahhgVaxC(k$&2~3gIMuAMn1!_sF91;3KoVa>P6hZb%s_8 zK0}7zNQ;<2t1s|KAmtl$b+lc|3|bJTsT|D&+9)F#mC!eh;nq>7hca1JsOq-N%Gz9B zJ!NpbQD*1$k8^qsa}ORZYUn5w^wfwA^$9P{r6RhNkj_eTsQF$;eLPgX;!9?YuDS_f za6+0P1dNI(iuF^4`w!52_VErJC+_Vl?d-$#9zb{Wvd>>Ywsn*D9k07K+&(bcIxs>x zf42C*q0ElHg5G`HOP9HzlT3`}51vEHr-iFt=padpIjWYt>{SOVW~8k;s%{5Gw?h@T zgB7>^!khluCqodt=0t6c%bxnUt1IE}TZ;(R0Wm_tB|i=lP2G|_`waXAXhCCT9DKsi zq{#$9YQT*;xc!Eo61S08ZG?n{zhb}ntABln8=ti}J}~>;=ePlc4|CuA8o2cu!a;1% zgpZl2>&}`R%k@vLHbmCDy-#(Azt|Mns8YF$51q)|(^WDz0SThLi9lPz!;hFsB%^56 z4AvsaQw$bcCB+s=u~UYyEM~~B?dm^7md-Mia*9$R4B7=NUcrX9JZ^*dBf>2fK>dhm zoD@)TA{J&u&j@HaQ7a{2f^M*=nSoR~FQ3<tBWTFsHy{q2sZzKE=dYma+8|}Cq_Qrr zvPC$ksSkNdz2Nf%{v2D4&j}$OXvV~dI&0Trbt{SL<xur{h!wL!fgb+qIabdeLhBxC z=U!r452j^rX=5+*)Uo248bbSlhU-)9W0RE^pD5qcvx`{{*&X<O`)f{|K{T{vH8t<5 z;O*uK3S0LajXl}-<a)<)kQ1@uqel9Y9phIs;x^C|nr?>nu16apuDv%x?Y9&BfCYTH z5QZ+$O=A6ev{_c-k`*`?^F87mNGpw~@`7S~!c2*o2r*-cUj>byFpwh`w~*sDM#4^6 zwUbsLmDCye`M>;q;0DlH0F~BVf{Pbld~s8Hfei!Zzy0lR!zobiz!>;6pvn~nKe+RP z0i1sAYhQ!GJMX*$^ujQ>_XW(N4-63el@EHK<Hq|Rf7Ji==fI`O4Y~^a(Dg$}UbAs; z1}bj_>u)D2R)c~_7_XFbXH2D+#tNoJ@}*<NW{Du;gc^A$v?niHY2aQ68>t~9E@sH_ z&tsR3sJIr=uCm30c(s_Il#plVo9%(U8>_vy;-aXP6jtN>kmn$U7zeayFAHm#aWg9f zIqg=)QZmsLHF!FMQB_#kis07gaO(5xJE_ByB|ZCbjXlW9ssdhR2DOrLcyNC>Ubh~q zT?>|njHNaS)}>^vx%ex=n)OI+WC?;AoUnr(Ffx1^>Vboto_(CIy_BvVQg;uwaW8rA zVPb7Nt?y*#@C5JF31nmAZX$UXhE&?Ir~3HWJVCYa*a<{qOBTB#lUt3bYss%`>5)3F zKljb{r&j83h1n~v%3FR$)JzQMxnWzSQ7SOW`DSBH#K8*~a;(#ty3sW4aK1&H3yB=g zMYLCq_Ny^bJ$V^&(u|;P0Z>3X2QYPH*=L}!EaRq^oN&-?xL7xQjGG?vs-3aobiVW* z=&1Nte%(I%<!}7{_y5a&ZBIV=BoJ_c_-{VkCgl!{2L}g%9dvef_L*m%0eWGfPzWXP z03)y%7&hPq12_f#&zhPVAm$n!9fkG4$#dw=3kL7K_ugm!557Nkyzg=2!}HJGg5nW& z48GDDhz4R3dI%jdR-Mohl@PGdqYkb=!1MXJZWlFfhZOW|C^?B}un7|;rl+qvMYjVS zu>EiP**83pGF=>3<y&WwJ|z`MK9}vdfT7G`76t=?u%q#ILUc34S$34iObsCm(WgYa zWQ>rG6Ec*!rF9NPgHO-0FW?RzOr`OPE87Yi+Y1`nbDO)Uv$Mr}dPp^$j6Hp9h>+H| zqxYO>utzHb4wlJCbz69TJIQM#M8OoYH7$j@<6*YLKr+f0P7U8G#dNjv+Ik6l4ih>K zm38!$b?#@h?BN_Z+jHq$AxH3N5n@|b{>~y4v97!6+K}k%6ZpDjl(2F)zATl>$riR` zwRY#$wAY-QpZ?-M^?vE8-e=ZDH-c5`L4n6X5{pa5uHhte4DoEq<W+)p9thr%4poT< zQoM|)u&y|!DhP_R95b2rX|zvGk6WowqZhR1dn9?T#dOOg!mpsN*y%uc@@%~RcD#Ho znfoCEP)gWmzWL>M?t|Y`z>U}6eDk$ee*N0Zzj*yOzj*VNU;gg3U%ma?U&Havo3Fh0 z&RcK1{r3OZA9fQffLseG#1RO@y#NCG1E9gZ{J?jCWpnV2Z+rvjLqT1+di5$So1C1C z-+9?=w);cGKbNPt&vE0uk3T$gdzBkBQ5{-N$R>z6MKM>`t(C?^loRuEd>*FFOb<E; zc5UUFx8_C&(wTq<j06o0S52i+sPHnEZ8&KgF7Aet4^R^We}X#SHk)gkBd%IY!m3=L z%?YaW%}IV6Y7FAAMjB+WuX%(UUTQKA3R2MZT$ci&9m9cuTj!C}7t-oPX*6DTWkXR_ zLzb{E@942I*%YdE52c}-TGL8x=wNpCp_=!yu8k9Qiv%+e4BB}CGf^^GZc|iPRkbpC z`RojFbf$b{iZnS+Id_uNv!C0&kI}WayrZ|geLuZpAHB7&_V~#nI(>UaF0`k7v;b3F z(Lg_Pgw@wmSXqy$Zb5LXA1@)N6NI@{`||6L<9aXGo?RGT`f~enn6vDqdQ42G1-CGb zx-yb?_8dk$Qy=h9oNA~*!G%ragr#iVS$^9G<_0RN&2UbqStoMt@OY4y?Sc*HF6Ttr z6{P`fsawukb_!QLjW@!lp1oDK7GTCKNvG?&7g}8pe(SlnKK$Tw`BMHhn*wgU@rxh6 z@h|`U+IOCP<y%kv=J_XIdH(k1@#?pqdgF&*f92($e@ff{(14aDpMZr=i5u|9U;5IQ zK=){9Xn2Slf6ag3=du=(1de?1shZ_DKj^Bv5pCZH)g&N(8fdx^;;y-?p>aUm%3gM0 z{o3+`6DsIM%Wi(e0bM^T)<L_llM+_avQ@b56>WIw%Qmn$z;c1M?5MDcwqhVBG-=Ms zyuc!1$w*qZpnwG{p`)$YX$doZ#nyJyUvm>O!7R`Zn(9-NLwc-FiC0fy+S&_*&G}93 z<kk*k+n&6^C$N*(P{Jm3MQgF3wuo0%D5%NdSLbx}mbugfzpB7IjaH3g2QIUQC)q=j zWtWF(7l&HLX1k}w?US<&m#=Vox@hft%Ub$`JqP$5`^%g6wjMcKL?v&_$l8{kmw{)B z4xa6vnCl#$;tUS6E??rF9VqWSm`C7b;Hz>u`zh@sd#2Yr$K9v3zQe1_6rY{%G*$tN zpj1Md8N)5kVRefbn}P&IJuwq;*$Nq<^cyb5O*bW`N5^zUORC(E7?&`hK$r7rN-c7v zMT~OG84;T>?x>ABIWB$6O1L8)tqr+Ieq-x~kDqX$eaaKJB5%C=htK7I{jb>+aO3^o zz5eb?-~PjkUw!w*uiZJm^4|BJd-r?K{^2`ceE-#7{Q5`F|NOUa{P+Fn0V{s@yWjQo z^}#3K#f|RnZs6hrd&FQc^z`%qZ!oY21EY9)dO9c-aEU-5_<TN~_5xyIVBb=yR4@tP z107NTIv(m9f6ag6XT0|HKfDKJt@LGA^@hLW+0_Hj-0Z#`uU-$Z*If7|182!j4(o^^ zEqmEn3HcZsA?OkUdEi|)Lv^d(_8U=h#02@_!my)y$;}9xNgi#Xa}ncH(&9Sqx`%Vy z_y4u`9bi$N%ijn4{U<j?6KiZJDu^H;MSAbOSEY-9h>D70S48Q(_uhN&h$0>7Aieh{ z?9%m{b<N&&L5wC}Zf>$X^PFeSoO#O`&imVW+q{ROtPdyHpN<EhfJIZ@0%?8_rH4A) zfhN`imRmC?cvD9@)5m$jMtkn`aNguVAwS#wa&mjQMGo?dQwU4#6A+_?hX2%@TuhmQ zPx`ok6s52vwSp3xqVi#B#l0r_r`&Dmtsk*JdI;VHm+5^DlLvy=9?0B#tn%1V<Efp} z0}Dx`D?Ey48KhNN6_gl76(!VlxnxuY6g75|QGB~&&mkICsf%V>=2o)i<`NI?@!h^l zX?&B~Kws*T2`#VW&nMV+(W%nQJ`%qacq6FVvZ#|UGl4POmnPJgCBlb2#P@W7D;?~} z^S31nw%KEQ<Dl~cY6u?`3ma#gVcXiNXlJr$d(sG7a?Cq=GsXB(0&WD^(S<oNLKM~r zci8!R+}G}ux1%8JDfaVV32>o<VDABTWUdbncs`I%4;@C&{K5b4FV7BeV{vR?_GRK? zW!6Gf&O%l8;;Zz<%H;X7xVhpObVG4Zbz$f5$lADZ`t)fSoxn!+!{G*m`-AYmHa0d; zDR=}i#-BWS0zd)CP*zq3kKkk_fDsU4Yn_#q1wuF%32uqF@#X)?KQaY+X@NH@66Rhx z(!)g4lO*9ZL)g^jX+<C8&Yl>+k>C%(cxj>_z>Xh;=VgFp82%2hMpQH_3I_an69Q=? z;1}P4J=z<VPzr~8u?M<y1~^g#+A%~pV`eIod}v}F8RI=!<6w8KKLh}TlS+<zJ~`<A zfIP^CCfWtIvC}8G@#I8uB?m%3h&9PmD%St>Ih|dsf`<fU$>ik^OUl#e8^ZyMG&(wD zk_sn8Whe!t4sh_1al;fXKe>_y{f#>;W)E0R@AF-~$!B6JU}`RS@rLwWbLHC)6>dGy zzHcFJaEVn+@wB)CtArwt%o%>gv)t0Ee6ouF-o59C1C%NkuIoRsJOAhbpPs=HDbYQw z>_5{o>||nQKC2_3qP?9`cn_WINr`*PkJBR?C$E=OuqVU%aQD+Oehk5G?4e!|^^_sR z>1c>8j9|b(=uWSD4DlYPqugmD+^9mGDZ`yk#CwAG#g!7q7URbr?GLy?72*KLD8LDE zEYTiR(JrSGec7UX=$xN2`?#?ASTO{<a76o@4u(T!?Ntln2L2lU2H?hgY3gEi{z7%$ zVr~9nUG`#4>U>4qLTN0zspPY`0ka+uJRHJ_!-u=LxCk8$>>-T5=R1y!j3oLSzsG>T zGwtl+f^>QmOEm0e_2l#q7LG}fO^RdkbvYgG2_c0c&=yA|W=@a;mMA0!v%((v&_Mby zKdMO2(+NKG2`=<8uFSDstnprO1{q(RzetD&N2mvTgf~l^KLn$ok9FpW_2Y?wZ5=L* zeos&OThYPqY?#|o^DDnRy-pkE!j$O49`7TN9;TR^qL>pSoEFNL?03pYa~~W3HcI*( zv~0UM1P*BG@`QSGI9gLl$R80@IKU@KBd<!Ys!es?h{@25-Q*VMc_SVTeJP`BEXq23 z7mSz{bYySdXHeCUHoYfkcv<@VMJ`ztPFa=H5^Agx@~6dQMb)%OsZRay%K;t*UBmn4 z!s=T4sc665vHP3tJAd4FWDh(45s5RxT85$;7k8Z$C*!&(Y8-ecqBXv0;BrnrPkabn zq&E#jD~j>ujPzlT@q@J@3~&Zhf)6J4PORIBP)AsT!W{*J$)3znKGblmTeuHPkS7Bi zLLKBv9p(xFJx&HVoD8rd^?7tM+yzE%nSx#DU9DK*C`>q1BF+mIzQW2<(UhPYCAkxG z|NZ#_jK484G+&wZGQck8$yHQk_F`RbW2{TyE#0w#u-WFa&*Fx+w>M0kU_Vqi(*)*0 zz@zw`-z_UED-kz-rwxBkau^qt&4{6ifGwFGCj;H->>bH(-(&akf<xHFQzHcv17M35 zO^6Fas3#n6^b3U3@p?)Z=S_i$HQ`Q~>_(I1O_$`(nhNX81K47H=|b%31D*Lp{df`} z0BHck;elPB+)2J-sUa+J9_-OxOfjz9FrVV^;LsI4GRu2x(f+)V!IJ5*(rHlwvCvfs z7LN8JRgod%5I-&;x{pU3mW=L_k)m>VOzrTHQd|GHgyK=mc&X$`b!`Ssy_3q?3}<vs zDQGY&oaIv2qLx)-kUw)&R6)S#(h*J}rR(?T<kZA27_-Z$@W`L#lvZIDmSf<Pkk-=u z>EOYAlysV=clZ=#x9&gi&Gw&wemr=TT0-TZnEY-UMt)s=2~GVybP9qxwg!%c<|%{E z`^K(kWx?_i@?b~O02?@p`b3B$gx!E8?#H8D=wiK(2RX9F`mlz(bHG-<0Jr1LaBPI# z5fAHQF18RPklf!HR;nKfu_q6*r}J_+;bckUWewm1F5EFMOL9jGDj$3DKsTx=F9_-m z>&zL$U5yG;|1!8SJohTED8SxaLoC7iMpL4%t-gHVt#jiAk?7YIpT&*e^L>6QEv)5e zYis+|)4zfIFFv0#x3r*`9Sy!ToJ2+*>2ky$LVw#(Ia&+EhDm2e$>qjz#CntYSswGW zpbvFnh;)N7Ql|7E=8RzG%wX2c5XLkgx)gub^icWiB(>}W`XKN?eEH(TB(q{5)Hy8O z1Q&uIASJ<<G0BrVIRIjTiYNFp`q=KhX7H1?^07xZVWm1>lppL*mrV?WgCm)|EE(0$ z?q}uunSyaA9p4@fq3s-e2k+fJ73^}<Sf5-}>4f+hCO895?hK2PHl?`KF(EMyIW;OV zg##@7^fIb@XiqUHoud&FJH{z4a_&5ZxFVZ|7PFKrqnI?OoHC1u+));O9%;FM@7~8I zs-R+cW$V7Z-|XD+-7g1@o#y5~t8<W%_Pc$Dj&O^zh%54|U8WH-G!LzI&l_+m9Lwz< zG{{J#kMe<F#SrG}XrMhsq}z!IZ<uI45@^5Q+u}s16Kk9=Y=aey@}u^4p$hOg9_U8l z4M*s@!uZCCL{A7qdOXgZD%$gq<HN%?52<0g*3V|Y?-Q7_W{CA;P4MGL38H}cmmqV9 zkq+x=ub1af{Wa!O7AHsMYYP_}ODZDVt<K3<Xh{U#(wi$yUaUx;ZK>+1e%|%D@r}Ph zL;jOr;jfPyXY%8jV|@<?*^v5MF-7^Y$A)sm`auZs6A>;f$=(p_4}#S&C;Bp`1aRg= z2xW!y<wXl;$MR>uluF2{L@$_)rH%1{=@psmB(cO$+1z-A?0A*@RM^46l^6gEx)>vz z;Y>GX7#B_Ur;o5Z8D@Vv*y-4#%RANOcbt)?bg>kS2o%eNHD-aVksfp&kM@a*?w~up zlb(CmY5v_D61&)WNsWwHqkZ@tpE9c(kZb6jlu<e%3&W&hjN&qfxrAwjq$v2s53=x{ z6q5S+7&ZTSlV9j)sYK7vi^@>TXmF}%uu3V?3rev|DYHu|P%`s!NytL4L|)IBSx^|J zR1Pq39b*&XRoC84%lN~ABZv8AdGszT8(&j1xua@gmsZu6+%%oiI38cwEE^fY73N19 z;zJ(ldOY0oc(Cj7V7DW_w!iqA9}2dmit{`H(?&_Yv<benvHl#XQHOjj5BgZ_53xEJ zVRI<P;Yhf{!C))6Lg24G{*U)~KicpAWS{?Ih-7{!$o^QEBV(K|S)~20;K%!;Y)-}d zI8_(V{x#NbEKQ9rG`w7DDPL?XE)I4IzI}e;SuB9YVnqhJ<yCK8F%dWZa8&t=<Hr2b z;`Q=pu<naF!iy%<1FqmFz;+2}@(eNVun+x2oWl_~>m<Sv;)2Q+B#Gz83uH#{W`@J^ zE!Jq*f9i51(*AUE0B=U9Tw1t7Mx;`DqHKDkLQ*&#bpK=h_)~%zA>46d5L*NU=m-!@ z4Tc39w1Eyh4v&9U6#bEhb@v%%8k;94L*V>GADG0U_qN<4E%h@s7dRWc8Tj`wiR|SO z-OVp@!u+A2n;X5}c_vwKIpi6HWe&3o((sDX2`N&ra!_!K9_E)k!7aSw1ecJe-VQQy zI(cm}W-eA`9SBj*C98UpOBk+9;;Ph~f-J%kfE&seZ|<X_*iLqYjz^3`R+WO4>qk-w zM%D9N#-@Tg2GUoq>)y7w<Cc=!JpQsDH9Wge(lc@+Gn3uRjoHtg(c6XA!-dkt4o--m z40K}vm&4z7xBCNFF}^R<iY&tZXtWdb<0#_X4#nFaPH>=v)n8#&dqbWcf>pAiHe_Ko zheK?3dp&?qW2F9;J1mXC>mZMEffZs9+x%d(HC37y1b6j+T{FM9_=kUxUz#C|Z!EnT zUudmd>Zo37E&~9WDbHT2%2|Txm5MCDjlSlpu94BT=TpA4P@?`{95>*MHpl96h;Ml+ z+J_<9>vX&?Q?w6Dyg#7FX^2||2Pj8)&;~*qu|00_kipJQC=^y51Tw-l7T9^=Z*?fp z5|)^<B>2%syHfkw!ssaMER#-yc*XvF@gYo}PBKxE!U<s<K^}|_PP{=u;z?0FF+p&O zy@Z<srH<lW28JI`()^;LLgj2h7wF6p?R)sa<sBTnJL!0SqBy;WMRG5n)E*9joh+Pt z<&`Ne8k5VZ9pw=|Ev|BuUGSu!^Z_O=W>Lk1r`V43iqnfKp5PPNO~=Wkpz;G56_=VW z4Zj4Fv<jz^8oRhW4X*^ZtQx(D93?9+9lsE)^^(;w_;K$+3N}6l0SRt3t?&0!&`PUv zp4H%#Q&GEdUqaJB^SaqX|J;n0$=cDG*`>v?xjC=O%F~WE6ux$3?w0#~Ep~Z5*z56# z)X$13()VPT^DkcJ$6{UJa0JpATZjsHD9R3&&XR>#o`|qxiS%NK@gfhkhQn4UBJAKa zOsaTKvT!??w1q>X$b#(;gj($hvG^s_0ziW-+72RvF+_XExBXT2r!37(E_F97_cSfF zzglXkSZXR+tS?%seYQ}UGyA$~sJo?W^fT)>h&b@27Wj+f2JEBvEiOHN_tqgNa|RDL zp~x8VxER62aIuU8fvhNI*d~@3E9~oc?B>-&!s=97x2di_q<UmQ>26Q$V-Hh`<PpyB zQwu@MPsKPvls~Rme^}-L`#ME3V)&Cn`QjqzqJ2;KxzYN#vpRY4`-DjZhlqrS3Wxj2 z2Yd0~yFo3$`~9(_KTuO2zGF%r<UnD6f4h{__EVgD7=^df@oYPGY8wUPUJmhJcqM+3 zRy-mmODQBy%FKOIK%AUIh(S_$9}P1ML>xHD#3Uh4#VK?`KxF?ZJ{obUt;gv2RMhFk z<yk}(B-Hgz3yV|pi86}FG6~7j^NCP%@_zRVm57?^w>y7fg#L@P3Iz+>Atr8)vl?Vv zg8b@woU&?S>UxU$S08#NW;71<&MrW7@!rW9&+<xIm=J-jB~eZkv93pA91q7hkcHYa zCxo7g_S+x$ge=~XEWznWqyuHVJM2cGi*jX%aASreAwry)<9(PDe5qjkInwno43EGO za=w-@wS6MYW1qYEKG%DPy`PeXS|5vZJ{)R$ILLw7!!@(D^)IroZ3%)T54JCK)Xq1T z&o!3J)fdgy7S2`YqbqY3M*Bubhr7lmi2lZxBE#DHYv4v~a!O`i{(qO!b91dceYmys zIZUo{-o7DdZ6#~xbjIF6+0IG9!&S=8TF%Ku$ku}2^cJ_u1rB*b;R~i*nug38=XkG~ z@jSlI{S-rzZni@9kENWg<=h?R-0ajn9OPVW<vpDwoGiJl?hBhgkiKUnb;nZWj-!Hw zou-SsrlW(5%@c(?X42<%>4dmXar1C!>k3(0aG4mhs+?h!Q)3VmrRSGmky2(9k!Dp; z0b)^7=2bkyCa1(Nr@|vCFCecbp`yhsBq61y#U?5yepZWJOpZ@Ql}AdEUs07=NJd0U zS4v$=R9QnzRZ~h+S48Eku<}_EB@JOkb#7@{7JgwFbxm3}Hc@4DaWySwK`{Y!U3O^& zUL|!l83joV9fflSvRW6fJg{*JNsP+MNzKjmic7iU5uobfAmC)q=k$cn$wJ8aF|Wg8 zZhLc42Rm_hdtL`~E{BI)PLF^D93OJoJ>+&Y=e2*#V`IVRV8QM12*zi`Y^;UdtOcAc z1)QJqTAOoP++}`X%5>}U=_fbXt?qKz-{W+C010``?~B}j;1->bnV0w9{XC%b`1H*5 z+_kEakdfIw{GWcx^@ryF^*a9zDv<l42%wnYytYaM8kgWOJD&g|5iRgHus}{p`QV%B zrlHZSvMNXa;J?8e{nuZ?DKO+!a|;1(wBFzVBNK^eflpbWzO%io>Sb|h!P->*s<@%M z`%{?^<^Ssz7&1DIJy*Ksz`8!!AO0NNC~NPk?&<%_ny#|57wAu`UVZ=2%h&CHT5(@d z(DSBNY^u7}=2tJ%JDV%|+UwS)j>huJm+AH0U0+e$mnOkg?@JSYo&JmF*2ck+uS@&4 zNrl0UlZfMX1aPDOci=|htLn6Zf>o)!rH#N`VEM|<9(-YK??7!^M@Mhp_|z2Ev4nq3 z<?A+(433OqCHVR{zPz=wy{8w{@M#7;i&FrmuB)@SD0Nk8=pV$_#PTJroj@z)I7!RM zSkJ^%=lCQ}vIf&UGz!Yy6H}kksqGugt84ny)4zf|>s1}L8io0Z6QljVWl$7!+UrZo zYs&tF`s1p%YFYV})itm+_BVUcS;eJmE9cbIHw+A~t@F2kx+-o|zHah&F!8ayxRL@K zuND^N5SRr(!};kQ8&hqEM_0lEeRDICiVE|A3iGoc7)rU=KdJw?d9K8b;^tP5@Mxgu z^sMozH;{i;StVAIlJ{&?+!%Z_Gl8DXd{JD{(3DqI>l>4R)rV_W{{VgsE2>}S1>C4F zN~$SLD$h&IPfg59#89lQUR_rQz9yFcEN-M0zRWKvN6*i%fd;s2GfT=rd2I48ha07@ z+hmkg2nd9@n&TK;!z{>-nVB42d%PX@w6n3itg0B7$^SnFSG`q>$b4Dy>f;}&Rn>69 z#JmC=zbZq-4KT~9xbd>8<cS`8sHJhd>)kXztNcj!l9bR_ISGv=S=9vzDbeory&nO1 zYJR@+y^8^l^a89e-PPoDHj#Xu5!c;PH#0S6cTwnpiC$grM-BN?xY69v39Y_=WVCH$ zJTfCEqp%2QRop13srQdf1oDoI9iE&@D0q$oja6}@BEx^|&D)-lw~gJ)#f?h|o)2<- zuV;B&$nm+HXrog7x*q=v`7CZ=%Sy=3dxJuOFM*#HpRem1Ong>^Rc`D3WWQ_;e<L<K zHzY9yM=6Cx`1up?X)lU#nt7Gg1W#Aq!jI<5hUUPy1Q-86AYkBj)n8Iv!^GhR#M^`b zdIWzyK0Y|m0EPfJf@0!KZ{H!H)HUA-nmmC%-1<dC5xfhodiZi|LOVBiDEEn-1OB6x zeCg{}tiE?>n2WDJ&`KSgWL4bAadnH((M`B~8LO6Z|3QSNW`wG0+|{eEYCih9aQXaC zGoQeX;(KZ*q8+a1gg8Bq^Q+29s4vWjaxkgLi5l){%L=tCt9yn2);Qeow=y<WqPN!P zeV!KC-P(kDGyX-m0Vn~jtgyVYb70UvJ~<*K11K&#uVZWizc}FYU)5sUBV3_}g5$Bw zN`Ip`#UDVUp?kTcX*s)cDazsc+oi>&`I&{8k<w`M>gHPf{8!?}>*2An88nvKM<?R* z3$X<y<`zJo=u=)t()-r|&G59WS6!F^lm4k`Y$o^~)Ec;P?e0AUK{jvMa`n#L!$*(q zJ9scEBMZN(_`F+Ch^&e#=*ufAhNq<AKl&6OmYlZlzyU4Yb3nj^C8w^ciEEfR+(4mF zu<P?ve-O);05=>wy{w&GR;7Tb7=l7;diqz@#0sO*G6?i>)x(!#m3_k_V>7b}atlpJ z!q)`8qOB9F6Oo)692-xdpOBM>ufHm8H1rRpdU~bYxr@~-Z)yoOF^SaFEN^bXPy4sw zKZP5&m5+ry)qfH1UzHtKotxzAW^$$0B_Q;EOZAJQw4fIyANg`v+z5JX;QPcN%=Lb( z&(mkA;q@iiJ+EImUzPeT{sxQ<rWTb3C8k1mBOorRtfmf{TUc^BNUBzIGQSizo+tUg z_cSn|5%+vC)aE({G^U5qgAK)@W}n54=&Zc(<aD5CWtGF@6N6(DFu{j~4seH{y99$6 z1fN8D@dt&l)Xd8E?(U%x=ud?vrD5}#m_gz6*T9X;;xfR2@4o*Yl(_|kfH${y#3fwG zyr`*X=ip%F;Hdj;!_Ie}SZ?0Dxwg9x2pG6snI}ka4HJhO5T^pd`4aq9R8&CNEBKq7 zoFu@F=d}&sT12O35>Qr2SxM7tf<nRPDXgvo$}TM@(1+XH@+ty-T=nqfIr+~ZhvLT9 z`IWD5nWPrJ0AXqKhhbiveqDE8ZebBTDtp}qP7Y2#qo^2!6>T4NW>>`x$f~&VRroo* zs;U~G7fC6h($dL6!MGy+X3VE>!{wTk%>`bJr|~?~)91QswS~;E=Z%rL(D27KFOnl& zZ{phliyP7QH~sEwyIhmTk?VC?5dIe2z~z=vQh{xc-chkrvvW8(0rRD}krnNa^)%vN zEc&M}1X^BOcr(~h8e17_o@S%?S=<OpO2gI)do8HOj1wjlynx%lxTOA};m(geBEY)P z)J%Aqkdt5EJ5bWx>K~VcpTqd{4DO9SiyPo?TsFIP=*W@%q@>ZA*|>zOG8VRWyLa#Q z4E#-BECx5WY{BLO%x}jH@HhNd{6S#7HTo%WSvj_@?gX?F1n^&~psJccA8w&h<Ldyw z5;tC^rl;J#gH^L~bQb&d@3D<7L0ar>b!|h!rOP#q&2S4HmS5GyJXUM?pTZ4Do8sve zqotkW>K-O79jdKe{Wo<s;7vb;8*Vq`tPQyxuZTFAh?!sEH+v{?yEWcA?1tqvA!{R^ zKwD$1!Le5?ZiL%j3$(sWK#{hlUy2+4u?f%0Dt-@cbbLIR0OO)*5q?-tBQSHpA!^R| z@ip)?3jHtl)Z`R~+^&Azfd4ux`ziRi@v5N-x-FoO8_O-Nt|P#WqQ=))l&Gk0fPM`q zm%eWQYTWqd+i$~D(@!y-2FC+BBluNa$yayw>_2c&MozBs<6p^@njraV+*oyd12^0O zaq|fLjXRIbu>%Mzua2JH1a+(K>RqXZlYDl3qcs0nq>3sKKu3L7FTTH#QB(pRMODW~ z3rmU;l9H}n4;2$jHoXBg!S^?E$|^t~>VsdyHE`oqdsl>-8e|xusFdaF51kkMgnuV~ z4cy4^w*gA?c@pn>&&fn0pgG&e<)ZHcwa5TMZx)LiDFIgCpkh5$>~&^(%Im?oFU1XP z`vTlRFD$l=j<0I%HT(_e+ElcEv}^!yBQDSnx+maiI7H7q^g_Gcy;_@WlWL<-neJX% zO85)DHf|J_Rl>fIfvM@b&Tec~*T#*J85AfN)ir)KZv6Is3f5Mx-oDVI3670h)pYp6 zuf`2HA0%zXUr|xf8vX|O{Qi;A1oXUitue!*`X&N>xJ`RbI5@o0-zW@^T-D#eIuf@Y zJj6Ew@ZfL6o<IMp2IEEoK;iriEMxEPfv>*?Zh%^nw+}#2q~7_`_udPB!oL&$N!&1% zN%OS?3bE8r39$4Cx}R8{7#HcBotscvN7%u{;l}jz^f2BZYG(S2a03Pp0~1pGViS@I zUwTHwR5dj9O=9L`R}wyM#AIY+n<ONG;gO2Ak3a*`0&ax)_&WPMvvWzea!fO~O0|CM zVDZq=>9*lY&;b2U;RfW7Ehx315GXDy7kgV$T}v=>i}N>NGy|&)PSjW6hODy6hK(Dy z{OeyZxUpl`ZdwM${HmIj)*z7Z35!4~Dr)Mr2SbXRTF5C+Y}&l}+THs=z>rf?f{-9L zxWzThwZ}JVYHA=#C;TnFKa~l8KBc~I5V|C|aRVIlvY`ovwg^gur8}Sx1fvr;O&qhb zYlEvEem-SI#h6U`hw%LkY$h<Mg0BgDeRp3)c@^k`hk);IVD$?=w)xt)QCwabs-u(W z=SNV)-|Y53xN&e@zub@5^`aGxb?%R~u@oQa>iS46tso4TPrW<fhPkn7lHXH^313@N zgQJP@F{hiVHx1N2I}eM^Ik&O~8dqx{X3`esVY7>h$57~13&qC`Y<o<6_F`2{5W?_9 zOn|4WOZY%vKlTT)tE2PYeJ?*}oBE!QmY-pBScw~<sTujN>fj>`Ny)%({=j=j#XVaw z(N^Bp84#aLpb0ZXr7i71!1Up*8Czp~<5O?+C(CgS6NeknPl0IOpZd$m$sy>c+<)@a z?B4xV$=S!3;B}y1u&O3jxN`mlS3UfEu*wb|Ucqq*1i5(yhvI7j51kRL4$Qx}1q2f4 zhb1NB>#vO)pb6d%^pEh9{QdY<aRdJ~pA}_iW<&us3=sY<;M4#&49-ZH-!KgDcE=|_ zFW0NO@`f7nzY#Z}twm?&!P-&Cxu~HzBr&zAdv*I0;6_~DGgvHvtItZNvaT#GBQ4tI z+>7x0Kp~GcvhuR4n=yXrN?M5<#lJ4Jh5^rl>Uw-YfF)-ua{vk8gHLokPBZOgS;?<U zs(`^?Ch@<B8~FW^Px1Kv#;PXzqlByC1}<}$buC-5Vj1^zCFA+I5v0%J#>zbZev;4P z#&3CLfD~BDy9N=g=PzyRe6`xrU-&`CH7G~|P=LE7s0PU4DULp+hM%f&a2UJ`9N|AA z;43<NfCz;6x43eFA$T=>HFzDI<{D~s{X<2~tE|$*&+5O+7dC#FDlIL^?Q5@JTKxQ> z$&2%IO_lkt8b9Bw`u(qltKO<v!EaXMmn;jf{oEAx^QM*t;{Fue{uI1^%BuD!3W*kI z=<cd6%dLKqT>U)hGxQ?)Rb^pg-zQhe5{>ykZ2<y*qw^*QEb}H3(E^{ez~EqaPghrW z$J*4>)73vT^vO(!-`M}S1;#%1H(r}Cm)F)4iD&_$1&9_{!vg*1=|1eEf8S4OzsU(x zibNt>fM@}t1=g^@$VFy+-1u|i_WV!x?1+^oT7YN)g7FP}+<-}n^0p2ftuZ68(u}Z_ z7nhJ=5_YBX+7j5Sh|B5^S-1=HytoX3As9c0*Tn8!UAtDqr$h_<lP&NuZhRCc5O!mU z%gW)1pna`vH2o_kxP-rPPxq%XlvYy4WtCs``LGh7$_FP8iciF42#jZFIPMWJ5aUHy zQVL%}<cSs_T7bX;Sln=eIDwe)jgN7ospSFQ{=qA^?>w}zD`{%6cJ~wz6|-=3Cddl^ zR_B5d=m6b#@Cf9h(lWq<5YpyWzJkqJk_w9W`uIE)fnRQXZay|G=s+FdTG`%p=gCvt zEmo+ksRe3ss%juNx_$#&F7PYKKPE2f*FBZ^X)}t;yu%~IQ_^?t-VIqnCM(ktB}5Al zEdUk(+;~ZYIPX{mHwvn2mDDwGR)Q@OaO)BfbkXz%xcW}M{z(PTaZd>tZUI3|$k5&a zSo<U<BU|3u0Xzuxj4weB8hZL`bY2L`<rNlzw6G!c(#=~?2Pg;}A!$V=V6eAv)zmkH zXjj-G?pa!UhDJcS1XaS_!mbSnZ-u?ZPiuVRChYTqM?&HfkQHQd&(aE)ipUTxK(qkP z0$+?9{(+PyPs*#F0ZM;ag3E`1!M13u5Zr!jfJYEwaKk@PUGF@BKK?BMZeX*DO3%7z zdK1g9#0}^QscLCMm5v=h4sG8%oG_Fee*Ofw0hNIoLRu{YLo9A!`zeqK+~OxB@<a;| zEr7Ma+PJZ2?>=a%K*0$~a0P$EH!4Qk@B*~`a~Cf`1iw$2k&clG^aaJlLE-%6E5Y$e z(6rgPd9b)4A|(wt@Ts(b8~EkQtDS+gcAnmk9h|6WX~8SVDX-$-<pZIdiYi>ODC8R% z4YiV2RfEQU<DvN)m<G5(MMH~yFD6ztvqz6D9Gq}zfnjFnfNVkN=<_$<)%dA@0Z~r0 zz}gmA8#nO#DbR@E78*5-D_%Cc?H?VxM$XVG@t?vrZAikz#s+Dj#{sBv;~{3;V^t#X zH?m7BAT4${1?mt9r~ADu0SOS6!A^fb_XH%cH5G6}MoAfZL#t*ELIQsSB=~7PLc*|_ z+j@9?DhHyRXn}vY1=hfg7j=zPv~<|tW$-sH-894E#&5A0xcb<HfEYM^kXX97g(N0J z!^8<!G6dzWR9IVL?dAbRtf2$o<M(SUTzp`JB!D?<_i@(9miUNhfq#w#*1(OGMsV^A zC~y7xlf~Aaf>~MIpDzhZNlPpG<e<%;Ums$LL<{^iE$~IS@z;C>Vy%c4AX?y0wg3?~ z{$zs_iz8a#Z(so&Zqyz^y0|yA%5SSS;jcCksJZ%{t_jp&NbvpjSK(CwtipfPu*$^i zms{YywZY&-`U(qRzC$8?tp&cq;QvX|A@XD8NyKLlQg;~XW=GnDka_{6Q5b0wA!(CD zI;D^<S&|+(l0JEoL3w0Q0U1(6hLql46_H_iWLOp%mLbyDTVO;6A=1}bU`PTP6erSG zT3|>DlW;&3=@&r;-czq2(!-DR@FG1tNH-tS1H_MX^CDd!;X}H(kWLPygAM6m!B7ty z@|qs;`UQg<{k#|)7*RyVl#y{Yk~iukGdk<g=Qg1AHq7a7n8(oi1^sn6TGAs~JV!FG zvu<7ou0;A`3oK}pENLM``Z^0NY9aq5BALB$eCe6b(sTbcXd&j#+~s{>mIW=6*+*<^ zXf7A}FFo^{3%oR=w|!0(nN=Y{S;;Kq`C};e{WafzA>V&K7eg3fj{kh7&$NT?q|Co3 z1(8v{|KP>|FEXx(OrJr}8tdi&4fNJ87;IWH+O%Z6Y5DS|<x3yv?WGNGFRg!Ty#B4x zy0?bw-s=B@=?+<(EXy<QO<!$<<?|#&B3j_H7FfK0VlvseT#f3b^uc1e!!PB?O5_ih z${#A1-(M-WyFzA1h2++9vF}Uu*~b#?m#_S^Xvr}WZBwFntXPH=lz-JHEtlVi(U;y{ zDY>;w?8iz|smXX7!0kC(347P7BRm<Toatmd>15n#hj}tdxwH0i=I&<C|Cu@WN2a`O zjG4OEpZELRpB6_Z1U|xz2_*!jPBN>tZb5JTqT$Bni|?`G^5(ZDztZJRZ!c{G+<0fa z{+$tqFwkM}Po*52p~kvg&P`u$fqydU65su|TfkFp+(vs)VfWD4BSYGh!#b41x)j6b zj*RLZ9Mj!3roDCS%)dqy*4GKH?}&7Kd*|@m*lQ!#`3Dt$8B#wwq<sQUfB%^7&M~bY z#?-b9$*rs8-#GL<c}W9V&T%6bso%?8e@vwDghbPE@g{PKW-{^D`$XDy2(*9C-M*Qn zjfAdY^NEbwXBE?8A8^BWFVc7v(@(+p8)uPfIg$$bbrp*1DwQ@?t8QGz_#2xs1TKg1 zrneV2yuGk)*^p#epJe&sH|Sf(Q+c+}UihKgh_Xa%>w>|S3DXm)qGZF`KLV2}OP#HF zDxPu6vL4BT>HbpnlZ^^nn+$0EXtpgGe>ZlGvOt9{OM+}dW7D$fo&-_KBHoRt8%O+E zNIT@#Ly~2){h{2)szo*czjS3=-(~7FS-L!lgEIzOhptkm^8YerxV`<t$s+L`=&SoH zv`;0l{IG2F4a)RLsphE&VcI&SJu_PC7j7JY+ho@7malHlRydi(wh5E7(f^@tl9$Tw z2L;US#cyYBkUu|jDogr!i}a?2bL(bqlIJN<wd$Y9lRMt5f70*t!5*beZ5L@gsJAa) z`k_RFE{5U%-e%d1wY4Njo=Os>XqDNxsJDLp=Hbe-6l2=oO<u>mTB_L5p);6wC(<8o zfhApJN&BBd%N~kod!1?RW79?q=%>nPYc;fu3ffk2)<yz-jTC)l_pHJ9Gn$**#MgC& z+brKWv>azPbCZ8shho~832k-egT9@@texbnt<an$*X#|lY4uGF!X(4b;up>!O9j5i z#5yP?J6YAb6-)-WwR@S)^wO#Ikt+=xlpSQ&8`&v7w2`HYgtDMIzj8_l8R11*>5;&_ zNHYb}$AgT@BX7<k2mft=Ah)r!Wj*PV;if3z4fmMV1KkH=An89tGJlR_K^s}L<bFHR zUut2}>!6Do>dQ5h9o7DMsXTV9uC&_a!NU09OpYI%uMu|Y`+1Xni_OnxN|R^rGlC>S zQDh<AcC!67biq)svPRUuTS~|Lc4x6{Ty8Hd^YdsDTR*RfEER{f=4BQ0Y?wFNwovFl z)!Di{-Zz>bHGYL+xudK-IjkejXRfn$#*AjEF0-rn#hB5-g&=)&SL58X;N`~riKxeu zsw7LV3p<|YPn_Se7=9T&F&=kn6Xd+`gnfB(u;{WZ@R(aCiN%hJr96*?uG)Atp$@Ql zN7H0w?$X2{WQ!UddFkfRs=N(T^RsdbjuM!cI=vI>JUu+rmJ*5TY)n(-8C3b#^1$m7 zZ`ZlldvChhmWDc}8cK)s_F;=4UjJANET|*@99nW!m~}coV|Z%j8u#+l2z-9nzqjbg zS+iqv*Z0pFZ$q8?wq1I2cZBWY)k90sW~e)&Ge!)kTSCi2oeOy(3;97XUa^?(wV3O& z^um8J$7x#Un?~_XBZUcQC1f$r_oPf0lXAD3>EOutQbfiymu^3^R{zPfgNAmKV{ewv znos^8XZOaFg@7Al{Ky~|(oBy8>_r-mAw68kupBa>hVY(jIe-2gf?#ONdj5I+P4bZz z+sexkENN<%ORj@45VZE@#T>Wgg}LUGxcUhHrTMw)$lwN<t+N)K&}3#OC;HQZ&@M{w zf}spQ&&J%F8|)f?B8I+t2qY0_WZ%wCr(QQgo%;@bgB+!?ejyEm8=1@-m)kJ7Q7^I{ zbrxBCiNTE*TpMQZ(7c^TCtcEuP!bK77tCYZIOndqh?<_8e$(q_Jbi{_d9bC>?n%4q z_T~Pjj=YQ+-S5zs_M$KEgG`pkdU7r9b;+!o55?d{EZrs$&e==6eft*LKJXYa_z7)F z4%emEFIwY+I^qL*N{gP!pIDq2df{X}($WOD@mldGOwG^AL0VuS?T0$^ZC~noRp#l? zEb}eo8FTK;{P<9br*pW1P=ty^G}G1(MPLiUzn(!*Dn$An7Ene|{|uUQQkZqSIAg+& zx-Goi*Yb91<n83}+sUEj!PeQE6tmY4&R*Jq(%;su@LhM51NzdTg-A2hL)n?DoTvxV zi?s#lyCUejeCWIE=sTxoZ<5bF<yg#hoj$*{N#@@p&l9KQkojES(<<HEn!Pf{{V|!- zvvbQqDbqaq17_}%6VuCCWpm^z!&~{fzop0E#vnJ+!-`Z<A-=yL)kl#|E~Fo(1(gv| zrj~~fKj6m3b^P{h>uIvX<KDePuw-UdBC&2-6`9ujZfUG{C_Q))J+m+~4Gel@AfE5= z*!jH+jfL|wGg&tb+s##>i9w@7jgNJwMU?SuoV@rRH_pnvU0Q@TI3TmGPkLRy?7F!W zYru^ZhK-A@rF9`5O(N?im5})t7~FWqzG2$z)Z69dri2Jo-HW-2(Ndm`Z%mFYzZnG_ zNLJ+Nlw7y;9yeN4_q<)44_6X{v^ZKG?*-gw6DL6jVQ?dYdNcIwW~?!7KZJ27PHo~6 z`I|Jir8)FuoXw<-{K8;+OQ_5Io5@n!yJO9D@CvV_e#YX)l$9hfi5xqzbxvc1I+wIZ zx^>EZ19HHP1=LJu(X+AqXsC0sDh;j(BJ)RDKoObz#}LXvVb=Q^%1jV_UmE>D27O-w zeMb;|n*)850ezif_6jNb;_exPUG2)-yQ7`o7#*4oH$y*FLEREYKUQ3<EkxfJN8jN` z-vWI)^fmIi$DE5f?$i3a8s&c;DM}ufM&`180W?I<_sLxBmp1ATOML@hazX(Lt~up% zhvWu!i}mjk>iUVfu%@802NrBFA?4(V*KVZzDAK`+^h+Vb3WzX6%bh##wyYah*sCG` z3zgiiU3=r=@Nwh0*t#)Qk}>Tc(c`0Cro7-?yy@%dyUDvWIaF+Yr`6tgVWbyTkulZL zlzvGIiq6)PM5j7TwKrvI3in<(4w9%dQj2{}-FYb`I_$ksPVI94MkiZO_4O9tJwMmq zJ`!c!CrdJ-fXuzejeNEZ<0i+UThSch)t{e?ZmsH*-+;<+o$achYpZNYj!a?w0aCqi zwh7}Pg<t$gRmuMM$svbPl}*sKDX=z=px!bQczFShuCTjZqDV1ig~5$r#+{%8G<l10 zw(i;D%+y>>=BWN&ko4Z-t#EoY|7L2y^U7RD?QrFbCWotUmzO%i9EM_@mS$0{ia$Y} zhnpHwHALnIJ4b_V4XOSM@&w$N?QZNX%xDR7ogW+M*C)dkvHDdG86gtU0-v+Ml)b{N zpBd_&B-&g7{ZI~lR{~`wfHGxAU8P4~B1an?LK*Cx(cj;uy0<&Vb?m~SnJ_c7jVAhm z^z2hL3~t;NN15@VOxaK-bf7=`fO8?+bNc-L2E{$YMX5uQ2rAoGSPwvBK;iO$?8SaS zkK}?G_?XKZ=h$@z4@mUw73<qC+OeCx0C1y~1!<y3o*zYAb|KG5ktSB8OC0H!NA`bf ziy$H2tap#OecSWw*{g>R9ZO2OjOT9@imn@0MuybCnT|6b*4;Vjr9b6oJgl?xO~l=q z47Zs~_esxlBgW)2sgASd$xwRG$?pf{kfqU{66@Q2;g(~$VXt+LkC;$Rr#het0;fW5 z3@UA&Nwh|dkHUDxOor>I2{q^g%|6HY8@VhSfFFCvhsyJx$#fgmKQL-akIMA{$=DtC znQX6_EYD^1o5|MtK~v`C>9N--vEbMY$RaIb>qZ<k-p-*WnrjAh_KrUmMm-CfPPQAp zdUE0^1~-Bjc47;96Lf9v%~Xx4bdMBCt>F3|X=EnL163F@9s791=*V>R!|C{^sQiF8 z;kVyJ-iJC*`dk=P+&JN=0vV$6{iowBAfF-SEm+(bFdzdXpz{32?r~xBCtisb_&pYw zv{RT1zK?#QGHZDTZLWyED~Y-xfHGm5F+PPdq(GfNj5>F4T92$%?NC>&`-tJ8X}}F9 zee_e+SzE0oz>PZ+C{sR^3G0k89m<d#eVcnB%X{h^S%cES;g@OMqR4cXFZ58<t`DkR z8<02dxAq-}FS)954%0@Gr^zIGNJYDkh_~<O%m>_PVnAwWkisK~&Grwt(I$fQ$|6DR zhzA?u%DUk{xWUVd$jg5qa`Jp(WKap|S48?0kUqJ!Xv|Ilinb^FvE;Jk!sO_n`-MJ@ zpGQ)>@?|Lr5>6*tk2cq3vuwc1yJe7I%1s@q5r7-6hqnO#f@?iN68zh_`uxG5dtLII zr;}~b!+p=xSsEXyw>;5qlUz6dx}@LddYAM^^&EST8}S@Fv6)QzUz!^mDlt_Vh;e8# z*XaCM8NZ;l`1iPxdGQQXel4{%Ek;a8w7^OWKs%ZXGoQ87#*l?7`mQv}R0ws212gie zPl-Br6s3D)T93R%?MPRw$DrY%sW3Ab51F;sopU@7BOw4Ci?8w*t8x}AG8W5Imum7B zvV5n`QPe9P9)6kLErLvE`YK-?(7ijPd27(lf8x!|a#`)Hlu>{9`woj;@Z?ePZVHJu zQtrH(f{F$P<kfK`hZM2;8ObI^s!k&<A_#o*1F(`@6=_pg@1w14FD?%L#${4c?%gEa z${6YbxB$>l`aEdB>yO;!n5{~iDUP3c88hjBxlexGfc6g5^RR)7#|VrwX0J4z;?N`e zp~X#s>rxz#E>A&MqyRG+Z-skAknqE;;>JFO_rRjCe$vkvRT77K5jkoh3NYA*dxY0u zhpy40Uq<(;e)}Q0!uqLDGjwUfOpb4#!UybHy&$|y2o)4JqF#g#-DblSx`rC@(H~*~ z0B3;re+G@&D9lG$&AJ=Uxf#t`YoZ@1qHl?#uJX+ovtlM$^r>ggpLlbgszvP>1~<+h znhG(S^S(CcacRyIItr`&Eo28w=~2}yAHm=T_#2tNnzx27Ta7$$8=FQgSJcf)==bqx z^s=b-xP?#7pqEYUM^8w#9_GobE~uzsKuS*_SqBlzpOK{fNX2QSSr~!eWxxc$jRrXq z>hHe85!Y^#A+>cwYRG^xhJGV%5StIt0z?b^ehYxVF&}F`7jl0t@XoA@AqF}gE1~a7 zq0EG5uJO#6aLgDpy)mSFt$MUG#vSW#%mv(@3w;Rs3k4AiIl&7Ve)Fkb^GR;=3C{Cz z_Gky)DFfO%#lyozA8^C)(eNXWvAZr~-Z4`b9t|s88jvvP6V&PD(d>QbJ|=3=M<dfl z%9UH4{{c6!{zk$9q?ie55JFnzkRCt=z=yL)jRJ;h6-nUQq)0M!76IHCRK>#$c}%~C zNMCIMaH5Fxbrt}}xa%K7Ben|jX<qXQPV+G~bH1jtt{0#Wg0|7Xtm(2)g2`6YO@V1+ z=GV$(ozX6R`lJ(~W^++i^GPmno%6nmff{=qjJ~BB%&?&D!|(|Ilo4Z{0x7H)?G(rO z8@C)sUBV|HdySb`j~F}}(z!FJesd5;JQS}Ch#U6tYWLE~wH@Hht;#JaV?c^eAQ=ad zr#~U_hmn`eNR2SbYZ;^i`XDOEpgJ<7i41EYBRV9*S|r1o$dCpC&@lkGp@Q)@u;UxO zazxztN(+2ldm*O6THv1p8t|qAH(BQjqvwL|&AMMgTdTvY3hJQ@3T8=eivnWIT<4lG zK0T#N*=5W*80XTXv3<x=b}larTn-rJK*Lb#BY6zAVDv=*F=noD&Rk@i)H&W^DmIej z(J6_Hco>Exi~@8RJQ`Lr9gw?(nT-`U=odcU$EVZFq29xw)J-AQqI9Xc-q-mhEmBB@ zB#>foBaa3tW<zSk5WtOgC8P&%15g438W<YYMaJIKh&BdEFaV;4>C0d`EQ&<>dJA9% zmWf2Pz-KL>vU$WpY_2S6p*C-!CVQbe3q!9mF;tbYP?f$=nKln2fdwIhX3Tv`>-yCG zZ_HVJzA|m0Hur=6tB>^I(Oh}Tn+(tXOVm9wNVnp*JwA6j%c|Nc8(Yd7UY9jAmtv@? zq@l5-p`o~;{$)e$i@K&TzgJQRi%%iXXp!V&i2p9+^>v9VA*4kPX_bHPZvZT4Vi03o zk7VLJ$s2u=X#)&R>c6M+Bon$MlUgK`nk3`uMEXh#jH#215{YPm|B409l8l`BKtpOI zgDNC2+0m<j={3U$CwL&xdFc>GTHjNP7-q(#Q2?puL#nxuYHp;G4auiMo@+@=6sI(Z zZ|YD)2BB}F4c-OGq``WW(T0V~n-;HZSh})t(PZ<Y$tKM8J-={y{o>`#i<h=6UfQ&1 zypc#m3;fv@fREFVNMB=t#S0r2!FtB)7cXsGxU_!Wc>S#5dX(;lN!^W88tbRdtebpK zQ|jx+&#oKAB8(czs0zt|Jcb4pkuE8unsd|C^Awn>8O`+RQr$ADy?*J+mUm`9y}Q5b z-Q)f5ERVdiqkLz7@|^?CJEv3cTo^D{N80}o$cglI7I38bj~VezO5}f|1-{Pg#8hAb zdumLh20J^Pd}mAb&XV$-73Dh{%6HZj7_y>xXL<ZRL;lX<@H=x-3_UvV?#`~aH@2d5 zH}*<x9!v7Z&F@Z?rSw=xz{-tIrOiD`TYA;L={@t^kj@Vy=YJeC+B#;mZSvAj6Gq!G zbP;o%ys&Lbe=Cu`(gFtCrit{m7ML{HHes-pNMC1xDT8hQA#4-Y+d8GQbsWN9X#O~+ rg`r6x^&dyiem|=6{fOH4<7d8`Q2oDg`Aq}&B_^JyWM^kfNJ#uY>G?yA diff --git a/docs/latex/wx/richtextctrl.gif b/docs/latex/wx/richtextctrl.gif deleted file mode 100644 index 1a58ac140562d931a749f8f3128c377d1d53ef16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34130 zcmW(+2{=^W`@ds`SuysV3CWUDmc~Ao>}0Df(b&pb(uPzs#vU45b_UtEDN6{AeXOYv z!q=9)EGbJGf4~3doaa2}ocFxvdG5LQY@heNhQ<b1RTodtWzZe~px{iLya;|lHfeqo zzdTGq28~tWzI=sCMoz&*|D2S<O=}Zf%j*}ctt~FOg_?Ukb<jWMV5f?=Ise>L%HsjA zufImf6Uo?M{oA+Q9^H4v2ZTO(@;LPQt+24?anJC1M5l-G{DfD6F`4}FWuhdq0y*Jg zRQ83J1q!b#*s>~RGKwxF*ImfUzLZv}nqH^!`u&BN1l_oV>)FZrrLUZ0W1qyvlagbi zN>jqqN-md{XeSoBQVU&k>vYPRaMWt2n)cfOIvL<j1BA)}(GEcQHE_NWknaX`TYytT zz^O4neh8461k^_XvoXMM12EZxov#Ahi~-imz_oSY`Yzyb47mLQ+>W_)n-SK_GFQ9J zZ@%R*+vaiKR<ioza3b~D1bp@YpJUjaLqVTk7kri_9{-UcAL9w-!Q?lw$;q*qH5w1U zsRnM^5Pk;a{!Y$1L2_kYG9|w#xw7(2C8hjr>AUu_+#*_IOI>42OWjai@w>^qy1#D+ zwi`bm?+C$vo>yHo7TeV^T)KUE?~cRq-Mhb|?)SdEwNMfMy(;babyjyvWp_(mcT3Ar zWA*3Hz~Hd=&`8#|uch7Hb$#89Lw${FBX!-~-9tky-9z0&pWDWU+Q!D(CMVl|jJFQ8 z4E;~?Kfy^H>mD0A!Iv*X-2-#OL*M#7ulJ4p>gzim8r$n0J4ugcX1b5NyT@jRX2ynQ zW`>q$hW5sWj)#WEPB3#4#&*9AkBx1P{jcTB=C|?XW#HE@;P_Z|d98VQd1!faXmfe! z*LvT~^4QGs%<}Ts^7`cF^4R9)*xu&Y@$yNh>yvZqGs~O*6aEjI{~wl5x;s88Y|d<M zE^qHH?(HofZ!RD2EqBix56$ci%^Z)-?9I&Vjm`Y8;rQyo%!$V4iN@aY^6`n<^5)+1 z=JDqLu(x@V+1uOPJN{qtKOFC!RGgHKk55`0@14Yx?B?-F_3`mp-~|7h3jmA(9RK^Z zAQh8*7WV!DNH4;S?;?uFB+KYce%A|rMeiy4n+5$yH&HFrDjC(AAZ}iyQTkT0KUL1H zDLFczXfOloIKNA;DgKy?Q@yo%@qr2NrDr=z`(Mu>(k|Q@GRiioD;q7htMQ)ht1JIn zjqivNF|DtdsPX)g80XzRkfvaNxb=&xONL(#pA#X_@vi#64+Jn$)U1Iz*Ac}f=RDBx zW}$~HVVZ-&#-{Y!l$gD_=uxvgWR<q>^5ylNWSPgmmRJkaHow2maw+IO`(EY8w>S4b z4h=qeclTQh@pw$WS!HbjPnNqf6w>%>X*k#PrNz^x-)n=aK6}kA>U*0r9SoA#`BsgC zUrU3RHZ{5^+$8f1qiC_*=zrplF~Tzca)NxCH_T6U5v*ZY3Xz#JYBm(15=bGzwWM9b zxG!S!!g+L~PK81qt;|JYBBbY|Bwu;XM@tu#%*UKDAdZMV-v<@MDjk06*11dPUx-yd z{A4I#<-TnotIwMrBW)Pd9?5IKZ54*rRcOn-52`;i>-Ez`760moU!zCr=F{}TH0M^R zRH|D>deJMFGJB~^&(@%&^t)pdOBs*mgKp=9{9G;0Aq0C3Q(QQ`J@cYO%RKXA&#ieD z`0a0Z3*E7G@DfUUWyK=q)bOe2^(*HL86oqQJo>3fZr!M|uv*zD3?r=BDvU!H;PCLG zq+h!p@PpVkUrl3?^NlJ__ws#1cP`y{(=XM(Q8Q%lZKHPBTF9?pT&v8le(KKqlH#W! z2=5X<|F%`3ISaL_LJ!Y5L$0U7`9|U;MGmm?Fj#&hrvb{PJh_<25e_h6&;%xs4R)g) zb!lU(0}btW>EwQa4KH3xd{N5hF{=~Nq#7X?Aa*DDMGV*W=O^Cfl~ReD5Q@U5^JqPz zAUwCDZytbVvYg9FkuX?`d~N+;&QL%!*ughm@9&Ce6#e3lh&Lhz8C|bV@nyPlt9UzY zf5k`2tGwX1k@XgGPRm<uTti4&Y8@zy{(S$GJHSZ%aJ>C3L;O&9$9q8W>sc|5u;Oh3 z6I_@Q2r_(NkT1l55F^y@>VJylb>0IFayW9fL1lH&Z9!49wlk4R4z_}qu_=#NShVc2 z{uroxl8<(y?H5Vi<IQ_NpKRVCc&kkM1?fcaYKJz*%PIUEj}-WsZ)Q{$vi>hhGo~4# z$YsQ>qsRre0O%0Gl`N7%8w9MofZzSp^?I||(Ln6k5x9$c?e!<9SVobLs(MJ^4B?0d z9U{I!y_U6aSmcOPp_AC{0zV4Pg5oR==qU30T<#eRyNbS!*6tHMf#K8VjGYDy?<(|Z z*DHL`s&#Sw@FI_jm)47PinZ?ONEV1SjEH|a;LE6zwioKdN2u)11wL?0DdXN|cU)ZH zs6G_pN}fG`ns5a{RDfW3DF8ENmVebTm!}EOs*+V8=u0*foWZba<G`$P8+ur~w3qT( zBzE6f()WBK%Y)`qNE-}>cVL)JYwMJ-&F~E@MmkOzPZV=B8s?r%V3GD$U@ff?!+fL0 z1RW7k*7y#=rR@k$$~^18*$$zf9DJU>c_MdLLbdCM4Kx}GP*?j3&pqz#cRt)nrJ;%x zB8>-J1-a7JIa34#btBGh%|)gl#ET{^J0)&`c&u0S%I$cNAuIARp)h8ySNJdtrVY-F z=sX30qCk*2<_?$yZ+8@%*7ySPCxfOdz_4UjYM2uXv^*JVT!j75XU(UUmpR&rky4gz z>?I1iLOX4dS8Eqwx6+{M^}~<{6{nCj8?m>h5+YdJ7oHu5G2Je~M`#U`+*fDy7!GeD zqz86#?S_T9X?Z=*DIn336_R!>)%v4nQHjxDtW|2pNP%o!soB#q+ia83l50F=cG+vz z${kk=AN?+OW|gz+ksW)R_`BlPZ|^N7gFz3KU+K5*>!HJ=+9U$xGtbI(O5~)yG$q)u zTg*D6U(vz_-4n9G7!n(%%?=?vckwAjT5LYAN98qGG{k6iV+tR^^QQ)RiyFEVKN}Na zoyT5+)fHMIMr85KvHm183=x_c;p(BUP}l4X1;a+zQi^sjy4w}Wp`sD;4Q{N>G_cV- z^5-yDVxGC(DUB_%Vv2J&!nWbgqf(mF#-r5t-~Lqvc9=SEzT#_MGCv>uRo(e_eQL|{ z)ANr8ku!&rd#(F})z9|&|6@3u3iR{WQ=Q^qe@rQmXT7)7V<PnxSl>cD`mHB!{|Fwa z;Trrm>M}RTbi6J93j$4`L8KH2=Y)wc1a8}-iaM#(kSFMfA&J?(VR^jU_UslA88=UV zp>;I(^pkWbRxp^EiL;h{5$zezIuWCC1mY1>Hx#?E%_7&p#Ivcs$}<G8E7{I{m?tmr zjw`TfH-LH8_E#8)OeF1|uM1*@)*(c{$98pg3~`-Slk;m}nP>Ch<5M;z3RHeYm+Npi z!a^yZuX4pe@$gf8yb`4vCu7#t;rGka)F^+8MbUPWb%j5j4q1x)(q4w%Z18Vo`^5SI zq|1KAznwFT3OVB*0k@OZ-RRy*eit?O)s=wY4d!Pa_HG+@B!u!)QkhlIE-1g@P~IXy zGq(FD;uejGH*~tnE!AcGzX(xYN`AOJ`s$S1a6897Q;Qr#C^!uX-krS4BCV7O>mh|M zy`F{yi3!cv!$|L|G5#0OA+yYe4ehKsTM_4vW>L=@IwUOaMLCAd^QAU)%bnYj+nQJi zWNGYSXj|-%Q$rS|uBi51KezKLck25oc2NN)VOev>Q;3kQTA^F5W0$hpSZ~ApxJ;%a zufI8a)99<HbQap~lw{kOoTwfZ#I;doI=u$jQ>H%svECBZw(hXpUtK8rr~2i;4O;!- z=ohU&)J>1`A)xpC20qO7J^#MC;MHfoSoqiT36BR|+Mgj#@6{eZ-TJAbJ_lys@0579 z_2FE|0;^aMT`^=kEH`8cyt&_heP$y&wRwU4eBjWp?Ct1}Pv&L1n9aSs(-9X;xB`ZP z%^&8WG#^B59QcRllYZ@m;%`g4wuE6co+_pi|K2RCdOYI8_?7%PWLe_Fqx$#Xc0<JU z=Ia>Mk5}EEPdH*j+rFMVY<cowbLD))A;+_zsOk^@%AS8Xs=jhuUGrgXt9bwKm+Irg zZ`zE5$md62A2Y!S;mgl<p#+ZG1cZ^l{AoWljA%trr7N<ad5N4+s&+Wp<I~Vk1&|nj zs2EmDY>UOL2htsBk$um}WjNG&@6q}F+rhU4o~n?7|J+vcWLEVg1wA4Ky&`F^kkq8Z z^zBGGM*fQ9B!iXPCM5y#d;ym90IU6b7TEA>`(buz;n$7A6^g^fABW@lJze=DtQu~+ z?T6n8jJP#!ov(5+(Um3WmcAeVIca^C>p14wi;=7C%x649taZh9wiO#Cjl+zhm|QW8 zNd8mNB~h_yQSqKp%sWx>645b6(J9i#$qi8%u;|RR=s0>bWhFWf8<Wi+v+^Lunh>*+ z90Sgesi4P{^S`Ksy{L(bsojsMih9xH`2uQv8c`DyNf!+-i7}srbYaD2-NgE&ePqUc zeYawV`Qtug<3{Y_#scHU)8Zx@;-<#qX7=M|`QzuY@r!oxOM&qp)0n@9K?ZN324>^8 zR#4q|)DG<BX5h;|X)pI1ULKCWJlcQB;3osBWF~tuB#6wCPKGs-5ffwp{_@v;Jcnum z+CG6ZD1loh0bQEFpPs<om>?>UD5#pS4@>-&_L3($@pwPpgBm|Lh8jRKlKRm}eKeG! zYSIO-B-Q97HJK#!gCs41WKGp%4f|xAak8OTvTkXzQDd_4L9%9alC?mx%|x=5af)3~ zii3U1jr0_A`;=?FNiIRjZZgRps>!#5UYW_fa)c*4O|YEnWl;-CQWJpI(olW4)L_-r z`(9v$##BOYDp55p)IRN!Jv0TA5+jrJ!Ye7R5%p3vg*fplStdQ)KHYvIC2itWl2>}z zYI;OaO0G;so^fiSaYlh^MoD_QyqCp!ucRyjfTRKssUUtbT*p4iW&)^b1O@h@kQA0W z<D}~o@VCa9MbSx30?GF*p&v@KR3@@iqCuUMBxMY=_aLj2p_<ZPnyogG-QSz7m7Y4O znzSg86X=yO>y;A{l=GuE=fP^uHaz#g(i}~h-0Sv9{{^K_!?T~PW;1$Ifu?Mx$y_bt zTyO?uH#%q4KIg(j#s;0`c`uxwf>IWMvJS)R?4h#<nMiz|awABH3_SFQ!f@dJ(%gPr z9&aD&6&0jHL*4T~8G`&|DyWW%Qlf&gPR<g9Y^Y$8G8%f}AWxZApoD>no4j5r%?X>J zWFKUj3%+I(q#UajUNxco2`W4i$gn>w6p6`^4bFAyqbSQ1*~S#!mZiLsDfDg1_4B6m zsV4caW(24vWnzFDFDQ}#3YabCr@@FanG9A6O29H7K3mL6gZY@G1~nD4`a|zof?+gJ zIxaII1~gy^<#zy!;NX8tGgbVv&Uk~f1)*>}w8*5$2~p%=k~HB(5fLob5u`AiP{4@n z8JXhFiNad7!ik`a#>1lHgV)X8g?9uC-I{XmmgP>v^Qs&3c^s0ETLmxzh!qd_QA<Tq zQOXm*<B8&XmU*d-@Gpq0K7XjtR$k38Fh~VxUeNL2e4Int*VW3WlK?9jB!Yp4J3yr; z%e)WE>YEDp4$7-DDqh1Y+}A4Fn<{UuQGOg0eF!Q?zt8AbqyAAXnqQ^T`wA(&RJ$hB zL%}?SQWUpCc0Z;{2**I(qru)a0k!zNSqCJN3|a_&qnQ3y<sh%_Adfl>$d#j>BFd1% zpof&V?rN_U>}&g|ASFUx9R{jQt=ttT+*ZvwNH0oF&*1FOLHOhr%hVV2QiRsaPfkb< z>Tj9^-#k$*LS<(AeWOB5vw99G_ezs$aNs3)9Tg8oT7oBm;xE0KA{10}H0T}~&hSpl zu>^lehd%8?wHhOpaE({`QT&#bgS2WF$Na$6%uG}GLrW+VwfeeA`JKMp`GeQ>-gWMR z#ocOen9A!r4hzLH3o+`Hd+#&uzR%!6*0-pqqspnnvUw^3wTBKR_a{)o<w*k6=7$v4 zMVWUCjOe8PZ$Kulfp@JbGovM7IA6)Jh3fsr*`fIc;+^l4^7p3A>_W}8Pu?_}7QSh! zt5~DnET?#?zx%mPX?fqo@~!ngJQat38(4~}1(3B0HFafm{gy~13b~(IS6-fp&Z2!Z z&DeTUglMLjtXI|n%^m%%aP>l#CaR-Q1>2MMkLz_aj?FR|?cR<RwQ|j;W9u89v_4!f zd)JTZDNo@P>QEA<ISIX9dr@)cMT+r2Ax~zT%i8+~j?{O5KX8<{ZaLQfF>MW(DX;&Q zXX*XEEa=^Phj;dJIgY~b2XHiwGFIQI?mI`_{=z*08a)qg^gIgb3C!vVZte-0>Unn5 z!ypLLLpA7OQ{D3Rv_TbQF_j)WMUOwClZAT|HF}e8^u7w|P0Q-dXztCL>diUor3m-s zYxKPcp>s5`j`*{V`LmXVu#Qk!t77}UV*1Oc`l^NdOU?Q#n)}`z^)+Vo)eZDhH~MQ( z1Mh|V8*U6#`u2C6?Qa?wpqmYRJUh^<G5Bd}VAOYD`0U`M+2B;gz!;9Tbr#vHF!bGQ zXlVoap?RP!WZ>Jzz`E~X3+m&>#?TLqkLy!In^}W>XFm>Ree8+-_-|_PD{6QXm3IS^ zI@DiL<NdDTu+t5dE&6xZJhq$1_mkTDwt*N5TBL)^uZ#8RCs0`~9gWDNLC<6}K1;WJ z&Qn0p(OrTfpDt>Caue=A#eGtY>t;3oB2xJUlJN;sndB{8+4Lm0(-PTdiKG)o>L??3 z5XeqUk&JhHA9{3ND1*0Y<h)24+N@#8D{oY$6DmB~Scb}(EwpnSp-iOTZb791tovK+ z_kOW66uv(E$Nn3KC?<~`|IN)Fu5;IX`(H0L2VZY_qf_t3$huEUtP`c^D5EJF{)hs- z{x2(T3lIdL{tD0xRwz3G<e1&8D%kvx2D7Tni<3>t!ayHlpaHZJffuQTWT+>V#fQKW zj6uo`pr`=y<LWo#7I?+rWP^PQb$GJU9NyZ3;yhcJ1vIm$cO5X)KVj{sf`{4eBu!8L zV=u8p@Q8fAE%%8Er>WROAA7a@2Y-F75B^bT<oDku{FC~;vNm_qnIhE@&R~Qm1>}i? zdg7rE&}l&wkPnWv0gq@PBQ_}@L4`@hRk+b$YOH!vkR^N<*U%m}6@Y^;_NKm7fZoHg z2K+#(P*~(mQsGlck7zT6>yz}B7HeaqVEh#P2K3uj_Va(8jXvGR6>mOPqQ3rP-<&Pg zp8@GtL5~5}3__~mBuIn`y24o0Kg_N}f498z{UJW1OEcBl8G3D|dJB%U94ft;^S#U* zMUR1MTKpHK*`Ym6TP;u0u7KA){q}&u@&pGBo}FggpMXKmv5%lvMux8lqQ_L=bM21E zLQ{Bv0`d}DP8MP6@$CFV0C`^xaesF5l0R4l4;Dltwpo!iTUqisQ^{m#)l&q?G$)5P z`Otq&erWP#eCo#^xvVF28Wmvffd4kH1qc9HD2+-008IXeXJgY|)8kI;X=udY%tkSu z{SO9Rs(?@_MZF?JAJbruXt2kY>yuu2*_0oJl|NolvK_0E((rldxSvzces0SkcpczB zbD#~SN!jE{H7|sx0@S6vQ>VFpC$7Q+v3&7hoU;rLx%1770(wGb@dTh-#_)gt*uJ1w zdWSuP{O6mW&V+cu>E`Ssa%tt$jLBYw1rDvGGzRP?6&6Wm2_&$DP~eN-zG(`qXIip< z!z=_))?~}_G_SBvp;tTpu^}r_s^{h!THgXdBSR<~z%Ny(C5Zrl3LFq2r1Zsq4I2LK z{1QG<x%j~zPIrRdw}dti)eAZ_-Tp9Vb+Dio4fWbW_T#}5-+)%t)I)hha%M}LYHAjx z_OB{bRdG$Ia@^CT(|W3j`M;$5@hofv7WP>{a0~1`3$T+}`d62|fNgIAOHMT?4l!qr z*h#m9?#^~)4o?P<Q5}9enyQFEH1cdN%o||ynuYq1kv<voP4;WW<mQSNIO$1Jr8Bf_ z2vxIn_{~2_njx2wLRf!<S6Fi@uk&vbeOaUg0E*GSxiU8g(2JY1i;FiIM$SJ}4i?3m z7^ah*bu`A-$GrPNn~DMmRmHs@&d{J?SPc%@2S*1F`x^f$x6V-uk{v9oixsHx$V%3H zfW0SBDIZ)vaPWOtLh%K=o?4jQ&Ix@fb@f#i{q17^D~YT17nmT%yeflAUjDR5TR~Cn zXTx(zMf^s$l80Y^A}kSYSk2DV?~b6oj7<a9=y`@al4mLd68%yNlm#x|D%=V=++DHC zc=T+A()*iZtRnSc{hjH~iiB(4lV)R05@*=o*gxt2oLN@EHTfz90LBS8oak#wy-Bo! z;dkRGh7us{$U*@-yv)L_dF@@95gvc@<EY>t`&F6OLG$C|B4^@HlPT$bYlG_XA_?q@ z%6er3Rywy-1eNS87ZeqpJaHGkDLmB?_LCQRl(>ri*e&n4rSkkBp{2ik{?r-6plMCd zIkx_h=H7^ODd;eb^iuOPe;GGZ2dN~1Z5XE)r@Vz>7Gzc8FD)Y{m+DumS<DT~4q_+d z(y8@o{RLKAf!(j{W)h3D@6V7u$~^EyW_g2+hJwV$^>5teO!$4OIV;ynx&+xbOGu)x zY?F*H0<Y`=V7)omD~XwN>$~jW@EX3>!EF6=o*BmVM{cl!)qQiTlI`!=&ncfEuPp=_ zjS?@_1Kh(B?cFECxJ<VOzOWgbJ&;u-3(vW~GW$uDcxiwoo<8lwUHF|6COa3#n}j{J zq-j&jby?!$*20e3Ut8Iitp^s_WuwV|konr#!bYTckf{!d-E)Oj`C3ERwgUv+B@|^t z&nlIc#iS80vze^X-77RM=sifH8cCMN*O0CIGkMM%gL8uy?Ilvlo{ifQ!S#8DLI$;c z1x{C!WOr=ttmN^DyNdeo=CewbZ(P*ZOe_Eag1D;Iq%|A>M!_tM1x8<~CW&H~qV(M2 z7hvCWZ4HQ?mxN5NbwnhsuOy}=T~QJEuAb;tWF}{&5_>5tp}&H6X1D#o-G^~T{K}{@ zCDViAfR^7^I|wsfZB4oMF!*$&=UaI3v9Gy=E|c*bDL#S!!4?s^PiM|?zv;o!k?5Y# z!KYf`5|Lma*jtd9pg-axWYV5U${?dRq%v>ckx`3NTJio<Rd_0KZ+cI5?LC{vwZgzv zVbuzKuNV1s1#A|SN4-gEA?0o>Nqx3U1CQ1G|NU0oC^ffuy)jN9u?GA{;Iz#wU3@fs ziPHQf^#03&c-a(}Ax-;$^O|gtX+Bbtqc<H$l$&YB5-m#lE~71JmM>mj-5+@+<Go#3 z;hFxgYRLFi=ct|cGvz-k0bI&TD+D%8h1Fw_vTc<lbvD^B=W3*SGf99Ul&B|B|4H=L zVmW6q+NwTHFT?6}n@{jCNd%G@>yg!IfZm0jmbGH{D|xAzLJwnVGd#l?p|9hni&TVg zwH6P$s_~D{xuLJVQ5-dh(nHy|q}g;_*ZC2(BlBe!V+Xfrgn0LP>hHI@c15~xp87c6 zrDu6snRBe)*3E3_AdxOx{(JdUXPWbcDS9{h*)1;N+DwTZ99)x|DmmcICO;E)=@wmF z;OlHR_rHc%cgaLSGjaIET?GW&jt*C%egv0ee$}-gccD-syQfM}Sq!!`Nr9t)JKZ2b z!kO${_JyPrv2QX-p1<xsa78Bbs+0{|k8GBW@o6(=jw_Xm$>$l83!k5r)|cj$*>`eB zS9qQt@Q8tU*EJh`9y08(c0P?QfxEym-^8w_6!X?$3lOF0vM;6GoGRM$FLrnio&U)p z-Uwrs%?HKZz;*B)E*77+ynt}8{dLnu@;_q@kd8uzRe016L<3${d+yDde5T9)ea?^? z+|4U`>V4#)RLcADrNI}I9eW<r{2&9zp~%-O>zr);QA1`Cp9&k#7MGDPAk0f-iqpou zEKGG?l%{`5mZ+RlGCrv74oWWhZaQkIC;0Kj=bb07E7%o3M{%j{FR`>ncU*hlceVQ2 z)p9o;IlD%OYj2C{DqMccI(`fuqgL@$-A!3{Trj!bRDZSd-gkza^K#kPhy2m%z?O3R zFOy%J1+P`S3dBpj4YuoQQl^Gh%DL|e+PAx2tB7jxx$zx?%ovbGI#7rr8!J(2YoM3O zSozl*M$rZ(*Vx}U{qS9v`u1)9&7C-^o3N}U5lO?abY!>ryZ94fNA*k`uyd#|xv9A| z49mr+wtH^=Aofm5!v#8ynUhRF(D02M`*$F`XwYu{I}nH6W)L3%#FF;4nTG~Ek)zK1 z&Ugocdjc%9Co?cSp;eR&mOuxP*3_=IDUjPjMJi??>U&I*B>)_ccY*66t%d3xBOgDR zoK|6~$8^g_1!Y1FX^-9o;qH0gU5`qWp>m3pNHAi2p16+W+tt0f?03iS#W(hMc0F3% z7ySH8U8i%db?GnNi*x+zAiS<Z*Sz&ZrK*ob&=UO0aVa46T^9Ruqjn}qX&ttZVX)FW z3iKisfJpg+kW?Dv43-G9rH1lu5ulz+I&3%mnRw|q7F8OE?SVfLf~EkxSP+~I55V|O z3<v~Vp}^MkrU?x|jw=;$SpvUIXdmDTn~$Nx1W@NC5DVsf@C7na=*GOz{%nM#Ejg5< z0uPbE>ag2V*PW^{CmfazGU`XDV=f*du22ut#WOj-q(RPZLA08WUWTA9eES;lz5aMR zKA0jQJZBd!cWoQ0U0Wddjh1<u;Ysrge6Bk4i#Pw>s{CEQza4!BXnC)9_wEutycJEH zB_bSVLwOhRALT8H2ou~b;YGrn6dIJ{h-V7_OZj+q3zXMCbx)Xf@}3j`u#tbLupMEM z9A68P#DU<Fn5F-|*A8440a+$BjTBnY00jlY4jZOLGz!PE=nucWRUnioO@vE}GI1z4 zGM^e&ram<Hbu)a=EMfHLEipTk*GzoYt(sMH_FjBIl%DYSM_pnL9ISpC!<-_RC(}Qk zJr0!n*Jt0Y-m=XB7go427(8=0x_1QDdIx-cqE*8#eA8ESQFT5+8-!x>Kj2i#f=YR+ z_Os(b0=BcC6(ebnO&NCy2oz>%)ttuU+DZW2DF74p?#JgZh)DlgmRxN2CGTyp0Cg5} zTDlD`_$(B?;V>aXdsx*X`UCwM1Hn+5zFr>&8{56#+<s=L(S9oaT0=YgbKD-*mgDiQ zh9`g5Zy%4Ze~KHP39EIu^C5M8n^gG%14UdSBFI0OL<2!eLO4-eJ@+h8QLkAHqe1Fd zRPzBLDFiUBK{QH(D^STuLKO*XgpmRE-P)^vYY{j?S`zRppn8l8IOYVv7-cX&04pJ& z=mho#h)`CT2#pvaRL||NQe_I_1KLH=AWs`D=NC<jrdl4~nw;)~j46?azb*!QLa)Q1 z*J%u}(iUmkC)}3G(pd0b8l`tZSp3=erM<cL7eY>lY!SH|ls*48AYNl#ku<~xh%XQX zIRd#Z)M!d*Xm)_OC;$SlB)kF=YryWv5>BrCJOovE3Bc|Sz*cbS_Zv4u^>=mKn9)rr zGynpcU^sx{NI;|!^erKm`6I*{lsT|O6<ea3I+5N1;w4=6xZlNrZ$)EORW)#;<krO( zkRYRu>%q`Kg-aTk%(D;FZE@PaB@8^>wObZ09TX6KqPi#TI#h(UhS&8(Y(cy*BHFT< z+YaP{#JSlJdr8gq1BxdTjME6)(*Y8tfsD-vMkIg>Lu3yl7%J&-F*ayyyHzMMAylIc z5|zd@3)mtFfHVM)s{I>EK&BD(u@PcuE$91}T}WN7{UBb9B8N2b+ELw{PgAsdqvQJy z-hGgCXZKy7NNpO}agJ2HMY@U$_rS;A_SL?*#hm8*VegyzVTVD;3P@y1TTB5Pyjz2q z`VgVl;M%XKD_5)K2nvSiyV`(|08w=V)LBkL*r~!O1eO<cutFPxN<i9Gh2A*FPA1e> zRGTFeSOVK%vj8fs1>h%u2>?iu0N*F*H$e2Iu{>#Ap~!X@bt26T`;c49QD4h0S#hpk zQS&b`7}h6qM9M#<tu>x<!h4@L(^jZp#f}4vNjiyzKzd^ed`0#Bmh0FTl2=kPQP)=# z1N3>LG$Qm=)cT2tMbLr|QMaHAs;}~B7sLf4a@m27g@%HKO=09t1dWI&vG{Udb=JEd z>1oPN2iRu`2s_{_n96cu(?(y}xuKk>S8XITU>X$`>I349!m8a@DI=L(HzSG~H9*g* z9QzPC@h4>M<+;DaJFq@Kf2cM-T$^AizYD%T-23RsrBm}z`8Sclo`gXZcAPvoq13@> z81&p=5u@pe?GqLMUhW*JIqn3-x#`&_H*gW^HP(qzon~q^4WLS#@Cl)zPC!T#KX>%( z2RBA$QhyGdW8WfdU#vd#W)LP6f$iq1dPvok`-<&mVaG~XUIi780<B}khB9@KyJBx? zR=sYL;vy0xHXA_+iEO}p*w(v*7&T^I>z%|A*oNP-P*`nffbxE%7nLNK2FB7LsFFz4 z642x@7?nnPP9>?%LOFh@KP@-^++>i}{NbNsr)GJFh9Wl32CI&0pOZ9HasqMCmHFtG z`O-!e<*vF(fQ&T&mOxb`t!L9)2d2>K<lbKgsp2PmX4#^d3AcgpZ7}{T-(!Hph0pA1 z#KKrCKYvY;PlvjD?~<FAT8CBm0#?@s6sJxUBip1Ybzie%eysUU+b;Y*_5-vGg5t?% zAw=R>N1ii00dFc8>j^+;VX9~XTN(>w3nN5fQBI4%(!qqmk=6op?@l;Zc(?K*QQ?PT z&$kZ_8+8bX?h;s6<EV>=&}0{<wXB2%Hb5_Yl#0PbLm_MUY|o~NH4<kmj5%2y&T$eH z5vJ#Ntxc_j2~6Zh7}omogPKcvkT^FYITpuB2dRP8K_gw)A9fupwN|@-vj2C*WpTih zZmf+9e=F~J6&CAf$D&mjhYJUfC1>LvLX@%0qZ`-X)j_Q&>Sil!>Qq~^6ubA|Y#G$S z{8)qMcDM++9^kCS%fSx;-0fPiqt`+}U2Y&<Qw?E?B1w^`O9GjfE5Wb?PO?5@H&IoW z<WR<}u2^H1u#WS1*n%S0UQsgIJXHGlo}h+CC?yd&`D=VngOY^nok(g*ehnU`TKtz4 z`Sw4aaUXt6Veul*c#~Nkc|wB%p?)h7%uQb>VI#qoU<hplHwqS_g}?v)71tHUwiV8* z5YD#mXu@;jeSzJl_O~5f<3{5jq=adr^plTY5eXx5TGo)bG;VO!uS#ffQpd!G+m4h# zFEUM1)HPvL0=r}*Vw|XyS)=v$rmmby-fx^o_~)x~0Lxa@Mp*5KBZ86Vr}KWG<)$mb z{wnCe(QEFln8hX!E+TgzQGEl1c?L3u-SFMu2o8h>mqZ3{MN0i)M2a4?pZZK9K6IQM z2ZUAt%@qQ36pM|~xCRce87DB~ZYr;w7d^B*6jA?MX>di^#8{z5g&U_g1=6R31fu9@ z@~2=)P|okZYuq3-!Ej!#lm1Ov*ng;WL<a`B_8g^ovyd+AiRHm4*=p8QI-P@$k4EjD zYuq^J^?e8uSo`6|Cq0NdRk2e*vr`ob;vuLAv#E5wzl`xE@)?=E$+UTF<tlZ@^$B7A z$JL1XE@nfZ?>UWmlEPx95dIv-tVxOV@`v2O-0~PB1*b(YK7kEs5M^gKg2a^Kz)jc1 zNUTMJs1YbW6NJQ=>0>}h1!9mdXxW`uwd)qlLi~>*PZWiH@m!c%@>Ro0fOu61CtUxc zi35xbT2gBL%Wa{lh`oU%5@I_IvpP>`&iYuoA>>@((M>+f2GXyaS`~&p-xSMIRH~kM zDwpFNwP-HGTE4z~r=91e?#w@5VbNW4zB{veO0X{`TYDlaEK09NW$MFAy)d#|E&r^& z>z6)GSfkhdDyHoE>!*ncQ#T%q>R0Vv1yc!iuRFuKiE+uzbfNldi^@o&bGu~#Vqbo- z%tB{(%`h3%<>S1{J#VY5@2-ctD!LZTP1OBc*XgdYvH^0XUh>p;b*_Rwqe0C^XOQ2$ zdKu6d*4q=35n^Plqb>0%<7Ur&jbJG)#(;bCv9KSAM`L;etNUxgx6lHH$HVtc;b}yA zShM}JQ72M8I_f+st+OtR3Pas7f>agO)@UL%1oo9(7SxnG7TLSqU!Tm24XfY*MZTyL z`=8g-RgdS?dcXZUU$T62a=M?@bW;W*Z_z+Vx_u;a_N98wziAM^r)L?D#bVg(&9JT& zVOrwMpe`818Knfr^r8v+m%b7IYaw_QXiVkQ%$rw#Ka|&20agE5o2vo@FraF)fiho< z>$W}re4G{(JLj4&qsMVvbVawnb7EW2iK&RkD-m6fT=^n>vw82{t=iz^Syp=BDq^=8 zI-@N>1L@d!>f^2Q#)<dh7}z*D>=1LWmg4Ht)rL-Ata#^DFomFsY&6XTKsnTT9}DrU znk1Y0^!`LcNsu$w`C0Kfewv%AgwnilYw6V=0=P!&A9~^IdU5hfoc<n8rmY)EgZ#N( zQg?jKy1ec*+!HRonS1W8=oP(?ed2H4TH&<20xJ`imlee?)l8c;X#40zBw>R^XCox= zWL}MjwT4Cu8{~cq_&&h$>~`^!(Z#=t9!L<v2>8NWrD_9GiR|Q_8DAPxEc2_?;j&O- zp1*mvhYzo{ZegZ3b))LrWps&(?tdN`k9>VdzAk@e3_jY5yc;*-(|b;jbl92(T9pM@ z@wy};X9FNcbt`6Q>f;<iYVWN`<t8Ov#QCI}Bq2jcX8>%xn``SFc%Kj<R||#I-&i1W zq-h~Mb<+P<I=)trj-w~pXsy@ZaJ+_H=-9hn|FERrq3Zo74m-1Mxmv8|<DszaAGdsa zT355`zxo&7+<CO{>yhjH$X#F;#1B(-t)vT#6Bn;x9kMQqyWe5^+IDikQ~kCx$V?o5 zIJC5jgY5&nXqB>&2JQPQ#Yp1sM^~)Xhg}M&D5LWNXhXXJkj7D+3U`pG<ghjr^!`fg zHApS@o?`q}599rJeCHoz6m8!{F4eajP%5CDr}rotd!0OAIHV`^G%N(th)kMS9nPwV zpfp5dn;BAKD#e*Kr<JgVq*^4VmGn|6=zMP!Qp-*K9#H&i+`wV31&cgWy)HQvCed86 zzMOo?;`vLQPVHX~OD9D|l~)6wjA_tL3*X1l2N^{Nm)`|-@;%=FyZWMQ{P|W`uyBCR zx*jjAKVDtYI`!~xvz7Qjjnv1w5JRoCOqFM0N~g|)61WCLhHIur?2^Hq<9C&+S)#yj zlzzi-J~Nz?M_iwb-_nobl3;7Kdn4Wj<B+g0(ntuEKyh-PwF5x;`q9YK{<Zw~?sdU= zG?EYc_co=5veX{$Y)sUAd+)cqGFsllp8MhXX6-|pThS38ORS5nE4_bve+-_U<OhXH zA{j!0Bh<tn_Fw*cE28dCBb)*iB6u|ewpQjA&anx@wTn)6D1A7Wlo56Do@<x>3zAG2 zCRQ($2v-a&@kF%|!bCJwer>%upy1=B3}UGmqE2Y&GxHm?VTE=!9;|K{+Ui|6B2LIS zsYvs}T_a9$yG3%FZa6Zo$*^Q!XY*#u+s_YK3iskYHJ?u$`>hWRSVykT_avR^zbo_= zbF*%^;aZMwYsM~rWw;9{B9`;4(IS1FbcbELfzl2a%pMM9mtRatg=^GOLy?*xkJ8|0 zsAN8H+IQd+o)ZUv#5o)N$z~6Dj2vM?;RHbl+!oEp#%Dw&KsX0x6JX+<VGL`y<cPtf zOXR;XF=r{7v^7lXv}!0EOG~s3*>t%&ZF$*)PegOl_m_yRb@0LWz$4$$(d#a8%uBY) zI#47VpGrDdT&ot|;o!$K-f>f?&N9_0b516~RAy_oox*mf2<(oT_t({xx9}&ii`Myv z;)C8;x`fve{T-Ol`WO=XMO({)7wWKgRtVXZGog2-RRV`~RBOo{g{O9VLYcXRaiD69 zWUbz%gDp3%44Y3igAd0=QfwbjE7%yPcA2QlUvVgWmt!|_81_+{F)I<B3;jnZHuFuu z+;+<8s?~K`P%CM_BQb0cin_Q+WeU(}#)sn21JrBm7apwL^_5Ft_!F7o@+PJ5S|Uz| ziNh4rfyy@+_F}%Igkmz3HJhZ~HEXAF7?#ZQ^4|-Ju9ahkCixp`TTK?oU!gOFXFoEQ zuR9&sm66}0q+wM9Xn6R2p`|PR_dxWzGcl#|vud`-OKobP3dZCj#<m@fd>ckWCKvfz zI%%vh2Ndy|`L{8*2T5|kq1<>HRBJq(1Y*JYx3Mbj1`<(xoft4%=o{HIW*(HS8!9MH za2ujNK*&V=lSw1t<F4A-`w4OwO~4O{-YSj?n3WFpz6Wx?BO}wX(<#Rf?wi|O;mL$D z6>o(hnLZtG8(wLZM4PWq=id$swx=#TZy$H^oz_fXSeAt{pQcfB;Yk<i?K-zJ{av0m z=F=BJEZhohbopf38+LAfGHyDv3$S;OUcob=#=frW{gJe#V^EO93?#Pd^0^G1=d#72 zw%IghEXES4ufQ*+8GC`xwKqJ#|BUExp<?1b^j*W{iutR{YL|P{t!q0AT_*}aCVAa5 zLt)69N*J|b*yRTyI;=KFdV$!fyz_VFkvH)e&&nF!^qg0<W2G``2NY(<m@iVoR9Pw6 zUt&c@0Jxs{j%~9zsL%-C%7nw84sbxDSav}AXJepzcmU#COIjFTJ@-7F52@=)-1|}K zDo>@+eD%wbbr@z<qfwG%enCpCuL6N_N(VmhM@;={71VDBbjjD6>zUG~)MlWQReXEz zE!EQ+T>+<9c&S9TeQ|D)72M{=mWeW!2~?g%5<w4xZd3$-TNS$GIH>v=7g&SF1#gY$ z!gQY)h5BE_wB2^S%*WhDlf)SDe><lD7BHR#cmcLf*%Pwm#`*J-ZvZe0o`8Z#o%1rI zK{SRNK4j6LE;VSj-2w_?aqx0LgXt9JaY2Kv1&K%8szci2RJ=bG(r6uh``lNl@Mo4` z-fOQ1&Ft7igujc~&)e717TZ<vG*J=QW#Ju5*8IY^ASAhai!s;EGERETiUXvU6rh2a z%0LFzd1qjxxAY-WtS^nBgR&du=jptBS|SO?*lpnCMHf5&+0NBnRRRl>zi54z%LPUz z>JvLF0nP@Z`2Lv;L^j@EwwK7hf6!|9CgEl(5vLpBR^3ZST$@%DX^wTTKl&aifANjv zih_Vx8IhV~!eNpU+ivyKx8TvKe~HN7l!)h9wyZ&9FHHqZTzc=Wl;Xcg85IJT`oNqR zKTfKSyi)u9;ZBgZnu($ZL7R8vh2IJJdB=!?5vygkm2@00WVz48zZjk+{^{xr!V-Y2 z$X|co_id7Mn^ZMNfJ)+ZOkjpt4XxESV&iQ(P0<3$I8La4ohh3UCJ8q2OR?aT5Ien> zS2(ucNsAE9xY)>?Z6PXWpQmqv2)bpWFzN>SL)U|Dya5@~PO%4}X)G#)7mpuM+IF_K zm}V)Ftj!&4`FMFL2!S}yqgZ13tJFN7tNrm24J$v+K3nyeiS=`gJg;;v#3;Y~zO&+W zZvIga8;wvc)ff`gfvT=R66u2+EK=BoHWM^c$_+y9eG&~SD$Rrp@noW8=!7bz@zr?6 zor62fYX0D)*iSP*e6XD+Nfxhpp;8?-J}3Py<99{Bi7_iH4Z@;8SmAjLuz9E1=RZw| zWEp5<;U5OGX!$@<v^gnnYMby(+x&&WKV4lmON8~g=>F|L!S9&P!-oZ&m<E0TkidXM z1{cO@btc1uCooO7LdYGlYozdXQFgL*&xq5A_H^mV4s(2mG`rL6InK%0>7`JeWM8^O zl#CU7yZmj{1q`#6boa>64*O?bc4@Mv!Wr$uY-ZCJ(>A@4Eh6u^B%Ao_Cr#d&H(Y(G zE?LFo#9ItEvesf6b~telSMCsC_@B5&&Z95UK!R?d+Gwd$Z6J{2T}7E_;YD1Yn+mfx z<VT-;>SO@Z<}F)%sIWh)LT$h>G9W%J?uNVgLSjm0B*$!~{u!C4yfFq=Mke1@->+Vm zxmB8eUE>>DnxkhgP#N^Y+{x+&;KJ(DDdr4BzQ`V9!PAUFQWUslJU@h%4o7V<tc}uM z)0kE9Wl!`*iyA8V6v_e)Dh6)x2R|j032*2i)_yX@Dnwc)aq4_$fSrx$degQ~a@<NG z>OTT)!!_@#trUwF6{Yl!SoyfRm7jY7(brgaV<(*ayzsZ0o$}{qb>PIOpCd=<KB1Zy zhlzIzF9Vn9I*$VGI=efAV9iDlF=E?}9L}(4MkG-TBTTVW4($>v(dDudD;S?AJ<hsp zmnOzbOyHUDuo`=t_x!^ZhY+)#e24D1N)ib3^I>(zvt!2NhGS!4kT9Vq!3KYW-6aix z4I8wR3DveVqbM%aB9Jq{Y~vKAnAh2{F_>RVI3eOo%*?>A0Gkv7ig6?N4o}n_dgr(X z8uA-gaUqpm8a$ew+w}1B!!12&zr-^^qIqp%N4?ip4}|J~DZj2Bb-E5ibBe)11F(4; zZ8N~ee_X*%oi4)6<B`||eO)Zxt<yob;UmZhr|bW<GMVN-&==QxeMLI{uDuaF)`Z#C zti^IPf{==`qrEiKzv<p-5Egfn-{9*JaA90*Jqms3lB`MTz=r9`HMGk%go@R63=IgO zoy9HaxjVIne)i4>rO_J0IELye8HXDiK~6jdSv=RWI*m`9eq*Y!l!VwUXZ`dR0$ac^ zv&*ajk;+q`@E<CS&_l!NnbDxwtIzl&;}<!IMvw(#2*VHfnj>v=+l)y|Kl-1&$oecr zBaDQtWx{IYOV%?f-2h*zKubB#ubfV>RAyhZpB|9@a?zJ2ebI&I&&@7Pmx(sfjRbMI zi^9C^;{3*)U(=FM8-%?evpFL&*uh3W3|Go+)NhPiq!Yr&4e=|{1HWCS+aPBCol3kG z$VGcMdER6cGB?3e{fLNdY8TsY6RTj7Jqy;vcCi<^eHjH?4&FR7deiNo<NH67vOBG_ zPL%7<!njV>$&-)6@r={<{by$nca5rsP3Jnp;EQxfg8oZ?bNB|U?nO8=)?}LCZb*(8 zScN4~UtA`4BbsqWIRwcO@aVn%@7eB4Z48p!Mxkj{yJ>x>>{(LioFtmTy(;s`GToiV zYUg$tdeNQ6iNLQHx~^XkmgD{2$@3j}JAn7SaW(W4vmc~)@e>|v`x4v9rr(+N`wR05 zK<17TD}p7BbQ5ENh2NJk@sgT$+-@>9cW*hX<HT<=K=<mIWbMF498yPK;(p5PqpDWc zu&K3uu=)s1+Cl2kA2%)6Ge4C*JS?W<b`Z=VSN4XxW)cScX9=gjN9vuXF-tPB*$#s` ztyneyUn%3nvy?=CGvw<i-@aSOU7F-#$1i_Qaf9dwYP_0|V*hSQGr{GHSY)mA^54pW zFSTyJjLxX2T{%$Zy%Z(>_}1+%Mx1AqR-U!@lJ;kZ#5X4T01Qb+5jT1ok7)feLy#kz zsSOihj{!ESXJXXtXQ6}?)!6`j2)kLRMzSRPPEiKTE|>YX<j>Rh4vF`~i%(liuUsfz zJ#FKbw|Kzg8A2zC+_)XZLg?xh1*MgyCzeFZez(3T%$yb$KWh-a0@Ig-7_X#eN%jRD z@G`qcK|*M(E4Zw_We|ZjRyb7^Yi1CJLk5QCJY03<opzOS-9GDSW>R|7T1M8h_o9Nx zE0yeUwp0ID?TE56Zkp^`<2sNBPU~Gc89A#_L!w%bZd+Xw<~=uS5Ct%Y6B3l*Y?5YL zZ9rb@N2u?Yrx3Ee2aOTbi-T>&T++eV#zQX0*u)$GuLVz)8Jux*O;*=0P1ahumm^UU zQRcR~Sm&ERQa5xzU?n2d>w&l)v*lFAqimirpNyS_4f8ynj1rzZQfJ2^m>j-b%C>5^ z`<fd+$GU;5l8m1se`4MMj`ewRUWIw3b@SK9-bXo&UMRYlE=jC>jqP5%IpqFhI5QQG z16Q2=JfMUA4N;B~w5Z^>SR_i@GRqz4v(ARvc5YbkOR3)}{p{&!jaz<y$2!E4^suN@ zCUK>F$%i{%e0<uc>y25m=0Jz-X_tTF?JfE3eZ)Yu^qDjPq_4j73XP}`H5mtC!<1eO zTD_8y`?|<|y_o^la4$=KRgv<lJastv>Nr7kF$_7U-+DPb;-GWRApG`^uveU?>YC+8 zr@!a$lxR$~HD5f<r90Jm+2vR{t2{&eEF!(*+(cCr7x=6|_vv&H&ZnEM6Cz6q%;+=; z9Pp2pymo=kepc_%*|94urwf@pHr2*drhd>5J<J}hsf4VVC-%(FLxi)Ke3S_iD{X!4 z#Pb*&lkY39?_nZ%UD1KIzMT!33g5`Vit{w0NQJNRQOE1klM#NjzIbL9{)`iY>z_wB z<%+W`QIi(px2|N!e%6IsmSwUUM1Owk?9n9CVsOf4Z6W$C3LHrH;4b|7GX~c!Q+<OL z)T?vtuq=_GWFR^Xg|7hYX%@~XzV9+#J>t^9rCV#iC#FN!P2VmyIF}lgwiRy=8+WzM zvQ>##f@cwTECR=bv36bu^5^ElA|BFWMmxNm&Yy$a^E!o_eMFEh(U~0^)^7M*Qs#3; zv=aHAN-#d7H3B|u3sgTXmK}2Lnp+2-|Ie=I&BTO5wH;TF<OtsoATF8Q<FC&)9L+|< zq0kYxAMlwjR{hf{M%GZpzZHIJQ!w@R?*07QJSS0fkthnWy8U!an^1jz0L6>EV1a*Q z;dh>?;w;l5$V>j7G_J?%A1Pv#CR6R}b&pr-b+TFI29rL2X~NpE?AuRl)c5(4k<K&f zBRUMoh#QmRQim!vQ|rcBJmMA`MeiB)&B1NI3LHDFAC4Ddn+<0-@_ku*`Q;JqhO6j1 znx9(1FYS{1?-DIh?8P%|QW;8{=62ijL%z^v68GIr>F3oVzSWwUo5qa+@^^8v<A7Au zjudIEsqX&q+sK8J_5M*wD%0JAyqgE3dgq1-m70|{;)Gl0egOmK6Fjs$M8r$_3u73| z*CXB-;J?)ed^ZjN@exx|-Yns>U;*};MA7^!e<daP&fn{M&7PBJv7vA#)B3D>sPvP` zy|K1|=C`6}cg?A9b>5>lvvj48^;k#VTEDYon*eDyceuE&l!6p2NgKp~^2K0NLq!Iy zbFi%AstebnGttgVm6dmvu=tI5{oj(Y&pxvlZt<av=)~r9-(&)mPE-lWH*ctMuTh+u zpEWVaziBeR?a-lWA)TRbXE8uLmo{!5*4|ft?a=$~x%KL3^G(gY;l47^nQ4fy8L3~l z=enCN*q88o2Yhr`DHHwZa1w|7QE#QMbVjYXiMhr>$nyf1!r{Gsb-FIA0?@J}#&hTv zqvlur1EF7wGt!7<611;?+gB^}?s2o(n48>*#hn=UBo#>7uN~b~cj{*@B`uwvX<C&0 zD*2zY>zsul;Y!y4;P)X#R^h$RCzjv$zwWJVku)UrM7EMVa^^pj&GYCApJjv+Jl~Gy zuh8)XLRrN}zB<&kZQRYX+@VJ_$*B&5%B|49uP?V@<Fvgbm*tCp%J*f+y%4!lYF=Aw zySo@XUpje>*zae)2v+uFf?}xS(N2$<+>?I9RNwk&h&FMeBMl`xBZj*VVfEF(SE4W^ zgs<ZT@_^8?Ksvt!T$f#%!)yHgUZh*{ce}x@a)EffqhJ{An&ZBx`$%0eAndCSizL7V z!^lMx>$N&{L^YcEcEgXN|Bs^cj)%hk<M^H9?u=WUbvSpntRs8G*&$g8iMz9BXJn<i zv$I#WvS-OGBv~PqkV;aSnF%4P@A>)t|9O1g|9n1=&*Sm>yk5^2sYl9$*_aej{)r-^ zR&v}OBqLgjos<tw4O!DNc@wkkA;#%tE$kIM8!1`ds2JH292*pK*v`jQ8mpzm{?0&Y z4hVC$aEIgEm??~Ey|_N?hq4(KN*tWD1E^+C@Gnc3b)S-Ce7}l~1pGV>1$zK8GR@e$ zI;RNYCr=u=Y!&`qOL$Br)cQXD-SrFE))XRRV$>-+I`zUzqq^Wtcn)}kkj!E+X4pfc z%O;cBg*GDe6{)e;qN0jl-Kbp(cl)pArlj{T(i!Vjb)Ebho63RpO>IU3$Dtx!l%_5K z#Df-;qU~THX*z(IsEcckBaNnrUK(Wz8@k)^4>8v-)~7G=B~HoOx5y1U@!55R%|Ufh zvq8h>m;d0CitdJY&1{j6hfOZ<R$kvk{%~Rsxnk1O{X%QAy>T*sxqA|%=53(Z$0QpO zBi0-(^pBw@^x&Ds#Tc;&CRy3oyy?NfTir(7)Uw;!H%GKSw(VTai<+MKk@mEzGyU(L zrA|>_)Sj~Bl3&VHIJ-~ejb-zc1rzC)6m3nHa~*ciCZc-RQhFDjFlm+zYLpF%-QQZf z$UgGq+*Z!H-ClR$Bckv>qIz@G>PT-s?Of)sb304!>!J+dxn7Giw{~u@J}1BGmU#Y4 zW>qU`OCu>(?GIgexi?++cBEdZg5UGsZWOgn1F?(J7TDXRx1Wd3Yh0|*{Tu7D-{!vi zxp#Myv8tiKB&+AI_FO@>j|rIq128jboj`e%Baq}%b&+2+)I0OrV^w1s?&UxNxFb<O zBW(YOfpRy^5<Q<MJM-|%{Yy>u{{<b4Ak^(%bxXGyg34*|!>{5qRDvr62nN<EMxyJ9 zw>i_8Tk7J6JF0B!?K`5l8wbLFIJa#5fq2T;eR!<+w6G1-V+|$z_p1X4lE0yU^30a2 z*4zFWOw=+oN^!}hKbDoZ<`4YqeS6m{4TjYLpIh4?EI99G(%{qEP|X<>Ax%C3+`EUt zzJBz1DA}>hSNT6o*w#!Eclgb9lU;{EPpz{5F3a_o+y>06GtpAEW59z8qvNwr>WxyH zN-saT^+imlNyhc@zGz;}g_7Lx59VcbSAa?s;Hctr8NFv}Ca1#wKjkww|NDC^Ip=%o z?P(4cO?eXg9SQ()pgC5ARWN;JAXg-m1h*g*fN0Fq>yO0N7)9xWNTbkn)olie<;f*% zihpa&*TMvhZ^dM4nO|K?E!MXtGO;$iqEO;K%D`#k+y^Eu&X;0s6#*@e2BzLT*v*xF zZLpqR!ud+p<V==g!9d|1>~6cZT*q2!uJ3E*_x@|T+kpbjvgT1&xMbGsL0RM4zoy5l z@7hHv_3#{&jGa4sMF2gi_{8R=YICoE%(w=Z(U_%7eKGnS>Ug=S#U!8AcEZBs%)Ub1 z1e*I2gC}6BT9P&Q?4|58EL&3!0pf~^mMqMVYOJoUB-#D*{qOF~0CIEe;$<q=CgYNH z%9lE9&34b8<DajyIFReKf19-)@%m$@-Z5E~=hTPhHE^&LE$%8CuFl}IYzJuP?N2*a zJDU*xBJPVf-3DJUp=0<9=1Eq~eYvt-|M@zaR_<SRejXRkr^+D<sF_cVZNY&sIdkpi z7jLlqzAu<4KAO*B)1@*i^0&HxKx0i1b1Q-*R3%9B-g^1o6qSvPwM}>^F<`rBbl242 zReU5NOupBVnGFgiG8e0zb262GdV^ExrKvIe9%dg`hZQ{0@BrNi4tjVmO6g&?eGO}y z!8{2E#PgAujp^STSUvS#1}u_u7l7fh2W3{8Wy7tv1%1jASoZooVqwS$#vrd2Mh~z_ z%yIc))x}~?@{CoKa3D4E??|41xXJSKN}MV(3gj!O$QDaiC9IUruJ+9fTg=@<Z|565 zALC_L;vpZW%Jo%Wk6_w|*92_~@t3biJp#uH^45L7zf!Z_d&7>M<>va*qm4e_v@cKo zN{X%1jfFy|HB5wpCt8Ftqio8f@PQU0M0OvsGBXGl8XW`}ls|h+YVhz>y7#AUp!fGx zB<JocC*`9FA|lL+`@_Vr7S<kVD^>;!@up$w=mQ$EWkRZbfZx6V#2b(A0UrAIjiWx& zHD<^lp@>9mOi~Kn*@PD{H!5vujnpaG5}xK0AX;WM$Ip->P8dkIfkg{lj&mrcF2waq zU=6Vy)eIIOm<h&2WJ*#hLZUtmYpoFxkrS2JqtQg&JtE=+--J6<Pr{v`s$%$*><{?z ztIfiaS&jyHsWY_S`sKKX?m+}r0-MR#Q!8B$h!@&iK~$asz`~|<5BlN&+B_z)J)-hd zbqZSC>NJ1Y=bK6B1F#tbH+lxq-v*7g8Te#y>XaOGG*&6C0~R&W5^xGG&}Fow1%$@( z-^CTqd3rR&)Zr0_qk|FxeOw&KJ>0x<DpvJVRuIE2?9*S!ilE4=+pm#M1FU64z6o<Z z4ib|{K_37RM2i7#<DSN@j*;$I5-1|@1u+JP&Uc5A#}~MSPj)KbN*!fX-CQ#}aDb~Q zS;21fRsv7e-OuwA0Ci^&kTo+`8f*7hyTIn|b3Zsykj}3ztEYY@^fS{Q^0ha5NI1%r zENGShRCl+Au{VRjJT%so86tvRPj5we1Q%0B1i)}2;OV{$?X_~O^%oHxB#nk4&DZqS zjfkmHZQo4nE6F@vt={YFp#woow1PfnW_J2Jm@E@Ca+R>a`YdV&7k{#*CpGPp$!pfy zknx44ZIh6qZ7MJJlPaOSiND|*XduwCDK)2mxfOP#4=ec$*#Fv}2Z(x%8F9`a8f!wL zlvnkOD~H|Lr)W{jZW_8JevI#NXFtdEgaCc(jDLJ}biQFFFFcPP)morrtT_Bem!!lB z#Z)G$yEox<d%R{bq{LUOeNwNaC0FK#$77wBe3(OcnE@L;<kAYzyJqJjsM3305fk*? zl^@r}rB$0zzn|hz0YbYDPSMTVLbvB6-l5l(eBTh`E7tnJ_F=GjmQ3O2etI##nn{vH z!SE+J4>-9Yi9Gqggj)?2!Rd!r!;%YdsBuN4<dvs@+5919`EA|q8JrHS0CU%1HR87! z=@?wtm&;X^$-bDvHl2D+#WvP}J^Sf+U2|Vov4M_+fVC0?Ilx>PP-37p%jVWz^zrrg z1oH6g{+A}TyYG0k7~}kUCewgC<eS*btQ-hu|D_TEDa-MsE14X!^L1@E{H2(ZrW81z zfQVcb3be~e6A~^-h`^RKBF(nS)&=bB8@ed+XVCA6i7We0xfH?5Oa}4^dq!K5kGqxr zulFsJk1bSinvf`!A9cTzW&&|YMFK@>xM%5mR0BNTJuI#w^Z`M4qrW?ikrA`%CU)&h zo*yCErZGxS4~#{>m;UZREU0@JlN(Fh$t%K{UH`15uk-kcRY&PTL}Sc6{SJpeAeyB- zVazhAlEw5=4eL}apm((JP3g{J{^tfMw!L?7swbSOk2b~vNK}UcxLCU<F7qyWJonrp zMO_^Y4`A%{#fIZ@VS459g!+V|t1{#o+QiDnzt?PkE9c%@JS?z(g${n7Y#bnJs#2FF zda<_>v$Ga8^wJpiW=GUmqH$PKq1vT2O9-2!VXE^1p7HSWf4HAeo1yxaL*JPt%vRac zk#2Zcw|OPzBk3tIc=@37GHCC;9>;Ggs`B2)c>GTiGw4j8yr~@x7>WC<@6DVc+grKm zzxwBB*&3;u!FiW?y=vqfXJE=>*aqf5x8C&MUDpL_Qd|YmD4E|*=^U4<XDd8ys6d^V zWisgZxzy4i;p={sM;n}4@BH)%rLQXA-rp}zkjYY7_+0#09<%NJGW6*0!SfT`<44r4 zv&jsnsIAEVZY7BP)6yhQ=?e``KdRJB6`4~Ii|#*eG7zTV#jp#)f)hYB5hhj&lNOUe zU^y-jFThd3#9e_9jNu-Y#X6MZUYGM`>oY2RiWubrO~AiXZ#H(8?DQ+J%mZRu^y_>~ zIeZmJ4xktok33r7p#YJ2*YI^dC?-7Q1PIcloCf}jTJgv;NKhI9-%EQ9uR!F{UZ18J z*(gG<@zVc(j#o+lr_LsFM1=i*!S;RvcGAzrN`bLc;0A_Y78Aq{>&5)_{vh?MR2O-o zcSMiKNVW>(emR~4D8ML3o?k?jW#Zs;Aff`rwFvt&&(6=p&d$XCW&zg9*pafC7^tfk zFs_SZqo4qIB$$lkC}%}2q5$PcD60Sy5D6|v-b0@5g%sK02~>ptHaKCc0Au<Z(S}#1 z=Y!ysh9b}qft0L@`+ylLm`j+(4xwcYZTP%^MN7o53*q0(Kv=_-*8c}5S+6Z13wMwr zD7N>C0@!{C?*hs*i}M7?#vX)XTR?4<WAVGfzClPV8A&;v&cxPI4uMfnJpGWjL8y~{ zoN&<bS_@L51rO}!ew4|rv@0yX%f-6LskSTp2gll5CaN%rb-*(#?t;$8a5O3aTr+W7 zK;&!|l0^~kFp1;9Lw8X~B$Gf?R%Udt;W^(g41fRG4In%kU!ZLOvueOetqN`Fq32!= z)sf*v*MO?>a?9+wgn6N=22hw;>pq}*PcLKxFTYm?4ra&Z{X_;5g=cqp;6!1xB63%e zN6H4ps>s7j21zUOoRlM*7Zh5^I2fMkxSyLf2!-B5vIQXp+i>u5UZET;yCTod9_val za$}DtI}?dQ;T;yZzR{S!;aL9wRF;S;7qT-K7uY|P^Y+lV|CAwm`c&Mw&{_lkzAOB8 zqN=sC;+6MM6f#bjz$;7_ZeBP&U%Y9Vyl!M+-hM1H1PR9rB<!JD`|%Jw(zvR4%&32U zeR;s^6&q8)lpikYLMwQS@w6!wL(sz_^<e&_+#^EtUI;E}Sc=h%L$}~CEoV_@1vuzM zXL9tUZSjJ++`M!gIs^sBi=31b7bb{8!35R{6s#YK$wo>eaqE)?{3s)?819}vc7q9Q zGg9To0=p}^wAsq|2T|?1t?^$R)@)Izn>c4jm8c)b1)_LGIgx89WHX-ofG(+U_I&j_ zV6`n<R~xUJHGag_Fq0GU#o~&p9-2xF{@#YOS&)1UA38Miw*hxGTg-F^YRvazdRaqy z&9BV(fNF?U>7Mc+P6OUu)K4Yi0bW6fOQ4mEL>>^W_X#jE2=xvNy{@Oyj67bzvG4Mr zr*P*OXo1#W7k90RqFF!`ml332AZC~Sbw9Hg+W1=^*AiK%M~{P5<dR3bSco$AHBjYt zPEMUd#_NfqiDq2j9uK&j^^&!A`B|wTRB1FP>&RK&;{}OlZRc+Wv;KACi#4g90>76X z31%|Qg;F|`q385puH}sf-%65;u4wu$l9X$jF#kX{e|-Xp%e7C&QTmbaa-kEvrg*NI zR*0xDUK6x{tl7~(kdG<-Bv8NPdXOtB$5jDsh&V(EsUrCfk!H$n!kMn+nZgxkc`w+K zKBJ&_ZBddFTtOk?j{7j`JNA!2mFF}ymX}!P5A5#K?9TyQ*4dZUMAR##H<UPv8L7W; zfm7I14-WSs&r$jL`?<L2VBvo%Qa5ebM1Ps(Pdgbc!~e4IMvTZ=&@sLCXxw>!@o{wf z3v|Q?`phH$mmmBq70?z$7@-_9m6!X#6m3zCt-%L8=PB_1$&`Olc&fz*w5PwmXXQpl zp{^gx6L<oN!MxVN$9Msy_qb+qkcwLHwSEDykIEn$5GzwCYXw!j11FC}wcvT=)dcRf z;fyo6U-x6(AM-lccwTMi_2()L`yCd-8}9YnOHCgQB)pB|76##w@Vne+xeXPO+SP4t zpeY{5NhBXZK;o=Yq@uD=E0T$*|APR2a!p~Y4?L|0qit)7g<FiiW_ZFDZ=#q=6D|)# zcg)RwpVJrTTcO%5^TIQNqb1kQ5QvC99Ps!exn%vHyzJZLyth&{+P@L>j8&7^Q1n~m zm+9JwI**u-3KF+fDxESVGDhA`3<-Yd$C*yxPa!KEiw~?M5R`&j+>7W9Ag}jN&EadJ z(R58J86q%%-lP4CQFqxOCP+3^3<t2Bm9@n3QJ_>OWf5#d8!jv)qV`CfRU`!wgPF$x znOS)$GVohRczx;b@FPw8HGI_K*NL&x?}KT8K5z^(76Skjy<B&1r3b|PHuU2AK~(X| z5#wdbG}ysu@8Ragw%6#df-UZZW{xQ7tv0*C3zG4f3{j~+6Qc7+xM{cJ`T2BKQSZi! zzl+pQW)X<%zt}Bzgd+~QuD`>Ep-b%w?_SR_vOdCL`o1uullJE^xs}0;et3yBBFZ3} z6AWTbO-lApp?Q~-G-g-Ug$d$azfy8MFQ~ge1XW#=IqOzZ$69<sE@77Sn#UKg4+M|% z{^1;kCqM%htB(ZnV|y$Bu?uJXJDcVt0RDa0I{Zz8<1SSa&N(f3XIzYCM~@H9xM>s! z&2+9}%Dj9Gvusu+@3UX+LiiuT#AXG<-U$Y)vgaENEt54Y$nc1?;K#whEi%TLtv8e? zr`X>a6%gLzExY8gSVyecTu9WE^KJmPGg{xE?`>gdmUK=4P`|&6L0<Bd0s33Ok}(<- zzLIIR@S2S-iZsv$2%=birTi#a)VHX{%O|Aa0A;egG)&%l+pvXB^g_KFpbTaTvndC6 z2Q&_~{)>JeQK%k!-ofbuEYAnc-jb<$LT7hsPd@v{$S22`i=q();q8?{Si*USB%))M z$Jn-(XOzZlh=_gL*gc|u?&eePC=b#boJBd`D&Qq2a%8Mt$5AUj(6^eE>8x0q&TWcL zPl_DNgF8*HpEAn9Jc&}%dT2l&+8+n#@zXfe;06G=rU7L?HieInZ))_>Kl53xW}2!* zWTg(NFda9uf5yHpZ}w|tNRU6ZuxnxUot%wCBm7C|FcbdjVA=CdnF$))o|<DtNe?`I z?p2{ox<}f)*s(l)W%-o>6&8qj61=nVPIGGC>(FlOT!(^t3iY*Hol?cXYM-rE#C)Y( zC}uvPG7yO4o-XTJSQ4HdL{}Aezw*a`{|Wi~CumX9Y5VI5_5f+An2G|N6&KeDox77Z z>hoCiFD~<hEN(J28uX6c?p<aj6pqBf`&JRx&OF|;o!X{=LPea@wwEh>1xHeYOviEh z7czqbo^0W6YQRei-@t1Y>Us5u5&rRY(z*M6sI3mZi)*!3av#Pxx%>g}f;62AFLT9) zmhDH;GXvFgjIH|cicYJCAH97AfApyvS6%^<lF#tNgA;EA3(jRbuw2|MI*RzObGo=h zTg_Ts?FJtEN6*vmqspq<hqN9<pc?a~Beg9(Ih8>yXANer4@D&+wEdpf;?b$lC?%6q ze-u1UsF82WX;uGD>*Tb}LRRAx$_(77WFl9)F#AOWLFh+s_3`fa!RyF#jXDUyH}GhO znY89JZ*&m*&t{kYi*CG{H&=RCheuCLy<E5||3OIZ8~)S7y{@gk?Tv-c>5H+uvbRfT zTvZD+x5&3j=a$~z$khBgZK9v)Z~AHG>;-ema(zrGz@<-vvQkUQo&5Qyw>ZwatD~7& z&~FaMs4KM;q`#-!GmLP)142grr%u!8jQvfyZBn&Jzw|a$^$Ydf&AfXtp6539o@8`M zuZu@m)%BwbO#K(|koP!pYG-gO>I$|?bPJ!JO`cu_Byz?4>-AZDWPsj%@SVTNXPdAp zPyyOLC++eT*Zl)M;efA#;%nFdRxr4K-?1Pu09A$+VFkJv=BQB?k>|&!L=c_?{0ttb zE{xx&t^Rf!InVxI`?-_uUflQP9L@^xchZ-K1J4fgg>vgLj~DP3(s%+8z!z8hLP=QL zr;}OFWM_a^d2rM0`=<M&&64N41)RW&=kC!&NoUa?X5Vv)zMZWpKX9(vIU-^)C5*)U z=kBk^12ESdtQ0nT$2afrzL!hAeu!N<c=5CGUgsx9d22-$aPhvLN+dHzJ84I_3C4Ot zW+Iv4I#|LCRSMdGL;wdL51_9sakhj*fKY!P=?l`n;A>hmOY6TJ3!BFH4~b8p!2qc5 zzjwAE1BmN1X>rkEUsNJ?dTVC%9pIgjEmWOt!WOXv);ib^oyh6?N_3_Ya@%V?>GkdE z0^QgD1`0e2-`{vYID+{0Jbd=CVw>U8!}<O=c7b!LGXc*60#ccY+3_%#@5y5o@0~}( zmu?&o`p8F*=tU_f8y?=sjrn@8`nT&5a?M-MVZP4cGq}fROIWHEE;l}5km2B%$bC|4 zEE%pl58Ge%Cqa}45>YIwN&J1o&*4nW<3PaAZ(b1sW1uo)G^oax^*hd+^wyGA0Ug4k z%f5eW2ftgsd;24R>0q7{AVCF?T>YbFDsvP7)8EZ?eCIt;T47}$h&o&=Zb)t1ZU|mQ z6)>No0}ah|FxdAuxP0|s`Ndn^FV64MlxWpSZt0raYdpGNl)=pIP8Jdq`iG>LMJ?q| z6ME;;kC;uccE=*s#EP=cesid-2hy__Dy}CLRTuQeDsnn}Qjq;Mo+fmHjH3y$<I2S3 zRhScL22w@uk=L14+5q4a=CTBxxk$)YUDlrPFLX*FXP*aySB_SQ1sLX7r$RjPGj1^c z4c6%JEw7hhzlpC|F$u*DEW|Rcw-8lM+;Oz3PG>KZ2=GFTp5e5!2L#Y6f-6lAdb3iY zdk{UA@0wRO>efDG`IkpGRRdh;p8L!Z8Qr#E7aLL#@A(#7D;5XzV80Yg)PayyVc<hj zULxkQ6YuGhl_ZmgsTo)N?q5GMLGL{w;WnjTV3t>1q(0?*3Hw4XssnW5&*X^$sw9xr zC(A^N@phn-w_s?@nfW?4U|C`%<b5nFSn9u}28)2JJa3yMSG*>q$=lqX&8<#?Ka%BU zJ03he`yoQK!&3K6WriNx`9YQH_W+2>`q+L3LkRkMxB8Sb759k-IsO|Iu-E(fI>`BB zqdDZ~QB2=MraPQPdO^#ICPKh#q}mYFr};TSSWnJ`LFHEU@GLNtR0p8Ez;6}1ekLcr zQc=lF6e_SPLX7r?(f}%=`G-fk-Lkav=Ys0`GsZfb|9#O)Vz(O<JgjOZ>L7+UJ#}hH zG53W+l4AO`CLhR6Xx)P)QJbfi4P+bCvF7<#$CN&Qbe+(L-8zbQ{5<29g*p#oQmrfW zxWxbPxgJ)q(8eA-E@a0e`1v5pN>Cs5v>Gg?CsZJXU=qaZa*!+mk)(?t9=-bROY!0Q z{7H^Hv=j}&Au7NdJu@_zV|~*w&YE$Y4Im(snE^Ni<>ep~^8{TRiaX6QvNG*awMuuG zgD0)$l_OsCl{QOQex6OoOd}z#f^}ykm!aTMTN#rzcev1eHqm9VFe$=aMthefBh?te z+h3<NN3|ynB@Qc#RAF_M^fOxtRRKnI*vV6pnT1+f)aYQ!`%G@#?Sjmx<z3<MsuAKA zS@W}zH)iq(t>Q0<te9C6dZ*{C93Ax1rvRQAE?9_Lp?7{(LFi1^Essh?j`)Zf<V@Fz zE;6$sZaLdrKA??Un^#PO9_!~E6H192E#`WRN=)p7kuwWHCjXaRYX3sCH-gfvT3d7T z4NK%)kKqx{u?CO@21MzaNv>~CW$v4vd(N%l`91$)v0rZFVZId_?~ym7jg}|%$70_` zZ-m_cw^gfq(nbH-A5zAwVy~8dDAHr+DPW=HMij<$sP+b#+UI=GqLSHC7e%;h=j%+g z*rqa)m8-;r>d%|A*(5cDR$uFPY0c}%57W%8Ru+Fv8OxUwc^_J<{bRlTYtRHi<btD8 zMOK>UhV6Z`H)(c_UN-mH-q&G<s%K-RT?-_v>Zk1PeSh}>6SVLm=EER5<3T#Pj%+`0 zst+%<i)4H_WA^YII+bF#rn>!yw`%NCwRx%cduAI1y7YW3iweJlOAMcwP!0HsO=0_V z-*Y|B>yIv0`Z6>R1}wcU<h8P__*y<O;-+^tl(jt-raVyN+nB}y-YKyF=Ej<}SENJ( z*<ef`4CTbghPUdB#?#k)^A*2#l$Ut;xE4DVaY(HYT|Rx#|Bk%O`omA!q@KQRQ4Vo+ zUl;N%h{cm119iMNgsb;n2!h=ced0b|{Ye|Nf>T_c_4lJ$j;pE7oNP&TcmSn*xRh#* zSPq?+;;ZYo?rcSB^(Y~n<9_JQ(CNi`2>6p&$KWv^q{=4<H3oH_q6J9gfY#zgRX=FB zj_I7`39nWwt-btBO!nJ#+SM2*sJuT_@tKd3Mk70m31RnMIKiHGeQ8W^kt&n^kmC%X z??naUYmkJi)Os^JREE|KO7!t}1F6o}L=gHKwXH_L4-Sy>Rr(+F`Ul}mrbaq&$z+)K z6EOYFY`CDd0Px?i^t2TF;yfYIXO4Anu^;L|vB6kaeMC)LwJ&t;!=?W)arF{dB({_8 zgm_r-wotH<LRnbn_7`}UssvHPn?6P(*GpwNeJ`b$&2by-cT)e!q#6|qXA#3dz}W<1 zLP%O_ujo_0HA|*t@%G!uO`+Veq%x87TFftBV{0SiGS71Yv}U|I+SUP4x&Jb3lLk5t zrxb20xbvRtB4DCA#|pg+9%$_PVos=X_s$ORul-xXK-@=|1c_fqMa1A?4p1tUQIUXI z9`{pl>;rT5opk|j(Ig#BVGRyqMcP;JPd@c2TTauHW)>{HpWz49ngL<Bq1MkS()J!Y zn|{|X)j|eTdX9<pc1eG5<xu41Zc426r=^+Q`jQuQK!AEucT)BB+%1<IxY8y4%O|)t z9rqZTy0YykPUea9Xf)xP2MKssH(XQ_j8d>Sn(hQR4!C^Iw0I`^nF&RkVqdlZO!MHu zuQ(IAsQj?#t+VfU;^$#Z>JP0&(Lywnhtx)7+UF58sMihDssyo^A!YB)I_*PmWV&@Z zbw&hWUbC8Qs>7K9s^9d&H97IlVy693fS1x62|pV`9|jLK7$3X_GXiYSYXOg&pKvJB zM@6=u`0XTp`uYTPA9814?$9ddL4qwNH}(xBX){Ubtt>#Hn`bWR=Xmii+YA?LQD9&c zglRx?XEu90<twM@-2RA<-5X|6kHOUZ=gZox10+0NYS>ocXi<9t2w7?kCa#FQs^Go+ zg5z%4<=T8>|2W%yF{F|^+i^8#r9P~aV89N5EOG0;BS98<B={HDX%K`j0QG!IzAEHO zrKhyrv^!AAKk70J80^pe7`O@)dPfq3^!xSdN%eCIty*)15j4px?&^wM6r%PMmaCrh z7yyBklt;cI!l_7S4fRCar?aP*f%^=}w(qanyLm#E*crW6pz$1{FBQ#nUE~R`HlJSH z!HU}xC8hl(=oKg;NRJHS5!VAjqG*7K9HcC#-K7KR@M;Q=x)tB3U5CB(juohUUYD<o zi_IO;xx@X&Fi|Lztr{g>LDTp(h*G5qDo%0>dLo794LhJRo{HzGRst6NsE{)7J6aF~ znA&NDA}knU#JsU17k*k@iK6P3^SMwaUBI4@cs0m5#Y_0h7`G4?+6uJH)YO@bB+_q| zE&3@RdOWG)s;ohdXF;sg1&j1ke%Xp~8>ZY}lfTkWKmo6wnewH$Uz(kOaXHX)`Oe*| zru!~?#J6O!otMk;%(PlcT8rb2QWTxjV`QR^E%%l$TUKYuT#680SFX5xSuyyMiFmfR z`<=6^S<>s-JWyv=?mN{_92NNG1kbB*d*o=bhU8t!lF!f5J}+nfB3s`lw}d;#Ei{W5 znX65?BNWNElaEAIh}s-mZq4M%z6b{L`#IK&LXRo&z$j?YjW~P0;25XH$|M&@Tg5_U zqxdZJXr61N+^y=I;Z}g%M<oA5CRh>1K9Rq878O!|R}y?jJ~2D4P(<d~5ln`J9&z=O zK&^`fS7TYrydYK!@>CM&%w_6vkc8?ET!QT6OJd`g;V#G_tLpLJe~EA#5VtG`|E*x} zAQrLF*?p<<<^6Y(kFCV`ox>PLIlYB^(E2FhvyeRlZCrmo(<HD057^{_TwO}ZZaX)M zH&|d%XDx&DxIr%2Ar|(i0uq1_r1+s8wIjbY3da^F>J<VYumT{GRgj7`ZoLFRv;H;7 zY>3MFlKG`P29nP7GWX;>Upr4;BngzABOm!rJaSOW$xWy<NT^d$euvKgBoX)kc>hQQ zxh28_`%@Zeb6bKAsMS-Cj3qDyu~9ScU)OUep!080%6_)rJ*#m?MUzj?^BlT^?mH1u zq0i4@D$m~#^Z{RWxFDzGbZv^PjqT?3%aPxSEP|UwrUTSX@EC{z|Lk4J4L3sM*~)u0 zmGdE1!PeQE)0PZ|V-3>+;`*n8Yg0hq35kh*nE)cUwWqpOm?1&An8R4DR*!r02~c|S zKFS(2X?^dFTR5|#%r>{=KT+N7T}`3P!rSYDjSDI)T$0K`wNcH0v=24&OF0|L&UZ8# zVB`|bc=n+AR4M?%je<DuRa23WTGBmxTfuZ3kBL1@ZUY)ca}PnH_T7xkyqv~!AhOFy zYFTpJn&3NRqeKg^83SpbyhY0+-aHFY@4qtwg!Gb}>NVxk)uY(%I({{1YB*yZG-i9> zpfJANB{`wG;Sa{AtLb9Ssc4;ZweS&BOGCJ$t)2Vb`s+c(ACU{J8Yjud)tY4*W6c-W zn^63W0uJ_ze=(xwu?-wg8{~Xigr5c{6e>&CGztH$vCYZEHMX*%%FNvCYDQX=@^fU& z+sY+d<vz-a`?WwDY*ozL_{@!we;=hf`e8TQPBxl-8ys;dInp=UaqR82Y;7lIxo3+V z#vPi~TZ>tVu<<qMUZ(LtuJILt#|MUwtwJ8-Q)Ckh+iZ&;$sHP#efWH=Ij8obcRWBF zZN66T0Dp3f^*r+|Z4u~&0y63x?JtiUyPtr0N5FKY&J8}n$3Y7QRaTW^YwJ(mP06$N z`*Zv8{Z!#Q%&Y@X#vXNxQfaKEpKa7$-Blf^37BmU_Ty7rfDUomKf)*b(!>JyFbfPK zOlZP`AAANFi(FddmW{J++<TgqkoJuIjOiYx-iiPPI_5>CIWM}{uo8}m)Fr4-r@8FB zF?C5vvy~G9N_dL1zh5SBeu#1=ceTWfC!r--%ch058F(f#v+F=2xyGuOsho8}$;Wpd z%BazMFd4x}vZ|77KX&RUC=j`m52&JQ#ntL<^1_60Y#rf*OUYVdNy2PSJ<A>-Y3rxY zvVr8YsDzlSFHxn^)&jnCWNm%&6%ntv2s~KvK64fzLQkC@FQ&e5Cvi~ob2j(zJ0Y`d z&dNyjN2h6rNx*0b61#{dxU=n88G(2LFQFy%EHojp8UkhfEt;h_=m5sEfn>pvh@EDs z=3w-KCRh1HiLZIqMsCygeoG5`S3*DeLaU5{^~2nc3R3xq5T}b4MYsKbA<9XhT{psd zE3kHLgiAl{mVW~HN$_Y5QTks==TTV+_)Gy;<+Td%ez<0DCeU=YjIC0v5;STSEMKr& z;8ieiOpqs!Rh9p%isX`dsi=_hPbWiGrt5*i?VMu3lPVangq2&==1OM$pT3bhd>zq| zwUv4nHXw79i?b~(Ds$}W-Ya7!hsesSZUbr<=9e`)o_$$YyGj(?K51WchrDA|Z?wVq zyNNN^K7U2$AC!=KFL=JQWgIpZaZN;!O^Og1dv%dT{h9=Fc#!e7d_g`avqb#Jb8lX5 zJBB~GS}ky@Old>@<}Wp=WNzMu*AL8F1D`fgwOYKo0EexB*)<{Z!b{#Plw|^{Wd-Yw zYGB$`k!r=rvvKhwVP2~)VP5ZCLn>$oXA7)c2Xg_KOkk90OkphQ5EcIvrO-*7RNh7S z4Ip8e6^Msmb|<NRpj`4O!bj1fqF*LZ99=b-^rZusWQ*P=hF!gSk7X&PgFP|P7UMY? z!yQy%rUaP<aw%DV053zWM_W(S?M@w}X~pz&$$Z0ZkQt*}<3Pmwpu%1&YP6`?2wfvU z4U&6DV=G>x?4iOt06|!k&3plBDK!?bFmYfUMq`||4Ty4%lg}8rvz6;WM2HS7zt0T* zKra2^N|r#ec_IO;$idvgp*8!NyKLMG1>MaumZsOP{t5(sml!E$FZg9Pyfhm{Wh=bk z((&T+%k!yaKcJPQxzJQf(wz}4_FBuo*#|gXP5<_bjrQI}HQ5E1EjBwxU*yEjd;u`* zMgHc5|LgW>7&&<}AJF}}O6?OodLHS#z{73_WuYs+?~^J0)|w)!b(xQs#a;^T5Y}#t z9`B$FMBR8=pbS^(ZKtSpTY;qWBYPI6N<=5|lz8hKL)kz{QKb4Id?#8UspXc#I!^&$ zMY@9Ub9qife!ibO)4X^@ymv%;QO@=&lEK-4Y|D3ppoEfuI7gX03WG;~;X7+T(#)L? z>P|o3*mCAV)1<%O9Wtc8U*>$MQC%a_tm+Fmiz8+)fio-e+0tjIVZfCZwAm11WS6T` zGvbDAT@dooKoRkL)x&EA#99DO+#2zCR=;752S$3kyuxmJsPuRP>G%=o$7H`S>(#;X z08*(}US{}(4Fd4Gm(WgMFq?dY)pmSL&)e2`#I%_UhA<V22;XXwkhaCWn)-8<53NHA z{grM+sc(z{Y+e3%EAmQ^2=a;|m+c!N6FVyORLa1yz03scQrY|{iZ2w4*{yC&;Dsu7 zZUs#Mw)C%f2?|{|jVu6B2vv-^7HcX;)~!;^qrB56R}-_{f9qW)urSBviuC|tp<>i_ z>{)i5PcNOFCcUnYxsnB}5GZ9gHR>#bG<h2^zRvq;wQ6m5<8HM6VqT6XCmh*y@rUaD z5vfX&mnxVSj52k(D5kKp09EbNGL4F)oZ;C|A>8zj<6jN{)hI*{A`VJ0xdR)|w|HiJ zJ1@?bbw4YQv|U-1{-P*1KCK}$1XZn<mDZ>cduR2*X!mLT!o-DOg@r|A=pVSWh5U1t zPmjVz-fB0Hj#pxL#q<%bd1mSv&W7#`30SxM#h*wOnggX_5<cdmKgquzjyzD}nxx;W z5In3Xz#OcWvEq}zGg!ULY#`2>>Ga_$+n;r9KmyHQ_~Pt{_mW&4XJhA-$D!a+l+E>F zl)R%tyjq5(-0Ev^dTZWIKDRY=dFHu%3FLSpfJ@2kAND+N1tfg}P{ZW{%;q7XU>>I* z@j$BULR93Y5nqdf&QUrmH5st`Q&@tza~@YWa?KzSF3_OT{Em2`1QsQDz3(n=R@e0> zGh?tCZ1C)M6h__Y$m;C~OOz_EEUzr~C5&$xYC+;OXh;qse5(J1%XkJ;(f_YFQt{h} zHq-odZ@_6B9wxQmk*W#-sc=viLkmQ4h#?<n^i9KJdpW15&tE4iFDu~B-8%W|^Lh9* zDc^DPKL&$E&|!x(aO*h0&rJ-PE$i=XCG!sjuen|0U)L|5Sp-wB@Sko*1*hv-_{x8@ zG6-%{&<U}uRr;?f^j?Oq#V6^9i5ngQ0{*XGrm1F_%pO=2^Q5uDb#LTvu3InF?K#pT z<z4@-I>Edrg;(n)tH0-Btl#$)^CZm~t6WgEPuM^BygjzBs$J0`N_egpp)x*;SAd_$ z5553v?RRph{}wUdEDczTG?(w*Ij$}C>$V=|#PBUQ8z6MIQtk(Gf?^cqupm@(^`BPB z7a3ps0lc=<{`pEC;M2($w}bytjf7Z!1&s***!cdi^LxXlJco*4>v>6?2VRCR_(C{Z zB_A>N&2wRo#aPW1o-?;8K=9gA_oMzDdkLr<EXr7@J<?7!<nrm;zM%DU=<G%KH)&4! zu5qzD*q;4atBVHwXvLNn7=v9a6XE#jSBj#{=nE?OvdT6W-X+_N%UZTijmz^3-Zkhl zHEOh@+m*77*?n<85WVE~U!$Dp%3`AYQ}7o*TUXuW5Hn+gn`aTWeETdwgrbk06c#w> zPUo)YhdqS*L-+1at5<mfHyHK!*BVM|o4L%vbMrL=5<0;HYznUl?_5<bOeb;bR&z~h zBwcs~znXo}Oy{W<m7Vo}c!}50g0LPYs<kjP??|UwA6CK^ll(1ov*x(pMc({jH*<!; zKO~O0%8U_5j8e-b5D^aVWHTzy?Rg0J)=gGcg6Bscc(jv-9?<iyL`x!KbT!4jrtG#q zr2EXgjBRaixHFrtO=UG&0aMGj8g4tC;~`oo8AOrtb(N}D<jD-LS5_45zccN>aO*-k zd!v<@H`zf$ypellZ*y(agT;917S{Y?&1!WJDt%j`p6=r<vo3LUA16S#qBj11O6A6X z1ujEdr8(dFqO<BiuJSf+AX{X!kGabC9my{&Kg{~lS$Mp^oR+%uG2aVS<f$wAc5rkx ztyoM68E{8%4AcRW;>kGv?_Ba7ZDzriL0M+aI(!C93F(ps=P~Y!-Y_K23o!t^>R~u$ z{}atG8b|#Akk+1>D}tGT((BIiI+q5m0<u~eNLl?VR)@|zsagwdIzzPf+{-Y~zJjoU zyR^{$1>s05(8lY0jpxng`du4*XV2gtO=vW@q+lG$f~eCv6a#E0lsz@QgBEUAY0Tu^ z$JF4FQ7H9On6F@Xf3M~4mh&T!i4W~7W(UEn%zot${~N8NUAS!@5pd!SINva;)lo-8 zIPbE^tL|j5^nti8hMK0GA~I8u*1r2mW-vl{Ww<Or$u>1vx8iK#<Q8-4&A1V!D(LWS zi_>X^1`sE^7vRvoh``htu9cu<LCU;Ccb^_;d+-HZN+$V&A!A|_uHNR<6(7>wid3^3 z9pJ&7asRDpT?z%2X7o(L$%Z1LWOoF;`bBC;bF9weMNMPIApAGiC|5D-sFzNgy!d*b zLmyw)ZNb+xp_y;!Uy3iRNbVr#u1SupfiVJO5G(|}1j=JFr4Qi|quPtY{pyw=UqAEQ zMrU1Jk&7m>2(Ai1ZC^}b%FiE?BIRXXVc!8labdOui3fHgi<itzS=bZO&J^69M`GRC zaNK--hQf{XlsaXa%HMj3gS-JEH;@F^wk<U{$CL*@YPqtNgp%<7-HDu~Vdgnf6fl`= zd<*($>W+!Y#NJc)w3;h+uV~oJB%rGxRBGTef}!oqX3~1F>zOQ@Cat*x|2Qp%{_Fsd z@9Cg<J72mT`O6YwI&jIhuKbF>#~c`7XOo9z=i=KbSLozq6KGd3_I3AzOmDE?d%vR) zxIR1#IFNU2%B;*_<B=zt@oBk}qzXm>__L%O?X`<Aep42CrOf8==_(1yO9t54I45k^ za&w$vy#h~mUeH5B1b;I~kYL4S0nJyq)8is~v6%lMiDLfhg%eoYfeX{|5`FcP@J(<G z@O_iv6FH^$O^2t>9Nv0QmwZQq)$~e>BH}Ro4wb<jRbPK)g~L_4&ciw}$-g~SiaV~l zeI{5bbCevSZ}-;~PE=K;-8!_w|E*hRfJGGts7Du~r=^{Gd_-k+%qapmBg7l^0#x{s zL9v!i(?&&24{dxPYHzJ1G|~;L<^zJ^9>pt~ONX;I47YCu6>MC8#3%9T<wZv3Fy%p` z`5Vr$YXj8vrXCM@2za=2U?eW`eT}@Ebh{lUpz!@`kJRqQv3pm4<@{6ZHd;{{5ARjF zANWF1w2k%cg|XdchPF4><jBHjHem$%qe9#-axw${C4Yrdb9?{OaOSpES#he5rNP+5 zJ=@S)l(_gLMN(Mp%KJBU#73#lFW&o2HYa|iZ}d+Oiv9+sdVHj8;@AJY=YP7ELHIi+ zw#)Xi0&bzRmg+g$2L)a)&jJ)MW~#s?12-O2%w$X_(GOw9G6y>((iYM$;a}aALUTTH zt588`tm%|j#YAyN+SYSrjBB|Qps@BRUn4V<AphQ!sVbYt*Y34ZS4X0BQ$3H;=4uu$ z#$fQhQeqA)LFmfgOoefe+KWFoM)%V#@>l}&ET+qh{tmMQmUKPxIwka1tmVJkA|*DN zd40z!YN)s>hY)NU&Bfaibu%^6K&1n4!pGNw>Gl~b@>{}{xIbDp>F2aklVw2srXM6~ zg4@rRI@wnw2+1>X-nFf4?2Jf!<#<O~Yv^K~*C#!xtunQGoi?noT0FKSFBNpt5K%Gn z``w!x4~pD`xN7;>Ozt@{4zBAY&HQ9j8D$AE7eXiti+hQw_@DXo{*NW>uJco^t4=T7 zHJIRW)4x^2H6gY&s?K#<I*i96LmyxK6s|XlsLsD)7L$27ZS3Hi;DdBv-KlT8j{nJp zG^Lgwmv)~swfKmu2%onV0{~Av>Xj#Bx=j}=%1#~zfEb&)OJ%)>VH42pM5Z#Eu$Lrc z;}5|w2}8)eduL9rQpsO`AlSZC4|C@CL|u8DbxNhqmb}U*YS9c)QGa&bhTXZj>XeLV zqFKQLXcYifS=T4&W+!t@^Q7!FCQrmCmGdvN=I>9ytdq0;Ov1=hAe{-8CQ~g+YoeMN z4?9|cW0YkcDC!Y&YG}6-Vs6$epOuFiYNE`$e$Zq8;aF#8Ygho4p7mMlk(IXrBD=Pg z^|S%{pF~s~>PuZBA(^cSI*9On(zm7_$==uBtY)>KpMFZWYlgT+R8=R5txxo}BOeG~ z8Hip)A<#+T-laaiHFHd&03U#7E8p2}k$`d-sg?5;Uz&6g_#LSrtE@J7DxPCBZ#_!_ zVJM~In-$$GagjqO9gu>dGDpYszAmc`D=HAy>Jre1XJ+rY$t0dxkc6!=<iJ&|v_9+4 zR3gYcKDlDhKcS4SPuwtXxgC)djck%1U{0QA!<9gtk9Y#k1Fnw>X9Mo-Po*;B;#o}N zGxVf~7-j(1iB4ZDoJlh<(!02BR1JHcX5|2IElCbljAtS7jFlN|{(-<Topf)SH-9{H z9r$6=@Jp!Sf0OqM>SR9p(0+WPSto&pH)ts!{YQPnE(5grwpevj1z&I4Sx%F*Bja9V zlgR+Ux<KQGgT8{V;l-lSLC$!N33ZzZs3-m<=#I+s8C|xP%u%gjB)((pMq)yytf>f$ z>MIbEoL)?ez4AJ}o+@I_nH21l<U7gp-de_8^ZqIAH$4-RvQD!bHGN7-ig$n_%*IsL z0XBLmNmr5*pe(=2!JFOKRkM66q^$Z-{M`xjs-2-VXny?=_D-Gt23L8?j9Ha~3}dPc zuCi!$V{y!Q0GjUu^|CS3DSOqCYB8{;&gPa~@sB<0vohSeRQFf2gyWl0Z$+V(s3see zp()+VMXmgQ1p&$z+SS``Y`&Sd;66NKPL4*37~su|pL~tRdvcAhrYhY!$|-A0jGj-7 z#=TilzA!eJFBCie6FnTI4heE#xqJk=bOh4HCHnH6-C@oHT3q;@`?jMjF@i5K7@25K zW%>0l);<aBR{U1gFsuFPz~UDBokk#Y!TsLM=Y06{IL=2uKCAbSp3*i2V=J>@J4r0E zru~_XJY5R29B+>Q@ke^c|C_t0Yx>rnmO!MR{cU(5v#5e4b)tU)wCKoAuV)z1ol;IM zY}Z>PsEvHk<q8$0q0hVQZ)|xQcH+G!CW1vK!F0&w9nd+4`2C?+h9OIjL&8+(+i&e> z=|!=c>Ls}%Y4PO=uSxv%z;e4F%`~nvxxNzq(am?P8_tT~QTZ_tHQjUV)03Eu+M7$& z&+8_n&kROuR``oq|DP0W8Vi{R{lCz1KGt53#di%Xlk?Vn=!sm`Ac6wzO{%h)rIi#2 zHxmZCn1$W{+~dGiN>iT2BP|m2l9Do^C!fZ)3-2UwP0LJmsUD=Ls!ZQ>6It-Rur>z{ zH@&DF0q|UjJqLx@Ie^`A-)h*RO+b}1txwgpaTFz7_JaiG%mgI{vpv0859cO!PhBJ3 zN-U03J|ZHK*`Xo?_R&|$Ab9Z-9bjiX`y}|kB%eN(rXZoN3UCW2RD$z`6gM==DpA*g z<@|eqw$<b%Jr+Nl+1kH166`%5*{^sCV=<?xaLxkqh4;r&HMf{Xe7d#Y<9UtsA8_M8 zNjD6r8D>Uq^k*BToCKH3eF6aMG$~j4IqhZwyiXyuEN50?_v7q+ZbEcF+ez2AMQf-S z4HQnR->>v7E^GwfUBpv6K$ZHU)|w556$$&Ak_}e@kyO?QtJwQgTodNAs>sWzc_Ca6 zs@nt7F;xD~s?m3b=2Mq=$vj2C@$wD5nivsQ>QKjVbRwhT!rT4**wO3p$#=ySST1f0 z^7FkE=4hsuMm;DRy$_#p{x~!D=Bj8-BWh)U_T;!}>N;x^6R)~e{y!i7y;gdN^PTm{ z%f-zFn;Np&raZULO1xZ~yA=ZwEWMZ@o)|>>%Jt@LnD=B)g!K-Gvf5V7COZ4}PNIP0 z08c-&K;5|Y9BSkB*D_JX6kpV@Hz>HdYs#ObxC7MI8y82Skh9EP8%OoQv?d`U7oFgG z^23$Ukp*D50>Se@<9U!h3FJA?6h>l7m}d^0XWUHm)?+!>H_!1Mbg2v+;OzwKLMgK@ zY;lw6Qsf`v3ux>Dw<?)Ckj!ID<~z5*AGW}Ei$SJ0tErZ;1kQj1=E;G5?AXHv>{l?} zo(rc+!O1U*z$qeFN)I1J6i$)KTNF;9Nb)R-Nl?TC7bRUN3Lh4wdMSkMMKSp$xpPa> z49Zy-H|0P#m2rw%x|{koS@oWqMBtJLV?o$u(c)p8<_tx<X-O}TB92{_ccB=7m-OtH z36}0X>dOkZ+*KTx^%IuOzLTRmKMZ@vX|FA7lbCy0J*;><Y*bgQjaO{Wd0fJJ*xRpM zN?5T|U2zCoaSHTsy5-?`&%-g$!(~{&8SLr$c*T|HJE_UTfwAIl>1o^?t62xq>RWM< z_)h-1;+FT_`<|zJuP6EIcjw_^OGaRv60UTZ5Fg(kXGT3msxYTGc$qkOnNj16%a||T zTQzR>x^cK{HSA>!^)Oy@zYSh7o?oR&c;DV$y?t&ihOruN=}p6WC-Qj5!`BjB*6ut$ zg@LTy3S3L7Sxfoqoo4TyIqYr4@Xm(&<Y3p+RlRe0ykmLR^0D5LE<SfX*HVnvV#dAi z-1ABA^+_D}NqW4Vz~fsy?2}f*Y}U*i<f-Iq3ihxXaknyY-(jgY2G`fHxKFS=7~W{C ziEldGcm(!yqQyT-h<C(owjFM?sBSi4H`~KDJ3Kd=RW~1>+w7>>?6maj3_D%6`SiPA z3w-nW;bzml%|3bmF0emi2<zXkx-|se9K7Y<?Bd^z-Fn*V_Y}T4X1w`4Y-^my@7cD0 z_wd%Uale-mn~qkSEeR~|?S0RbE2?yX{bmyUCKCMC$g?#80TTgVYQUZoU|$Dt04c#^ zC%}UQ_9O%@pW9wOg|^ynuZ9JFciCP_-(JTCZZ-w3Jq}#&-CjNn+_)FG-L$<m9=Lle zaGSBcxgEH<%^anEZO7%>k6YIcB)0eEukA3l|Kwd;lDM|@b^FBr+S22nC)?Lnnzn(r ze=@E9+!@|x;iWD~fIX33d{F_I*yYb3z<zZ<zI{mW=uDUg?`{Tef9KidRNLW{+(j$w zvPcG@!-H1sgZOkAyL`8U{=j!I*Mk1D-^I9I<Nn6{`)iPpS`g;vE<QYn*K1ewVlcPs zo@i|lzt<l3lOU1WT`||whO=v%=~T)NT9uml@o|7@%@6GMJp54r@?>Y${`BJQNkV?| z<Zp}J-#hwn?Z<~}>pa2OkzeaId&d&HG8w^Q_kVfJpAHJq%MT_d25YJX^Q#2`FYn2Q z|I)qv%kXW`d9QuF=ldd$ex19V;7QwuUi&e;mhdSrK;+&J^YMV$ngq|a9c6_e)#tm+ zZ}<3De_hetG0E5$GTGnH3o(84%k|rV6YrtK<-n!!xTuNi{BM5>sD+Wj4+Y--QXM&1 z2@7?76zZQCBF%8!_j?<5T5O9uEpbnvdd}|!dB(EUy3Y)!DAoR$|4vnw40PlTR(o<l zesU0aa%lAPI`-$Ufam+#kHTg1!%zyL7OSB#!q;S7Ljxb3wwoTFAK8<+edys85tk8? zs1|6Y7VbevV6Dwo_+J1{1hM<4u`s7(+Sc$h|LtZ7?hp6vDzEf~=XEC^^lCqLUAJ*W zk9l#|`SWJ>Ik)qIFY!#Ehv@G4hTrprw|PzHd1ANm{l5602l$7Fd27FU|EBb*w|C-> zaAn8@MrejnXM<9YZ3~}mBF1gr)@=_*b7hctT90qGFZfQUb*z7RhktvT&-i<%_DC0Y zyEkr20CKwz_M|Uz{=KjEe=l+?ulo1yduU&82e0~^Cwy_I_=n$kWq^fcpa+m|4A`~? zR^Ntc?cmXW^<@C@d5`fsNA3qdc1TwS*ROfkm;Km>eb%pi+Hd{U$NksO{n@{L-uM08 z|NRFC{Mhe(-S_?B7k=Zf{oiN);|G4_2Y%>(eB@_->6iZA_kCjU1Y)QKSRe+lCvy%b zeGqSTwGVD;mwjXK_;TNR_Gkb0XMc0=c=~^TWw`(NhkpoffBQ#nfFQ<9pfY0xl?@z- zP#{5r1`{?s2ytOTWek}ed`L_pLy8eKR&<Ck6TOfYF&d2c(IZNZ3L&-xxpE@Rj4W;1 ztSM6G!JHTVaqj&2GpI?8E>~KFRY#j8M%v0434$aGn{CUeEz^c|*|KZOxH994aM@U8 zX3w78sH~R7wHx1VWJ@frMY?m_)_QAEZr!zg<Lb?eH!$J0cj5Xy?AEZ|!hi=ehKyKl zV`U^4PadfEE@i`fIrr^6d9P&5p-+QOy}2^t$D>t47HwMa<Ic8G3(TwSU9D~0paPl7 z<}2FbXxW~nWtJ^-TD6|%eNHTTEn3s9OV1u1`*ZBvr{{G}9sG9i#Kd1upWQrk@8he7 zr>>p+`SIwbI|u(Aes%TiNp1&SeBx2ZU3c--hv0k!dgotv=84x}e-kFi-hmUgcOiQb z`bYj?c@N@eUwG<aXyJL}S>g#SmekS-i@*t29WAuXGGmQ2;&|gMu<XbqEVTFtOOQf( zGK-2T3Q44rN5X<+lSv{O<&#A2$YhjNLfNB}RyJuQlwVFcrIcK58D^1Yg6X7^T}o-m zHfzH9Wtm{2`6QERCb=Y@duA!7o_VU7r=4N0dFGsIN;xQ%g!;)Pk)AN(ODBvhV+kcs z84(;+HO?Xnr!@MwqnAd~(#ejU@aRdAsv7Busjjlx39PfoN^6m_-kNKzvhE7&tGL=~ ztFN%m%4@K=s>*Aw$GU1Hs=el_tF6Wo+pDR-Dl2TZxLT`gvB`Qnt+UH^`ztKUUb*Y5 zu;RLUF0ZeG%j~ez4ht>4+Jajyx!%HC@4DE|>Ip5|c%sZTooG`Fj9GNS1{-BO9B~;F zQ(Upd7h{~U#v60ovBw{S9J0tGlU%aNC!?IQ$|h$41rS3RfrSx87%_9rG}oN7&O7tm zv(G;R9kkFx6J4~?M<boI(n~Ylw9`*7U4#%p1OY_VS5s}Z)>Ui0H4t5Y9k$qGlU=si gXQLf9*J-oew%c#R9k<+b(_OdScjKM+*8u?lJ2%PC<^TWy diff --git a/docs/latex/wx/richtextctrl.tex b/docs/latex/wx/richtextctrl.tex deleted file mode 100644 index 790038530b..0000000000 --- a/docs/latex/wx/richtextctrl.tex +++ /dev/null @@ -1,1475 +0,0 @@ -\section{\class{wxRichTextCtrl}}\label{wxrichtextctrl} - -wxRichTextCtrl provides a generic, ground-up implementation of a text control -capable of showing multiple styles and images. - -wxRichTextCtrl sends notification events: see \helpref{wxRichTextEvent}{wxrichtextevent}. -It also sends the standard wxTextCtrl events wxEVT\_COMMAND\_TEXT\_ENTER and wxEVT\_COMMAND\_TEXT\_UPDATED, -and wxTextUrlEvent when URL content is clicked. - -For more information, see the \helpref{wxRichTextCtrl overview}{wxrichtextctrloverview}. - -\wxheading{Derived from} - -wxTextCtrlBase - -\wxheading{Include files} - -<wx/richtext/richtextctrl.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextCtrl::wxRichTextCtrl}\label{wxrichtextctrlwxrichtextctrl} - -\func{}{wxRichTextCtrl}{\void} - -\func{}{wxRichTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}, - \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} - -Constructors. - -\membersection{wxRichTextCtrl::\destruct{wxRichTextCtrl}}\label{wxrichtextctrldtor} - -\func{}{\destruct{wxRichTextCtrl}}{\void} - -Destructor. - -\membersection{wxRichTextCtrl::AddImage}\label{wxrichtextctrladdimage} - -\func{wxRichTextRange}{AddImage}{\param{const wxImage\& }{image}} - -Adds an image to the control's buffer. - -\membersection{wxRichTextCtrl::AddParagraph}\label{wxrichtextctrladdparagraph} - -\func{wxRichTextRange}{AddParagraph}{\param{const wxString\& }{text}} - -Adds a new paragraph of text to the end of the buffer. - -\membersection{wxRichTextCtrl::AppendText}\label{wxrichtextctrlappendtext} - -\func{void}{AppendText}{\param{const wxString\& }{text}} - -Sets the insertion point to the end of the buffer and writes the text. - -\membersection{wxRichTextCtrl::ApplyAlignmentToSelection}\label{wxrichtextctrlapplyalignmenttoselection} - -\func{bool}{ApplyAlignmentToSelection}{\param{wxTextAttrAlignment }{alignment}} - -Applies the given alignment to the selection (undoable). - -For alignment values, see \helpref{wxTextAttr}{wxtextattr}. - -\membersection{wxRichTextCtrl::ApplyBoldToSelection}\label{wxrichtextctrlapplyboldtoselection} - -\func{bool}{ApplyBoldToSelection}{\void} - -Apples bold to the selection (undoable). - -\membersection{wxRichTextCtrl::ApplyItalicToSelection}\label{wxrichtextctrlapplyitalictoselection} - -\func{bool}{ApplyItalicToSelection}{\void} - -Applies italic to the selection (undoable). - -\membersection{wxRichTextCtrl::ApplyStyle}\label{wxrichtextctrlapplystyle} - -\func{bool}{ApplyStyle}{\param{wxRichTextStyleDefinition*}{ def}} - -Applies the given style to the selection. - -\membersection{wxRichTextCtrl::ApplyStyleSheet}\label{wxrichtextctrlapplystylesheet} - -\func{bool}{ApplyStyleSheet}{\param{wxRichTextStyleSheet*}{ sheet $=$ NULL}} - -Applies the style sheet to the buffer, matching paragraph styles in the sheet against named styles -in the buffer. This might be useful if the styles have changed. If {\it sheet} is NULL, the -sheet set with SetStyleSheet is used. - -Currently this applies paragraph styles only. - -\membersection{wxRichTextCtrl::ApplyUnderlineToSelection}\label{wxrichtextctrlapplyunderlinetoselection} - -\func{bool}{ApplyUnderlineToSelection}{\void} - -Applies underline to the selection (undoable). - -\membersection{wxRichTextCtrl::BatchingUndo}\label{wxrichtextctrlbatchingundo} - -\constfunc{bool}{BatchingUndo}{\void} - -Returns \true if undo commands are being batched. - -\membersection{wxRichTextCtrl::BeginAlignment}\label{wxrichtextctrlbeginalignment} - -\func{bool}{BeginAlignment}{\param{wxTextAttrAlignment }{alignment}} - -Begins using alignment - -For alignment values, see \helpref{wxTextAttr}{wxtextattr}. - -\membersection{wxRichTextCtrl::BeginBatchUndo}\label{wxrichtextctrlbeginbatchundo} - -\func{bool}{BeginBatchUndo}{\param{const wxString\& }{cmdName}} - -Starts batching undo history for commands. - -\membersection{wxRichTextCtrl::BeginBold}\label{wxrichtextctrlbeginbold} - -\func{bool}{BeginBold}{\void} - -Begins using bold. - -\membersection{wxRichTextCtrl::BeginCharacterStyle}\label{wxrichtextctrlbegincharacterstyle} - -\func{bool}{BeginCharacterStyle}{\param{const wxString\& }{characterStyle}} - -Begins using the named character style. - -\membersection{wxRichTextCtrl::BeginFont}\label{wxrichtextctrlbeginfont} - -\func{bool}{BeginFont}{\param{const wxFont\& }{font}} - -Begins using this font. - -\membersection{wxRichTextCtrl::BeginFontSize}\label{wxrichtextctrlbeginfontsize} - -\func{bool}{BeginFontSize}{\param{int }{pointSize}} - -Begins using the given point size. - -\membersection{wxRichTextCtrl::BeginItalic}\label{wxrichtextctrlbeginitalic} - -\func{bool}{BeginItalic}{\void} - -Begins using italic. - -\membersection{wxRichTextCtrl::BeginLeftIndent}\label{wxrichtextctrlbeginleftindent} - -\func{bool}{BeginLeftIndent}{\param{int }{leftIndent}, \param{int }{leftSubIndent = 0}} - -Begins applying a left indent and subindent in tenths of a millimetre. - -The sub-indent is an offset from the left of the paragraph, and is used for all but the -first line in a paragraph. A positive value will cause the first line to appear to the left -of the subsequent lines, and a negative value will cause the first line to be indented -relative to the subsequent lines. - -wxRichTextBuffer uses indentation to render a bulleted item. The left indent is the distance between -the margin and the bullet. The content of the paragraph, including the first line, starts -at leftMargin + leftSubIndent. So the distance between the left edge of the bullet and the -left of the actual paragraph is leftSubIndent. - -\membersection{wxRichTextCtrl::BeginLineSpacing}\label{wxrichtextctrlbeginlinespacing} - -\func{bool}{BeginLineSpacing}{\param{int }{lineSpacing}} - -Begins appling line spacing. {\it spacing} is a multiple, where 10 means single-spacing, -15 means 1.5 spacing, and 20 means double spacing. The following constants are -defined for convenience: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10 -#define wxTEXT_ATTR_LINE_SPACING_HALF 15 -#define wxTEXT_ATTR_LINE_SPACING_TWICE 20 -\end{verbatim} -} - -\membersection{wxRichTextCtrl::BeginListStyle}\label{wxrichtextctrlbeginliststyle} - -\func{bool}{BeginListStyle}{\param{const wxString\&}{ listStyle}, \param{int}{ level=1}, \param{int}{ number=1}} - -Begins using a specified list style. Optionally, you can also pass a level and a number. - -\membersection{wxRichTextCtrl::BeginNumberedBullet}\label{wxrichtextctrlbeginnumberedbullet} - -\func{bool}{BeginNumberedBullet}{\param{int }{bulletNumber}, \param{int }{leftIndent}, \param{int }{leftSubIndent}, \param{int }{bulletStyle = wxTEXT\_ATTR\_BULLET\_STYLE\_ARABIC|wxTEXT\_ATTR\_BULLET\_STYLE\_PERIOD}} - -Begins a numbered bullet. This call will be needed for each item in the list, and the -application should take care of incrementing the numbering. - -{\it bulletNumber} is a number, usually starting with 1. - -{\it leftIndent} and {\it leftSubIndent} are values in tenths of a millimetre. - -{\it bulletStyle} is a bitlist of the following values: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_BULLET_STYLE_NONE 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ARABIC 0x00000001 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER 0x00000002 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER 0x00000004 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER 0x00000008 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER 0x00000010 -#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL 0x00000020 -#define wxTEXT_ATTR_BULLET_STYLE_BITMAP 0x00000040 -#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES 0x00000080 -#define wxTEXT_ATTR_BULLET_STYLE_PERIOD 0x00000100 -#define wxTEXT_ATTR_BULLET_STYLE_STANDARD 0x00000200 -#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS 0x00000400 -#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE 0x00000800 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT 0x00001000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE 0x00002000 -\end{verbatim} -} - -wxRichTextBuffer uses indentation to render a bulleted item. The left indent is the distance between -the margin and the bullet. The content of the paragraph, including the first line, starts -at leftMargin + leftSubIndent. So the distance between the left edge of the bullet and the -left of the actual paragraph is leftSubIndent. - -\membersection{wxRichTextCtrl::BeginParagraphSpacing}\label{wxrichtextctrlbeginparagraphspacing} - -\func{bool}{BeginParagraphSpacing}{\param{int }{before}, \param{int }{after}} - -Begins paragraph spacing; pass the before-paragraph and after-paragraph spacing in tenths of -a millimetre. - -\membersection{wxRichTextCtrl::BeginParagraphStyle}\label{wxrichtextctrlbeginparagraphstyle} - -\func{bool}{BeginParagraphStyle}{\param{const wxString\& }{paragraphStyle}} - -Begins applying the named paragraph style. - -\membersection{wxRichTextCtrl::BeginRightIndent}\label{wxrichtextctrlbeginrightindent} - -\func{bool}{BeginRightIndent}{\param{int }{rightIndent}} - -Begins a right indent, specified in tenths of a millimetre. - -\membersection{wxRichTextCtrl::BeginStyle}\label{wxrichtextctrlbeginstyle} - -\func{bool}{BeginStyle}{\param{const wxTextAttr\& }{style}} - -Begins applying a style. - -\membersection{wxRichTextCtrl::BeginSuppressUndo}\label{wxrichtextctrlbeginsuppressundo} - -\func{bool}{BeginSuppressUndo}{\void} - -Starts suppressing undo history for commands. - -\membersection{wxRichTextCtrl::BeginSymbolBullet}\label{wxrichtextctrlbeginsymbolbullet} - -\func{bool}{BeginSymbolBullet}{\param{wxChar }{symbol}, \param{int }{leftIndent}, \param{int }{leftSubIndent}, \param{int }{bulletStyle = wxTEXT\_ATTR\_BULLET\_STYLE\_SYMBOL}} - -Begins applying a symbol bullet, using a character from the current font. See \helpref{BeginNumberedBullet}{wxrichtextctrlbeginnumberedbullet} for -an explanation of how indentation is used to render the bulleted paragraph. - -\membersection{wxRichTextCtrl::BeginTextColour}\label{wxrichtextctrlbegintextcolour} - -\func{bool}{BeginTextColour}{\param{const wxColour\& }{colour}} - -Begins using this colour. - -\membersection{wxRichTextCtrl::BeginUnderline}\label{wxrichtextctrlbeginunderline} - -\func{bool}{BeginUnderline}{\void} - -Begins using underlining. - -\membersection{wxRichTextCtrl::BeginURL}\label{wxrichtextctrlbeginurl} - -\func{bool}{BeginURL}{\param{const wxString\&}{ url}, \param{const wxString\&}{ characterStyle = wxEmptyString}} - -Begins applying wxTEXT\_ATTR\_URL to the content. Pass a URL and optionally, a character style to apply, -since it is common to mark a URL with a familiar style such as blue text with underlining. - -\membersection{wxRichTextCtrl::CanCopy}\label{wxrichtextctrlcancopy} - -\constfunc{bool}{CanCopy}{\void} - -Returns \true if selected content can be copied to the clipboard. - -\membersection{wxRichTextCtrl::CanCut}\label{wxrichtextctrlcancut} - -\constfunc{bool}{CanCut}{\void} - -Returns \true if selected content can be copied to the clipboard and deleted. - -\membersection{wxRichTextCtrl::CanDeleteSelection}\label{wxrichtextctrlcandeleteselection} - -\constfunc{bool}{CanDeleteSelection}{\void} - -Returns \true if selected content can be deleted. - -\membersection{wxRichTextCtrl::CanPaste}\label{wxrichtextctrlcanpaste} - -\constfunc{bool}{CanPaste}{\void} - -Returns \true if the clipboard content can be pasted to the buffer. - -\membersection{wxRichTextCtrl::CanRedo}\label{wxrichtextctrlcanredo} - -\constfunc{bool}{CanRedo}{\void} - -Returns \true if there is a command in the command history that can be redone. - -\membersection{wxRichTextCtrl::CanUndo}\label{wxrichtextctrlcanundo} - -\constfunc{bool}{CanUndo}{\void} - -Returns \true if there is a command in the command history that can be undone. - -\membersection{wxRichTextCtrl::Clear}\label{wxrichtextctrlclear} - -\func{void}{Clear}{\void} - -Clears the buffer content, leaving a single empty paragraph. Cannot be undone. - -\membersection{wxRichTextCtrl::ClearListStyle}\label{wxrichtextctrlclearliststyle} - -\func{bool}{ClearListStyle}{\param{const wxRichTextRange\& }{range}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -\func{bool}{ClearListStyle}{\param{const wxRichTextRange\& }{range}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -Clears the list style from the given range, clearing list-related attributes and applying any named paragraph style associated with each paragraph. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\end{itemize} - -See also \helpref{wxRichTextCtrl::SetListStyle}{wxrichtextctrlsetliststyle}, \helpref{wxRichTextCtrl::PromoteList}{wxrichtextctrlpromotelist}, \helpref{wxRichTextCtrl::NumberList}{wxrichtextctrlnumberlist}. - -\membersection{wxRichTextCtrl::Command}\label{wxrichtextctrlcommand} - -\func{void}{Command}{\param{wxCommandEvent\& }{event}} - -Sends the event to the control. - -\membersection{wxRichTextCtrl::Copy}\label{wxrichtextctrlcopy} - -\func{void}{Copy}{\void} - -Copies the selected content (if any) to the clipboard. - -\membersection{wxRichTextCtrl::Create}\label{wxrichtextctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{value = wxEmptyString}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxRE\_MULTILINE}, - \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} - -Creates the underlying window. - -\membersection{wxRichTextCtrl::Cut}\label{wxrichtextctrlcut} - -\func{void}{Cut}{\void} - -Copies the selected content (if any) to the clipboard and deletes the selection. -This is undoable. - -\membersection{wxRichTextCtrl::Delete}\label{wxrichtextctrldelete} - -\func{bool}{Delete}{\param{const wxRichTextRange\&}{ range}} - -Deletes the content within the given range. - -\membersection{wxRichTextCtrl::DeleteSelectedContent}\label{wxrichtextctrldeleteselectedcontent} - -\func{bool}{DeleteSelectedContent}{\param{long* }{newPos = NULL}} - -Deletes content if there is a selection, e.g. when pressing a key. -Returns the new caret position in {\it newPos}, or leaves it if there -was no action. This is undoable. - -\membersection{wxRichTextCtrl::DeleteSelection}\label{wxrichtextctrldeleteselection} - -\func{void}{DeleteSelection}{\void} - -Deletes the content in the selection, if any. This is undoable. - -\membersection{wxRichTextCtrl::DiscardEdits}\label{wxrichtextctrldiscardedits} - -\func{void}{DiscardEdits}{\void} - -Sets the buffer's modified status to \false, and clears the buffer's command history. - -\membersection{wxRichTextCtrl::DoGetBestSize}\label{wxrichtextctrldogetbestsize} - -\constfunc{wxSize}{DoGetBestSize}{\void} - -Currently this simply returns {\tt wxSize(10, 10)}. - -\membersection{wxRichTextCtrl::EndAlignment}\label{wxrichtextctrlendalignment} - -\func{bool}{EndAlignment}{\void} - -Ends alignment. - -\membersection{wxRichTextCtrl::EndAllStyles}\label{wxrichtextctrlendallstyles} - -\func{bool}{EndAllStyles}{\void} - -Ends application of all styles in the current style stack. - -\membersection{wxRichTextCtrl::EndBatchUndo}\label{wxrichtextctrlendbatchundo} - -\func{bool}{EndBatchUndo}{\void} - -Ends batching undo command history. - -\membersection{wxRichTextCtrl::EndBold}\label{wxrichtextctrlendbold} - -\func{bool}{EndBold}{\void} - -Ends using bold. - -\membersection{wxRichTextCtrl::EndCharacterStyle}\label{wxrichtextctrlendcharacterstyle} - -\func{bool}{EndCharacterStyle}{\void} - -Ends application of a named character style. - -\membersection{wxRichTextCtrl::EndFont}\label{wxrichtextctrlendfont} - -\func{bool}{EndFont}{\void} - -Ends using a font. - -\membersection{wxRichTextCtrl::EndFontSize}\label{wxrichtextctrlendfontsize} - -\func{bool}{EndFontSize}{\void} - -Ends using a point size. - -\membersection{wxRichTextCtrl::EndItalic}\label{wxrichtextctrlenditalic} - -\func{bool}{EndItalic}{\void} - -Ends using italic. - -\membersection{wxRichTextCtrl::EndLeftIndent}\label{wxrichtextctrlendleftindent} - -\func{bool}{EndLeftIndent}{\void} - -Ends left indent. - -\membersection{wxRichTextCtrl::EndLineSpacing}\label{wxrichtextctrlendlinespacing} - -\func{bool}{EndLineSpacing}{\void} - -Ends line spacing. - -\membersection{wxRichTextCtrl::EndListStyle}\label{wxrichtextctrlendliststyle} - -\func{bool}{EndListStyle}{\void} - -Ends using a specified list style. - -\membersection{wxRichTextCtrl::EndNumberedBullet}\label{wxrichtextctrlendnumberedbullet} - -\func{bool}{EndNumberedBullet}{\void} - -Ends application of a numbered bullet. - -\membersection{wxRichTextCtrl::EndParagraphSpacing}\label{wxrichtextctrlendparagraphspacing} - -\func{bool}{EndParagraphSpacing}{\void} - -Ends paragraph spacing. - -\membersection{wxRichTextCtrl::EndParagraphStyle}\label{wxrichtextctrlendparagraphstyle} - -\func{bool}{EndParagraphStyle}{\void} - -Ends application of a named character style. - -\membersection{wxRichTextCtrl::EndRightIndent}\label{wxrichtextctrlendrightindent} - -\func{bool}{EndRightIndent}{\void} - -Ends right indent. - -\membersection{wxRichTextCtrl::EndStyle}\label{wxrichtextctrlendstyle} - -\func{bool}{EndStyle}{\void} - -Ends the current style. - -\membersection{wxRichTextCtrl::EndSuppressUndo}\label{wxrichtextctrlendsuppressundo} - -\func{bool}{EndSuppressUndo}{\void} - -Ends suppressing undo command history. - -\membersection{wxRichTextCtrl::EndSymbolBullet}\label{wxrichtextctrlendsymbolbullet} - -\func{bool}{EndSymbolBullet}{\void} - -Ends applying a symbol bullet. - -\membersection{wxRichTextCtrl::EndTextColour}\label{wxrichtextctrlendtextcolour} - -\func{bool}{EndTextColour}{\void} - -Ends applying a text colour. - -\membersection{wxRichTextCtrl::EndUnderline}\label{wxrichtextctrlendunderline} - -\func{bool}{EndUnderline}{\void} - -End applying underlining. - -\membersection{wxRichTextCtrl::EndURL}\label{wxrichtextctrlendurl} - -\func{bool}{EndURL}{\void} - -Ends applying a URL. - -\membersection{wxRichTextCtrl::ExtendSelection}\label{wxrichtextctrlextendselection} - -\func{bool}{ExtendSelection}{\param{long }{oldPosition}, \param{long }{newPosition}, \param{int }{flags}} - -Helper function for extending the selection, returning \true if the selection was -changed. Selections are in caret positions. - -\membersection{wxRichTextCtrl::FindNextWordPosition}\label{wxrichtextctrlfindnextwordposition} - -\constfunc{long}{FindNextWordPosition}{\param{int }{direction = 1}} - -Helper function for finding the caret position for the next word. Direction -is 1 (forward) or -1 (backwards). - -\membersection{wxRichTextCtrl::Freeze}\label{wxrichtextctrlfreeze} - -\func{void}{Freeze}{\void} - -Call this function to prevent refresh and allow fast updates, and then \helpref{Thaw}{wxrichtextctrlthaw} to -refresh the control. - -\membersection{wxRichTextCtrl::GetBasicStyle}\label{wxrichtextctrlgetbasicstyle} - -\constfunc{const wxTextAttr\&}{GetBasicStyle}{\void} - -Gets the basic (overall) style. This is the style of the whole -buffer before further styles are applied, unlike the default style, which -only affects the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -\membersection{wxRichTextCtrl::GetBuffer}\label{wxrichtextctrlgetbuffer} - -\constfunc{const wxRichTextBuffer\&}{GetBuffer}{\void} - -\func{wxRichTextBuffer\&}{GetBuffer}{\void} - -Returns the buffer associated with the control. - -\membersection{wxRichTextCtrl::GetCaretPosition}\label{wxrichtextctrlgetcaretposition} - -\constfunc{long}{GetCaretPosition}{\void} - -Returns the current caret position. - -\membersection{wxRichTextCtrl::GetCaretPositionForIndex}\label{wxrichtextctrlgetcaretpositionforindex} - -\func{bool}{GetCaretPositionForIndex}{\param{long }{position}, \param{wxRect\& }{rect}} - -Returns the caret height and position for the given character position - -\membersection{wxRichTextCtrl::GetCommandProcessor}\label{wxrichtextctrlgetcommandprocessor} - -\constfunc{wxCommandProcessor*}{GetCommandProcessor}{\void} - -Gets the command processor associated with the control's buffer. - -\membersection{wxRichTextCtrl::GetDefaultStyle}\label{wxrichtextctrlgetdefaultstyle} - -\constfunc{const wxTextAttr\&}{GetDefaultStyle}{\void} - -Returns the current default style, which can be used to change how subsequently inserted -text is displayed. - -\membersection{wxRichTextCtrl::GetDelayedLayoutThreshold}\label{wxrichtextctrlgetdelayedlayoutthreshold} - -\constfunc{long}{GetDelayedLayoutThreshold}{\void} - -Gets the size of the buffer beyond which layout is delayed during resizing. -This optimizes sizing for large buffers. The default is 20000. - -\membersection{wxRichTextCtrl::GetFilename}\label{wxrichtextctrlgetfilename} - -\constfunc{wxString}{GetFilename}{\void} - -Gets the current filename associated with the control. - -\membersection{wxRichTextCtrl::GetFirstVisiblePosition}\label{wxrichtextctrlgetfirstvisibleposition} - -\constfunc{long}{GetFirstVisiblePosition}{\void} - -Returns the first visible position in the current view. - -\membersection{wxRichTextCtrl::GetHandlerFlags}\label{wxrichtextfilehandlergethandlerflags} - -\constfunc{int}{GetHandlerFlags}{\void} - -Returns flags that change the behaviour of loading or saving. See the documentation for each -handler class to see what flags are relevant for each handler. - -\membersection{wxRichTextCtrl::GetInsertionPoint}\label{wxrichtextctrlgetinsertionpoint} - -\constfunc{long}{GetInsertionPoint}{\void} - -Returns the current insertion point. - -\membersection{wxRichTextCtrl::GetLastPosition}\label{wxrichtextctrlgetlastposition} - -\constfunc{wxTextPos}{GetLastPosition}{\void} - -Returns the last position in the buffer. - -\membersection{wxRichTextCtrl::GetLineLength}\label{wxrichtextctrlgetlinelength} - -\constfunc{int}{GetLineLength}{\param{long }{lineNo}} - -Returns the length of the specified line in characters. - -\membersection{wxRichTextCtrl::GetLineText}\label{wxrichtextctrlgetlinetext} - -\constfunc{wxString}{GetLineText}{\param{long }{lineNo}} - -Returns the text for the given line. - -\membersection{wxRichTextCtrl::GetLogicalPoint}\label{wxrichtextctrlgetlogicalpoint} - -\constfunc{wxPoint}{GetLogicalPoint}{\param{const wxPoint\& }{ptPhysical}} - -Transforms physical window position to logical (unscrolled) position. - -\membersection{wxRichTextCtrl::GetNumberOfLines}\label{wxrichtextctrlgetnumberoflines} - -\constfunc{int}{GetNumberOfLines}{\void} - -Returns the number of lines in the buffer. - -\membersection{wxRichTextCtrl::GetPhysicalPoint}\label{wxrichtextctrlgetphysicalpoint} - -\constfunc{wxPoint}{GetPhysicalPoint}{\param{const wxPoint\& }{ptLogical}} - -Transforms logical (unscrolled) position to physical window position. - -\membersection{wxRichTextCtrl::GetRange}\label{wxrichtextctrlgetrange} - -\constfunc{wxString}{GetRange}{\param{long }{from}, \param{long }{to}} - -Gets the text for the given range. - -The end point of range is specified as the last character position of the span of text, plus one. - -\membersection{wxRichTextCtrl::GetSelection}\label{wxrichtextctrlgetselection} - -\constfunc{void}{GetSelection}{\param{long* }{from}, \param{long* }{to}} - -Returns the range of the current selection. - -The end point of range is specified as the last character position of the span of text, plus one. - -If the return values {\it from} and {\it to} are the same, there is no selection. - -\membersection{wxRichTextCtrl::GetSelectionRange}\label{wxrichtextctrlgetselectionrange} - -\constfunc{const wxRichTextRange\&}{GetSelectionRange}{\void} - -Returns the selection range in character positions. -1, -1 means no selection. - -\membersection{wxRichTextCtrl::GetStringSelection}\label{wxrichtextctrlgetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the text within the current selection range, if any. - -\membersection{wxRichTextCtrl::GetStyle}\label{wxrichtextctrlgetstyle} - -\func{bool}{GetStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} - -Gets the attributes at the given position. - -This function gets the combined style - that is, the style you see on the screen as a result -of combining base style, paragraph style and character style attributes. To get the character -or paragraph style alone, use \helpref{GetUncombinedStyle}{wxrichtextctrlgetuncombinedstyle}. - -\membersection{wxRichTextCtrl::GetStyleForRange}\label{wxrichtextctrlgetstyleforrange} - -\func{bool}{GetStyleForRange}{\param{const wxRichTextRange\& }{range}, \param{wxTextAttr\& }{style}} - -Gets the attributes common to the specified range. Attributes that differ in value within the range will -not be included in {\it style}'s flags. - -\membersection{wxRichTextCtrl::GetStyleSheet}\label{wxrichtextctrlgetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the style sheet associated with the control, if any. A style sheet allows named -character and paragraph styles to be applied. - -\membersection{wxRichTextCtrl::GetUncombinedStyle}\label{wxrichtextctrlgetuncombinedstyle} - -\func{bool}{GetUncombinedStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} - -Gets the attributes at the given position. - -This function gets the {\it uncombined style} - that is, the attributes associated with the -paragraph or character content, and not necessarily the combined attributes you see on the -screen. To get the combined attributes, use \helpref{GetStyle}{wxrichtextctrlgetstyle}. - -If you specify (any) paragraph attribute in {\it style}'s flags, this function will fetch -the paragraph attributes. Otherwise, it will return the character attributes. - -\membersection{wxRichTextCtrl::GetValue}\label{wxrichtextctrlgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the content of the entire control as a string. - -\membersection{wxRichTextCtrl::GetVisibleLineForCaretPosition}\label{wxrichtextctrlgetvisiblelineforcaretposition} - -\constfunc{wxRichTextLine*}{GetVisibleLineForCaretPosition}{\param{long }{caretPosition}} - -Internal helper function returning the line for the visible caret position. If the caret is -shown at the very end of the line, it means the next character is actually -on the following line. So this function gets the line we're expecting to find -if this is the case. - -\membersection{wxRichTextCtrl::HasCharacterAttributes}\label{wxrichtextctrlhascharacterattributes} - -\constfunc{bool}{HasCharacterAttributes}{\param{const wxRichTextRange\& }{range}, \param{const wxTextAttr\& }{style}} - -Test if this whole range has character attributes of the specified kind. If any -of the attributes are different within the range, the test fails. You -can use this to implement, for example, bold button updating. {\it style} must have -flags indicating which attributes are of interest. - -\membersection{wxRichTextCtrl::HasParagraphAttributes}\label{wxrichtextctrlhasparagraphattributes} - -\constfunc{bool}{HasParagraphAttributes}{\param{const wxRichTextRange\& }{range}, \param{const wxTextAttr\& }{style}} - -Test if this whole range has paragraph attributes of the specified kind. If any -of the attributes are different within the range, the test fails. You -can use this to implement, for example, centering button updating. {\it style} must have -flags indicating which attributes are of interest. - -\membersection{wxRichTextCtrl::HasSelection}\label{wxrichtextctrlhasselection} - -\constfunc{bool}{HasSelection}{\void} - -Returns \true if there is a selection. - -\membersection{wxRichTextCtrl::HitTest}\label{wxrichtextctrlhittest} - -\constfunc{wxTextCtrlHitTestResult}{HitTest}{\param{const wxPoint\& }{pt}, \param{long* }{pos}} - -\constfunc{wxTextCtrlHitTestResult}{HitTest}{\param{const wxPoint\& }{pt}, \param{wxTextCoord* }{col}, \param{wxTextCoord* }{row}} - -Finds the character at the given position in pixels. - -{\it pt} is in device coords (not adjusted for the client area origin nor for scrolling). - -\membersection{wxRichTextCtrl::Init}\label{wxrichtextctrlinit} - -\func{void}{Init}{\void} - -Initialises the members of the control. - -\membersection{wxRichTextCtrl::InitCommandEvent}\label{wxrichtextctrlinitcommandevent} - -\constfunc{void}{InitCommandEvent}{\param{wxCommandEvent\& }{event}} - -Initialises the command event. - -\membersection{wxRichTextCtrl::IsDefaultStyleShowing}\label{wxrichtextctrlisdefaultstyleshowing} - -\constfunc{bool}{IsDefaultStyleShowing}{\void} - -Returns \true if the user has recently set the default style without moving the caret, -and therefore the UI needs to reflect the default style and not the style at the caret. - -Below is an example of code that uses this function to determine whether the UI -should show that the current style is bold. - -\begin{verbatim} -/// Is all of the selection bold? -bool wxRichTextCtrl::IsSelectionBold() -{ - if (HasSelection()) - { - wxTextAttr attr; - wxRichTextRange range = GetInternalSelectionRange(); - attr.SetFlags(wxTEXT_ATTR_FONT_WEIGHT); - attr.SetFontWeight(wxBOLD); - - return HasCharacterAttributes(range, attr); - } - else - { - // If no selection, then we need to combine current style with default style - // to see what the effect would be if we started typing. - wxTextAttr attr; - attr.SetFlags(wxTEXT_ATTR_FONT_WEIGHT); - - long pos = GetAdjustedCaretPosition(GetCaretPosition()); - if (GetStyle(pos, attr)) - { - if (IsDefaultStyleShowing()) - wxRichTextApplyStyle(attr, GetDefaultStyleEx()); - return attr.GetFontWeight() == wxBOLD; - } - } - return false; -} -\end{verbatim} - -See also \helpref{SetAndShowDefaultStyle}{wxrichtextctrlsetandshowdefaultstyle}. - -\membersection{wxRichTextCtrl::IsEditable}\label{wxrichtextctrliseditable} - -\constfunc{bool}{IsEditable}{\void} - -Returns \true if the control is editable. - -\membersection{wxRichTextCtrl::IsFrozen}\label{wxrichtextctrlisfrozen} - -\constfunc{bool}{IsFrozen}{\void} - -Returns \true if Freeze has been called without a Thaw. - -\membersection{wxRichTextCtrl::IsModified}\label{wxrichtextctrlismodified} - -\constfunc{bool}{IsModified}{\void} - -Returns \true if the buffer has been modified. - -\membersection{wxRichTextCtrl::IsMultiLine}\label{wxrichtextctrlismultiline} - -\constfunc{bool}{IsMultiLine}{\void} - -Returns \true if the control is multiline. - -\membersection{wxRichTextCtrl::IsPositionVisible}\label{wxrichtextctrlispositionvisible} - -\constfunc{bool}{IsPositionVisible}{\param{long }{pos}} - -Returns \true if the given position is visible on the screen. - -\membersection{wxRichTextCtrl::IsSelectionAligned}\label{wxrichtextctrlisselectionaligned} - -\constfunc{bool}{IsSelectionAligned}{\param{wxTextAttrAlignment }{alignment}} - -Returns \true if all of the selection is aligned according to the specified flag. - -\membersection{wxRichTextCtrl::IsSelectionBold}\label{wxrichtextctrlisselectionbold} - -\constfunc{bool}{IsSelectionBold}{\void} - -Returns \true if all of the selection is bold. - -\membersection{wxRichTextCtrl::IsSelectionItalics}\label{wxrichtextctrlisselectionitalics} - -\constfunc{bool}{IsSelectionItalics}{\void} - -Returns \true if all of the selection is italic. - -\membersection{wxRichTextCtrl::IsSelectionUnderlined}\label{wxrichtextctrlisselectionunderlined} - -\constfunc{bool}{IsSelectionUnderlined}{\void} - -Returns \true if all of the selection is underlined. - -\membersection{wxRichTextCtrl::IsSingleLine}\label{wxrichtextctrlissingleline} - -\constfunc{bool}{IsSingleLine}{\void} - -Returns \true if the control is single-line. Currently wxRichTextCtrl does not -support single-line editing. - -\membersection{wxRichTextCtrl::KeyboardNavigate}\label{wxrichtextctrlkeyboardnavigate} - -\func{bool}{KeyboardNavigate}{\param{int }{keyCode}, \param{int }{flags}} - -Helper function implementing keyboard navigation. - -\membersection{wxRichTextCtrl::LayoutContent}\label{wxrichtextctrllayoutcontent} - -\func{bool}{LayoutContent}{\param{bool }{onlyVisibleRect = false}} - -Lays out the buffer, which must be done before certain operations, such as -setting the caret position. This function should not normally be required by the -application. - -\membersection{wxRichTextCtrl::LineBreak}\label{wxrichtextctrllinebreak} - -\func{bool}{LineBreak}{\void} - -Inserts a line break at the current insertion point. A line break forces wrapping within a paragraph, and -can be introduced by using this function, by appending the wxChar value {\bf wxRichTextLineBreakChar} to text content, -or by typing Shift-Return. - -\membersection{wxRichTextCtrl::LoadFile}\label{wxrichtextctrlloadfile} - -\func{bool}{LoadFile}{\param{const wxString\& }{file}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Loads content into the control's buffer using the given type. If the specified type -is wxRICHTEXT\_TYPE\_ANY, the type is deduced from the filename extension. - -This function looks for a suitable \helpref{wxRichTextFileHandler}{wxrichtextfilehandler} object. - -\membersection{wxRichTextCtrl::MarkDirty}\label{wxrichtextctrlmarkdirty} - -\func{void}{MarkDirty}{\void} - -Marks the buffer as modified. - -\membersection{wxRichTextCtrl::MoveCaret}\label{wxrichtextctrlmovecaret} - -\func{bool}{MoveCaret}{\param{long }{pos}, \param{bool }{showAtLineStart = false}} - -Move the caret to the given character position. - -\membersection{wxRichTextCtrl::MoveCaretBack}\label{wxrichtextctrlmovecaretback} - -\func{void}{MoveCaretBack}{\param{long }{oldPosition}} - -Move the caret one visual step forward: this may mean setting a flag -and keeping the same position if we're going from the end of one line -to the start of the next, which may be the exact same caret position. - -\membersection{wxRichTextCtrl::MoveCaretForward}\label{wxrichtextctrlmovecaretforward} - -\func{void}{MoveCaretForward}{\param{long }{oldPosition}} - -Move the caret one visual step forward: this may mean setting a flag -and keeping the same position if we're going from the end of one line -to the start of the next, which may be the exact same caret position. - -\membersection{wxRichTextCtrl::MoveDown}\label{wxrichtextctrlmovedown} - -\func{bool}{MoveDown}{\param{int }{noLines = 1}, \param{int }{flags = 0}} - -Moves the caret down. - -\membersection{wxRichTextCtrl::MoveEnd}\label{wxrichtextctrlmoveend} - -\func{bool}{MoveEnd}{\param{int }{flags = 0}} - -Moves to the end of the buffer. - -\membersection{wxRichTextCtrl::MoveHome}\label{wxrichtextctrlmovehome} - -\func{bool}{MoveHome}{\param{int }{flags = 0}} - -Moves to the start of the buffer. - -\membersection{wxRichTextCtrl::MoveLeft}\label{wxrichtextctrlmoveleft} - -\func{bool}{MoveLeft}{\param{int }{noPositions = 1}, \param{int }{flags = 0}} - -Moves left. - -\membersection{wxRichTextCtrl::MoveRight}\label{wxrichtextctrlmoveright} - -\func{bool}{MoveRight}{\param{int }{noPositions = 1}, \param{int }{flags = 0}} - -Moves right. - -\membersection{wxRichTextCtrl::MoveToLineEnd}\label{wxrichtextctrlmovetolineend} - -\func{bool}{MoveToLineEnd}{\param{int }{flags = 0}} - -Moves to the end of the line. - -\membersection{wxRichTextCtrl::MoveToLineStart}\label{wxrichtextctrlmovetolinestart} - -\func{bool}{MoveToLineStart}{\param{int }{flags = 0}} - -Moves to the start of the line. - -\membersection{wxRichTextCtrl::MoveToParagraphEnd}\label{wxrichtextctrlmovetoparagraphend} - -\func{bool}{MoveToParagraphEnd}{\param{int }{flags = 0}} - -Moves to the end of the paragraph. - -\membersection{wxRichTextCtrl::MoveToParagraphStart}\label{wxrichtextctrlmovetoparagraphstart} - -\func{bool}{MoveToParagraphStart}{\param{int }{flags = 0}} - -Moves to the start of the paragraph. - -\membersection{wxRichTextCtrl::MoveUp}\label{wxrichtextctrlmoveup} - -\func{bool}{MoveUp}{\param{int }{noLines = 1}, \param{int }{flags = 0}} - -Moves up. - -\membersection{wxRichTextCtrl::Newline}\label{wxrichtextctrlnewline} - -\func{bool}{Newline}{\void} - -Inserts a new paragraph at the current insertion point. See also \helpref{wxRichTextCtrl::LineBreak}{wxrichtextctrllinebreak}. - -\membersection{wxRichTextCtrl::NumberList}\label{wxrichtextctrlnumberlist} - -\func{bool}{NumberList}{\param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -\func{bool}{Number}{\param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -Numbers the paragraphs in the given range. Pass flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextCtrl::SetListStyle}{wxrichtextctrlsetliststyle}, \helpref{wxRichTextCtrl::PromoteList}{wxrichtextctrlpromotelist}, \helpref{wxRichTextCtrl::ClearListStyle}{wxrichtextctrlclearliststyle}. - -\membersection{wxRichTextCtrl::OnClear}\label{wxrichtextctrlonclear} - -\func{void}{OnClear}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_CLEAR command. - -\membersection{wxRichTextCtrl::OnContextMenu}\label{wxrichtextctrloncontextmenu} - -\func{void}{OnContextMenu}{\param{wxContextMenuEvent\& }{event}} - -Shows a standard context menu with undo, redo, cut, copy, paste, clear, and select all commands. - -\membersection{wxRichTextCtrl::OnCopy}\label{wxrichtextctrloncopy} - -\func{void}{OnCopy}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_COPY command. - -\membersection{wxRichTextCtrl::OnCut}\label{wxrichtextctrloncut} - -\func{void}{OnCut}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_CUT command. - -\membersection{wxRichTextCtrl::OnDropFiles}\label{wxrichtextctrlondropfiles} - -\func{void}{OnDropFiles}{\param{wxDropFilesEvent\& }{event}} - -Loads the first dropped file. - -\membersection{wxRichTextCtrl::OnPaste}\label{wxrichtextctrlonpaste} - -\func{void}{OnPaste}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_PASTE command. - -\membersection{wxRichTextCtrl::OnRedo}\label{wxrichtextctrlonredo} - -\func{void}{OnRedo}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_REDO command. - -\membersection{wxRichTextCtrl::OnSelectAll}\label{wxrichtextctrlonselectall} - -\func{void}{OnSelectAll}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_SELECTALL command. - -\membersection{wxRichTextCtrl::OnUndo}\label{wxrichtextctrlonundo} - -\func{void}{OnUndo}{\param{wxCommandEvent\& }{event}} - -Standard handler for the wxID\_PASTE command. - -\membersection{wxRichTextCtrl::OnUpdateClear}\label{wxrichtextctrlonupdateclear} - -\func{void}{OnUpdateClear}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_CLEAR command. - -\membersection{wxRichTextCtrl::OnUpdateCopy}\label{wxrichtextctrlonupdatecopy} - -\func{void}{OnUpdateCopy}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_COPY command. - -\membersection{wxRichTextCtrl::OnUpdateCut}\label{wxrichtextctrlonupdatecut} - -\func{void}{OnUpdateCut}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_CUT command. - -\membersection{wxRichTextCtrl::OnUpdatePaste}\label{wxrichtextctrlonupdatepaste} - -\func{void}{OnUpdatePaste}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_PASTE command. - -\membersection{wxRichTextCtrl::OnUpdateRedo}\label{wxrichtextctrlonupdateredo} - -\func{void}{OnUpdateRedo}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_REDO command. - -\membersection{wxRichTextCtrl::OnUpdateSelectAll}\label{wxrichtextctrlonupdateselectall} - -\func{void}{OnUpdateSelectAll}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_SELECTALL command. - -\membersection{wxRichTextCtrl::OnUpdateUndo}\label{wxrichtextctrlonupdateundo} - -\func{void}{OnUpdateUndo}{\param{wxUpdateUIEvent\& }{event}} - -Standard update handler for the wxID\_UNDO command. - -\membersection{wxRichTextCtrl::PageDown}\label{wxrichtextctrlpagedown} - -\func{bool}{PageDown}{\param{int }{noPages = 1}, \param{int }{flags = 0}} - -Moves one or more pages down. - -\membersection{wxRichTextCtrl::PageUp}\label{wxrichtextctrlpageup} - -\func{bool}{PageUp}{\param{int }{noPages = 1}, \param{int }{flags = 0}} - -Moves one or more pages up. - -\membersection{wxRichTextCtrl::PaintBackground}\label{wxrichtextctrlpaintbackground} - -\func{void}{PaintBackground}{\param{wxDC\& }{dc}} - -Paints the background. - -\membersection{wxRichTextCtrl::Paste}\label{wxrichtextctrlpaste} - -\func{void}{Paste}{\void} - -Pastes content from the clipboard to the buffer. - -\membersection{wxRichTextCtrl::PositionCaret}\label{wxrichtextctrlpositioncaret} - -\func{void}{PositionCaret}{\void} - -Internal function to position the visible caret according to the current caret position. - -\membersection{wxRichTextCtrl::PositionToXY}\label{wxrichtextctrlpositiontoxy} - -\constfunc{bool}{PositionToXY}{\param{long }{pos}, \param{long* }{x}, \param{long* }{y}} - -Converts a text position to zero-based column and line numbers. - -\membersection{wxRichTextCtrl::PromoteList}\label{wxrichtextctrlpromotelist} - -\func{bool}{PromoteList}{\param{int}{ promoteBy}, \param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ listLevel = -1}} - -\func{bool}{PromoteList}{\param{int}{ promoteBy}, \param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ listLevel = -1}} - -Promotes or demotes the paragraphs in the given range. A positive {\it promoteBy} produces a smaller indent, and a negative number -produces a larger indent. Pass flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextCtrl::SetListStyle}{wxrichtextctrlsetliststyle}, See also \helpref{wxRichTextCtrl::SetListStyle}{wxrichtextctrlnumberlist}, \helpref{wxRichTextCtrl::ClearListStyle}{wxrichtextctrlclearliststyle}. - -\membersection{wxRichTextCtrl::Redo}\label{wxrichtextctrlredo} - -\func{void}{Redo}{\void} - -Redoes the current command. - -\membersection{wxRichTextCtrl::Remove}\label{wxrichtextctrlremove} - -\func{void}{Remove}{\param{long }{from}, \param{long }{to}} - -Removes the content in the specified range. - -\membersection{wxRichTextCtrl::Replace}\label{wxrichtextctrlreplace} - -\func{void}{Replace}{\param{long }{from}, \param{long }{to}, \param{const wxString\& }{value}} - -Replaces the content in the specified range with the string specified by {\it value}. - -\membersection{wxRichTextCtrl::SaveFile}\label{wxrichtextctrlsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{file = wxEmptyString}, \param{int }{type = wxRICHTEXT\_TYPE\_ANY}} - -Saves the buffer content using the given type. If the specified type -is wxRICHTEXT\_TYPE\_ANY, the type is deduced from the filename extension. - -This function looks for a suitable \helpref{wxRichTextFileHandler}{wxrichtextfilehandler} object. - -\membersection{wxRichTextCtrl::ScrollIntoView}\label{wxrichtextctrlscrollintoview} - -\func{bool}{ScrollIntoView}{\param{long }{position}, \param{int }{keyCode}} - -Scrolls {\it position} into view. This function takes a caret position. - -\membersection{wxRichTextCtrl::SelectAll}\label{wxrichtextctrlselectall} - -\func{void}{SelectAll}{\void} - -Selects all the text in the buffer. - -\membersection{wxRichTextCtrl::SelectNone}\label{wxrichtextctrlselectnone} - -\func{void}{SelectNone}{\void} - -Cancels any selection. - -\membersection{wxRichTextCtrl::SetAndShowDefaultStyle}\label{wxrichtextctrlsetandshowdefaultstyle} - -\func{void}{SetAndShowDefaultStyle}{\param{const wxTextAttr\& }{attr}} - -Sets {\it attr} as the default style and tells the control that the UI should reflect -this attribute until the user moves the caret. - -See also \helpref{IsDefaultStyleShowing}{wxrichtextctrlisdefaultstyleshowing}. - -\membersection{wxRichTextCtrl::SetBasicStyle}\label{wxrichtextctrlsetbasicstyle} - -\func{void}{SetBasicStyle}{\param{const wxTextAttr\& }{style}} - -Sets the basic (overall) style. This is the style of the whole -buffer before further styles are applied, unlike the default style, which -only affects the style currently being applied (for example, setting the default -style to bold will cause subsequently inserted text to be bold). - -\membersection{wxRichTextCtrl::SetCaretPosition}\label{wxrichtextctrlsetcaretposition} - -\func{void}{SetCaretPosition}{\param{long }{position}, \param{bool }{showAtLineStart = false}} - -The caret position is the character position just before the caret. -A value of -1 means the caret is at the start of the buffer. - -\membersection{wxRichTextCtrl::SetDefaultStyle}\label{wxrichtextctrlsetdefaultstyle} - -\func{bool}{SetDefaultStyle}{\param{const wxTextAttr\& }{style}} - -Sets the current default style, which can be used to change how subsequently inserted -text is displayed. - -\membersection{wxRichTextCtrl::SetDefaultStyleToCursorStyle}\label{wxrichtextctrlsetdefaultstyletocursorstyle} - -\func{bool}{SetDefaultStyleToCursorStyle}{\void} - -Sets the default style to the style under the cursor. - -\membersection{wxRichTextCtrl::SetDelayedLayoutThreshold}\label{wxrichtextctrlsetdelayedlayoutthreshold} - -\func{void}{SetDelayedLayoutThreshold}{\param{long }{threshold}} - -Sets the size of the buffer beyond which layout is delayed during resizing. -This optimizes sizing for large buffers. The default is 20000. - -\membersection{wxRichTextCtrl::SetEditable}\label{wxrichtextctrlseteditable} - -\func{void}{SetEditable}{\param{bool }{editable}} - -Makes the control editable, or not. - -\membersection{wxRichTextCtrl::SetFilename}\label{wxrichtextctrlsetfilename} - -\func{void}{SetFilename}{\param{const wxString\& }{filename}} - -Sets the current filename. - -\membersection{wxRichTextCtrl::SetFont}\label{wxrichtextctrlsetfont} - -\func{bool}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font, and also the basic and default attributes (see \helpref{SetDefaultStyle}{wxrichtextctrlsetdefaultstyle}). - -\membersection{wxRichTextCtrl::SetHandlerFlags}\label{wxrichtextctrlsethandlerflags} - -\func{void}{SetHandlerFlags}{\param{int }{flags}} - -Sets flags that change the behaviour of loading or saving. See the documentation for each -handler class to see what flags are relevant for each handler. - -\membersection{wxRichTextCtrl::SetInsertionPoint}\label{wxrichtextctrlsetinsertionpoint} - -\func{void}{SetInsertionPoint}{\param{long }{pos}} - -Sets the insertion point. - -\membersection{wxRichTextCtrl::SetInsertionPointEnd}\label{wxrichtextctrlsetinsertionpointend} - -\func{void}{SetInsertionPointEnd}{\void} - -Sets the insertion point to the end of the text control. - -\membersection{wxRichTextCtrl::SetListStyle}\label{wxrichtextctrlsetliststyle} - -\func{bool}{SetListStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxRichTextListStyleDefinition* }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -\func{bool}{SetListStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxString\& }{styleName}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}, \param{int}{ startFrom = -1}, \param{int}{ listLevel = -1}} - -Sets the list attributes for the given range, passing flags to determine how the attributes are set. -Either the style definition or the name of the style definition (in the current sheet) can be passed. - -{\it flags} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this command will be undoable. -\item wxRICHTEXT\_SETSTYLE\_RENUMBER: specifies that numbering should start from {\it startFrom}, otherwise existing attributes are used. -\item wxRICHTEXT\_SETSTYLE\_SPECIFY\_LEVEL: specifies that {\it listLevel} should be used as the level for all paragraphs, otherwise the current indentation will be used. -\end{itemize} - -See also \helpref{wxRichTextCtrl::NumberList}{wxrichtextctrlnumberlist}, \helpref{wxRichTextCtrl::PromoteList}{wxrichtextctrlpromotelist}, \helpref{wxRichTextCtrl::ClearListStyle}{wxrichtextctrlclearliststyle}. - -\membersection{wxRichTextCtrl::SetSelection}\label{wxrichtextctrlsetselection} - -\func{void}{SetSelection}{\param{long }{from}, \param{long }{to}} - -Sets the selection to the given range. - -The end point of range is specified as the last character position of the span of text, plus one. -So, for example, to set the selection for a character at position 5, use the range (5,6). - -\membersection{wxRichTextCtrl::SetSelectionRange}\label{wxrichtextctrlsetselectionrange} - -\func{void}{SetSelectionRange}{\param{const wxRichTextRange\& }{range}} - -Sets the selection to the given range. - -The end point of range is specified as the last character position of the span of text, plus one. -So, for example, to set the selection for a character at position 5, use the range (5,6). - -\membersection{wxRichTextCtrl::SetStyle}\label{wxrichtextctrlsetstyle} - -\func{bool}{SetStyle}{\param{const wxRichTextRange\& }{range}, \param{const wxTextAttr\& }{style}} - -\func{bool}{SetStyle}{\param{long }{start}, \param{long }{end}, \param{const wxTextAttr\& }{style}} - -Sets the attributes for the given range. - -The end point of range is specified as the last character position of the span of text, plus one. -So, for example, to set the style for a character at position 5, use the range (5,6). - -\membersection{wxRichTextCtrl::SetStyleEx}\label{wxrichtextctrlsetstyleex} - -\func{bool}{SetStyleEx}{\param{const wxRichTextRange\& }{range}, \param{const wxTextAttr\& }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -\func{bool}{SetStyleEx}{\param{long }{start}, \param{long }{end}, \param{const wxTextAttr\& }{style}, \param{int }{flags $=$ wxRICHTEXT\_SETSTYLE\_WITH\_UNDO}} - -Sets the attributes for the given range, passing flags to determine how the attributes are set. - -The end point of range is specified as the last character position of the span of text, plus one. -So, for example, to set the style for a character at position 5, use the range (5,6). - -{\it flags} may contain a bit list of the following values: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_NONE: no style flag. -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO: specifies that this operation should be undoable. -\item wxRICHTEXT\_SETSTYLE\_OPTIMIZE: specifies that the style should not be applied if the -combined style at this point is already the style in question. -\item wxRICHTEXT\_SETSTYLE\_PARAGRAPHS\_ONLY: specifies that the style should only be applied to paragraphs, -and not the content. This allows content styling to be preserved independently from that of e.g. a named paragraph style. -\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters, -and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style. -\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style. -\item wxRICHTEXT\_SETSTYLE\_REMOVE: removes the specified style. Only the style flags are used in this operation. -\end{itemize} - -\membersection{wxRichTextCtrl::SetStyleSheet}\label{wxrichtextctrlsetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} - -Sets the style sheet associated with the control. A style sheet allows named -character and paragraph styles to be applied. - -\membersection{wxRichTextCtrl::SetValue}\label{wxrichtextctrlsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{value}} - -Replaces existing content with the given text. - -\membersection{wxRichTextCtrl::SetupScrollbars}\label{wxrichtextctrlsetupscrollbars} - -\func{void}{SetupScrollbars}{\param{bool }{atTop = false}} - -A helper function setting up scrollbars, for example after a resize. - -\membersection{wxRichTextCtrl::ShowPosition}\label{wxrichtextctrlshowposition} - -\func{void}{ShowPosition}{\param{long }{pos}} - -Scrolls the buffer so that the given position is in view. - -\membersection{wxRichTextCtrl::SuppressingUndo}\label{wxrichtextctrlsuppressingundo} - -\constfunc{bool}{SuppressingUndo}{\void} - -Returns \true if undo history suppression is on. - -\membersection{wxRichTextCtrl::Thaw}\label{wxrichtextctrlthaw} - -\func{void}{Thaw}{\void} - -Call this function to end a Freeze and refresh the display. - -\membersection{wxRichTextCtrl::Undo}\label{wxrichtextctrlundo} - -\func{void}{Undo}{\void} - -Undoes the command at the top of the command history, if there is one. - -\membersection{wxRichTextCtrl::WordLeft}\label{wxrichtextctrlwordleft} - -\func{bool}{WordLeft}{\param{int }{noWords = 1}, \param{int }{flags = 0}} - -Moves a number of words to the left. - -\membersection{wxRichTextCtrl::WordRight}\label{wxrichtextctrlwordright} - -\func{bool}{WordRight}{\param{int }{noWords = 1}, \param{int }{flags = 0}} - -Move a nuber of words to the right. - -\membersection{wxRichTextCtrl::WriteImage}\label{wxrichtextctrlwriteimage} - -\func{bool}{WriteImage}{\param{const wxString\& }{filename}, \param{int }{bitmapType}} - -Loads an image from a file and writes it at the current insertion point. - -\func{bool}{WriteImage}{\param{const wxRichTextImageBlock\& }{imageBlock}} - -Writes an image block at the current insertion point. - -\func{bool}{WriteImage}{\param{const wxBitmap\& }{bitmap}, \param{int }{bitmapType = wxBITMAP\_TYPE\_PNG}} - -\func{bool}{WriteImage}{\param{const wxImage\& }{image}, \param{int }{bitmapType = wxBITMAP\_TYPE\_PNG}} - -Write a bitmap or image at the current insertion point. Supply an optional type to use -for internal and file storage of the raw data. - -\membersection{wxRichTextCtrl::WriteText}\label{wxrichtextctrlwritetext} - -\func{void}{WriteText}{\param{const wxString\& }{text}} - -Writes text at the current position. - -\membersection{wxRichTextCtrl::XYToPosition}\label{wxrichtextctrlxytoposition} - -\constfunc{long}{XYToPosition}{\param{long }{x}, \param{long }{y}} - -Translates from column and line number to position. - diff --git a/docs/latex/wx/richtextevent.tex b/docs/latex/wx/richtextevent.tex deleted file mode 100644 index 00bdc9e759..0000000000 --- a/docs/latex/wx/richtextevent.tex +++ /dev/null @@ -1,138 +0,0 @@ -\section{\class{wxRichTextEvent}}\label{wxrichtextevent} - -This is the event class for \helpref{wxRichTextCtrl}{wxrichtextctrl} notifications. - -\wxheading{Event table macros} - -To process a rich text event, use these event handler macros to direct input to a member -function that takes a wxRichTextEvent argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -%\twocolitem{{\bf EVT\_RICHTEXT\_LEFT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_LEFT\_CLICK event. Not currently implemented.} -%\twocolitem{{\bf EVT\_RICHTEXT\_RIGHT\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_RIGHT\_CLICK event. Not currently implemented.} -%\twocolitem{{\bf EVT\_RICHTEXT\_MIDDLE\_CLICK(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_MIDDLE\_CLICK event. Not currently implemented.} -%\twocolitem{{\bf EVT\_RICHTEXT\_LEFT\_DCLICK(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_LEFT\_DCLICK event. Not currently implemented.} -\twocolitem{{\bf EVT\_RICHTEXT\_CHARACTER(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_CHARACTER event, generated when the user presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter.} -\twocolitem{{\bf EVT\_RICHTEXT\_DELETE(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_DELETE event, generated when the user presses the backspace or delete key. Valid event functions: GetFlags, GetPosition.} -\twocolitem{{\bf EVT\_RICHTEXT\_RETURN(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_RETURN event, generated when the user presses the return key. Valid event functions: GetFlags, GetPosition.} -%\twocolitem{{\bf EVT\_RICHTEXT\_SELECTION\_CHANGED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_SELECTION\_CHANGED event, generated when the selection has been changed. Not currently implemented.} -\twocolitem{{\bf EVT\_RICHTEXT\_STYLE\_CHANGED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_STYLE\_CHANGED event, generated when styling has been applied to the control. Valid event functions: GetPosition, GetRange.} -%\twocolitem{{\bf EVT\_RICHTEXT\_STYLESHEET\_CHANGING(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGING event, generated when the control's stylesheet is about to change, for example the user added, edited or deleted a style.} -\twocolitem{{\bf EVT\_RICHTEXT\_STYLESHEET\_CHANGED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGING event, generated when the control's stylesheet has changed, for example the user added, edited or deleted a style. Valid event functions: GetRange, GetPosition.} -\twocolitem{{\bf EVT\_RICHTEXT\_STYLESHEET\_REPLACING(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_REPLACING event, generated when the control's stylesheet is about to be replaced, for example when a file is loaded into the control. Valid event functions: Veto, GetOldStyleSheet, GetNewStyleSheet.} -\twocolitem{{\bf EVT\_RICHTEXT\_STYLESHEET\_REPLACED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_REPLACED event, generated when the control's stylesheet has been replaced, for example when a file is loaded into the control. Valid event functions: GetOldStyleSheet, GetNewStyleSheet.} -\twocolitem{{\bf EVT\_RICHTEXT\_CONTENT\_INSERTED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_CONTENT\_INSERTED event, generated when content has been inserted into the control. Valid event functions: GetPosition, GetRange.} -\twocolitem{{\bf EVT\_RICHTEXT\_CONTENT\_DELETED(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_CONTENT\_DELETED event, generated when content has been deleted from the control. Valid event functions: GetPosition, GetRange.} -\twocolitem{{\bf EVT\_RICHTEXT\_BUFFER\_RESET(id, func)}}{Process a wxEVT\_COMMAND\_RICHTEXT\_BUFFER\_RESET event, generated when the buffer has been reset by deleting all content. You can use this to set a default style for the first new paragraph.} -\end{twocollist}% - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextctrl.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextEvent::wxRichTextEvent}\label{wxrichtexteventwxrichtextevent} - -\func{}{wxRichTextEvent}{\param{const wxRichTextEvent\& }{event}} - -\func{}{wxRichTextEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{winid = 0}} - -Constructors. - -\membersection{wxRichTextEvent::Clone}\label{wxrichtexteventclone} - -\constfunc{wxEvent*}{Clone}{\void} - -Clones the event. - -\membersection{wxRichTextEvent::GetCharacter}\label{wxrichtexteventgetcharacter} - -\constfunc{wxChar}{GetCharacter}{\void} - -Returns the character pressed, within a wxEVT\_COMMAND\_RICHTEXT\_CHARACTER event. - -\membersection{wxRichTextEvent::GetFlags}\label{wxrichtexteventgetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns flags indicating modifier keys pressed. Possible values are wxRICHTEXT\_CTRL\_DOWN, -wxRICHTEXT\_SHIFT\_DOWN, and wxRICHTEXT\_ALT\_DOWN. - -\membersection{wxRichTextEvent::GetNewStyleSheet}\label{wxrichtexteventgetnewstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetNewStyleSheet}{\void} - -Returns the new style sheet. Can be used in a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGING or -wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGED event handler. - -\membersection{wxRichTextEvent::GetOldStyleSheet}\label{wxrichtexteventgetoldstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetOldStyleSheet}{\void} - -Returns the old style sheet. Can be used in a wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGING or -wxEVT\_COMMAND\_RICHTEXT\_STYLESHEET\_CHANGED event handler. - -\membersection{wxRichTextEvent::GetPosition}\label{wxrichtexteventgetposition} - -\constfunc{long}{GetPosition}{\void} - -Returns the buffer position at which the event occured. - -\membersection{wxRichTextEvent::GetRange}\label{wxrichtexteventgetrange} - -\constfunc{wxRichTextRange}{GetRange}{\void} - -Gets the range for the current operation. - -\membersection{wxRichTextEvent::SetCharacter}\label{wxrichtexteventsetcharacter} - -\func{void}{SetCharacter}{\param{wxChar }{ch}} - -Sets the character variable. - -\membersection{wxRichTextEvent::SetFlags}\label{wxrichtexteventsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets flags indicating modifier keys pressed. Possible values are wxRICHTEXT\_CTRL\_DOWN, -wxRICHTEXT\_SHIFT\_DOWN, and wxRICHTEXT\_ALT\_DOWN. - -\membersection{wxRichTextEvent::SetNewStyleSheet}\label{wxrichtexteventsetnewstylesheet} - -\func{void}{SetNewStyleSheet}{\param{wxRichTextStyleSheet*}{ sheet}} - -Sets the new style sheet variable. - -\membersection{wxRichTextEvent::SetOldStyleSheet}\label{wxrichtexteventsetoldstylesheet} - -\func{void}{SetOldStyleSheet}{\param{wxRichTextStyleSheet*}{ sheet}} - -Sets the old style sheet variable. - -\membersection{wxRichTextEvent::SetPosition}\label{wxrichtexteventsetposition} - -\func{void}{SetPosition}{\param{long }{pos}} - -Sets the buffer position variable. - -\membersection{wxRichTextEvent::SetRange}\label{wxrichtexteventsetrange} - -\func{void}{SetRange}{\param{const wxRichTextRange\&}{ range}} - -Sets the range variable. - diff --git a/docs/latex/wx/richtextfilehandler.tex b/docs/latex/wx/richtextfilehandler.tex deleted file mode 100644 index 27d80cc924..0000000000 --- a/docs/latex/wx/richtextfilehandler.tex +++ /dev/null @@ -1,154 +0,0 @@ -\section{\class{wxRichTextFileHandler}}\label{wxrichtextfilehandler} - -This is the base class for file handlers, for loading and/or saving content -associated with a \helpref{wxRichTextBuffer}{wxrichtextbuffer}. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextbuffer.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextFileHandler::wxRichTextFileHandler}\label{wxrichtextfilehandlerwxrichtextfilehandler} - -\func{}{wxRichTextFileHandler}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxString\& }{ext = wxEmptyString}, \param{int }{type = 0}} - -Constructor. - -\membersection{wxRichTextFileHandler::CanHandle}\label{wxrichtextfilehandlercanhandle} - -\constfunc{bool}{CanHandle}{\param{const wxString\& }{filename}} - -Override this function and return \true if this handler can we handle {\it filename}. By default, -this function checks the extension. - -\membersection{wxRichTextFileHandler::CanLoad}\label{wxrichtextfilehandlercanload} - -\constfunc{bool}{CanLoad}{\void} - -Override and return \true if this handler can load content. - -\membersection{wxRichTextFileHandler::CanSave}\label{wxrichtextfilehandlercansave} - -\constfunc{bool}{CanSave}{\void} - -Override and return \true if this handler can save content. - -\membersection{wxRichTextFileHandler::DoLoadFile}\label{wxrichtextfilehandlerdoloadfile} - -\func{bool}{DoLoadFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxInputStream\& }{stream}} - -Override to load content from {\it stream} into {\it buffer}. - -\membersection{wxRichTextFileHandler::DoSaveFile}\label{wxrichtextfilehandlerdosavefile} - -\func{bool}{DoSaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxOutputStream\& }{stream}} - -Override to save content to {\it stream} from {\it buffer}. - -\membersection{wxRichTextFileHandler::GetEncoding}\label{wxrichtextfilehandlergetencoding} - -\constfunc{const wxString\&}{GetEncoding}{\void} - -Returns the encoding associated with the handler (if any). - -\membersection{wxRichTextFileHandler::GetExtension}\label{wxrichtextfilehandlergetextension} - -\constfunc{wxString}{GetExtension}{\void} - -Returns the extension associated with the handler. - -\membersection{wxRichTextFileHandler::GetFlags}\label{wxrichtextfilehandlergetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns flags that change the behaviour of loading or saving. See the documentation for each -handler class to see what flags are relevant for each handler. - -\membersection{wxRichTextFileHandler::GetName}\label{wxrichtextfilehandlergetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the name of the handler. - -\membersection{wxRichTextFileHandler::GetType}\label{wxrichtextfilehandlergettype} - -\constfunc{int}{GetType}{\void} - -Returns the type of the handler. - -\membersection{wxRichTextFileHandler::IsVisible}\label{wxrichtextfilehandlerisvisible} - -\constfunc{bool}{IsVisible}{\void} - -Returns \true if this handler should be visible to the user. - -\membersection{wxRichTextFileHandler::LoadFile}\label{wxrichtextfilehandlerloadfile} - -\func{bool}{LoadFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxInputStream\& }{stream}} - -\func{bool}{LoadFile}{\param{wxRichTextBuffer* }{buffer}, \param{const wxString\& }{filename}} - -Loads content from a stream or file. Not all handlers will implement file loading. - -\membersection{wxRichTextFileHandler::SaveFile}\label{wxrichtextfilehandlersavefile} - -\func{bool}{SaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxOutputStream\& }{stream}} - -\func{bool}{SaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{const wxString\& }{filename}} - -Saves content to a stream or file. Not all handlers will implement file saving. - -\membersection{wxRichTextFileHandler::SetEncoding}\label{wxrichtextfilehandlersetencoding} - -\func{void}{SetEncoding}{\param{const wxString\& }{encoding}} - -Sets the encoding to use when saving a file. If empty, a suitable encoding is chosen. - -\membersection{wxRichTextFileHandler::SetExtension}\label{wxrichtextfilehandlersetextension} - -\func{void}{SetExtension}{\param{const wxString\& }{ext}} - -Sets the default extension to recognise. - -\membersection{wxRichTextFileHandler::SetFlags}\label{wxrichtextfilehandlersetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets flags that change the behaviour of loading or saving. See the documentation for each -handler class to see what flags are relevant for each handler. - -You call this function directly if you are using a file handler explicitly (without -going through the text control or buffer LoadFile/SaveFile API). Or, you can -call the control or buffer's SetHandlerFlags function to set the flags that will -be used for subsequent load and save operations. - -\membersection{wxRichTextFileHandler::SetName}\label{wxrichtextfilehandlersetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name of the handler. - -\membersection{wxRichTextFileHandler::SetType}\label{wxrichtextfilehandlersettype} - -\func{void}{SetType}{\param{int }{type}} - -Sets the handler type. - -\membersection{wxRichTextFileHandler::SetVisible}\label{wxrichtextfilehandlersetvisible} - -\func{void}{SetVisible}{\param{bool }{visible}} - -Sets whether the handler should be visible to the user (via the application's load and save -dialogs). - diff --git a/docs/latex/wx/richtextformattingdialog.tex b/docs/latex/wx/richtextformattingdialog.tex deleted file mode 100644 index 3076779e10..0000000000 --- a/docs/latex/wx/richtextformattingdialog.tex +++ /dev/null @@ -1,285 +0,0 @@ -\section{\class{wxRichTextFormattingDialog}}\label{wxrichtextformattingdialog} - -This dialog allows the user to edit a character and/or paragraph style. - -In the constructor, specify the pages that will be created. Use GetStyle -to retrieve the common style for a given range, and then use ApplyStyle -to apply the user-selected formatting to a control. For example: - -\begin{verbatim} - wxRichTextRange range; - if (m_richTextCtrl->HasSelection()) - range = m_richTextCtrl->GetSelectionRange(); - else - range = wxRichTextRange(0, m_richTextCtrl->GetLastPosition()+1); - - int pages = wxRICHTEXT_FORMAT_FONT|wxRICHTEXT_FORMAT_INDENTS_SPACING|wxRICHTEXT_FORMAT_TABS|wxRICHTEXT_FORMAT_BULLETS; - - wxRichTextFormattingDialog formatDlg(pages, this); - formatDlg.GetStyle(m_richTextCtrl, range); - - if (formatDlg.ShowModal() == wxID_OK) - { - formatDlg.ApplyStyle(m_richTextCtrl, range); - } -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxPropertySheetDialog}{wxpropertysheetdialog}\\ -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextformatdlg.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -The following flags passed to the dialog constructor indicate the pages to -be created: - -\begin{verbatim} -#define wxRICHTEXT_FORMAT_STYLE_EDITOR 0x0001 -#define wxRICHTEXT_FORMAT_FONT 0x0002 -#define wxRICHTEXT_FORMAT_TABS 0x0004 -#define wxRICHTEXT_FORMAT_BULLETS 0x0008 -#define wxRICHTEXT_FORMAT_INDENTS_SPACING 0x0010 -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRichTextFormattingDialog::wxRichTextFormattingDialog}\label{wxrichtextformattingdialogwxrichtextformattingdialog} - -\func{}{wxRichTextFormattingDialog}{\param{long }{flags}, \param{wxWindow* }{parent}, \param{const wxString\& }{title = \_("Formatting")}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{sz = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE}} - -\func{}{wxRichTextFormattingDialog}{\void} - -Constructors. - -\wxheading{Parameters} - -\docparam{flags}{The pages to show.} - -\docparam{parent}{The dialog's parent.} - -\docparam{id}{The dialog's identifier.} - -\docparam{title}{The dialog's caption.} - -\docparam{pos}{The dialog's position.} - -\docparam{size}{The dialog's size.} - -\docparam{style}{The dialog's window style.} - - -\membersection{wxRichTextFormattingDialog::\destruct{wxRichTextFormattingDialog}}\label{wxrichtextformattingdialogdtor} - -\func{}{\destruct{wxRichTextFormattingDialog}}{\void} - -Destructor. - -\membersection{wxRichTextFormattingDialog::ApplyStyle}\label{wxrichtextformattingdialogapplystyle} - -\func{bool}{ApplyStyle}{\param{wxRichTextCtrl* }{ctrl}, \param{const wxRichTextRange\& }{range}, \param{int }{flags = wxRICHTEXT\_SETSTYLE\_WITH\_UNDO|wxRICHTEXT\_SETSTYLE\_OPTIMIZE}} - -Apply attributes to the given range, only changing attributes that need to be changed. - -\membersection{wxRichTextFormattingDialog::Create}\label{wxrichtextformattingdialogcreate} - -\func{bool}{Create}{\param{long }{flags}, \param{wxWindow* }{parent}, \param{const wxString\& }{title}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{sz = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE}} - -Creation: see \helpref{the constructor}{wxrichtextformattingdialog} for details about the parameters. - -\membersection{wxRichTextFormattingDialog::GetAttributes}\label{wxrichtextformattingdialoggetattributes} - -\constfunc{const wxTextAttr\&}{GetAttributes}{\void} - -\func{wxTextAttr\&}{GetAttributes}{\void} - -Gets the attributes being edited. - -\membersection{wxRichTextFormattingDialog::GetDialog}\label{wxrichtextformattingdialoggetdialog} - -\func{wxRichTextFormattingDialog*}{GetDialog}{\param{wxWindow* }{win}} - -Helper for pages to get the top-level dialog. - -\membersection{wxRichTextFormattingDialog::GetDialogAttributes}\label{wxrichtextformattingdialoggetdialogattributes} - -\func{wxTextAttr*}{GetDialogAttributes}{\param{wxWindow* }{win}} - -Helper for pages to get the attributes. - -\membersection{wxRichTextFormattingDialog::GetDialogStyleDefinition}\label{wxrichtextformattingdialoggetdialogstyledefinition} - -\func{wxRichTextStyleDefinition*}{GetDialogStyleDefinition}{\param{wxWindow* }{win}} - -Helper for pages to get the style. - -\membersection{wxRichTextFormattingDialog::GetFormattingDialogFactory}\label{wxrichtextformattingdialoggetformattingdialogfactory} - -\func{wxRichTextFormattingDialogFactory*}{GetFormattingDialogFactory}{\void} - -Returns the object to be used to customize the dialog and provide pages. - -\membersection{wxRichTextFormattingDialog::GetImageList}\label{wxrichtextformattingdialoggetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\void} - -Returns the image list associated with the dialog, used for example if showing the dialog as a toolbook. - -\membersection{wxRichTextFormattingDialog::GetStyle}\label{wxrichtextformattingdialoggetstyle} - -\func{bool}{GetStyle}{\param{wxRichTextCtrl* }{ctrl}, \param{const wxRichTextRange\& }{range}} - -Gets common attributes from the given range and calls SetAttributes. Attributes that do not have common values in the given range -will be omitted from the style's flags. - -\membersection{wxRichTextFormattingDialog::GetStyleDefinition}\label{wxrichtextformattingdialoggetstyledefinition} - -\constfunc{wxRichTextStyleDefinition*}{GetStyleDefinition}{\void} - -Gets the associated style definition, if any. - -\membersection{wxRichTextFormattingDialog::GetStyleSheet}\label{wxrichtextformattingdialoggetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Gets the associated style sheet, if any. - -\membersection{wxRichTextFormattingDialog::SetAttributes}\label{wxrichtextformattingdialogsetattributes} - -\func{void}{SetAttributes}{\param{const wxTextAttr\& }{attr}} - -Sets the attributes to be edited. - -\membersection{wxRichTextFormattingDialog::SetFormattingDialogFactory}\label{wxrichtextformattingdialogsetformattingdialogfactory} - -\func{void}{SetFormattingDialogFactory}{\param{wxRichTextFormattingDialogFactory* }{factory}} - -Sets the formatting factory object to be used for customization and page creation. -It deletes the existing factory object. - -\membersection{wxRichTextFormattingDialog::SetImageList}\label{wxrichtextformattingdialogsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList* }{imageList}} - -Sets the image list associated with the dialog's property sheet. - -\membersection{wxRichTextFormattingDialog::SetStyle}\label{wxrichtextformattingdialogsetstyle} - -\func{bool}{SetStyle}{\param{const wxTextAttr\& }{style}, \param{bool }{update = true}} - -Sets the attributes and optionally updates the display, if {\it update} is \true. - -\membersection{wxRichTextFormattingDialog::SetStyleDefinition}\label{wxrichtextformattingdialogsetstyledefinition} - -\func{bool}{SetStyleDefinition}{\param{const wxRichTextStyleDefinition\& }{styleDef}, \param{wxRichTextStyleSheet* }{sheet}, \param{bool }{update = true}} - -Sets the style definition and optionally update the display, if {\it update} is \true. - -\membersection{wxRichTextFormattingDialog::UpdateDisplay}\label{wxrichtextformattingdialogupdatedisplay} - -\func{bool}{UpdateDisplay}{\void} - -Updates the display. - - -% -% automatically generated by HelpGen $Revision$ from -% richtextformatdlg.h at 10/Oct/06 15:42:06 -% - - -\section{\class{wxRichTextFormattingDialogFactory}}\label{wxrichtextformattingdialogfactory} - -This class provides pages for wxRichTextFormattingDialog, and allows other customization of the dialog. -A default instance of this class is provided automatically. If you wish to change the behaviour of the -formatting dialog (for example add or replace a page), you may derive from this class, -override one or more functions, and call the static function wxRichTextFormattingDialog::SetFormattingDialogFactory. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextformatdlg.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxRichTextFormattingDialogFactory::wxRichTextFormattingDialogFactory}\label{wxrichtextformattingdialogfactorywxrichtextformattingdialogfactory} - -\func{}{wxRichTextFormattingDialogFactory}{\void} - -Constructor. - -\membersection{wxRichTextFormattingDialogFactory::\destruct{wxRichTextFormattingDialogFactory}}\label{wxrichtextformattingdialogfactorydtor} - -\func{}{\destruct{wxRichTextFormattingDialogFactory}}{\void} - -Destructor. - -\membersection{wxRichTextFormattingDialogFactory::CreateButtons}\label{wxrichtextformattingdialogfactorycreatebuttons} - -\func{virtual bool}{CreateButtons}{\param{wxRichTextFormattingDialog* }{dialog}} - -Creates the main dialog buttons. - -\membersection{wxRichTextFormattingDialogFactory::CreatePage}\label{wxrichtextformattingdialogfactorycreatepage} - -\func{virtual wxPanel*}{CreatePage}{\param{int }{page}, \param{wxString\& }{title}, \param{wxRichTextFormattingDialog* }{dialog}} - -Creates a page, given a page identifier. - -\membersection{wxRichTextFormattingDialogFactory::CreatePages}\label{wxrichtextformattingdialogfactorycreatepages} - -\func{virtual bool}{CreatePages}{\param{long }{pages}, \param{wxRichTextFormattingDialog* }{dialog}} - -Creates all pages under the dialog's book control, also calling AddPage. - -\membersection{wxRichTextFormattingDialogFactory::GetPageId}\label{wxrichtextformattingdialogfactorygetpageid} - -\constfunc{virtual int}{GetPageId}{\param{int }{i}} - -Enumerate all available page identifiers. - -\membersection{wxRichTextFormattingDialogFactory::GetPageIdCount}\label{wxrichtextformattingdialogfactorygetpageidcount} - -\constfunc{virtual int}{GetPageIdCount}{\void} - -Gets the number of available page identifiers. - -\membersection{wxRichTextFormattingDialogFactory::GetPageImage}\label{wxrichtextformattingdialogfactorygetpageimage} - -\constfunc{virtual int}{GetPageImage}{\param{int }{id}} - -Gets the image index for the given page identifier. - -\membersection{wxRichTextFormattingDialogFactory::SetSheetStyle}\label{wxrichtextformattingdialogfactorysetsheetstyle} - -\func{virtual bool}{SetSheetStyle}{\param{wxRichTextFormattingDialog* }{dialog}} - -Set the property sheet style, called at the start of wxRichTextFormattingDialog::Create. - -\membersection{wxRichTextFormattingDialogFactory::ShowHelp}\label{wxrichtextformattingdialogfactoryshowhelp} - -\func{virtual bool}{ShowHelp}{\param{int }{page}, \param{wxRichTextFormattingDialog* }{dialog}} - -Invokes help for the dialog. - diff --git a/docs/latex/wx/richtextheaderfooterdata.tex b/docs/latex/wx/richtextheaderfooterdata.tex deleted file mode 100644 index 89625f3a71..0000000000 --- a/docs/latex/wx/richtextheaderfooterdata.tex +++ /dev/null @@ -1,179 +0,0 @@ -\section{\class{wxRichTextHeaderFooterData}}\label{wxrichtextheaderfooterdata} - - -This class represents header and footer data to be passed to the \helpref{wxRichTextPrinting}{wxrichtextprinting} and -\helpref{wxRichTextPrintout}{wxrichtextprintout} classes. - -Headers and footers can be specified independently for odd, even or both page sides. Different text can be specified -for left, centre and right locations on the page, and the font and text colour can also -be specified. You can specify the following keywords in header and footer text, which will -be substituted for the actual values during printing and preview. - -\begin{itemize}\itemsep=0pt -\item @DATE@: the current date. -\item @PAGESCNT@: the total number of pages. -\item @PAGENUM@: the current page number. -\item @TIME@: the current time. -\item @TITLE@: the title of the document, as passed to the wxRichTextPrinting or wxRichTextLayout constructor. -\end{itemize} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextprint.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -These are the header and footer page identifiers, passed to functions such as SetFooterText to specify -the odd or even page for the text: - -\begin{verbatim} -enum wxRichTextOddEvenPage { - wxRICHTEXT_PAGE_ODD, - wxRICHTEXT_PAGE_EVEN, - wxRICHTEXT_PAGE_ALL, -} -\end{verbatim} - -These are the location identifiers for passing to functions such as SetFooterText, to specify -whether the text is on the left, centre or right of the page: - -\begin{verbatim} -enum wxRichTextPageLocation { - wxRICHTEXT_PAGE_LEFT, - wxRICHTEXT_PAGE_CENTRE, - wxRICHTEXT_PAGE_RIGHT -} -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextHeaderFooterData::wxRichTextHeaderFooterData}\label{wxrichtextheaderfooterdatawxrichtextheaderfooterdata} - -\func{}{wxRichTextHeaderFooterData}{\void} - -\func{}{wxRichTextHeaderFooterData}{\param{const wxRichTextHeaderFooterData\& }{data}} - -Constructors. - -\membersection{wxRichTextHeaderFooterData::Clear}\label{wxrichtextheaderfooterdataclear} - -\func{void}{Clear}{\void} - -Clears all text. - -\membersection{wxRichTextHeaderFooterData::Copy}\label{wxrichtextheaderfooterdatacopy} - -\func{void}{Copy}{\param{const wxRichTextHeaderFooterData\& }{data}} - -Copies the data. - -\membersection{wxRichTextHeaderFooterData::GetFont}\label{wxrichtextheaderfooterdatagetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Returns the font specified for printing the header and footer. - -\membersection{wxRichTextHeaderFooterData::GetFooterMargin}\label{wxrichtextheaderfooterdatagetfootermargin} - -\constfunc{int}{GetFooterMargin}{\void} - -Returns the margin between the text and the footer. - -\membersection{wxRichTextHeaderFooterData::GetFooterText}\label{wxrichtextheaderfooterdatagetfootertext} - -\constfunc{wxString}{GetFooterText}{\param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_EVEN}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -Returns the footer text on odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::GetHeaderMargin}\label{wxrichtextheaderfooterdatagetheadermargin} - -\constfunc{int}{GetHeaderMargin}{\void} - -Returns the margin between the text and the header. - -\membersection{wxRichTextHeaderFooterData::GetHeaderText}\label{wxrichtextheaderfooterdatagetheadertext} - -\constfunc{wxString}{GetHeaderText}{\param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_EVEN}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -Returns the header text on odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::GetShowOnFirstPage}\label{wxrichtextheaderfooterdatagetshowonfirstpage} - -\constfunc{bool}{GetShowOnFirstPage}{\void} - -Returns \true if the header and footer will be shown on the first page. - -\membersection{wxRichTextHeaderFooterData::GetText}\label{wxrichtextheaderfooterdatagettext} - -\constfunc{wxString}{GetText}{\param{int }{headerFooter}, \param{wxRichTextOddEvenPage }{page}, \param{wxRichTextPageLocation }{location}} - -Helper function for getting the header or footer text, odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::GetTextColour}\label{wxrichtextheaderfooterdatagettextcolour} - -\constfunc{const wxColour\&}{GetTextColour}{\void} - -Returns the text colour for drawing the header and footer. - -\membersection{wxRichTextHeaderFooterData::Init}\label{wxrichtextheaderfooterdatainit} - -\func{void}{Init}{\void} - -Initialises the object. - -\membersection{wxRichTextHeaderFooterData::SetFont}\label{wxrichtextheaderfooterdatasetfont} - -\func{void}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font for drawing the header and footer. - -\membersection{wxRichTextHeaderFooterData::SetFooterText}\label{wxrichtextheaderfooterdatasetfootertext} - -\func{void}{SetFooterText}{\param{const wxString\& }{text}, \param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_ALL}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -Sets the footer text on odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::SetHeaderText}\label{wxrichtextheaderfooterdatasetheadertext} - -\func{void}{SetHeaderText}{\param{const wxString\& }{text}, \param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_ALL}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -Sets the header text on odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::SetMargins}\label{wxrichtextheaderfooterdatasetmargins} - -\func{void}{SetMargins}{\param{int }{headerMargin}, \param{int }{footerMargin}} - -Sets the margins between text and header or footer, in tenths of a millimeter. - -\membersection{wxRichTextHeaderFooterData::SetShowOnFirstPage}\label{wxrichtextheaderfooterdatasetshowonfirstpage} - -\func{void}{SetShowOnFirstPage}{\param{bool }{showOnFirstPage}} - -Pass \true to show the header or footer on first page (the default). - -\membersection{wxRichTextHeaderFooterData::SetText}\label{wxrichtextheaderfooterdatasettext} - -\func{void}{SetText}{\param{const wxString\& }{text}, \param{int }{headerFooter}, \param{wxRichTextOddEvenPage }{page}, \param{wxRichTextPageLocation }{location}} - -Helper function for setting the header or footer text, odd or even pages, and at a given position on the page (left, centre or right). - -\membersection{wxRichTextHeaderFooterData::SetTextColour}\label{wxrichtextheaderfooterdatasettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{col}} - -Sets the text colour for drawing the header and footer. - -\membersection{wxRichTextHeaderFooterData::operator=}\label{wxrichtextheaderfooterdataoperatorassign} - -\func{void operator}{operator=}{\param{const wxRichTextHeaderFooterData\& }{data}} - -Assignment operator. - diff --git a/docs/latex/wx/richtexthtmlhandler.tex b/docs/latex/wx/richtexthtmlhandler.tex deleted file mode 100644 index 03106e20be..0000000000 --- a/docs/latex/wx/richtexthtmlhandler.tex +++ /dev/null @@ -1,141 +0,0 @@ -\section{\class{wxRichTextHTMLHandler}}\label{wxrichtexthtmlhandler} - -Handles HTML output (only) for \helpref{wxRichTextCtrl}{wxrichtextctrl} content. - -The most flexible way to use this class is to create a temporary object and call -its functions directly, rather than use \helpref{wxRichTextBuffer::SaveFile}{wxrichtextbuffersavefile} or\rtfsp -\helpref{wxRichTextCtrl::SaveFile}{wxrichtextctrlsavefile}. - -Image handling requires a little extra work from the application, to choose an -appropriate image format for the target HTML viewer and to clean up the temporary images -later. If you are planning to load the HTML into a standard web browser, you can -specify the handler flag wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_BASE64 (the default) -and no extra work is required: the images will be written with the HTML. - -However, if you want wxHTML compatibility, you will need to use wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_MEMORY -or wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_FILES. In this case, you must either call \helpref{DeleteTemporaryImages}{wxrichtexthtmlhandlerdeletetemporaryimages} before -the next load operation, or you must store the image -locations and delete them yourself when appropriate. You can call \helpref{GetTemporaryImageLocations}{wxrichtexthtmlhandlergettemporaryimagelocations} to -get the array of temporary image names. - -\wxheading{Handler flags} - -The following flags can be used with this handler, via -the handler's SetFlags function or the buffer or control's -SetHandlerFlags function: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_MEMORY}}{Images are saved to the memory filesystem: suitable for showing wxHTML windows.} -\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_FILES}}{Images are saved to temporary files: suitable for showing in wxHTML windows.} -\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_SAVE\_IMAGES\_TO\_BASE64}}{Images are written with the HTML files in Base 64 format: suitable for showing in web browsers.} -\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_NO\_HEADER\_FOOTER}}{Don't include header and footer tags (HTML, HEAD, BODY), so that the HTML can be used as part of a larger document.} -\end{twocollist} - -\wxheading{Derived from} - -\helpref{wxRichTextFileHandler}{wxrichtextfilehandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtexthtml.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextHTMLHandler::wxRichTextHTMLHandler}\label{wxrichtexthtmlhandlerwxrichtexthtmlhandler} - -\func{}{wxRichTextHTMLHandler}{\param{const wxString\& }{name = wxT("HTML")}, \param{const wxString\& }{ext = wxT("html")}, \param{int }{type = wxRICHTEXT\_TYPE\_HTML}} - -Constructor. - -\membersection{wxRichTextHTMLHandler::ClearTemporaryImageLocations}\label{wxrichtexthtmlhandlercleartemporaryimagelocations} - -\func{void}{ClearTemporaryImageLocations}{\void} - -Clears the image locations generated by the last operation. - -\membersection{wxRichTextHTMLHandler::DeleteTemporaryImages}\label{wxrichtexthtmlhandlerdeletetemporaryimages} - -\func{bool}{DeleteTemporaryImages}{\void} - -Deletes the in-memory or temporary files generated by the last operation. - -\func{bool}{DeleteTemporaryImages}{\param{int }{flags}, \param{const wxArrayString\& }{imageLocations}} - -Delete the in-memory or temporary files generated by the last operation. This is a static -function that can be used to delete the saved locations from an earlier operation, -for example after the user has viewed the HTML file. - -\membersection{wxRichTextHTMLHandler::DoSaveFile}\label{wxrichtexthtmlhandlerdosavefile} - -\func{bool}{DoSaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxOutputStream\& }{stream}} - -Saves the buffer content to the HTML stream. - -\membersection{wxRichTextHTMLHandler::GetFontSizeMapping}\label{wxrichtexthtmlhandlergetfontsizemapping} - -\func{wxArrayInt}{GetFontSizeMapping}{\void} - -Returns the mapping for converting point sizes to HTML font sizes. - -\membersection{wxRichTextHTMLHandler::GetTempDir}\label{wxrichtexthtmlhandlergettempdir} - -\constfunc{const wxString\&}{GetTempDir}{\void} - -Returns the directory used to store temporary image files. - -\membersection{wxRichTextHTMLHandler::GetTemporaryImageLocations}\label{wxrichtexthtmlhandlergettemporaryimagelocations} - -\constfunc{const wxArrayString\&}{GetTemporaryImageLocations}{\void} - -Returns the image locations for the last operation. - -\membersection{wxRichTextHTMLHandler::SetFileCounter}\label{wxrichtexthtmlhandlersetfilecounter} - -\func{void}{SetFileCounter}{\param{int }{counter}} - -Reset the file counter, in case, for example, the same names are required each time - -\membersection{wxRichTextHTMLHandler::SetFontSizeMapping}\label{wxrichtexthtmlhandlersetfontsizemapping} - -\func{void}{SetFontSizeMapping}{\param{const wxArrayInt\& }{fontSizeMapping}} - -Sets the mapping for converting point sizes to HTML font sizes. -There should be 7 elements, one for each HTML font size, each element specifying the maximum point size for that -HTML font size. - -For example: - -\begin{verbatim} - wxArrayInt fontSizeMapping; - fontSizeMapping.Add(7); - fontSizeMapping.Add(9); - fontSizeMapping.Add(11); - fontSizeMapping.Add(12); - fontSizeMapping.Add(14); - fontSizeMapping.Add(22); - fontSizeMapping.Add(100); - - htmlHandler.SetFontSizeMapping(fontSizeMapping); -\end{verbatim} - -\membersection{wxRichTextHTMLHandler::SetTempDir}\label{wxrichtexthtmlhandlersettempdir} - -\func{void}{SetTempDir}{\param{const wxString\& }{tempDir}} - -Sets the directory for storing temporary files. If empty, the system -temporary directory will be used. - -\membersection{wxRichTextHTMLHandler::SetTemporaryImageLocations}\label{wxrichtexthtmlhandlersettemporaryimagelocations} - -\func{void}{SetTemporaryImageLocations}{\param{const wxArrayString\& }{locations}} - -Sets the list of image locations generated by the last operation. - diff --git a/docs/latex/wx/richtextliststyledefinition.tex b/docs/latex/wx/richtextliststyledefinition.tex deleted file mode 100644 index 996028e2cf..0000000000 --- a/docs/latex/wx/richtextliststyledefinition.tex +++ /dev/null @@ -1,100 +0,0 @@ -\section{\class{wxRichTextListStyleDefinition}}\label{wxrichtextliststyledefinition} - -This class represents a list style definition, usually added to a \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}. - -The class inherits paragraph attributes from wxRichTextStyleParagraphDefinition, and adds 10 further attribute objects, one for each level of a list. -When applying a list style to a paragraph, the list style's base and appropriate level attributes are merged with the -paragraph's existing attributes. - -You can apply a list style to one or more paragraphs using \helpref{wxRichTextCtrl::SetListStyle}{wxrichtextctrlsetliststyle}. You -can also use the functions \helpref{wxRichTextCtrl::NumberList}{wxrichtextctrlnumberlist}, \helpref{wxRichTextCtrl::PromoteList}{wxrichtextctrlpromotelist} and -\helpref{wxRichTextCtrl::ClearListStyle}{wxrichtextctrlclearliststyle}. As usual, there are wxRichTextBuffer versions of these functions -so that you can apply them directly to a buffer without requiring a control. - -\wxheading{Derived from} - -\helpref{wxRichTextParagraphStyleDefinition}{wxrichtextparagraphstyledefinition}\\ -\helpref{wxRichTextStyleDefinition}{wxrichtextstyledefinition}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextListStyleDefinition::wxRichTextListStyleDefinition}\label{wxrichtextliststyledefinitionwxrichtextliststyledefinition} - -\func{}{wxRichTextListStyleDefinition}{\param{const wxString\& }{name = wxEmptyString}} - -Constructor. - -\membersection{wxRichTextListStyleDefinition::\destruct{wxRichTextListStyleDefinition}}\label{wxrichtextliststyledefinitiondtor} - -\func{}{\destruct{wxRichTextListStyleDefinition}}{\void} - -Destructor. - -\membersection{wxRichTextListStyleDefinition::CombineWithParagraphStyle}\label{wxrichtextliststyledefinitioncombinewithparagraphstyle} - -\func{wxTextAttr}{CombineWithParagraphStyle}{\param{int }{indent}, \param{const wxTextAttr\&}{ paraStyle}, \param{wxRichTextStyleSheet*}{ styleSheet = NULL}} - -This function combines the given paragraph style with the list style's base attributes and level style matching the given indent, returning the combined attributes. -If {\it styleSheet} is specified, the base style for this definition will also be included in the result. - -\membersection{wxRichTextListStyleDefinition::FindLevelForIndent}\label{wxrichtextliststyledefinitionfindlevelforindent} - -\constfunc{int}{FindLevelForIndent}{\param{int }{indent}} - -This function finds the level (from 0 to 9) whose indentation attribute mostly closely matches {\it indent} (expressed in tenths of a millimetre). - -\membersection{wxRichTextListStyleDefinition::GetCombinedStyle}\label{wxrichtextliststyledefinitiongetcombinedstyle} - -\constfunc{wxTextAttr}{GetCombinedStyle}{\param{int }{indent}, \param{wxRichTextStyleSheet*}{ styleSheet = NULL}} - -This function combines the list style's base attributes and the level style matching the given indent, returning the combined attributes. -If {\it styleSheet} is specified, the base style for this definition will also be included in the result. - -\membersection{wxRichTextListStyleDefinition::GetCombinedStyleForLevel}\label{wxrichtextliststyledefinitioncombinewithparagraphstyleforlevel} - -\constfunc{wxTextAttr}{GetCombinedStyleLevel}{\param{int }{level}, \param{wxRichTextStyleSheet*}{ styleSheet = NULL}} - -This function combines the list style's base attributes and the style for the specified level, returning the combined attributes. -If {\it styleSheet} is specified, the base style for this definition will also be included in the result. - -\membersection{wxRichTextListStyleDefinition::GetLevelAttributes}\label{wxrichtextliststyledefinitiongetlevelattributes} - -\constfunc{const wxTextAttr*}{GetLevelAttributes}{\param{int }{level}} - -Returns the style for the given level. {\it level} is a number between 0 and 9. - -\membersection{wxRichTextListStyleDefinition::GetLevelCount}\label{wxrichtextliststyledefinitiongetlevelcount} - -\constfunc{int}{GetLevelCount}{\void} - -Returns the number of levels. This is hard-wired to 10. - -Returns the style for the given level. {\it level} is a number between 0 and 9. - -\membersection{wxRichTextListStyleDefinition::IsNumbered}\label{wxrichtextliststyledefinitionisnumbered} - -\constfunc{int}{IsNumbered}{\param{int}{ level}} - -Returns \true if the given level has numbered list attributes. - -\membersection{wxRichTextListStyleDefinition::SetLevelAttributes}\label{wxrichtextliststyledefinitionsetlevelattributes} - -\func{void}{SetLevelAttributes}{\param{int }{level}, \param{const wxTextAttr\&}{ attr}} - -\func{void}{SetLevelAttributes}{\param{int }{level}, \param{int}{ leftIndent}, \param{int}{ leftSubIndent}, \param{int}{ bulletStyle}, \param{const wxString\&}{ bulletSymbol = wxEmptyString}} - -Sets the style for the given level. {\it level} is a number between 0 and 9. - -The first and most flexible form uses a wxTextAttr object, while the second form is for convenient setting of the most commonly-used attributes. - diff --git a/docs/latex/wx/richtextoverview.tex b/docs/latex/wx/richtextoverview.tex deleted file mode 100644 index 8d88108db8..0000000000 --- a/docs/latex/wx/richtextoverview.tex +++ /dev/null @@ -1,412 +0,0 @@ -\section{wxRichTextCtrl overview}\label{wxrichtextctrloverview} - -{\bf Major classes:} \helpref{wxRichTextCtrl}{wxrichtextctrl}, \helpref{wxRichTextBuffer}{wxrichtextbuffer}, \helpref{wxRichTextEvent}{wxrichtextevent} - -{\bf Helper classes:} \helpref{wxTextAttr}{wxtextattr}, \helpref{wxRichTextRange}{wxrichtextrange} - -{\bf File handler classes:} \helpref{wxRichTextFileHandler}{wxrichtextfilehandler}, \helpref{wxRichTextHTMLHandler}{wxrichtexthtmlhandler}, -\helpref{wxRichTextXMLHandler}{wxrichtextxmlhandler} - -{\bf Style classes:} \helpref{wxRichTextCharacterStyleDefinition}{wxrichtextcharacterstyledefinition}, -\helpref{wxRichTextParagraphStyleDefinition}{wxrichtextparagraphstyledefinition}, -\helpref{wxRichTextListStyleDefinition}{wxrichtextliststyledefinition}, -\helpref{wxRichTextStyleSheet}{wxrichtextstylesheet} - -{\bf Additional controls:} \helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}, -\helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox}, -\helpref{wxRichTextStyleListCtrl}{wxrichtextstylelistctrl} - -{\bf Printing classes:} \helpref{wxRichTextPrinting}{wxrichtextprinting}, -\helpref{wxRichTextPrintout}{wxrichtextprintout}, -\helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} - -{\bf Dialog classes:} \helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog}, -\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}, -\helpref{wxSymbolPickerDialog}{wxsymbolpickerdialog} - -wxRichTextCtrl provides a generic implementation of a rich text editor that can handle different character -styles, paragraph formatting, and images. It's aimed at editing 'natural' language text - if you need an editor -that supports code editing, wxStyledTextCtrl is a better choice. - -Despite its name, it cannot currently read or write RTF (rich text format) files. Instead, it -uses its own XML format, and can also read and write plain text. In future we expect to provide -RTF file capabilities. Custom file formats can be supported by creating additional -file handlers and registering them with the control. - -wxRichTextCtrl is largely compatible with the wxTextCtrl API, but extends it where necessary. -The control can be used where the native rich text capabilities of wxTextCtrl are not -adequate (this is particularly true on Windows) and where more direct access to -the content representation is required. It is difficult and inefficient to read -the style information in a wxTextCtrl, whereas this information is readily -available in wxRichTextCtrl. Since it's written in pure wxWidgets, any customizations -you make to wxRichTextCtrl will be reflected on all platforms. - -wxRichTextCtrl supports basic printing via the easy-to-use \helpref{wxRichTextPrinting}{wxrichtextprinting} class. -Creating applications with simple word processing features is simplified with the inclusion of\rtfsp -\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog}, a tabbed dialog allowing -interactive tailoring of paragraph and character styling. Also provided is the multi-purpose dialog\rtfsp -\helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog} that can be used for -managing style definitions, browsing styles and applying them, or selecting list styles with -a renumber option. - -There are a few disadvantages to using wxRichTextCtrl. It is not native, -so does not behave exactly as a native wxTextCtrl, although common editing conventions -are followed. Users may miss the built-in spelling correction on Mac OS X, or any -special character input that may be provided by the native control. It would also -be a poor choice if intended users rely on screen readers that would be not work well -with non-native text input implementation. You might mitigate this by providing -the choice between wxTextCtrl and wxRichTextCtrl, with fewer features in the -former case. - -A good way to understand wxRichTextCtrl's capabilities is to compile and run the -sample, {\tt samples/richtext}, and browse the code. The following screenshot shows the sample in action: - -$$\image{8cm;0cm}{richtextctrl.gif}$$ - -\wxheading{Example}\label{wxrichtextctrlexample} - -The following code is taken from the sample, and adds text and styles to a rich text control programmatically. - -{\small -\begin{verbatim} - wxRichTextCtrl* richTextCtrl = new wxRichTextCtrl(splitter, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, 200), wxVSCROLL|wxHSCROLL|wxBORDER_NONE|wxWANTS_CHARS); - - wxFont textFont = wxFont(12, wxROMAN, wxNORMAL, wxNORMAL); - wxFont boldFont = wxFont(12, wxROMAN, wxNORMAL, wxBOLD); - wxFont italicFont = wxFont(12, wxROMAN, wxITALIC, wxNORMAL); - - wxFont font(12, wxROMAN, wxNORMAL, wxNORMAL); - - m_richTextCtrl->SetFont(font); - - wxRichTextCtrl& r = richTextCtrl; - - r.BeginSuppressUndo(); - - r.BeginParagraphSpacing(0, 20); - - r.BeginAlignment(wxTEXT_ALIGNMENT_CENTRE); - r.BeginBold(); - - r.BeginFontSize(14); - r.WriteText(wxT("Welcome to wxRichTextCtrl, a wxWidgets control for editing and presenting styled text and images")); - r.EndFontSize(); - r.Newline(); - - r.BeginItalic(); - r.WriteText(wxT("by Julian Smart")); - r.EndItalic(); - - r.EndBold(); - - r.Newline(); - r.WriteImage(wxBitmap(zebra_xpm)); - - r.EndAlignment(); - - r.Newline(); - r.Newline(); - - r.WriteText(wxT("What can you do with this thing? ")); - r.WriteImage(wxBitmap(smiley_xpm)); - r.WriteText(wxT(" Well, you can change text ")); - - r.BeginTextColour(wxColour(255, 0, 0)); - r.WriteText(wxT("colour, like this red bit.")); - r.EndTextColour(); - - r.BeginTextColour(wxColour(0, 0, 255)); - r.WriteText(wxT(" And this blue bit.")); - r.EndTextColour(); - - r.WriteText(wxT(" Naturally you can make things ")); - r.BeginBold(); - r.WriteText(wxT("bold ")); - r.EndBold(); - r.BeginItalic(); - r.WriteText(wxT("or italic ")); - r.EndItalic(); - r.BeginUnderline(); - r.WriteText(wxT("or underlined.")); - r.EndUnderline(); - - r.BeginFontSize(14); - r.WriteText(wxT(" Different font sizes on the same line is allowed, too.")); - r.EndFontSize(); - - r.WriteText(wxT(" Next we'll show an indented paragraph.")); - - r.BeginLeftIndent(60); - r.Newline(); - - r.WriteText(wxT("Indented paragraph.")); - r.EndLeftIndent(); - - r.Newline(); - - r.WriteText(wxT("Next, we'll show a first-line indent, achieved using BeginLeftIndent(100, -40).")); - - r.BeginLeftIndent(100, -40); - r.Newline(); - - r.WriteText(wxT("It was in January, the most down-trodden month of an Edinburgh winter.")); - r.EndLeftIndent(); - - r.Newline(); - - r.WriteText(wxT("Numbered bullets are possible, again using subindents:")); - - r.BeginNumberedBullet(1, 100, 60); - r.Newline(); - - r.WriteText(wxT("This is my first item. Note that wxRichTextCtrl doesn't automatically do numbering, but this will be added later.")); - r.EndNumberedBullet(); - - r.BeginNumberedBullet(2, 100, 60); - r.Newline(); - - r.WriteText(wxT("This is my second item.")); - r.EndNumberedBullet(); - - r.Newline(); - - r.WriteText(wxT("The following paragraph is right-indented:")); - - r.BeginRightIndent(200); - r.Newline(); - - r.WriteText(wxT("It was in January, the most down-trodden month of an Edinburgh winter. An attractive woman came into the cafe, which is nothing remarkable.")); - r.EndRightIndent(); - - r.Newline(); - - wxArrayInt tabs; - tabs.Add(400); - tabs.Add(600); - tabs.Add(800); - tabs.Add(1000); - wxTextAttr attr; - attr.SetFlags(wxTEXT_ATTR_TABS); - attr.SetTabs(tabs); - r.SetDefaultStyle(attr); - - r.WriteText(wxT("This line contains tabs:\tFirst tab\tSecond tab\tThird tab")); - - r.Newline(); - r.WriteText(wxT("Other notable features of wxRichTextCtrl include:")); - - r.BeginSymbolBullet(wxT('*'), 100, 60); - r.Newline(); - r.WriteText(wxT("Compatibility with wxTextCtrl API")); - r.EndSymbolBullet(); - - r.WriteText(wxT("Note: this sample content was generated programmatically from within the MyFrame constructor in the demo. The images were loaded from inline XPMs. Enjoy wxRichTextCtrl!")); - - r.EndSuppressUndo(); -\end{verbatim} -} - -\subsection{Programming with wxRichTextCtrl} - -\subsubsection{Starting to use wxRichTextCtrl} - -You need to include {\tt <wx/richtext/richtextctrl.h>} in your source, and link -with the appropriate wxWidgets library with {\tt richtext} suffix. Put the rich text -library first in your link line to avoid unresolved symbols. - -Then you can create a wxRichTextCtrl, with the wxWANT\_CHARS style if you want tabs to -be processed by the control rather than being used for navigation between controls. - -\subsubsection{wxRichTextCtrl and styles} - -Styling attributes are represented by \helpref{wxTextAttr}{wxtextattr}. - -When setting a style, the flags of the attribute object determine which -attributes are applied. When querying a style, the passed flags are ignored -except (optionally) to determine whether attributes should be retrieved from -character content or from the paragraph object. - -wxRichTextCtrl takes a layered approach to styles, so that different parts of -the content may be responsible for contributing different attributes to the final -style you see on the screen. - -There are four main notions of style within a control: - -\begin{enumerate}\itemsep=0pt -\item {\bf Basic style:} the fundamental style of a control, onto which any other -styles are layered. It provides default attributes, and changing the basic style -may immediately change the look of the content depending on what other styles -the content uses. Calling wxRichTextCtrl::SetFont changes the font for the basic style. -The basic style is set with \helpref{wxRichTextCtrl::SetBasicStyle}{wxrichtextctrlsetbasicstyle}. -\item {\bf Paragraph style:} each paragraph has attributes that are set independently -from other paragraphs and independently from the content within the paragraph. -Normally, these attributes are paragraph-related, such as alignment and indentation, -but it is possible to set character attributes too. -The paragraph style can be set independently of its content by passing wxRICHTEXT\_SETSTYLE\_PARAGRAPHS\_ONLY -to \helpref{wxRichTextCtrl::SetStyleEx}{wxrichtextctrlsetstyleex}. -\item {\bf Character style:} characters within each paragraph can have attributes. -A single character, or a run of characters, can have a particular set of attributes. -The character style can be with \helpref{wxRichTextCtrl::SetStyle}{wxrichtextctrlsetstyle} or -\helpref{wxRichTextCtrl::SetStyleEx}{wxrichtextctrlsetstyleex}. -\item {\bf Default style:} this is the `current' style that determines the -style of content that is subsequently typed, pasted or programmatically inserted. -The default style is set with \helpref{wxRichTextCtrl::SetDefaultStyle}{wxrichtextctrlsetdefaultstyle}. -\end{enumerate} - -What you see on the screen is the dynamically {\it combined} style, found by merging -the first three of the above style types (the fourth is only a guide for future content -insertion and therefore does not affect the currently displayed content). - -To make all this more concrete, here are examples of where you might set these different -styles: - -\begin{enumerate}\itemsep=0pt -\item You might set the {\bf basic style} to have a Times Roman font in 12 point, -left-aligned, with two millimetres of spacing after each paragraph. -\item You might set the {\bf paragraph style} (for one particular paragraph) to -be centred. -\item You might set the {\bf character style} of one particular word to bold. -\item You might set the {\bf default style} to be underlined, for subsequent -inserted text. -\end{enumerate} - -Naturally you can do any of these things either using your own UI, or programmatically. - -The basic wxTextCtrl doesn't make the same distinctions as wxRichTextCtrl regarding -attribute storage. So we need finer control when setting and retrieving -attributes. \helpref{wxRichTextCtrl::SetStyleEx}{wxrichtextctrlsetstyleex} takes a {\it flags} parameter: - -\begin{itemize}\itemsep=0pt -\item wxRICHTEXT\_SETSTYLE\_OPTIMIZE specifies that the style should be changed only if -the combined attributes are different from the attributes for the current object. This is important when -applying styling that has been edited by the user, because he has just edited the {\it combined} (visible) -style, and wxRichTextCtrl wants to leave unchanged attributes associated with their original objects -instead of applying them to both paragraph and content objects. -\item wxRICHTEXT\_SETSTYLE\_PARAGRAPHS\_ONLY specifies that only paragraph objects within the given range -should take on the attributes. -\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY specifies that only content objects (text or images) within the given range -should take on the attributes. -\item wxRICHTEXT\_SETSTYLE\_WITH\_UNDO specifies that the operation should be undoable. -\end{itemize} - -It's great to be able to change arbitrary attributes in a wxRichTextCtrl, but -it can be unwieldy for the user or programmer to set attributes separately. Word processors have collections -of styles that you can tailor or use as-is, and this means that you can set a heading with one click -instead of marking text in bold, specifying a large font size, and applying a certain -paragraph spacing and alignment for every such heading. Similarly, -wxWidgets provides a class called \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet} which manages style definitions -(\helpref{wxRichTextParagraphStyleDefinition}{wxrichtextparagraphstyledefinition}, \helpref{wxRichTextListStyleDefinition}{wxrichtextliststyledefinition} and \helpref{wxRichTextCharacterStyleDefinition}{wxrichtextcharacterstyledefinition}). -Once you have added definitions to a style sheet and associated it with a wxRichTextCtrl, -you can apply a named definition to a range of text. The classes \helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}\rtfsp -and \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox} can be used to present the user with a list -of styles in a sheet, and apply them to the selected text. - -You can reapply a style sheet to the contents of the control, by calling \helpref{wxRichTextCtrl::ApplyStyleSheet}{wxrichtextctrlapplystylesheet}. -This is useful if the style definitions have changed, and you want the content to reflect this. -It relies on the fact that when you apply a named style, the style definition name is recorded in the -content. So ApplyStyleSheet works by finding the paragraph attributes with style names and re-applying the definition's -attributes to the paragraph. Currently, this works with paragraph and list style definitions only. - -\subsection{wxRichTextCtrl dialogs}\label{wxrichtextctrldialogs} - -wxRichTextCtrl comes with standard dialogs to make it easier to implement -text editing functionality. - -\helpref{wxRichTextFormattingDialog}{wxrichtextformattingdialog} can be used -for character or paragraph formatting, or a combination of both. It's a wxPropertySheetDialog -with the following available tabs: Font, Indents \& Spacing, Tabs, Bullets, Style, and List Style. -You can select which pages will be shown by supplying flags to the dialog constructor. -In a character formatting dialog, typically only the Font page will be shown. -In a paragraph formatting dialog, you'll show the Indents \& Spacing, Tabs and Bullets -pages. The Style tab is useful when editing a style definition. - -You can customize this dialog by providing your own wxRichTextFormattingDialogFactory -object, which tells the formatting dialog how many pages are supported, what their identifiers -are, and how to creates the pages. - -\helpref{wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialog} is a multi-purpose dialog -that can be used for managing style definitions, browsing styles and applying them, or selecting list styles with -a renumber option. See the sample for usage - it is used for the "Manage Styles" and "Bullets and Numbering" -menu commands. - -\helpref{wxSymbolPickerDialog}{wxsymbolpickerdialog} lets the user insert a symbol from -a specified font. It has no wxRichTextCtrl dependencies besides being included in -the rich text library. - -\subsection{How wxRichTextCtrl is implemented} - -Data representation is handled by wxRichTextBuffer, and a wxRichTextCtrl -always has one such buffer. - -The content is represented by a hierarchy of objects, all derived from -wxRichTextObject. An object might be an image, a fragment of text, a paragraph, -or a whole buffer. Objects store a wxTextAttr containing style information; -a paragraph object can contain both paragraph and character information, but -content objects such as text can only store character information. The final -style displayed in the control or in a printout is a combination of base -style, paragraph style and content (character) style. - -The top of the hierarchy is the buffer, a kind of wxRichTextParagraphLayoutBox. -containing further wxRichTextParagraph objects, each of which can include text, -images and potentially other types of object. - -Each object maintains a range (start and end position) measured -from the start of the main parent object. - -When Layout is called on an object, it is given a size which the object -must limit itself to, or one or more flexible directions (vertical -or horizontal). So, for example, a centred paragraph is given the page -width to play with (minus any margins), but can extend indefinitely -in the vertical direction. The implementation of Layout caches the calculated -size and position. - -When the buffer is modified, a range is invalidated (marked as requiring -layout), so that only the minimum amount of layout is performed. - -A paragraph of pure text with the same style contains just one further -object, a wxRichTextPlainText object. When styling is applied to part of -this object, the object is decomposed into separate objects, one object -for each different character style. So each object within a paragraph always has -just one wxTextAttr object to denote its character style. Of course, this can -lead to fragmentation after a lot of edit operations, potentially leading -to several objects with the same style where just one would do. So -a Defragment function is called when updating the control's display, to ensure that -the minimum number of objects is used. - -\subsection{wxRichTextCtrl roadmap} - -\wxheading{Bugs} - -This is an incomplete list of bugs. - -\begin{itemize}\itemsep=0pt -\item Moving the caret up at the beginning of a line sometimes incorrectly positions the -caret. -\item As the selection is expanded, the text jumps slightly due to kerning differences between -drawing a single text string versus drawing several fragments separately. This could -be improved by using wxDC::GetPartialTextExtents to calculate exactly where the separate fragments -should be drawn. Note that this problem also applies to separation of text fragments due to difference in their attributes. -\end{itemize} - -\wxheading{Features} - -This is a list of some of the features that have yet to be implemented. Help with them will be appreciated. - -\begin{itemize}\itemsep=0pt -\item RTF input and output -\item Conversion from HTML -\item Open Office input and output -\item Floating images, with content wrapping around them -\item A ruler control -\item Standard editing toolbars -\item Tables -\item Bitmap bullets -\item Borders -\item Text frames -\item Justified text, in print/preview at least -\end{itemize} - -There are also things that could be done to take advantage of the underlying text capabilities of the platform; -higher-level text formatting APIs are available on some platforms, such as Mac OS X, and some of translation from -high level to low level wxDC API is unnecessary. However this would require additions to the wxWidgets API. - diff --git a/docs/latex/wx/richtextparagraphstyledefinition.tex b/docs/latex/wx/richtextparagraphstyledefinition.tex deleted file mode 100644 index 5e71ded888..0000000000 --- a/docs/latex/wx/richtextparagraphstyledefinition.tex +++ /dev/null @@ -1,45 +0,0 @@ -\section{\class{wxRichTextParagraphStyleDefinition}}\label{wxrichtextparagraphstyledefinition} - -This class represents a paragraph style definition, usually added to a \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}. - -\wxheading{Derived from} - -\helpref{wxRichTextStyleDefinition}{wxrichtextstyledefinition}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextParagraphStyleDefinition::wxRichTextParagraphStyleDefinition}\label{wxrichtextparagraphstyledefinitionwxrichtextparagraphstyledefinition} - -\func{}{wxRichTextParagraphStyleDefinition}{\param{const wxString\& }{name = wxEmptyString}} - -Constructor. - -\membersection{wxRichTextParagraphStyleDefinition::\destruct{wxRichTextParagraphStyleDefinition}}\label{wxrichtextparagraphstyledefinitiondtor} - -\func{}{\destruct{wxRichTextParagraphStyleDefinition}}{\void} - -Destructor. - -\membersection{wxRichTextParagraphStyleDefinition::GetNextStyle}\label{wxrichtextparagraphstyledefinitiongetnextstyle} - -\constfunc{const wxString\&}{GetNextStyle}{\void} - -Returns the style that should normally follow this style. - -\membersection{wxRichTextParagraphStyleDefinition::SetNextStyle}\label{wxrichtextparagraphstyledefinitionsetnextstyle} - -\func{void}{SetNextStyle}{\param{const wxString\& }{name}} - -Sets the style that should normally follow this style. - diff --git a/docs/latex/wx/richtextprinting.tex b/docs/latex/wx/richtextprinting.tex deleted file mode 100644 index 2d9f58ec42..0000000000 --- a/docs/latex/wx/richtextprinting.tex +++ /dev/null @@ -1,174 +0,0 @@ -\section{\class{wxRichTextPrinting}}\label{wxrichtextprinting} - -This class provides a simple interface for performing \helpref{wxRichTextBuffer}{wxrichtextbuffer} printing -and previewing. It uses \helpref{wxRichTextPrintout}{wxrichtextprintout} for layout and rendering. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextprint.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextPrinting::wxRichTextPrinting}\label{wxrichtextprintingwxrichtextprinting} - -\func{}{wxRichTextPrinting}{\param{const wxString\& }{name = wxT("Printing")}, \param{wxWindow* }{parentWindow = NULL}} - -Constructor. Optionally pass a title to be used in the preview frame and printing wait dialog, and -also a parent window for these windows. - -\membersection{wxRichTextPrinting::GetFooterText}\label{wxrichtextprintinggetfootertext} - -\constfunc{wxString}{GetFooterText}{\param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_EVEN}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -A convenience function to get the footer text. See \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} for details. - -\membersection{wxRichTextPrinting::GetHeaderFooterData}\label{wxrichtextprintinggetheaderfooterdata} - -\constfunc{const wxRichTextHeaderFooterData\&}{GetHeaderFooterData}{\void} - -Returns the internal \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} object. - -\membersection{wxRichTextPrinting::GetHeaderText}\label{wxrichtextprintinggetheadertext} - -\constfunc{wxString}{GetHeaderText}{\param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_EVEN}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -A convenience function to get the header text. See \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} for details. - -\membersection{wxRichTextPrinting::GetPageSetupData}\label{wxrichtextprintinggetpagesetupdata} - -\func{wxPageSetupDialogData*}{GetPageSetupData}{\void} - -Returns a pointer to the internal page setup data. - -\membersection{wxRichTextPrinting::GetParentWindow}\label{wxrichtextprintinggetparentwindow} - -\constfunc{wxWindow*}{GetParentWindow}{\void} - -Returns the parent window to be used for the preview window and printing wait dialog. - -\membersection{wxRichTextPrinting::GetPreviewRect}\label{wxrichtextprintinggetpreviewrect} - -\constfunc{const wxRect\&}{GetPreviewRect}{\void} - -Returns the dimensions to be used for the preview window. - -\membersection{wxRichTextPrinting::GetPrintData}\label{wxrichtextprintinggetprintdata} - -\func{wxPrintData*}{GetPrintData}{\void} - -Returns a pointer to the internal print data. - -\membersection{wxRichTextPrinting::GetTitle}\label{wxrichtextprintinggettitle} - -\constfunc{const wxString\&}{GetTitle}{\void} - -Returns the title of the preview window or printing wait caption. - -\membersection{wxRichTextPrinting::PageSetup}\label{wxrichtextprintingpagesetup} - -\func{void}{PageSetup}{\void} - -Shows the page setup dialog. - -\membersection{wxRichTextPrinting::PreviewBuffer}\label{wxrichtextprintingpreviewbuffer} - -\func{bool}{PreviewBuffer}{\param{const wxRichTextBuffer\& }{buffer}} - -Shows a preview window for the given buffer. The function takes its own copy of {\it buffer}. - -\membersection{wxRichTextPrinting::PreviewFile}\label{wxrichtextprintingpreviewfile} - -\func{bool}{PreviewFile}{\param{const wxString\& }{richTextFile}} - -Shows a preview window for the given file. {\it richTextFile} can be a text file or XML file, or other file -depending on the available file handlers. - -\membersection{wxRichTextPrinting::PrintBuffer}\label{wxrichtextprintingprintbuffer} - -\func{bool}{PrintBuffer}{\param{const wxRichTextBuffer\& }{buffer}} - -Prints the given buffer. The function takes its own copy of {\it buffer}. - -\membersection{wxRichTextPrinting::PrintFile}\label{wxrichtextprintingprintfile} - -\func{bool}{PrintFile}{\param{const wxString\& }{richTextFile}} - -Prints the given file. {\it richTextFile} can be a text file or XML file, or other file -depending on the available file handlers. - -\membersection{wxRichTextPrinting::SetFooterText}\label{wxrichtextprintingsetfootertext} - -\func{void}{SetFooterText}{\param{const wxString\& }{text}, \param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_ALL}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -A convenience function to set the footer text. See \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} for details. - -\membersection{wxRichTextPrinting::SetHeaderFooterData}\label{wxrichtextprintingsetheaderfooterdata} - -\func{void}{SetHeaderFooterData}{\param{const wxRichTextHeaderFooterData\& }{data}} - -Sets the internal \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} object. - -\membersection{wxRichTextPrinting::SetHeaderFooterFont}\label{wxrichtextprintingsetheaderfooterfont} - -\func{void}{SetHeaderFooterFont}{\param{const wxFont\& }{font}} - -Sets the \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} font. - -\membersection{wxRichTextPrinting::SetHeaderFooterTextColour}\label{wxrichtextprintingsetheaderfootertextcolour} - -\func{void}{SetHeaderFooterTextColour}{\param{const wxColour\& }{colour}} - -Sets the \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} text colour. - -\membersection{wxRichTextPrinting::SetHeaderText}\label{wxrichtextprintingsetheadertext} - -\func{void}{SetHeaderText}{\param{const wxString\& }{text}, \param{wxRichTextOddEvenPage }{page = wxRICHTEXT\_PAGE\_ALL}, \param{wxRichTextPageLocation }{location = wxRICHTEXT\_PAGE\_CENTRE}} - -A convenience function to set the header text. See \helpref{wxRichTextHeaderFooterData}{wxrichtextheaderfooterdata} for details. - -\membersection{wxRichTextPrinting::SetPageSetupData}\label{wxrichtextprintingsetpagesetupdata} - -\func{void}{SetPageSetupData}{\param{const wxPageSetupData\& }{pageSetupData}} - -Sets the page setup data. - -\membersection{wxRichTextPrinting::SetParentWindow}\label{wxrichtextprintingsetparentwindow} - -\func{void}{SetParentWindow}{\param{wxWindow* }{parent}} - -Sets the parent window to be used for the preview window and printing wait dialog. - -\membersection{wxRichTextPrinting::SetPreviewRect}\label{wxrichtextprintingsetpreviewrect} - -\func{void}{SetPreviewRect}{\param{const wxRect\& }{rect}} - -Sets the dimensions to be used for the preview window. - -\membersection{wxRichTextPrinting::SetPrintData}\label{wxrichtextprintingsetprintdata} - -\func{void}{SetPrintData}{\param{const wxPrintData\& }{printData}} - -Sets the print data. - -\membersection{wxRichTextPrinting::SetShowOnFirstPage}\label{wxrichtextprintingsetshowonfirstpage} - -\func{void}{SetShowOnFirstPage}{\param{bool }{show}} - -Pass \true to show the header and footer on the first page. - -\membersection{wxRichTextPrinting::SetTitle}\label{wxrichtextprintingsettitle} - -\func{void}{SetTitle}{\param{const wxString\& }{title}} - -Pass the title of the preview window or printing wait caption. - diff --git a/docs/latex/wx/richtextprintout.tex b/docs/latex/wx/richtextprintout.tex deleted file mode 100644 index d3bdbff58a..0000000000 --- a/docs/latex/wx/richtextprintout.tex +++ /dev/null @@ -1,89 +0,0 @@ -\section{\class{wxRichTextPrintout}}\label{wxrichtextprintout} - -This class implements print layout for \helpref{wxRichTextBuffer}{wxrichtextbuffer}. Instead of using it directly, you -should normally use the \helpref{wxRichTextPrinting}{wxrichtextprinting} class. - -\wxheading{Derived from} - -\helpref{wxPrintout}{wxprintout}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextprint.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextPrintout::wxRichTextPrintout}\label{wxrichtextprintoutwxrichtextprintout} - -\func{}{wxRichTextPrintout}{\param{const wxString\& }{title = wxT("Printout")}} - -Constructor. - -\membersection{wxRichTextPrintout::CalculateScaling}\label{wxrichtextprintoutcalculatescaling} - -\func{void}{CalculateScaling}{\param{wxDC* }{dc}, \param{wxRect\& }{textRect}, \param{wxRect\& }{headerRect}, \param{wxRect\& }{footerRect}} - -Calculates scaling and text, header and footer rectangles. - -\membersection{wxRichTextPrintout::GetHeaderFooterData}\label{wxrichtextprintoutgetheaderfooterdata} - -\constfunc{const wxRichTextHeaderFooterData\&}{GetHeaderFooterData}{\void} - -Returns the header and footer data associated with the printout. - -\membersection{wxRichTextPrintout::GetPageInfo}\label{wxrichtextprintoutgetpageinfo} - -\func{void}{GetPageInfo}{\param{int* }{minPage}, \param{int* }{maxPage}, \param{int* }{selPageFrom}, \param{int* }{selPageTo}} - -Gets the page information. - -\membersection{wxRichTextPrintout::GetRichTextBuffer}\label{wxrichtextprintoutgetrichtextbuffer} - -\constfunc{wxRichTextBuffer*}{GetRichTextBuffer}{\void} - -Returns a pointer to the buffer being rendered. - -\membersection{wxRichTextPrintout::HasPage}\label{wxrichtextprintouthaspage} - -\func{bool}{HasPage}{\param{int }{page}} - -Returns \true if the given page exists in the printout. - -\membersection{wxRichTextPrintout::OnPreparePrinting}\label{wxrichtextprintoutonprepareprinting} - -\func{void}{OnPreparePrinting}{\void} - -Prepares for printing, laying out the buffer and calculating pagination. - -\membersection{wxRichTextPrintout::OnPrintPage}\label{wxrichtextprintoutonprintpage} - -\func{bool}{OnPrintPage}{\param{int }{page}} - -Does the actual printing for this page. - -\membersection{wxRichTextPrintout::SetHeaderFooterData}\label{wxrichtextprintoutsetheaderfooterdata} - -\func{void}{SetHeaderFooterData}{\param{const wxRichTextHeaderFooterData\& }{data}} - -Sets the header and footer data associated with the printout. - -\membersection{wxRichTextPrintout::SetMargins}\label{wxrichtextprintoutsetmargins} - -\func{void}{SetMargins}{\param{int }{top = 252}, \param{int }{bottom = 252}, \param{int }{left = 252}, \param{int }{right = 252}} - -Sets margins in 10ths of millimetre. Defaults to 1 inch for margins. - -\membersection{wxRichTextPrintout::SetRichTextBuffer}\label{wxrichtextprintoutsetrichtextbuffer} - -\func{void}{SetRichTextBuffer}{\param{wxRichTextBuffer* }{buffer}} - -Sets the buffer to print. wxRichTextPrintout does not manage this pointer; it should -be managed by the calling code, such as wxRichTextPrinting. - diff --git a/docs/latex/wx/richtextrange.tex b/docs/latex/wx/richtextrange.tex deleted file mode 100644 index 3f0967393d..0000000000 --- a/docs/latex/wx/richtextrange.tex +++ /dev/null @@ -1,143 +0,0 @@ -\section{\class{wxRichTextRange}}\label{wxrichtextrange} - -This class stores beginning and end positions for a range of data. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/richtext/richtextbuffer.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextRange::wxRichTextRange}\label{wxrichtextrangewxrichtextrange} - -\func{}{wxRichTextRange}{\param{long }{start}, \param{long }{end}} - -\func{}{wxRichTextRange}{\param{const wxRichTextRange\& }{range}} - -\func{}{wxRichTextRange}{\void} - -Constructors. - -\membersection{wxRichTextRange::\destruct{wxRichTextRange}}\label{wxrichtextrangedtor} - -\func{}{\destruct{wxRichTextRange}}{\void} - -Destructor. - -\membersection{wxRichTextRange::Contains}\label{wxrichtextrangecontains} - -\constfunc{bool}{Contains}{\param{long }{pos}} - -Returns \true if the given position is within this range. Does not -match if the range is empty. - -\membersection{wxRichTextRange::GetEnd}\label{wxrichtextrangegetend} - -\constfunc{long}{GetEnd}{\void} - -Returns the end position. - -\membersection{wxRichTextRange::GetLength}\label{wxrichtextrangegetlength} - -\constfunc{long}{GetLength}{\void} - -Returns the length of the range. - -\membersection{wxRichTextRange::GetStart}\label{wxrichtextrangegetstart} - -\constfunc{long}{GetStart}{\void} - -Returns the start of the range. - -\membersection{wxRichTextRange::FromInternal}\label{wxrichtextrangefrominternal} - -\constfunc{wxRichTextRange}{FromInternal}{\void} - -Converts the internal range, which uses the first and last character positions of the range, -to the API-standard range, whose end is one past the last character in the range. -In other words, one is added to the end position. - -\membersection{wxRichTextRange::IsOutside}\label{wxrichtextrangeisoutside} - -\constfunc{bool}{IsOutside}{\param{const wxRichTextRange\& }{range}} - -Returns \true if this range is completely outside {\it range}. - -\membersection{wxRichTextRange::IsWithin}\label{wxrichtextrangeiswithin} - -\constfunc{bool}{IsWithin}{\param{const wxRichTextRange\& }{range}} - -Returns \true if this range is completely within {\it range}. - -\membersection{wxRichTextRange::LimitTo}\label{wxrichtextrangelimitto} - -\func{bool}{LimitTo}{\param{const wxRichTextRange\& }{range}} - -Limits this range to be within {\it range}. - -\membersection{wxRichTextRange::SetEnd}\label{wxrichtextrangesetend} - -\func{void}{SetEnd}{\param{long }{end}} - -Sets the end of the range. - -\membersection{wxRichTextRange::SetRange}\label{wxrichtextrangesetrange} - -\func{void}{SetRange}{\param{long }{start}, \param{long }{end}} - -Sets the range. - -\membersection{wxRichTextRange::SetStart}\label{wxrichtextrangesetstart} - -\func{void}{SetStart}{\param{long }{start}} - -Sets the start of the range. - -\membersection{wxRichTextRange::Swap}\label{wxrichtextrangeswap} - -\func{void}{Swap}{\void} - -Swaps the start and end. - -\membersection{wxRichTextRange::ToInternal}\label{wxrichtextrangetointernal} - -\constfunc{wxRichTextRange}{ToInternal}{\void} - -Converts the API-standard range, whose end is one past the last character in the range, -to the internal form, which uses the first and last character positions of the range. -In other words, one is subtracted from the end position. - -\membersection{wxRichTextRange::operator+}\label{wxrichtextrangeoperatorplus} - -\constfunc{wxRichTextRange}{operator+}{\param{const wxRichTextRange\& }{range}} - -Adds {\it range} to this range. - -\membersection{wxRichTextRange::operator-}\label{wxrichtextrangeoperatorminus} - -\constfunc{wxRichTextRange}{operator-}{\param{const wxRichTextRange\& }{range}} - -Subtracts {\it range} from this range. - -\membersection{wxRichTextRange::operator=}\label{wxrichtextrangeoperatorassign} - -\func{void}{operator=}{\param{const wxRichTextRange\& }{range}} - -Assigns {\it range} to this range. - -\membersection{wxRichTextRange::operator==}\label{wxrichtextrangeoperatorequal} - -\constfunc{bool}{operator==}{\param{const wxRichTextRange\& }{range}} - -Returns \true if {\it range} is the same as this range. - diff --git a/docs/latex/wx/richtextstyledefinition.tex b/docs/latex/wx/richtextstyledefinition.tex deleted file mode 100644 index 6ab245fdc0..0000000000 --- a/docs/latex/wx/richtextstyledefinition.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxRichTextStyleDefinition}}\label{wxrichtextstyledefinition} - -This is a base class for paragraph and character styles. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleDefinition::wxRichTextStyleDefinition}\label{wxrichtextstyledefinitionwxrichtextstyledefinition} - -\func{}{wxRichTextStyleDefinition}{\param{const wxString\& }{name = wxEmptyString}} - -Constructor. - -\membersection{wxRichTextStyleDefinition::\destruct{wxRichTextStyleDefinition}}\label{wxrichtextstyledefinitiondtor} - -\func{}{\destruct{wxRichTextStyleDefinition}}{\void} - -Destructor. - -\membersection{wxRichTextStyleDefinition::GetBaseStyle}\label{wxrichtextstyledefinitiongetbasestyle} - -\constfunc{const wxString\&}{GetBaseStyle}{\void} - -Returns the style on which this style is based. - -\membersection{wxRichTextStyleDefinition::GetDescription}\label{wxrichtextstyledefinitiongetdescription} - -\constfunc{const wxString\&}{GetDescription}{\void} - -Returns the style's description. - -\membersection{wxRichTextStyleDefinition::GetName}\label{wxrichtextstyledefinitiongetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Returns the style name. - -\membersection{wxRichTextStyleDefinition::GetStyle}\label{wxrichtextstyledefinitiongetstyle} - -\func{wxTextAttr\&}{GetStyle}{\void} - -\constfunc{const wxTextAttr\&}{GetStyle}{\void} - -Returns the attributes associated with this style. - -\membersection{wxRichTextStyleDefinition::GetStyleMergedWithBase}\label{wxrichtextstyledefinitiongetstylemergedwithbase} - -\constfunc{wxTextAttr}{GetStyleMergedWithBase}{\param{wxRichTextStyleSheet*}{ sheet}} - -Returns the style attributes combined with the attributes of the specified base style, if any. This function works recursively. - -\membersection{wxRichTextStyleDefinition::SetBaseStyle}\label{wxrichtextstyledefinitionsetbasestyle} - -\func{void}{SetBaseStyle}{\param{const wxString\& }{name}} - -Sets the name of the style that this style is based on. - -\membersection{wxRichTextStyleDefinition::SetDescription}\label{wxrichtextstyledefinitionsetdescription} - -\func{void}{SetDescription}{\param{const wxString\& }{descr}} - -Sets the style description. - -\membersection{wxRichTextStyleDefinition::SetName}\label{wxrichtextstyledefinitionsetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name of the style. - -\membersection{wxRichTextStyleDefinition::SetStyle}\label{wxrichtextstyledefinitionsetstyle} - -\func{void}{SetStyle}{\param{const wxTextAttr\& }{style}} - -Sets the attributes for this style. - diff --git a/docs/latex/wx/richtextstylelistbox.tex b/docs/latex/wx/richtextstylelistbox.tex deleted file mode 100644 index 6c70ddcaec..0000000000 --- a/docs/latex/wx/richtextstylelistbox.tex +++ /dev/null @@ -1,323 +0,0 @@ -\section{\class{wxRichTextStyleComboCtrl}}\label{wxrichtextstylecomboctrl} - -This is a combo control that can display the styles in a \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}, -and apply the selection to an associated \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -See {\tt samples/richtext} for an example of how to use it. - -\wxheading{Derived from} - -\helpref{wxComboCtrl}{wxcomboctrl}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{See also} - -\helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox}, \helpref{wxRichTextCtrl overview}{wxrichtextctrloverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleComboCtrl::wxRichTextStyleComboCtrl}\label{wxrichtextstylecomboctrlwxrichtextstylecomboctrl} - -\func{}{wxRichTextStyleComboCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} - -Constructor. - -\membersection{wxRichTextStyleComboCtrl::\destruct{wxRichTextStyleComboCtrl}}\label{wxrichtextstylecomboctrldtor} - -\func{}{\destruct{wxRichTextStyleComboCtrl}}{\void} - -Destructor. - -\membersection{wxRichTextStyleComboCtrl::GetRichTextCtrl}\label{wxrichtextstylecomboctrlgetrichtextctrl} - -\constfunc{wxRichTextCtrl*}{GetRichTextCtrl}{\void} - -Returns the \helpref{wxRichTextCtrl}{wxrichtextctrl} associated with this control. - -\membersection{wxRichTextStyleComboCtrl::GetStyleSheet}\label{wxrichtextstylecomboctrlgetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the style sheet associated with this control. - -\membersection{wxRichTextStyleComboCtrl::SetRichTextCtrl}\label{wxrichtextstylecomboctrlsetrichtextctrl} - -\func{void}{SetRichTextCtrl}{\param{wxRichTextCtrl* }{ctrl}} - -Associates the control with a \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -\membersection{wxRichTextStyleComboCtrl::SetStyleSheet}\label{wxrichtextstylecomboctrlsetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} - -Associates the control with a style sheet. - -\membersection{wxRichTextStyleComboCtrl::UpdateStyles}\label{wxrichtextstylecomboctrlupdatestyles} - -\func{void}{UpdateStyles}{\void} - -Updates the combo control from the associated style sheet. - - -\section{\class{wxRichTextStyleListBox}}\label{wxrichtextstylelistbox} - -This is a listbox that can display the styles in a \helpref{wxRichTextStyleSheet}{wxrichtextstylesheet}, -and apply the selection to an associated \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -See {\tt samples/richtext} for an example of how to use it. - -\wxheading{Derived from} - -\helpref{wxHtmlListBox}{wxhtmllistbox}\\ -\helpref{wxVListBox}{wxvlistbox}\\ -\helpref{wxVScrolledWindow}{wxvscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{See also} - -\helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl}, \helpref{wxRichTextCtrl overview}{wxrichtextctrloverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleListBox::wxRichTextStyleListBox}\label{wxrichtextstylelistboxwxrichtextstylelistbox} - -\func{}{wxRichTextStyleListBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} - -Constructor. - -\membersection{wxRichTextStyleListBox::\destruct{wxRichTextStyleListBox}}\label{wxrichtextstylelistboxdtor} - -\func{}{\destruct{wxRichTextStyleListBox}}{\void} - -Destructor. - -\membersection{wxRichTextStyleListBox::ApplyStyle}\label{wxrichtextstylelistboxapplystyle} - -\func{void}{ApplyStyle}{\param{int }{i}} - -Applies the {\it i}th style to the associated rich text control. - -\membersection{wxRichTextStyleListBox::ConvertTenthsMMToPixels}\label{wxrichtextstylelistboxconverttenthsmmtopixels} - -\constfunc{int}{ConvertTenthsMMToPixels}{\param{wxDC\& }{dc}, \param{int }{units}} - -Converts units in tenths of a millimetre to device units. - -\membersection{wxRichTextStyleListBox::CreateHTML}\label{wxrichtextstylelistboxcreatehtml} - -\constfunc{wxString}{CreateHTML}{\param{wxRichTextStyleDefinition* }{def}} - -Creates a suitable HTML fragment for a definition. - -\membersection{wxRichTextStyleListBox::GetApplyOnSelection}\label{wxrichtextstylelistboxgetapplyonselection} - -\constfunc{bool}{GetApplyOnSelection}{\void} - -If the return value is \true, clicking on a style name in the list will immediately -apply the style to the associated rich text control. - -\membersection{wxRichTextStyleListBox::GetRichTextCtrl}\label{wxrichtextstylelistboxgetrichtextctrl} - -\constfunc{wxRichTextCtrl*}{GetRichTextCtrl}{\void} - -Returns the \helpref{wxRichTextCtrl}{wxrichtextctrl} associated with this listbox. - -\membersection{wxRichTextStyleListBox::GetStyle}\label{wxrichtextstylelistboxgetstyle} - -\constfunc{wxRichTextStyleDefinition*}{GetStyle}{\param{size\_t }{i}} - -Gets a style for a listbox index. - -\membersection{wxRichTextStyleListBox::GetStyleSheet}\label{wxrichtextstylelistboxgetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the style sheet associated with this listbox. - -\membersection{wxRichTextStyleListBox::GetStyleType}\label{wxrichtextstylelistboxgetstyletype} - -\constfunc{wxRichTextStyleListBox::wxRichTextStyleType}{GetStyleType}{\void} - -Returns the type of style to show in the list box. - -\membersection{wxRichTextStyleListBox::OnGetItem}\label{wxrichtextstylelistboxongetitem} - -\constfunc{wxString}{OnGetItem}{\param{size\_t }{n}} - -Returns the HTML for this item. - -\membersection{wxRichTextStyleListBox::OnLeftDown}\label{wxrichtextstylelistboxonleftdown} - -\func{void}{OnLeftDown}{\param{wxMouseEvent\& }{event}} - -Implements left click behaviour, applying the clicked style to the wxRichTextCtrl. - -\membersection{wxRichTextStyleListBox::OnSelect}\label{wxrichtextstylelistboxonselect} - -\func{void}{OnSelect}{\param{wxCommandEvent\& }{event}} - -Reacts to selection. - -\membersection{wxRichTextStyleListBox::SetApplyOnSelection}\label{wxrichtextstylelistboxsetapplyonselection} - -\func{void}{SetApplyOnSelection}{\param{bool }{applyOnSelection}} - -If {\it applyOnSelection} is \true, clicking on a style name in the list will immediately -apply the style to the associated rich text control. - -\membersection{wxRichTextStyleListBox::SetRichTextCtrl}\label{wxrichtextstylelistboxsetrichtextctrl} - -\func{void}{SetRichTextCtrl}{\param{wxRichTextCtrl* }{ctrl}} - -Associates the listbox with a \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -\membersection{wxRichTextStyleListBox::SetStyleSheet}\label{wxrichtextstylelistboxsetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} - -Associates the control with a style sheet. - -\membersection{wxRichTextStyleListBox::SetStyleType}\label{wxrichtextstylelistboxsetstyletype} - -\func{void}{SetStyleType}{\param{wxRichTextStyleListBox::wxRichTextStyleType }{styleType}} - -Sets the style type to display. One of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, -wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST. - -\membersection{wxRichTextStyleListBox::UpdateStyles}\label{wxrichtextstylelistboxupdatestyles} - -\func{void}{UpdateStyles}{\void} - -Updates the list from the associated style sheet. - - -\section{\class{wxRichTextStyleListCtrl}}\label{wxrichtextstylelistctrl} - -This class incorporates a \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox} and -a choice control that allows the user to select the category of style to view. -It is demonstrated in the wxRichTextCtrl sample in {\tt samples/richtext}. - -To use wxRichTextStyleListCtrl, add the control to your window hierarchy and -call \helpref{SetStyleType}{wxrichtextstylelistctrlsetstyletype} with -one of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, -wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST to set the current view. -Associate the control with a style sheet and rich text control with SetStyleSheet and SetRichTextCtrl, -so that when a style is double-clicked, it is applied to the selection. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXTSTYLELIST\_HIDE\_TYPE\_SELECTOR}}{This style hides the category selection control.} -\end{twocollist} - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleListCtrl::wxRichTextStyleListCtrl}\label{wxrichtextstylelistctrlwxrichtextstylelistctrl} - -\func{}{wxRichTextStyleListCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} - -\func{}{wxRichTextStyleListCtrl}{\void} - -Constructors. - -\membersection{wxRichTextStyleListCtrl::Create}\label{wxrichtextstylelistctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}} - -Creates the windows. - -\membersection{wxRichTextStyleListCtrl::GetRichTextCtrl}\label{wxrichtextstylelistctrlgetrichtextctrl} - -\constfunc{wxRichTextCtrl*}{GetRichTextCtrl}{\void} - -Returns the associated rich text control, if any. - -\membersection{wxRichTextStyleListCtrl::GetStyleChoice}\label{wxrichtextstylelistctrlgetstylechoice} - -\constfunc{wxChoice*}{GetStyleChoice}{\void} - -Returns the wxChoice control used for selecting the style category. - -\membersection{wxRichTextStyleListCtrl::GetStyleListBox}\label{wxrichtextstylelistctrlgetstylelistbox} - -\constfunc{wxRichTextStyleListBox*}{GetStyleListBox}{\void} - -Returns the wxListBox control used to view the style list. - -\membersection{wxRichTextStyleListCtrl::GetStyleSheet}\label{wxrichtextstylelistctrlgetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the associated style sheet, if any. - -\membersection{wxRichTextStyleListCtrl::GetStyleType}\label{wxrichtextstylelistctrlgetstyletype} - -\constfunc{wxRichTextStyleListBox::wxRichTextStyleType}{GetStyleType}{\void} - -Returns the type of style to show in the list box. - -\membersection{wxRichTextStyleListCtrl::SetRichTextCtrl}\label{wxrichtextstylelistctrlsetrichtextctrl} - -\func{void}{SetRichTextCtrl}{\param{wxRichTextCtrl* }{ctrl}} - -Associates the control with a wxRichTextCtrl. - -\membersection{wxRichTextStyleListCtrl::SetStyleSheet}\label{wxrichtextstylelistctrlsetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{styleSheet}} - -Associates the control with a style sheet. - -\membersection{wxRichTextStyleListCtrl::SetStyleType}\label{wxrichtextstylelistctrlsetstyletype} - -\func{void}{SetStyleType}{\param{wxRichTextStyleListBox::wxRichTextStyleType }{styleType}} - -Sets the style type to display. One of wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_ALL, wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_PARAGRAPH, -wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_CHARACTER and wxRichTextStyleListBox::wxRICHTEXT\_STYLE\_LIST. - -\membersection{wxRichTextStyleListCtrl::UpdateStyles}\label{wxrichtextstylelistctrlupdatestyles} - -\func{void}{UpdateStyles}{\void} - -Updates the style list box. - diff --git a/docs/latex/wx/richtextstyleorganiserdialog.tex b/docs/latex/wx/richtextstyleorganiserdialog.tex deleted file mode 100644 index 737dd7b388..0000000000 --- a/docs/latex/wx/richtextstyleorganiserdialog.tex +++ /dev/null @@ -1,147 +0,0 @@ -\section{\class{wxRichTextStyleOrganiserDialog}}\label{wxrichtextstyleorganiserdialog} - -This class shows a style sheet and allows the user to edit, add and remove styles. -It can also be used as a style browser, for example if the application is not -using a permanent \helpref{wxRichTextStyleComboCtrl}{wxrichtextstylecomboctrl} or \helpref{wxRichTextStyleListCtrl}{wxrichtextstylelistctrl} to -present styles. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyledlg.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleOrganiserDialog::wxRichTextStyleOrganiserDialog}\label{wxrichtextstyleorganiserdialogwxrichtextstyleorganiserdialog} - -\func{}{wxRichTextStyleOrganiserDialog}{\param{int }{flags}, \param{wxRichTextStyleSheet* }{sheet}, \param{wxRichTextCtrl* }{ctrl}, \param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{caption = \_("Style Organiser")}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE|wxRESIZE\_BORDER|wxSYSTEM\_MENU|wxCLOSE\_BOX}} - -\func{}{wxRichTextStyleOrganiserDialog}{\void} - -Constructors. - -To create a dialog, pass a bitlist of {\it flags} (see below), a style sheet, a text control to apply a selected style to (or NULL), followed by the usual window parameters. - -To specify the operations available to the user, pass a combination of these values to {\it flags}: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_DELETE\_STYLES}}{Provides a button for deleting styles.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_CREATE\_STYLES}}{Provides buttons for creating styles.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_APPLY\_STYLES}}{Provides a button for applying the currently selected style to the selection.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_EDIT\_STYLES}}{Provides a button for editing styles.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_RENAME\_STYLES}}{Provides a button for renaming styles.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_OK\_CANCEL}}{Provides OK and Cancel buttons.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_RENUMBER}}{Provides a checkbox for specifying that the selection should be renumbered.} -\end{twocollist} - -The following flags determine what will be displayed in the style list: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_SHOW\_CHARACTER}}{Displays character styles only.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_SHOW\_PARAGRAPH}}{Displays paragraph styles only.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_SHOW\_LIST}}{Displays list styles only.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_SHOW\_ALL}}{Displays all styles.} -\end{twocollist} - -The following symbols define commonly-used combinations of flags: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_ORGANISE}}{Enable all style editing operations so the dialog behaves as a style organiser.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_BROWSE}}{Show a list of all styles and their previews, but only allow application of a style or -cancellation of the dialog. This makes the dialog behave as a style browser.} -\twocolitem{\windowstyle{wxRICHTEXT\_ORGANISER\_BROWSE\_NUMBERING}}{Enables only list style browsing, plus a control to specify renumbering. This -allows the dialog to be used for applying list styles to the selection.} -\end{twocollist} - -\membersection{wxRichTextStyleOrganiserDialog::ApplyStyle}\label{wxrichtextstyleorganiserdialogapplystyle} - -\func{bool}{ApplyStyle}{\param{wxRichTextCtrl* }{ctrl = NULL}} - -Applies the selected style to selection in the given control or the control passed to the constructor. - -\membersection{wxRichTextStyleOrganiserDialog::Create}\label{wxrichtextstyleorganiserdialogcreate} - -\func{bool}{Create}{\param{int }{flags}, \param{wxRichTextStyleSheet* }{sheet}, \param{wxRichTextCtrl* }{ctrl}, \param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{caption = \_("Style Organiser")}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE|wxRESIZE\_BORDER|wxSYSTEM\_MENU|wxCLOSE\_BOX}} - -Creates the dialog. See \membersection{wxRichTextStyleOrganiserDialog::wxRichTextStyleOrganiserDialog}{wxrichtextstyleorganiserdialogwxrichtextstyleorganiserdialog} for details. - -\membersection{wxRichTextStyleOrganiserDialog::GetFlags}\label{wxrichtextstyleorganiserdialoggetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns the flags used to control the interface presented to the user. - -\membersection{wxRichTextStyleOrganiserDialog::GetRestartNumbering}\label{wxrichtextstyleorganiserdialoggetrestartnumbering} - -\constfunc{bool}{GetRestartNumbering}{\void} - -Returns \true if the user has opted to restart numbering. - -\membersection{wxRichTextStyleOrganiserDialog::GetRichTextCtrl}\label{wxrichtextstyleorganiserdialoggetrichtextctrl} - -\constfunc{wxRichTextCtrl*}{GetRichTextCtrl}{\void} - -Returns the associated rich text control (if any). - -\membersection{wxRichTextStyleOrganiserDialog::GetSelectedStyle}\label{wxrichtextstyleorganiserdialoggetselectedstyle} - -\constfunc{wxString}{GetSelectedStyle}{\void} - -Returns selected style name. - -\membersection{wxRichTextStyleOrganiserDialog::GetSelectedStyleDefinition}\label{wxrichtextstyleorganiserdialoggetselectedstyledefinition} - -\constfunc{wxRichTextStyleDefinition*}{GetSelectedStyleDefinition}{\void} - -Returns selected style definition. - -\membersection{wxRichTextStyleOrganiserDialog::GetStyleSheet}\label{wxrichtextstyleorganiserdialoggetstylesheet} - -\constfunc{wxRichTextStyleSheet*}{GetStyleSheet}{\void} - -Returns the associated style sheet. - -\membersection{wxRichTextStyleOrganiserDialog::SetFlags}\label{wxrichtextstyleorganiserdialogsetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets the flags used to control the interface presented to the user. - -\membersection{wxRichTextStyleOrganiserDialog::SetRestartNumbering}\label{wxrichtextstyleorganiserdialogsetrestartnumbering} - -\func{void}{SetRestartNumbering}{\param{bool }{restartNumbering}} - -Checks or unchecks the restart numbering checkbox. - -\membersection{wxRichTextStyleOrganiserDialog::SetRichTextCtrl}\label{wxrichtextstyleorganiserdialogsetrichtextctrl} - -\func{void}{SetRichTextCtrl}{\param{wxRichTextCtrl* }{ctrl}} - -Sets the control to be associated with the dialog, for the purposes of applying a style to the selection. - -\membersection{wxRichTextStyleOrganiserDialog::SetShowToolTips}\label{wxrichtextstyleorganiserdialogsetshowtooltips} - -\func{void}{SetShowToolTips}{\param{bool }{show}} - -Determines whether tooltips will be shown. - -\membersection{wxRichTextStyleOrganiserDialog::SetStyleSheet}\label{wxrichtextstyleorganiserdialogsetstylesheet} - -\func{void}{SetStyleSheet}{\param{wxRichTextStyleSheet* }{sheet}} - -Sets the associated style sheet. - diff --git a/docs/latex/wx/richtextstylesheet.tex b/docs/latex/wx/richtextstylesheet.tex deleted file mode 100644 index cdf93fd690..0000000000 --- a/docs/latex/wx/richtextstylesheet.tex +++ /dev/null @@ -1,175 +0,0 @@ -\section{\class{wxRichTextStyleSheet}}\label{wxrichtextstylesheet} - -A style sheet contains named paragraph and character styles that make it -easy for a user to apply combinations of attributes to a \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -You can use a \helpref{wxRichTextStyleListBox}{wxrichtextstylelistbox} in your -user interface to show available styles to the user, and allow application -of styles to the control. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextstyles.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextStyleSheet::wxRichTextStyleSheet}\label{wxrichtextstylesheetwxrichtextstylesheet} - -\func{}{wxRichTextStyleSheet}{\void} - -Constructor. - -\membersection{wxRichTextStyleSheet::\destruct{wxRichTextStyleSheet}}\label{wxrichtextstylesheetdtor} - -\func{}{\destruct{wxRichTextStyleSheet}}{\void} - -Destructor. - -\membersection{wxRichTextStyleSheet::AddCharacterStyle}\label{wxrichtextstylesheetaddcharacterstyle} - -\func{bool}{AddCharacterStyle}{\param{wxRichTextCharacterStyleDefinition* }{def}} - -Adds a definition to the character style list. - -\membersection{wxRichTextStyleSheet::AddListStyle}\label{wxrichtextstylesheetaddliststyle} - -\func{bool}{AddListStyle}{\param{wxRichTextListStyleDefinition* }{def}} - -Adds a definition to the list style list. - -\membersection{wxRichTextStyleSheet::AddParagraphStyle}\label{wxrichtextstylesheetaddparagraphstyle} - -\func{bool}{AddParagraphStyle}{\param{wxRichTextParagraphStyleDefinition* }{def}} - -Adds a definition to the paragraph style list. - -\membersection{wxRichTextStyleSheet::AddStyle}\label{wxrichtextstylesheetaddstyle} - -\func{bool}{AddStyle}{\param{wxRichTextStyleDefinition* }{def}} - -Adds a definition to the appropriate style list. - -\membersection{wxRichTextStyleSheet::DeleteStyles}\label{wxrichtextstylesheetdeletestyles} - -\func{void}{DeleteStyles}{\void} - -Deletes all styles. - -\membersection{wxRichTextStyleSheet::FindCharacterStyle}\label{wxrichtextstylesheetfindcharacterstyle} - -\constfunc{wxRichTextCharacterStyleDefinition*}{FindCharacterStyle}{\param{const wxString\& }{name}} - -Finds a character definition by name. - -\membersection{wxRichTextStyleSheet::FindListStyle}\label{wxrichtextstylesheetfindliststyle} - -\constfunc{wxRichTextListStyleDefinition*}{FindListStyle}{\param{const wxString\& }{name}} - -Finds a list definition by name. - -\membersection{wxRichTextStyleSheet::FindParagraphStyle}\label{wxrichtextstylesheetfindparagraphstyle} - -\constfunc{wxRichTextParagraphStyleDefinition*}{FindParagraphStyle}{\param{const wxString\& }{name}} - -Finds a paragraph definition by name. - -\membersection{wxRichTextStyleSheet::FindStyle}\label{wxrichtextstylesheetfindstyle} - -\constfunc{wxRichTextStyleDefinition*}{FindStyle}{\param{const wxString\& }{name}} - -Finds a style definition by name. - -\membersection{wxRichTextStyleSheet::GetCharacterStyle}\label{wxrichtextstylesheetgetcharacterstyle} - -\constfunc{wxRichTextCharacterStyleDefinition*}{GetCharacterStyle}{\param{size\_t }{n}} - -Returns the {\it n}th character style. - -\membersection{wxRichTextStyleSheet::GetCharacterStyleCount}\label{wxrichtextstylesheetgetcharacterstylecount} - -\constfunc{size\_t}{GetCharacterStyleCount}{\void} - -Returns the number of character styles. - -\membersection{wxRichTextStyleSheet::GetDescription}\label{wxrichtextstylesheetgetdescription} - -\constfunc{const wxString\&}{GetDescription}{\void} - -Returns the style sheet's description. - -\membersection{wxRichTextStyleSheet::GetListStyle}\label{wxrichtextstylesheetgetliststyle} - -\constfunc{wxRichTextListStyleDefinition*}{GetListStyle}{\param{size\_t }{n}} - -Returns the {\it n}th list style. - -\membersection{wxRichTextStyleSheet::GetListStyleCount}\label{wxrichtextstylesheetgetliststylecount} - -\constfunc{size\_t}{GetListStyleCount}{\void} - -Returns the number of list styles. - -\membersection{wxRichTextStyleSheet::GetName}\label{wxrichtextstylesheetgetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Returns the style sheet's name. - -\membersection{wxRichTextStyleSheet::GetParagraphStyle}\label{wxrichtextstylesheetgetparagraphstyle} - -\constfunc{wxRichTextParagraphStyleDefinition*}{GetParagraphStyle}{\param{size\_t }{n}} - -Returns the {\it n}th paragraph style. - -\membersection{wxRichTextStyleSheet::GetParagraphStyleCount}\label{wxrichtextstylesheetgetparagraphstylecount} - -\constfunc{size\_t}{GetParagraphStyleCount}{\void} - -Returns the number of paragraph styles. - -\membersection{wxRichTextStyleSheet::RemoveCharacterStyle}\label{wxrichtextstylesheetremovecharacterstyle} - -\func{bool}{RemoveCharacterStyle}{\param{wxRichTextStyleDefinition* }{def}, \param{bool }{deleteStyle = false}} - -Removes a character style. - -\membersection{wxRichTextStyleSheet::RemoveListStyle}\label{wxrichtextstylesheetremoveliststyle} - -\func{bool}{RemoveListStyle}{\param{wxRichTextStyleDefinition* }{def}, \param{bool }{deleteStyle = false}} - -Removes a list style. - -\membersection{wxRichTextStyleSheet::RemoveParagraphStyle}\label{wxrichtextstylesheetremoveparagraphstyle} - -\func{bool}{RemoveParagraphStyle}{\param{wxRichTextStyleDefinition* }{def}, \param{bool }{deleteStyle = false}} - -Removes a paragraph style. - -\membersection{wxRichTextStyleSheet::RemoveStyle}\label{wxrichtextstylesheetremovestyle} - -\func{bool}{RemoveStyle}{\param{wxRichTextStyleDefinition* }{def}, \param{bool }{deleteStyle = false}} - -Removes a style. - -\membersection{wxRichTextStyleSheet::SetDescription}\label{wxrichtextstylesheetsetdescription} - -\func{void}{SetDescription}{\param{const wxString\& }{descr}} - -Sets the style sheet's description. - -\membersection{wxRichTextStyleSheet::SetName}\label{wxrichtextstylesheetsetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the style sheet's name. - diff --git a/docs/latex/wx/richtextxmlhandler.tex b/docs/latex/wx/richtextxmlhandler.tex deleted file mode 100644 index bf05d0d950..0000000000 --- a/docs/latex/wx/richtextxmlhandler.tex +++ /dev/null @@ -1,120 +0,0 @@ -\section{\class{wxRichTextXMLHandler}}\label{wxrichtextxmlhandler} - -A handler for loading and saving content in an XML format specific -to wxRichTextBuffer. You can either add the handler to the buffer -and load and save through the buffer or control API, or you can -create an instance of the handler on the stack and call its -functions directly. - -\wxheading{Handler flags} - -The following flags can be used with this handler, via -the handler's SetFlags function or the buffer or control's -SetHandlerFlags function: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRICHTEXT\_HANDLER\_INCLUDE\_STYLESHEET}}{Include the style sheet in loading and saving operations.} -\end{twocollist} - -\wxheading{Derived from} - -\helpref{wxRichTextFileHandler}{wxrichtextfilehandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextxml.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRichTextXMLHandler::wxRichTextXMLHandler}\label{wxrichtextxmlhandlerwxrichtextxmlhandler} - -\func{}{wxRichTextXMLHandler}{\param{const wxString\& }{name = wxT("XML")}, \param{const wxString\& }{ext = wxT("xml")}, \param{int }{type = wxRICHTEXT\_TYPE\_XML}} - -Constructor. - -\membersection{wxRichTextXMLHandler::CanLoad}\label{wxrichtextxmlhandlercanload} - -\constfunc{bool}{CanLoad}{\void} - -Returns \true. - -\membersection{wxRichTextXMLHandler::CanSave}\label{wxrichtextxmlhandlercansave} - -\constfunc{bool}{CanSave}{\void} - -Returns \true. - -\membersection{wxRichTextXMLHandler::CreateStyle}\label{wxrichtextxmlhandlercreatestyle} - -\func{wxString}{CreateStyle}{\param{const wxTextAttr\& }{attr}, \param{bool }{isPara = false}} - -Creates XML code for a given character or paragraph style. - -\membersection{wxRichTextXMLHandler::DoLoadFile}\label{wxrichtextxmlhandlerdoloadfile} - -\func{bool}{DoLoadFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxInputStream\& }{stream}} - -Loads buffer context from the given stream. - -\membersection{wxRichTextXMLHandler::DoSaveFile}\label{wxrichtextxmlhandlerdosavefile} - -\func{bool}{DoSaveFile}{\param{wxRichTextBuffer* }{buffer}, \param{wxOutputStream\& }{stream}} - -Saves buffer context to the given stream. - -\membersection{wxRichTextXMLHandler::ExportXML}\label{wxrichtextxmlhandlerexportxml} - -\func{bool}{ExportXML}{\param{wxOutputStream\& }{stream}, \param{wxMBConv* }{convMem}, \param{wxMBConv* }{convFile}, \param{wxRichTextObject\& }{obj}, \param{int }{level}} - -Recursively exports an object to the stream. - -\membersection{wxRichTextXMLHandler::GetNodeContent}\label{wxrichtextxmlhandlergetnodecontent} - -\func{wxString}{GetNodeContent}{\param{wxXmlNode* }{node}} - -Helper function: gets node context. - -\membersection{wxRichTextXMLHandler::GetParamNode}\label{wxrichtextxmlhandlergetparamnode} - -\func{wxXmlNode*}{GetParamNode}{\param{wxXmlNode* }{node}, \param{const wxString\& }{param}} - -Helper function: gets a named parameter from the XML node. - -\membersection{wxRichTextXMLHandler::GetParamValue}\label{wxrichtextxmlhandlergetparamvalue} - -\func{wxString}{GetParamValue}{\param{wxXmlNode* }{node}, \param{const wxString\& }{param}} - -Helper function: gets a named parameter from the XML node. - -\membersection{wxRichTextXMLHandler::GetStyle}\label{wxrichtextxmlhandlergetstyle} - -\func{bool}{GetStyle}{\param{wxTextAttr\& }{attr}, \param{wxXmlNode* }{node}, \param{bool }{isPara = false}} - -Helper function: gets style parameters from the given XML node. - -\membersection{wxRichTextXMLHandler::GetText}\label{wxrichtextxmlhandlergettext} - -\func{wxString}{GetText}{\param{wxXmlNode* }{node}, \param{const wxString\& }{param = wxEmptyString}, \param{bool }{translate = false}} - -Helper function: gets text from the node. - -\membersection{wxRichTextXMLHandler::HasParam}\label{wxrichtextxmlhandlerhasparam} - -\func{bool}{HasParam}{\param{wxXmlNode* }{node}, \param{const wxString\& }{param}} - -Helper function: returns \true if the node has the given parameter. - -\membersection{wxRichTextXMLHandler::ImportXML}\label{wxrichtextxmlhandlerimportxml} - -\func{bool}{ImportXML}{\param{wxRichTextBuffer* }{buffer}, \param{wxXmlNode* }{node}} - -Recursively imports an object. - diff --git a/docs/latex/wx/sashevt.tex b/docs/latex/wx/sashevt.tex deleted file mode 100644 index abe48973e4..0000000000 --- a/docs/latex/wx/sashevt.tex +++ /dev/null @@ -1,93 +0,0 @@ -\section{\class{wxSashEvent}}\label{wxsashevent} - -A sash event is sent when the sash of a \helpref{wxSashWindow}{wxsashwindow} has been -dragged by the user. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sashwin.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event table macros} - -To process an activate event, use these event handler macros to direct input to a member -function that takes a wxSashEvent argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event, -when the user has finished dragging a sash.} -\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event, -when the user has finished dragging a sash. The event handler is called when windows with ids in the -given range have their sashes dragged.} -\end{twocollist} - -\wxheading{Data structures} - -{\small -\begin{verbatim} -enum wxSashDragStatus -{ - wxSASH_STATUS_OK, - wxSASH_STATUS_OUT_OF_RANGE -}; -\end{verbatim} -} - -\wxheading{Remarks} - -When a sash belonging to a sash window is dragged by the user, and then released, -this event is sent to the window, where it may be processed by an event table -entry in a derived class, a plug-in event handler or an ancestor class. - -Note that the wxSashWindow doesn't change the window's size itself. It relies on the application's -event handler to do that. This is because the application may have to handle other consequences -of the resize, or it may wish to veto it altogether. The event handler should -look at the drag rectangle: see \helpref{wxSashEvent::GetDragRect}{wxsasheventgetdragrect} to see -what the new size of the window would be if the resize were to be applied. It should -also call \helpref{wxSashEvent::GetDragStatus}{wxsasheventgetdragstatus} to see whether the -drag was OK or out of the current allowed range. - -\wxheading{See also} - -\helpref{wxSashWindow}{wxsashwindow},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashEvent::wxSashEvent}\label{wxsasheventctor} - -\func{}{wxSashEvent}{\param{int }{id = 0}, \param{wxSashEdgePosition}{ edge = wxSASH\_NONE}} - -Constructor. - -\membersection{wxSashEvent::GetEdge}\label{wxsasheventgetedge} - -\constfunc{wxSashEdgePosition}{GetEdge}{\void} - -Returns the dragged edge. The return value is one of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT. - -\membersection{wxSashEvent::GetDragRect}\label{wxsasheventgetdragrect} - -\constfunc{wxRect}{GetDragRect}{\void} - -Returns the rectangle representing the new size the window would be if the resize was applied. It is -up to the application to set the window size if required. - -\membersection{wxSashEvent::GetDragStatus}\label{wxsasheventgetdragstatus} - -\constfunc{wxSashDragStatus}{GetDragStatus}{\void} - -Returns the status of the sash: one of wxSASH\_STATUS\_OK, wxSASH\_STATUS\_OUT\_OF\_RANGE. -If the drag caused the notional bounding box of the window to flip over, for example, the drag will be out of rage. - - diff --git a/docs/latex/wx/sashlayw.tex b/docs/latex/wx/sashlayw.tex deleted file mode 100644 index 11d8b34e04..0000000000 --- a/docs/latex/wx/sashlayw.tex +++ /dev/null @@ -1,159 +0,0 @@ -\section{\class{wxSashLayoutWindow}}\label{wxsashlayoutwindow} - -wxSashLayoutWindow responds to OnCalculateLayout events generated -by \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}. It allows the -application to use simple accessors to specify how the window should be -laid out, rather than having to respond to events. The fact that -the class derives from wxSashWindow allows sashes to be used if required, -to allow the windows to be user-resizable. - -The documentation for \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} explains -the purpose of this class in more detail. - -\wxheading{Derived from} - -\helpref{wxSashWindow}{wxsashwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/laywin.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -See \helpref{wxSashWindow}{wxsashwindow}. - -\wxheading{Event handling} - -This class handles the EVT\_QUERY\_LAYOUT\_INFO and EVT\_CALCULATE\_LAYOUT events -for you. However, if you use sashes, see \helpref{wxSashWindow}{wxsashwindow} for -relevant event information. - -See also \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} for information -about the layout events. - -\wxheading{See also} - -\helpref{wxLayoutAlgorithm}{wxlayoutalgorithm}, \helpref{wxSashWindow}{wxsashwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashLayoutWindow::wxSashLayoutWindow}\label{wxsashlayoutwindowctor} - -\func{}{wxSashLayoutWindow}{\void} - -Default constructor. - -\func{}{wxSashLayoutWindow}{\param{wxSashLayoutWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D}, - \param{const wxString\& }{name = "layoutWindow"}} - -Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default size for the window.} - -\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.} - -\docparam{name}{Window name.} - - -\membersection{wxSashLayoutWindow::Create}\label{wxsashlayoutwindowcreate} - -\func{bool}{Create}{\param{wxSashLayoutWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D}, - \param{const wxString\& }{name = "layoutWindow"}} - -Initializes a sash layout window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default position for the window. If using the wxSashLayoutWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows -should generate a default size for the window.} - -\docparam{style}{Window style. For window styles, please see \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}.} - -\docparam{name}{Window name.} - - -\membersection{wxSashLayoutWindow::GetAlignment}\label{wxsashlayoutwindowgetalignment} - -\constfunc{wxLayoutAlignment}{GetAlignment}{\void} - -Returns the alignment of the window: one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxSashLayoutWindow::GetOrientation}\label{wxsashlayoutwindowgetorientation} - -\constfunc{wxLayoutOrientation}{GetOrientation}{\void} - -Returns the orientation of the window: one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL. - -\membersection{wxSashLayoutWindow::OnCalculateLayout}\label{wxsashlayoutwindowoncalculatelayout} - -\func{void}{OnCalculateLayout}{\param{wxCalculateLayoutEvent\&}{ event}} - -The default handler for the event that is generated by wxLayoutAlgorithm. The implementation -of this function calls wxCalculateLayoutEvent::SetRect to shrink the provided size according to -how much space this window takes up. For further details, -see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent}. - -\membersection{wxSashLayoutWindow::OnQueryLayoutInfo}\label{wxsashlayoutwindowonquerylayoutinfo} - -\func{void}{OnQueryLayoutInfo}{\param{wxQueryLayoutInfoEvent\&}{ event}} - -The default handler for the event that is generated by OnCalculateLayout to get -size, alignment and orientation information for the window. The implementation -of this function uses member variables as set by accessors called by the application. -For further details, see \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} and \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}. - -\membersection{wxSashLayoutWindow::SetAlignment}\label{wxsashlayoutwindowsetalignment} - -\func{void}{SetAlignment}{\param{wxLayoutAlignment}{ alignment}} - -Sets the alignment of the window (which edge of the available parent client area the window -is attached to). {\it alignment} is one of wxLAYOUT\_TOP, wxLAYOUT\_LEFT, wxLAYOUT\_RIGHT, wxLAYOUT\_BOTTOM. - -\membersection{wxSashLayoutWindow::SetDefaultSize}\label{wxsashlayoutwindowsetdefaultsize} - -\func{void}{SetDefaultSize}{\param{const wxSize\& }{size}} - -Sets the default dimensions of the window. The dimension other than the orientation will be fixed to this -value, and the orientation dimension will be ignored and the window stretched to fit the available space. - -\membersection{wxSashLayoutWindow::SetOrientation}\label{wxsashlayoutwindowsetorientation} - -\func{void}{SetOrientation}{\param{wxLayoutOrientation}{ orientation}} - -Sets the orientation of the window (the direction the window will stretch in, to fill the available -parent client area). {\it orientation} is one of wxLAYOUT\_HORIZONTAL, wxLAYOUT\_VERTICAL. - - - diff --git a/docs/latex/wx/sashwin.tex b/docs/latex/wx/sashwin.tex deleted file mode 100644 index e91a19a670..0000000000 --- a/docs/latex/wx/sashwin.tex +++ /dev/null @@ -1,213 +0,0 @@ -\section{\class{wxSashWindow}}\label{wxsashwindow} - -wxSashWindow allows any of its edges to have a sash which can be dragged -to resize the window. The actual content window will be created by the application -as a child of wxSashWindow. The window (or an ancestor) will be notified of a drag -via a \helpref{wxSashEvent}{wxsashevent} notification. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sashwin.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Window styles} - -The following styles apply in addition to the normal wxWindow styles. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSW\_3D}}{Draws a 3D effect sash and border.} -\twocolitem{\windowstyle{wxSW\_3DSASH}}{Draws a 3D effect sash.} -\twocolitem{\windowstyle{wxSW\_3DBORDER}}{Draws a 3D effect border.} -\twocolitem{\windowstyle{wxSW\_BORDER}}{Draws a thin black border.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SASH\_DRAGGED(id, func)}}{Process a wxEVT\_SASH\_DRAGGED event, -when the user has finished dragging a sash.} -\twocolitem{{\bf EVT\_SASH\_DRAGGED\_RANGE(id1, id2, func)}}{Process a wxEVT\_SASH\_DRAGGED\_RANGE event, -when the user has finished dragging a sash. The event handler is called when windows with ids in the -given range have their sashes dragged.} -\end{twocollist} - -\wxheading{Data types} - -{\small -\begin{verbatim} -enum wxSashEdgePosition { - wxSASH_TOP = 0, - wxSASH_RIGHT, - wxSASH_BOTTOM, - wxSASH_LEFT, - wxSASH_NONE = 100 -}; -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxSashEvent}{wxsashevent}, \helpref{wxSashLayoutWindow}{wxsashlayoutwindow}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSashWindow::wxSashWindow}\label{wxsashwindowctor} - -\func{}{wxSashWindow}{\void} - -Default constructor. - -\func{}{wxSashWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxCLIP\_CHILDREN \pipe wxSW\_3D}, - \param{const wxString\& }{name = "sashWindow"}} - -Constructs a sash window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxSashWindows -should generate a default position for the window. If using the wxSashWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxSashWindows -should generate a default size for the window.} - -\docparam{style}{Window style. For window styles, please see \helpref{wxSashWindow}{wxsashwindow}.} - -\docparam{name}{Window name.} - -\membersection{wxSashWindow::\destruct{wxSashWindow}}\label{wxsashwindowdtor} - -\func{}{\destruct{wxSashWindow}}{\void} - -Destructor. - -\membersection{wxSashWindow::GetSashVisible}\label{wxsashwindowgetsashvisible} - -\constfunc{bool}{GetSashVisible}{\param{wxSashEdgePosition }{edge}} - -Returns true if a sash is visible on the given edge, false otherwise. - -\wxheading{Parameters} - -\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\wxheading{See also} - -\helpref{wxSashWindow::SetSashVisible}{wxsashwindowsetsashvisible} - -\membersection{wxSashWindow::GetMaximumSizeX}\label{wxsashwindowgetmaximumsizex} - -\constfunc{int}{GetMaximumSizeX}{\void} - -Gets the maximum window size in the x direction. - -\membersection{wxSashWindow::GetMaximumSizeY}\label{wxsashwindowgetmaximumsizey} - -\constfunc{int}{GetMaximumSizeY}{\void} - -Gets the maximum window size in the y direction. - -\membersection{wxSashWindow::GetMinimumSizeX}\label{wxsashwindowgetminimumsizex} - -\func{int}{GetMinimumSizeX}{\void} - -Gets the minimum window size in the x direction. - -\membersection{wxSashWindow::GetMinimumSizeY}\label{wxsashwindowgetminimumsizey} - -\constfunc{int}{GetMinimumSizeY}{\void} - -Gets the minimum window size in the y direction. - -\membersection{wxSashWindow::HasBorder}\label{wxsashwindowhasborder} - -\constfunc{bool}{HasBorder}{\param{wxSashEdgePosition }{edge}} - -Returns true if the sash has a border, false otherwise. -This function is obsolete since the sash border property is unused. - -\wxheading{Parameters} - -\docparam{edge}{Edge. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\wxheading{See also} - -\helpref{wxSashWindow::SetSashBorder}{wxsashwindowsetsashborder} - -\membersection{wxSashWindow::SetMaximumSizeX}\label{wxsashwindowsetmaximumsizex} - -\func{void}{SetMaximumSizeX}{\param{int}{ min}} - -Sets the maximum window size in the x direction. - -\membersection{wxSashWindow::SetMaximumSizeY}\label{wxsashwindowsetmaximumsizey} - -\func{void}{SetMaximumSizeY}{\param{int}{ min}} - -Sets the maximum window size in the y direction. - -\membersection{wxSashWindow::SetMinimumSizeX}\label{wxsashwindowsetminimumsizex} - -\func{void}{SetMinimumSizeX}{\param{int}{ min}} - -Sets the minimum window size in the x direction. - -\membersection{wxSashWindow::SetMinimumSizeY}\label{wxsashwindowsetminimumsizey} - -\func{void}{SetMinimumSizeY}{\param{int}{ min}} - -Sets the minimum window size in the y direction. - -\membersection{wxSashWindow::SetSashVisible}\label{wxsashwindowsetsashvisible} - -\func{void}{SetSashVisible}{\param{wxSashEdgePosition }{edge}, \param{bool}{ visible}} - -Call this function to make a sash visible or invisible on a particular edge. - -\wxheading{Parameters} - -\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\docparam{visible}{true to make the sash visible, false to make it invisible.} - -\wxheading{See also} - -\helpref{wxSashWindow::GetSashVisible}{wxsashwindowgetsashvisible} - -\membersection{wxSashWindow::SetSashBorder}\label{wxsashwindowsetsashborder} - -\func{void}{SetSashBorder}{\param{wxSashEdgePosition }{edge}, \param{bool}{ hasBorder}} - -Call this function to give the sash a border, or remove the border. -This function is obsolete since the sash border property is unused. - -\wxheading{Parameters} - -\docparam{edge}{Edge to change. One of wxSASH\_TOP, wxSASH\_RIGHT, wxSASH\_BOTTOM, wxSASH\_LEFT.} - -\docparam{hasBorder}{true to give the sash a border visible, false to remove it.} - -\wxheading{See also} - -\helpref{wxSashWindow::HasBorder}{wxsashwindowhasborder} - diff --git a/docs/latex/wx/sbsizer.tex b/docs/latex/wx/sbsizer.tex deleted file mode 100644 index f6d8fb5975..0000000000 --- a/docs/latex/wx/sbsizer.tex +++ /dev/null @@ -1,48 +0,0 @@ -\section{\class{wxStaticBoxSizer}}\label{wxstaticboxsizer} - -wxStaticBoxSizer is a sizer derived from wxBoxSizer but adds a static -box around the sizer. This static box may be either created independently or -the sizer may create it itself as a convenience. In any case, the sizer owns -the \helpref{wxStaticBox}{wxstaticbox} control and will delete it if it is -deleted. - -\wxheading{Derived from} - -\helpref{wxBoxSizer}{wxboxsizer}\\ -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{wxStaticBox}{wxstaticbox}, \helpref{wxBoxSizer}{wxboxsizer}, \helpref{Sizer overview}{sizeroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStaticBoxSizer::wxStaticBoxSizer}\label{wxstaticboxsizerwxstaticboxsizer} - -\func{}{wxStaticBoxSizer}{\param{wxStaticBox* }{box}, \param{int }{orient}} - -\func{}{wxStaticBoxSizer}{\param{int }{orient}, \param{wxWindow }{*parent}, \param{const wxString\& }{label = wxEmptyString}} - -The first constructor uses an already existing static box. It takes the -associated static box and the orientation \arg{orient}, which can be either -\texttt{wxVERTICAL} or \texttt{wxHORIZONTAL} as parameters. - -The second one creates a new static box with the given label and parent window. - - -\membersection{wxStaticBoxSizer::GetStaticBox}\label{wxstaticboxsizergetstaticbox} - -\func{wxStaticBox*}{GetStaticBox}{\void} - -Returns the static box associated with the sizer. - diff --git a/docs/latex/wx/sckaddr.tex b/docs/latex/wx/sckaddr.tex deleted file mode 100644 index 66b0c645ec..0000000000 --- a/docs/latex/wx/sckaddr.tex +++ /dev/null @@ -1,59 +0,0 @@ -% ---------------------------------------------------------------------------- -% CLASS: wxSockAddress -% ---------------------------------------------------------------------------- -\section{\class{wxSockAddress}}\label{wxsockaddress} - -You are unlikely to need to use this class: only wxSocketBase uses it. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} -\helpref{wxIPaddress}{wxipaddress} -\helpref{wxIPV4address}{wxipv4address} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% ctor/dtor -% -\membersection{wxSockAddress::wxSockAddress}\label{wxsockaddressctor} - -\func{}{wxSockAddress}{\void} - -Default constructor. - -\membersection{wxSockAddress::\destruct{wxSockAddress}}\label{wxsockaddressdtor} - -\func{}{\destruct{wxSockAddress}}{\void} - -Default destructor. - -% -% Clear -% -\membersection{wxSockAddress::Clear}\label{wxsockaddressclear} - -\func{void}{Clear}{\void} - -Delete all informations about the address. - -% -% SockAddrLen -% -\membersection{wxSockAddress::SockAddrLen}\label{wxsockaddresssockaddrlen} - -\func{int}{SockAddrLen}{\void} - -Returns the length of the socket address. - diff --git a/docs/latex/wx/scopedptr.tex b/docs/latex/wx/scopedptr.tex deleted file mode 100644 index 34b9430796..0000000000 --- a/docs/latex/wx/scopedptr.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{\class{wxScopedPtr<T>}}\label{wxscopedptrtemplate} - -A scoped pointer template class. It is the template version of -the old-style \helpref{scoped pointer macros}{wxscopedptr}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<ptr\_scpd.h> - -\wxheading{Data structures} - -{\small% -\begin{verbatim} -typedef T element_type -\end{verbatim} -}% - -\wxheading{See also} - -\helpref{wxSharedPtr}{wxsharedptr}, \helpref{wxWeakRef}{wxweakref} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScopedPtr<T>::wxScopedPtr<T>}\label{wxscopedptrtemplatewxscopedptrtemplate} - -\func{wxEXPLICIT}{wxScopedPtr<T>}{\param{T * }{ptr = NULL}} - -Constructor. - -\membersection{wxScopedPtr<T>::\destruct{wxScopedPtr<T>}}\label{wxscopedptrtemplatedtor} - -\func{}{\destruct{wxScopedPtr<T>}}{\void} - -Destructor. - -\membersection{wxScopedPtr<T>::get}\label{wxscopedptrtemplateget} - -\constfunc{T *}{get}{\void} - -Returns pointer to object or NULL. - -\membersection{wxScopedPtr<T>::operator unspecified\_bool\_type}\label{wxscopedptrtemplateoperatorbool} - -\constfunc{}{operator unspecified\_bool\_type}{\void} - -Conversion to a boolean expression (in a variant which is not -convertable to anything but a boolean expression). If this class -contains a valid pointer it will return {\it true}, if it contains -a NULL pointer it will return {\it false}. - -\membersection{wxScopedPtr<T>::operator*}\label{wxscopedptrtemplateoperatorreft} - -\constfunc{T \&}{operator*}{\void} - -Returns a reference to the object. If the internal pointer is NULL -this method will cause an assert in debug mode. - -\membersection{wxScopedPtr<T>::operator->}\label{wxscopedptrtemplateoperatorderef} - -\constfunc{T *}{operator->}{\void} - -Returns pointer to object. If the pointer is NULL this method will -cause an assert in debug mode. - -\membersection{wxScopedPtr<T>::release}\label{wxscopedptrtemplaterelease} - -\func{T*}{release}{\void} - -Releases the current pointer and returns it. -Afterwards the caller is responsible for deleting -the data contained in the scoped pointer before. - -\membersection{wxScopedPtr<T>::reset}\label{wxscopedptrtemplatereset} - -\func{void}{reset}{\param{T * }{ptr = NULL}} - -Reset pointer to the value of {\it ptr}. The -previous pointer will be deleted. - -\membersection{wxScopedPtr<T>::swap}\label{wxscopedptrtemplateswap} - -\func{void}{swap}{\param{wxScopedPtr<T> \& }{ot}} - -Swaps pointers. - diff --git a/docs/latex/wx/scpdarry.tex b/docs/latex/wx/scpdarry.tex deleted file mode 100644 index 6853c443c4..0000000000 --- a/docs/latex/wx/scpdarry.tex +++ /dev/null @@ -1,102 +0,0 @@ -\section{\class{wxScopedArray}}\label{wxscopedarray} - -This is a simple scoped smart pointer array implementation that is similar to -the \urlref{Boost}{http://www.boost.org} smart pointers but rewritten to -use macros instead. - -\wxheading{Example} - -Below is an example of using a wxWidgets scoped smart pointer and -pointer array. - -\begin{verbatim} - class MyClass { /* ... */ }; - - // declare a smart pointer to a MyClass called wxMyClassPtr - wxDECLARE_SCOPED_PTR(MyClass, wxMyClassPtr) - // declare a smart pointer to an array of chars - wxDECLARE_SCOPED_ARRAY(char, wxCharArray) - - ... - - // define the first pointer class, must be complete - wxDEFINE_SCOPED_PTR(MyClass, wxMyClassPtr) - // define the second pointer class - wxDEFINE_SCOPED_ARRAY(char, wxCharArray) - - // create an object with a new pointer to MyClass - wxMyClassPtr theObj(new MyClass()); - // reset the pointer (deletes the previous one) - theObj.reset(new MyClass()); - - // access the pointer - theObj->MyFunc(); - - // create an object with a new array of chars - wxCharArray theCharObj(new char[100]); - - // access the array - theCharObj[0] = "!"; -\end{verbatim} - -\wxheading{Declaring new smart pointer types} - -\begin{verbatim} - wxDECLAR_SCOPED_ARRAY( TYPE, // type of the values - CLASSNAME ); // name of the class -\end{verbatim} - -A smart pointer holds a pointer to an object (which must be complete -when wxDEFINE\_SCOPED\_ARRAY() is called). The memory used by the object is -deleted when the smart pointer goes out of scope. The first argument -of the macro is the pointer type, the second is the name of the new -smart pointer class being created. Below we will use wxScopedArray to -represent the scoped pointer array class, but the user may create the class -with any legal name. - -\wxheading{Include files} - -<wx/ptr\_scpd.h> - -\wxheading{See also} - -\helpref{wxScopedPtr}{wxscopedptr}\rtfsp - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScopedArray::wxScopedArray}\label{wxscopedarrayctor} - -\func{}{wxScopedArray}{\param{type}{ * T = NULL}} - -Creates the smart pointer with the given pointer or none if NULL. On -compilers that support it, this uses the explicit keyword. - -\membersection{wxScopedArray::reset}\label{wxscopedarrayreset} - -\func{\void}{reset}{\param{T}{ p * = NULL}} - -Deletes the currently held pointer and sets it to 'p' or to NULL if no -arguments are specified. This function does check to make sure that the -pointer you are assigning is not the same pointer that is already stored. - -\membersection{wxScopedArray::operator []}\label{wxscopedarraybracket} - -\func{const T \&}{operator []}{\param{long int}{i}} - -This operator acts like the standard [] indexing operator for C++ arrays. The -function does not do bounds checking. - -\membersection{wxScopedArray::get}\label{wxscopedarrayget} - -\func{const T*}{get}{\void} - -This operator gets the pointer stored in the smart pointer or returns NULL if -there is none. - -\membersection{wxScopedArray::swap}\label{wxscopedarrayswap} - -\func{\void}{swap}{\param{wxScopedPtr}{ \& ot}} - -Swap the pointer inside the smart pointer with 'ot'. The pointer being swapped -must be of the same type (hence the same class name). - diff --git a/docs/latex/wx/scpdptr.tex b/docs/latex/wx/scpdptr.tex deleted file mode 100644 index 47c36fcf50..0000000000 --- a/docs/latex/wx/scpdptr.tex +++ /dev/null @@ -1,205 +0,0 @@ -\section{\class{wxScopedPtr}}\label{wxscopedptr} - -This is a simple scoped smart pointer implementation that is similar to -the \urlref{Boost}{http://www.boost.org/} smart pointers but rewritten to -use macros instead. - -Since wxWidgets 2.9.0 there is also a templated version of this class -with the same name. See \helpref{wxScopedPtr<T>}{wxscopedptrtemplate}. - -A smart pointer holds a pointer to an object. The memory used by the object is -deleted when the smart pointer goes out of scope. This class is different from -the \texttt{std::auto\_ptr<>} in so far as it doesn't provide copy constructor -nor assignment operator. This limits what you can do with it but is much less -surprizing than the ``destructive copy'' behaviour of the standard class. - -\wxheading{Example} - -Below is an example of using a wxWidgets scoped smart pointer and -pointer array. - -\begin{verbatim} - class MyClass { /* ... */ }; - - // declare a smart pointer to a MyClass called wxMyClassPtr - wxDECLARE_SCOPED_PTR(MyClass, wxMyClassPtr) - // declare a smart pointer to an array of chars - wxDECLARE_SCOPED_ARRAY(char, wxCharArray) - - ... - - // define the first pointer class, must be complete - wxDEFINE_SCOPED_PTR(MyClass, wxMyClassPtr) - // define the second pointer class - wxDEFINE_SCOPED_ARRAY(char, wxCharArray) - - // create an object with a new pointer to MyClass - wxMyClassPtr theObj(new MyClass()); - // reset the pointer (deletes the previous one) - theObj.reset(new MyClass()); - - // access the pointer - theObj->MyFunc(); - - // create an object with a new array of chars - wxCharArray theCharObj(new char[100]); - - // access the array - theCharObj[0] = "!"; -\end{verbatim} - -\wxheading{Declaring new smart pointer types} - -To declare the smart pointer class \texttt{CLASSNAME} containing pointes to a -(possibly incomplete) type \texttt{TYPE} you should use - -\begin{verbatim} - wxDECLARE_SCOPED_PTR( TYPE, // type of the values - CLASSNAME ); // name of the class -\end{verbatim} - -And later, when \texttt{TYPE} is fully defined, you must also use - -\begin{verbatim} - wxDEFINE_SCOPED_PTR( TYPE, CLASSNAME ); -\end{verbatim} -to implement the scoped pointer class. - -The first argument of these macro is the pointer type, the second is the name -of the new smart pointer class being created. Below we will use wxScopedPtr to -represent the scoped pointer class, but the user may create the class with any -legal name. - -Alternatively, if you don't have to separate the point of declaration and -definition of this class and if you accept the standard naming convention, that -is that the scoped pointer for the class \texttt{Foo} is called -\texttt{FooPtr}, you can use a single macro which replaces two macros above: - -\begin{verbatim} - wxDEFINE_SCOPED_PTR_TYPE( TYPE ); -\end{verbatim} - -Once again, in this cass \texttt{CLASSNAME} will be \texttt{TYPEPtr}. - -\wxheading{Include files} - -<wx/ptr\_scpd.h> - -\wxheading{See also} - -\helpref{wxScopedArray}{wxscopedarray}\rtfsp - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScopedPtr::wxScopedPtr}\label{wxscopedptrctor} - -\func{}{explicit wxScopedPtr}{\param{type}{ * T = NULL}} - -Creates the smart pointer with the given pointer or none if {\tt NULL}. On -compilers that support it, this uses the explicit keyword. - - -\membersection{wxScopedPtr::\destruct{wxScopedPtr}}\label{wxscopedptrdtor} - -\func{}{\destruct{wxScopedPtr}}{\void} - -Destructor frees the pointer help by this object if it is not {\tt NULL}. - - -\membersection{wxScopedPtr::release}\label{wxscopedptrrelease} - -\func{T *}{release}{\void} - -Returns the currently hold pointer and resets the smart pointer object to -{\tt NULL}. After a call to this function the caller is responsible for -deleting the pointer. - - -\membersection{wxScopedPtr::reset}\label{wxscopedptrreset} - -\func{\void}{reset}{\param{T}{ p * = NULL}} - -Deletes the currently held pointer and sets it to {\it p} or to NULL if no -arguments are specified. This function does check to make sure that the -pointer you are assigning is not the same pointer that is already stored. - - -\membersection{wxScopedPtr::operator *}\label{wxscopedptrptr} - -\func{const T\&}{operator *}{\void} - -This operator works like the standard C++ pointer operator to return the object -being pointed to by the pointer. If the pointer is NULL or invalid this will -crash. - - -\membersection{wxScopedPtr::operator -$>$}\label{wxscopedptrref} - -\func{const T*}{operator -$>$}{\void} % TODO - -This operator works like the standard C++ pointer operator to return the pointer -in the smart pointer or NULL if it is empty. - - -\membersection{wxScopedPtr::get}\label{wxscopedptrget} - -\func{const T*}{get}{\void} - -This operator gets the pointer stored in the smart pointer or returns NULL if -there is none. - - -\membersection{wxScopedPtr::swap}\label{wxscopedptrswap} - -\func{\void}{swap}{\param{wxScopedPtr}{ \& other}} - -Swap the pointer inside the smart pointer with {\it other}. The pointer being -swapped must be of the same type (hence the same class name). - - - - -%%%%%%% wxScopedTiedPtr %%%%%%% -\section{\class{wxScopedTiedPtr}}\label{wxscopedtiedptr} - -This is a variation on the topic of \helpref{wxScopedPtr}{wxscopedptr}. This -class is also a smart pointer but in addition it ``ties'' the pointer value to -another variable. In other words, during the life time of this class the value -of that variable is set to be the same as the value of the pointer itself and -it is reset to its old value when the object is destroyed. This class is -especially useful when converting the existing code (which may already store -the pointers value in some variable) to the smart pointers. - -\wxheading{Example} - -\wxheading{Derives from} - -\helpref{wxScopedPtr}{wxscopedptr} - -\wxheading{Include files} - -<wx/ptr\_scpd.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScopedTiedPtr::wxScopedTiedPtr}\label{wxscopedtiedptrctor} - -\func{}{wxScopedTiedPtr}{\param{T **}{ppTie}, \param{T *}{ptr}} - -Constructor creates a smart pointer initialized with \arg{ptr} and stores -\arg{ptr} in the location specified by \arg{ppTie} which must not be -{\tt NULL}. - -\membersection{wxScopedTiedPtr::\destruct{wxScopedTiedPtr}}\label{wxscopedtiedptrdtor} - -\func{}{\destruct{wxScopedTiedPtr}}{\void} - -Destructor frees the pointer help by this object and restores the value stored -at the tied location (as specified in the \helpref{constructor}{wxscopedtiedptrctor}) -to the old value. - -Warning: this location may now contain an uninitialized value if it hadn't been -initialized previously, in particular don't count on it magically being -{\tt NULL}! - - diff --git a/docs/latex/wx/screendc.tex b/docs/latex/wx/screendc.tex deleted file mode 100644 index fdb558bd14..0000000000 --- a/docs/latex/wx/screendc.tex +++ /dev/null @@ -1,71 +0,0 @@ -\section{\class{wxScreenDC}}\label{wxscreendc} - -A wxScreenDC can be used to paint on the screen. -This should normally be constructed as a temporary stack object; don't store -a wxScreenDC object. - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/dcscreen.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxClientDC}{wxclientdc}, \helpref{wxWindowDC}{wxwindowdc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScreenDC::wxScreenDC}\label{wxscreendcctor} - -\func{}{wxScreenDC}{\void} - -Constructor. - -\membersection{wxScreenDC::StartDrawingOnTop}\label{wxscreendcstartdrawingontop} - -\func{bool}{StartDrawingOnTop}{\param{wxWindow*}{ window}} - -\func{bool}{StartDrawingOnTop}{\param{wxRect*}{ rect = NULL}} - -Use this in conjunction with \helpref{EndDrawingOnTop}{wxscreendcenddrawingontop} to -ensure that drawing to the screen occurs on top of existing windows. Without this, -some window systems (such as X) only allow drawing to take place underneath -other windows. - -By using the first form of this function, an application is specifying that -the area that will be drawn on coincides with the given window. - -By using the second form, an application can specify an area of the screen -which is to be drawn on. If NULL is passed, the whole screen is available. - -It is recommended that an area of the screen is specified because with large regions, -flickering effects are noticeable when destroying the temporary transparent window used -to implement this feature. - -You might use this pair of functions when implementing a drag feature, for example -as in the \helpref{wxSplitterWindow}{wxsplitterwindow} implementation. - -\wxheading{Remarks} - -This function is probably obsolete since the X implementations -allow drawing directly on the screen now. However, the fact that this -function allows the screen to be refreshed afterwards, may be useful to -some applications. - -\membersection{wxScreenDC::EndDrawingOnTop}\label{wxscreendcenddrawingontop} - -\func{bool}{EndDrawingOnTop}{\void} - -Use this in conjunction with \helpref{StartDrawingOnTop}{wxscreendcstartdrawingontop}. - -This function destroys the temporary window created to implement on-top drawing (X only). - diff --git a/docs/latex/wx/scrlwevt.tex b/docs/latex/wx/scrlwevt.tex deleted file mode 100644 index 1c7fa96375..0000000000 --- a/docs/latex/wx/scrlwevt.tex +++ /dev/null @@ -1,66 +0,0 @@ -\section{\class{wxScrollWinEvent}}\label{wxscrollwinevent} - -A scroll event holds information about events sent from scrolling windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a scroll window event, use these event handler macros to direct input to member -functions that take a wxScrollWinEvent argument. You can use the EVT\_SCROLLWIN... macros -for intercepting scroll window events from the receiving window. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SCROLLWIN(func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_TOP(func)}}{Process wxEVT\_SCROLLWIN\_TOP scroll-to-top events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_BOTTOM(func)}}{Process wxEVT\_SCROLLWIN\_BOTTOM scroll-to-bottom events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_LINEUP(func)}}{Process wxEVT\_SCROLLWIN\_LINEUP line up events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_LINEDOWN(func)}}{Process wxEVT\_SCROLLWIN\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_PAGEUP(func)}}{Process wxEVT\_SCROLLWIN\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_PAGEDOWN(func)}}{Process wxEVT\_SCROLLWIN\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_SCROLLWIN\_THUMBTRACK(func)}}{Process wxEVT\_SCROLLWIN\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumbtrack).} -\twocolitem{{\bf EVT\_SCROLLWIN\_THUMBRELEASE(func)}}{Process wxEVT\_SCROLLWIN\_THUMBRELEASE thumb release events.} -\end{twocollist}% - -\wxheading{See also} - -%\helpref{wxWindow::OnScroll}{wxwindowonscroll}, -\helpref{wxScrollEvent}{wxscrollevent}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrollWinEvent::wxScrollWinEvent}\label{wxscrollwineventctor} - -\func{}{wxScrollWinEvent}{\param{WXTYPE }{commandType = 0}, \param{int}{ pos = 0}, -\rtfsp\param{int}{ orientation = 0}} - -Constructor. - -\membersection{wxScrollWinEvent::GetOrientation}\label{wxscrollwineventgetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the scrollbar. - -\membersection{wxScrollWinEvent::GetPosition}\label{wxscrollwineventgetposition} - -\constfunc{int}{GetPosition}{\void} - -Returns the position of the scrollbar for the thumb track and release events. -Note that this field can't be used for the other events, you need to query -the window itself for the current position in that case. - - diff --git a/docs/latex/wx/scrolbar.tex b/docs/latex/wx/scrolbar.tex deleted file mode 100644 index b4a0ed6907..0000000000 --- a/docs/latex/wx/scrolbar.tex +++ /dev/null @@ -1,301 +0,0 @@ -\section{\class{wxScrollBar}}\label{wxscrollbar} - -A wxScrollBar is a control that represents a horizontal or -vertical scrollbar. It is distinct from the two scrollbars that some windows -provide automatically, but the two types of scrollbar share the way -events are received. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/scrolbar.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Remarks} - -A scrollbar has the following main attributes: {\it range}, {\it thumb size}, {\it page size}, and {\it position}. - -The range is the total number of units associated with the view represented by the scrollbar. -For a table with 15 columns, the range would be 15. - -The thumb size is the number of units that are currently visible. For the table example, the window -might be sized so that only 5 columns are currently visible, in which case the application would -set the thumb size to 5. When the thumb size becomes the same as or greater than the range, -the scrollbar will be automatically hidden on most platforms. - -The page size is the number of units that the scrollbar should scroll by, when `paging' through -the data. This value is normally the same as the thumb size length, because -it is natural to assume that the visible window size defines a page. - -The scrollbar position is the current thumb position. - -Most applications will find it convenient to provide a function called {\bf AdjustScrollbars} which can -be called initially, from an {\bf OnSize} event handler, and whenever the application data -changes in size. It will adjust the view, object and page size according -to the size of the window and the size of the data. - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSB\_HORIZONTAL}}{Specifies a horizontal scrollbar.} -\twocolitem{\windowstyle{wxSB\_VERTICAL}}{Specifies a vertical scrollbar.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\input scrolevt.inc - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview},\rtfsp -\helpref{wxScrolledWindow}{wxscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxScrollBar::wxScrollBar}\label{wxscrollbarctor} - -\func{}{wxScrollBar}{\void} - -Default constructor. - -\func{}{wxScrollBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSB\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``scrollBar"}} - -Constructor, creating and showing a scrollbar. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must be non-NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxScrollBar}{wxscrollbar}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxScrollBar::Create}{wxscrollbarcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxScrollBar::\destruct{wxScrollBar}}\label{wxscrollbardtor} - -\func{void}{\destruct{wxScrollBar}}{\void} - -Destructor, destroying the scrollbar. - - -\membersection{wxScrollBar::Create}\label{wxscrollbarcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSB\_HORIZONTAL}, \param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``scrollBar"}} - -Scrollbar creation function called by the scrollbar constructor. -See \helpref{wxScrollBar::wxScrollBar}{wxscrollbarctor} for details. - - -\membersection{wxScrollBar::GetRange}\label{wxscrollbargetrange} - -\constfunc{int}{GetRange}{\void} - -Returns the length of the scrollbar. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - - -\membersection{wxScrollBar::GetPageSize}\label{wxscrollbargetpagesize} - -\constfunc{int}{GetPageSize}{\void} - -Returns the page size of the scrollbar. This is the number of scroll units -that will be scrolled when the user pages up or down. Often it is the -same as the thumb size. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - - -\membersection{wxScrollBar::GetThumbPosition}\label{wxscrollbargetthumbposition} - -\constfunc{int}{GetThumbPosition}{\void} - -Returns the current position of the scrollbar thumb. - -\wxheading{See also} - -\helpref{wxScrollBar::SetThumbPosition}{wxscrollbarsetthumbposition} - - -\membersection{wxScrollBar::GetThumbSize}\label{wxscrollbargetthumbsize} - -\constfunc{int}{GetThumbSize}{\void} - -Returns the thumb or `view' size. - -\wxheading{See also} - -\helpref{wxScrollBar::SetScrollbar}{wxscrollbarsetscrollbar} - -\begin{comment} - -\membersection{wxScrollBar::SetObjectLength}\label{wxscrollbarsetobjectlength} - -\func{void}{SetObjectLength}{\param{int}{ objectLength}} - -Sets the object length for the scrollbar. This is the total object size (virtual size). You must -call \helpref{SetViewLength}{wxscrollbarsetviewlength} {\it before} calling SetObjectLength. - -\wxheading{Parameters} - -\docparam{objectLength}{The object length of the scrollbar.} - -\wxheading{Remarks} - -Example: you are implementing scrollbars on a text window, where text lines have a maximum width -of 100 characters. Your text window has a current width of 60 characters. So the view length is 60, -and the object length is 100. The scrollbar will then enable you to scroll to see the other 40 characters. - -You will need to call {\bf SetViewLength} and {\bf SetObjectLength} whenever there -is a change in the size of the window (the view size) or the size of the -contents (the object length). - -\wxheading{See also} - -\helpref{wxScrollBar::GetObjectLength}{wxscrollbargetobjectlength} - - -\membersection{wxScrollBar::SetPageSize}\label{wxscrollbarsetpagesize} - -\func{void}{SetPageSize}{\param{int}{ pageSize}} - -Sets the page size for the scrollbar. This is the number of scroll units which are scrolled when the -user pages down (clicks on the scrollbar outside the thumbtrack area). - -\wxheading{Parameters} - -\docparam{pageSize}{The page size in scroll units.} - -\wxheading{Remarks} - -At present, this needs to be called {\it before} other set functions. - -\wxheading{See also} - -\helpref{wxScrollBar::GetPageSize}{wxscrollbargetpagesize} -\end{comment} - - -\membersection{wxScrollBar::SetThumbPosition}\label{wxscrollbarsetthumbposition} - -\func{void}{SetThumbPosition}{\param{int}{ viewStart}} - -Sets the position of the scrollbar. - -\wxheading{Parameters} - -\docparam{viewStart}{The position of the scrollbar thumb.} - -\wxheading{See also} - -\helpref{wxScrollBar::GetThumbPosition}{wxscrollbargetthumbposition} - - -\membersection{wxScrollBar::SetScrollbar}\label{wxscrollbarsetscrollbar} - -\func{virtual void}{SetScrollbar}{\param{int }{position},\rtfsp -\param{int }{thumbSize}, \param{int }{range},\rtfsp -\param{int }{pageSize},\rtfsp -\param{bool }{refresh = true}} - -Sets the scrollbar properties. - -\wxheading{Parameters} - -\docparam{position}{The position of the scrollbar in scroll units.} - -\docparam{thumbSize}{The size of the thumb, or visible portion of the scrollbar, in scroll units.} - -\docparam{range}{The maximum position of the scrollbar.} - -\docparam{pageSize}{The size of the page size in scroll units. This is the number of units -the scrollbar will scroll when it is paged up or down. Often it is the same as -the thumb size.} - -\docparam{refresh}{true to redraw the scrollbar, false otherwise.} - -\wxheading{Remarks} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - scrollbar->SetScrollbar(0, 16, 50, 15); -\end{verbatim} -} - -The page size is 1 less than the thumb size so that the last line of the previous -page will be visible on the next page, to help orient the user. - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from a \helpref{wxSizeEvent}{wxsizeevent} event handler function. - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} - - -\begin{comment} - -\membersection{wxScrollBar::SetViewLength}\label{wxscrollbarsetviewlength} - -\func{void}{SetViewLength}{\param{int}{ viewLength}} - -Sets the view length for the scrollbar. - -\wxheading{Parameters} - -\docparam{viewLength}{View length.} - -\wxheading{See also} - -\helpref{wxScrollBar::GetViewLength}{wxscrollbargetviewlength} -\end{comment} - diff --git a/docs/latex/wx/scrolevt.inc b/docs/latex/wx/scrolevt.inc deleted file mode 100644 index 509a45cb0b..0000000000 --- a/docs/latex/wx/scrolevt.inc +++ /dev/null @@ -1,52 +0,0 @@ -\wxheading{Event table macros} - -To process a scroll event, use these event handler macros to direct input to -member functions that take a wxScrollEvent argument. You can use -{\tt EVT\_COMMAND\_SCROLL...} macros with window IDs for when intercepting -scroll events from controls, or {\tt EVT\_SCROLL...} macros without window IDs -for intercepting scroll events from the receiving window -- except for this, -the macros behave exactly the same. - -\twocolwidtha{9cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SCROLL(func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_SCROLL\_TOP(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events (minimum position).} -\twocolitem{{\bf EVT\_SCROLL\_BOTTOM(func)}}{Process wxEVT\_SCROLL\_BOTTOM scroll-to-bottom events (maximum position).} -\twocolitem{{\bf EVT\_SCROLL\_LINEUP(func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_SCROLL\_LINEDOWN(func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_SCROLL\_PAGEUP(func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_SCROLL\_PAGEDOWN(func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_SCROLL\_THUMBTRACK(func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumbtrack).} -\twocolitem{{\bf EVT\_SCROLL\_THUMBRELEASE(func)}}{Process wxEVT\_SCROLL\_THUMBRELEASE thumb release events.} -\twocolitem{{\bf EVT\_SCROLL\_CHANGED(func)}}{Process wxEVT\_SCROLL\_CHANGED end of scrolling events (MSW only).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL(id, func)}}{Process all scroll events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_TOP(id, func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events (minimum position).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_BOTTOM(id, func)}}{Process wxEVT\_SCROLL\_BOTTOM scroll-to-bottom events (maximum position).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEUP(id, func)}}{Process wxEVT\_SCROLL\_LINEUP line up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_LINEDOWN(id, func)}}{Process wxEVT\_SCROLL\_LINEDOWN line down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEUP(id, func)}}{Process wxEVT\_SCROLL\_PAGEUP page up events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_PAGEDOWN(id, func)}}{Process wxEVT\_SCROLL\_PAGEDOWN page down events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_THUMBTRACK(id, func)}}{Process wxEVT\_SCROLL\_THUMBTRACK thumbtrack events (frequent events -sent as the user drags the thumbtrack).} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_THUMBRELEASE(func)}}{Process wxEVT\_SCROLL\_THUMBRELEASE thumb release events.} -\twocolitem{{\bf EVT\_COMMAND\_SCROLL\_CHANGED(func)}}{Process wxEVT\_SCROLL\_CHANGED end of scrolling events (MSW only).} -\end{twocollist}% - - - -\wxheading{The difference between {\tt EVT\_SCROLL\_THUMBRELEASE} and {\tt EVT\_SCROLL\_CHANGED}} - -The {\tt EVT\_SCROLL\_THUMBRELEASE} event is only emitted when actually dragging -the thumb using the mouse and releasing it (This {\tt EVT\_SCROLL\_THUMBRELEASE} -event is also followed by an {\tt EVT\_SCROLL\_CHANGED} event). - -The {\tt EVT\_SCROLL\_CHANGED} event also occurs when using the keyboard to -change the thumb position, and when clicking next to the thumb (In all these -cases the {\tt EVT\_SCROLL\_THUMBRELEASE} event does not happen). - -In short, the {\tt EVT\_SCROLL\_CHANGED} event is triggered when scrolling/ -moving has finished independently of the way it had started. Please see the -widgets sample ("Slider" page) to see the difference between {\tt -EVT\_SCROLL\_THUMBRELEASE} and {\tt EVT\_SCROLL\_CHANGED} in action. - diff --git a/docs/latex/wx/scrolevt.tex b/docs/latex/wx/scrolevt.tex deleted file mode 100644 index c67d72ecef..0000000000 --- a/docs/latex/wx/scrolevt.tex +++ /dev/null @@ -1,58 +0,0 @@ -\section{\class{wxScrollEvent}}\label{wxscrollevent} - -A scroll event holds information about events sent from stand-alone -\helpref{scrollbars}{wxscrollbar} and \helpref{sliders}{wxslider}. Note that -starting from wxWidgets 2.1, scrolled windows send the -\helpref{wxScrollWinEvent}{wxscrollwinevent} which does not derive from -wxCommandEvent, but from wxEvent directly - don't confuse these two kinds of -events and use the event table macros mentioned below only for the -scrollbar-like controls. - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\input scrolevt.inc - -\wxheading{Remarks} - -Note that unless specifying a scroll control identifier, you will need to test for scrollbar -orientation with \helpref{wxScrollEvent::GetOrientation}{wxscrolleventgetorientation}, since -horizontal and vertical scroll events are processed using the same event handler. - -\wxheading{See also} - -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxSlider}{wxslider}, \helpref{wxSpinButton}{wxspinbutton}, \\ -\helpref{wxScrollWinEvent}{wxscrollwinevent}, \helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxScrollEvent::wxScrollEvent}\label{wxscrolleventctor} - -\func{}{wxScrollEvent}{\param{WXTYPE }{commandType = 0}, \param{int }{id = 0}, \param{int}{ pos = 0}, -\rtfsp\param{int}{ orientation = 0}} - -Constructor. - -\membersection{wxScrollEvent::GetOrientation}\label{wxscrolleventgetorientation} - -\constfunc{int}{GetOrientation}{\void} - -Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the scrollbar. - -\membersection{wxScrollEvent::GetPosition}\label{wxscrolleventgetposition} - -\constfunc{int}{GetPosition}{\void} - -Returns the position of the scrollbar. - diff --git a/docs/latex/wx/scrolwin.tex b/docs/latex/wx/scrolwin.tex deleted file mode 100644 index 0148c15567..0000000000 --- a/docs/latex/wx/scrolwin.tex +++ /dev/null @@ -1,481 +0,0 @@ -\section{\class{wxScrolledWindow}}\label{wxscrolledwindow} - -The wxScrolledWindow class manages scrolling for its client area, transforming -the coordinates according to the scrollbar positions, and setting the -scroll positions, thumb sizes and ranges according to the area in view. - -Starting from version 2.4 of wxWidgets, there are several ways to use a -wxScrolledWindow. In particular, there are now three ways to set the -size of the scrolling area: - -One way is to set the scrollbars directly using a call to -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}. -This is the way it used to be in any previous version of wxWidgets -and it will be kept for backwards compatibility. - -An additional method of manual control, which requires a little less -computation of your own, is to set the total size of the scrolling area by -calling either \helpref{wxWindow::SetVirtualSize}{wxwindowsetvirtualsize}, -or \helpref{wxWindow::FitInside}{wxwindowfitinside}, and setting the -scrolling increments for it by calling -\helpref{wxScrolledWindow::SetScrollRate}{wxscrolledwindowsetscrollrate}. -Scrolling in some orientation is enabled by setting a non-zero increment -for it. - -The most automatic and newest way is to simply let sizers determine the -scrolling area. This is now the default when you set an interior sizer -into a wxScrolledWindow with \helpref{wxWindow::SetSizer}{wxwindowsetsizer}. -The scrolling area will be set to the size requested by the sizer and -the scrollbars will be assigned for each orientation according to the need -for them and the scrolling increment set by -\helpref{wxScrolledWindow::SetScrollRate}{wxscrolledwindowsetscrollrate}. -As above, scrolling is only enabled in orientations with a non-zero -increment. You can influence the minimum size of the scrolled area -controlled by a sizer by calling -\helpref{wxWindow::SetVirtualSizeHints}{wxwindowsetvirtualsizehints}. -(calling \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} - has analogous effects in wxWidgets 2.4 -- in later versions it may not continue - to override the sizer) - -Note: if Maximum size hints are still supported by SetVirtualSizeHints, use -them at your own dire risk. They may or may not have been removed for 2.4, -but it really only makes sense to set minimum size hints here. We should -probably replace SetVirtualSizeHints with SetMinVirtualSize or similar -and remove it entirely in future. - -As with all windows, an application can draw onto a wxScrolledWindow using -a \helpref{device context}{dcoverview}. - -You have the option of handling the OnPaint handler -or overriding the \helpref{OnDraw}{wxscrolledwindowondraw} function, which is -passed a pre-scrolled device context (prepared by -\helpref{DoPrepareDC}{wxscrolledwindowdopreparedc}). - -If you don't wish to calculate your own scrolling, you must call DoPrepareDC when not drawing from -within OnDraw, to set the device origin for the device context according to the current -scroll position. - -A wxScrolledWindow will normally scroll itself and therefore its child windows as well. It -might however be desired to scroll a different window than itself: e.g. when designing a -spreadsheet, you will normally only have to scroll the (usually white) cell area, whereas the -(usually grey) label area will scroll very differently. For this special purpose, you can -call \helpref{SetTargetWindow}{wxscrolledwindowsettargetwindow} which means that pressing -the scrollbars will scroll a different window. - -Note that the underlying system knows nothing about scrolling coordinates, so that all system -functions (mouse events, expose events, refresh calls etc) as well as the position of subwindows -are relative to the "physical" origin of the scrolled window. If the user insert a child window at -position (10,10) and scrolls the window down 100 pixels (moving the child window out of the visible -area), the child window will report a position of (10,-90). - - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/scrolwin.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxRETAINED}}{Uses a backing pixmap to speed refreshes. Motif only.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -Use wxScrolledWindow for applications where the user scrolls by a fixed amount, and -where a `page' can be interpreted to be the current visible portion of the window. For -more sophisticated applications, use the wxScrolledWindow implementation as a guide -to build your own scroll behaviour. - -\wxheading{See also} - -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxClientDC}{wxclientdc},\\ -\helpref{wxPaintDC}{wxpaintdc}, \helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxScrolledWindow::wxScrolledWindow}\label{wxscrolledwindowctor} - -\func{}{wxScrolledWindow}{\void} - -Default constructor. - -\func{}{wxScrolledWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}} - -Constructor. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If a position of (-1, -1) is specified then a default position -is chosen.} - -\docparam{size}{Window size. If a size of (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxScrolledWindow}{wxscrolledwindow}.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The window is initially created without visible scrollbars. -Call \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} to -specify how big the virtual window size should be. - - -\membersection{wxScrolledWindow::\destruct{wxScrolledWindow}}\label{wxscrolledwindowdtor} - -\func{}{\destruct{wxScrolledWindow}}{\void} - -Destructor. - - -\membersection{wxScrolledWindow::CalcScrolledPosition}\label{wxscrolledwindowcalcscrolledposition} - -\constfunc{void}{CalcScrolledPosition}{ - \param{int }{x}, - \param{int }{y}, - \param{int *}{xx} - \param{int *}{yy}} - -Translates the logical coordinates to the device ones. For example, if a window is -scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) -(as always), but the logical coordinates are (0, 10) and so the call to -CalcScrolledPosition(0, 10, \&xx, \&yy) will return 0 in yy. - -\wxheading{See also} - -\helpref{CalcUnscrolledPosition}{wxscrolledwindowcalcunscrolledposition} - -\pythonnote{The wxPython version of this methods accepts only two -parameters and returns xx and yy as a tuple of values.} - -\perlnote{In wxPerl this method takes two parameters and returns a -2-element list {\tt ( xx, yy )}.} - - -\membersection{wxScrolledWindow::CalcUnscrolledPosition}\label{wxscrolledwindowcalcunscrolledposition} - -\constfunc{void}{CalcUnscrolledPosition}{ - \param{int }{x}, - \param{int }{y}, - \param{int *}{xx} - \param{int *}{yy}} - -Translates the device coordinates to the logical ones. For example, if a window is -scrolled 10 pixels to the bottom, the device coordinates of the origin are (0, 0) -(as always), but the logical coordinates are (0, 10) and so the call to -CalcUnscrolledPosition(0, 0, \&xx, \&yy) will return 10 in yy. - -\wxheading{See also} - -\helpref{CalcScrolledPosition}{wxscrolledwindowcalcscrolledposition} - -\pythonnote{The wxPython version of this methods accepts only two -parameters and returns xx and yy as a tuple of values.} - -\perlnote{In wxPerl this method takes two parameters and returns a -2-element list {\tt ( xx, yy )}.} - - -\membersection{wxScrolledWindow::Create}\label{wxscrolledwindowcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id = -1},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxHSCROLL \pipe wxVSCROLL}, \param{const wxString\& }{name = ``scrolledWindow"}} - -Creates the window for two-step construction. Derived classes -should call or replace this function. See \helpref{wxScrolledWindow::wxScrolledWindow}{wxscrolledwindowctor}\rtfsp -for details. - - -\membersection{wxScrolledWindow::EnableScrolling}\label{wxscrolledwindowenablescrolling} - -\func{void}{EnableScrolling}{\param{bool}{ xScrolling}, \param{bool}{ yScrolling}} - -Enable or disable physical scrolling in the given direction. Physical -scrolling is the physical transfer of bits up or down the -screen when a scroll event occurs. If the application scrolls by a -variable amount (e.g. if there are different font sizes) then physical -scrolling will not work, and you should switch it off. Note that you -will have to reposition child windows yourself, if physical scrolling -is disabled. - -\wxheading{Parameters} - -\docparam{xScrolling}{If true, enables physical scrolling in the x direction.} - -\docparam{yScrolling}{If true, enables physical scrolling in the y direction.} - -\wxheading{Remarks} - -Physical scrolling may not be available on all platforms. Where it is available, it is enabled -by default. - - -\membersection{wxScrolledWindow::GetScrollPixelsPerUnit}\label{wxscrolledwindowgetscrollpixelsperunit} - -\constfunc{void}{GetScrollPixelsPerUnit}{\param{int* }{xUnit}, \param{int* }{yUnit}} - -Get the number of pixels per scroll unit (line), in each direction, as set -by \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}. A value of zero indicates no -scrolling in that direction. - -\wxheading{Parameters} - -\docparam{xUnit}{Receives the number of pixels per horizontal unit.} - -\docparam{yUnit}{Receives the number of pixels per vertical unit.} - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetVirtualSize}{wxscrolledwindowgetvirtualsize} - -\pythonnote{The wxPython version of this methods accepts no -parameters and returns a tuple of values for xUnit and yUnit.} - -\perlnote{In wxPerl this method takes no parameters and returns a -2-element list {\tt ( xUnit, yUnit )}.} - - -\membersection{wxScrolledWindow::GetViewStart}\label{wxscrolledwindowgetviewstart} - -\constfunc{void}{GetViewStart}{\param{int* }{x}, \param{int* }{ y}} - -Get the position at which the visible portion of the window starts. - -\wxheading{Parameters} - -\docparam{x}{Receives the first visible x position in scroll units.} - -\docparam{y}{Receives the first visible y position in scroll units.} - -\wxheading{Remarks} - -If either of the scrollbars is not at the home position, {\it x} and/or -\rtfsp{\it y} will be greater than zero. Combined with \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize}, -the application can use this function to efficiently redraw only the -visible portion of the window. The positions are in logical scroll -units, not pixels, so to convert to pixels you will have to multiply -by the number of pixels per scroll increment. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} - -\pythonnote{The wxPython version of this methods accepts no -parameters and returns a tuple of values for x and y.} - -\perlnote{In wxPerl this method takes no parameters and returns a -2-element list {\tt ( x, y )}.} - - -\membersection{wxScrolledWindow::GetVirtualSize}\label{wxscrolledwindowgetvirtualsize} - -\constfunc{void}{GetVirtualSize}{\param{int* }{x}, \param{int* }{y}} - -Gets the size in device units of the scrollable window area (as -opposed to the client size, which is the area of the window currently -visible). - -\wxheading{Parameters} - -\docparam{x}{Receives the length of the scrollable window, in pixels.} - -\docparam{y}{Receives the height of the scrollable window, in pixels.} - -\wxheading{Remarks} - -Use \helpref{wxDC::DeviceToLogicalX}{wxdcdevicetologicalx} and \helpref{wxDC::DeviceToLogicalY}{wxdcdevicetologicaly}\rtfsp -to translate these units to logical units. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit} - -\pythonnote{The wxPython version of this methods accepts no -parameters and returns a tuple of values for x and y.} - -\perlnote{In wxPerl this method takes no parameters and returns a -2-element list {\tt ( x, y )}.} - - -\membersection{wxScrolledWindow::IsRetained}\label{wxscrolledwindowisretained} - -\constfunc{bool}{IsRetained}{\void} - -Motif only: true if the window has a backing bitmap. - - -\membersection{wxScrolledWindow::DoPrepareDC}\label{wxscrolledwindowdopreparedc} - -\func{void}{DoPrepareDC}{\param{wxDC\& }{dc}} - -Call this function to prepare the device context for drawing a scrolled image. It -sets the device origin according to the current scroll position. - -DoPrepareDC is called automatically within the default wxScrolledWindow::OnPaint event -handler, so your \helpref{wxScrolledWindow::OnDraw}{wxscrolledwindowondraw} override -will be passed a 'pre-scrolled' device context. However, if you wish to draw from -outside of OnDraw (via OnPaint), or you wish to implement OnPaint yourself, you must -call this function yourself. For example: - -\begin{verbatim} -void MyWindow::OnEvent(wxMouseEvent& event) -{ - wxClientDC dc(this); - DoPrepareDC(dc); - - dc.SetPen(*wxBLACK_PEN); - float x, y; - event.Position(&x, &y); - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - dc.DrawLine(xpos, ypos, x, y); - } - xpos = x; - ypos = y; -} -\end{verbatim} - - -\membersection{wxScrolledWindow::OnDraw}\label{wxscrolledwindowondraw} - -\func{virtual void}{OnDraw}{\param{wxDC\& }{dc}} - -Called by the default paint event handler to allow the application to define -painting behaviour without having to worry about calling -\helpref{wxScrolledWindow::DoPrepareDC}{wxscrolledwindowdopreparedc}. - -Instead of overriding this function you may also just process the paint event -in the derived class as usual, but then you will have to call DoPrepareDC() -yourself. - - -\membersection{wxScrolledWindow::PrepareDC}\label{wxscrolledwindowpreparedc} - -\func{void}{PrepareDC}{\param{wxDC\& }{dc}} - -This function is for backwards compatibility only and simply calls -\helpref{DoPrepareDC}{wxscrolledwindowdopreparedc} now. Notice that it is -\emph{not} called by the default paint event handle (DoPrepareDC() is), so -overriding this method in your derived class is useless. - - -\membersection{wxScrolledWindow::Scroll}\label{wxscrolledwindowscroll} - -\func{void}{Scroll}{\param{int}{ x}, \param{int}{ y}} - -Scrolls a window so the view start is at the given point. - -\wxheading{Parameters} - -\docparam{x}{The x position to scroll to, in scroll units.} - -\docparam{y}{The y position to scroll to, in scroll units.} - -\wxheading{Remarks} - -The positions are in scroll units, not pixels, so to convert to pixels you -will have to multiply by the number of pixels per scroll increment. -If either parameter is -1, that position will be ignored (no change in -that direction). - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxScrolledWindow::GetScrollPixelsPerUnit}{wxscrolledwindowgetscrollpixelsperunit} - - -\membersection{wxScrolledWindow::SetScrollbars}\label{wxscrolledwindowsetscrollbars} - -\func{void}{SetScrollbars}{\param{int}{ pixelsPerUnitX}, \param{int}{ pixelsPerUnitY},\rtfsp -\param{int}{ noUnitsX}, \param{int}{ noUnitsY},\rtfsp -\param{int }{xPos = 0}, \param{int}{ yPos = 0},\rtfsp -\param{bool }{noRefresh = false}} - -Sets up vertical and/or horizontal scrollbars. - -\wxheading{Parameters} - -\docparam{pixelsPerUnitX}{Pixels per scroll unit in the horizontal direction.} - -\docparam{pixelsPerUnitY}{Pixels per scroll unit in the vertical direction.} - -\docparam{noUnitsX}{Number of units in the horizontal direction.} - -\docparam{noUnitsY}{Number of units in the vertical direction.} - -\docparam{xPos}{Position to initialize the scrollbars in the horizontal direction, in scroll units.} - -\docparam{yPos}{Position to initialize the scrollbars in the vertical direction, in scroll units.} - -\docparam{noRefresh}{Will not refresh window if true.} - -\wxheading{Remarks} - -The first pair of parameters give the number of pixels per `scroll step', i.e. amount -moved when the up or down scroll arrows are pressed. -The second pair gives the length of scrollbar in scroll steps, which sets the size of the virtual -window. - -{\it xPos} and {\it yPos} optionally specify a position to scroll to immediately. - -For example, the following gives a window horizontal and vertical -scrollbars with 20 pixels per scroll step, and a size of 50 steps (1000 -pixels) in each direction. - -\begin{verbatim} - window->SetScrollbars(20, 20, 50, 50); -\end{verbatim} - -wxScrolledWindow manages the page size itself, -using the current client window size as the page size. - -Note that for more sophisticated scrolling applications, for example where -scroll steps may be variable according to the position in the document, it will be -necessary to derive a new class from wxWindow, overriding {\bf OnSize} and -adjusting the scrollbars appropriately. - -\wxheading{See also} - -\helpref{wxWindow::SetVirtualSize}{wxwindowsetvirtualsize} - - -\membersection{wxScrolledWindow::SetScrollRate}\label{wxscrolledwindowsetscrollrate} - -\func{void}{SetScrollRate}{\param{int}{ xstep}, \param{int}{ ystep}} - -Set the horizontal and vertical scrolling increment only. See the pixelsPerUnit -parameter in SetScrollbars. - - -\membersection{wxScrolledWindow::SetTargetWindow}\label{wxscrolledwindowsettargetwindow} - -\func{void}{SetTargetWindow}{\param{wxWindow* }{window}} - -Call this function to tell wxScrolledWindow to perform the actual scrolling on -a different window (and not on itself). - diff --git a/docs/latex/wx/semaphor.tex b/docs/latex/wx/semaphor.tex deleted file mode 100644 index 9d9271f944..0000000000 --- a/docs/latex/wx/semaphor.tex +++ /dev/null @@ -1,139 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: semaphore.tex -%% Purpose: wxSemaphore documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.04.02 -%% RCS-ID: $Id$ -%% Copyright: (c) 2002 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSemaphore}}\label{wxsemaphore} - -wxSemaphore is a counter limiting the number of threads concurrently accessing -a shared resource. This counter is always between $0$ and the maximum value -specified during the semaphore creation. When the counter is strictly greater -than $0$, a call to \helpref{Wait}{wxsemaphorewait} returns immediately and -decrements the counter. As soon as it reaches $0$, any subsequent calls to -\helpref{Wait}{wxsemaphorewait} block and only return when the semaphore -counter becomes strictly positive again as the result of calling -\helpref{Post}{wxsemaphorepost} which increments the counter. - -In general, semaphores are useful to restrict access to a shared resource -which can only be accessed by some fixed number of clients at the same time. For -example, when modeling a hotel reservation system a semaphore with the counter -equal to the total number of available rooms could be created. Each time a room -is reserved, the semaphore should be acquired by calling -\helpref{Wait}{wxsemaphorewait} and each time a room is freed it should be -released by calling \helpref{Post}{wxsemaphorepost}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/thread.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSemaphore::wxSemaphore}\label{wxsemaphorewxsemaphore} - -\func{}{wxSemaphore}{\param{int }{initialcount = 0}, \param{int }{maxcount = 0}} - -Specifying a {\it maxcount} of $0$ actually makes wxSemaphore behave as if -there is no upper limit. If maxcount is $1$, the semaphore behaves almost as a -mutex (but unlike a mutex it can be released by a thread different from the one -which acquired it). - -{\it initialcount} is the initial value of the semaphore which must be between -$0$ and {\it maxcount} (if it is not set to $0$). - -\membersection{wxSemaphore::\destruct{wxSemaphore}}\label{wxsemaphoredtor} - -\func{}{\destruct{wxSemaphore}}{\void} - -Destructor is not virtual, don't use this class polymorphically. - -\membersection{wxSemaphore::Post}\label{wxsemaphorepost} - -\func{wxSemaError }{Post}{\void} - -Increments the semaphore count and signals one of the waiting -threads in an atomic way. Returns wxSEMA\_OVERFLOW if the count -would increase the counter past the maximum. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.} -\twocolitem{{\bf wxSEMA\_OVERFLOW}}{Post() would increase counter past the max.} -\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.} -\end{twocollist} - - -\membersection{wxSemaphore::TryWait}\label{wxsemaphoretrywait} - -\func{wxSemaError }{TryWait}{\void} - -Same as \helpref{Wait()}{wxsemaphorewait}, but returns immediately. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.} -\twocolitem{{\bf wxSEMA\_BUSY}}{Returned by TryWait() if Wait() would block, i.e. the count is zero.} -\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.} -\end{twocollist} - - -\membersection{wxSemaphore::Wait}\label{wxsemaphorewait} - -\func{wxSemaError }{Wait}{\void} - -Wait indefinitely until the semaphore count becomes strictly positive -and then decrement it and return. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.} -\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.} -\end{twocollist} - -\membersection{wxSemaphore::WaitTimeout}\label{wxsemaphorewaittimeout} - -\func{wxSemaError }{WaitTimeout}{\param{unsigned -long}{timeout\_millis}} - -Same as \helpref{Wait()}{wxsemaphorewait}, but with a timeout -limit. - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSEMA\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxSEMA\_INVALID}}{Semaphore hasn't been initialized successfully.} -\twocolitem{{\bf wxSEMA\_TIMEOUT}}{Timeout occurred without receiving semaphore.} -\twocolitem{{\bf wxSEMA\_MISC\_ERROR}}{Miscellaneous error.} -\end{twocollist} diff --git a/docs/latex/wx/setcursorevt.tex b/docs/latex/wx/setcursorevt.tex deleted file mode 100644 index 10e9d14462..0000000000 --- a/docs/latex/wx/setcursorevt.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxSetCursorEvent}}\label{wxsetcursorevent} - -A SetCursorEvent is generated when the mouse cursor is about to be set as a -result of mouse motion. This event gives the application the chance to perform -specific mouse cursor processing based on the current position of the mouse -within the window. Use \helpref{SetCursor}{wxsetcursoreventsetcursor} to -specify the cursor you want to be displayed. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{::wxSetCursor}{wxsetcursor} -\helpref{wxWindow::wxSetCursor}{wxwindowsetcursor} - -\wxheading{Event table macros} - -To process a set cursor event, use this event handler macro to direct input to a member -function that takes a wxSetCursorEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SET\_CURSOR(func)}}{Process a wxEVT\_SET\_CURSOR event.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - - - -\membersection{wxSetCursorEvent::wxSetCursorEvent}\label{wxsetcursoreventctor} - -\func{}{wxSetCursorEvent}{\param{wxCoord}{x = 0}, \param{wxCoord}{y = 0}} - -Constructor, used by the library itself internally to initialize the event -object. - - -\membersection{wxSetCursorEvent::GetCursor}\label{wxsetcursoreventgetcursor} - -\constfunc{wxCursor&}{GetCursor}{\void} - -Returns a reference to the cursor specified by this event. - - -\membersection{wxSetCursorEvent::GetX}\label{wxsetcursoreventgetx} - -\constfunc{wxCoord}{GetX}{\void} - -Returns the X coordinate of the mouse in client coordinates. - - -\membersection{wxSetCursorEvent::GetY}\label{wxsetcursoreventgety} - -\constfunc{wxCoord}{GetY}{\void} - -Returns the Y coordinate of the mouse in client coordinates. - - -\membersection{wxSetCursorEvent::HasCursor}\label{wxsetcursoreventhascursor} - -\constfunc{bool}{HasCursor}{\void} - -Returns \true if the cursor specified by this event is a valid cursor. - -\wxheading{Remarks} - -You cannot specify \texttt{wxNullCursor} with this event, as it is not -considered a valid cursor. - - -\membersection{wxSetCursorEvent::SetCursor}\label{wxsetcursoreventsetcursor} - -\func{void}{SetCursor}{\param{const wxCursor\&}{cursor}} - -Sets the cursor associated with this event. - - diff --git a/docs/latex/wx/settings.tex b/docs/latex/wx/settings.tex deleted file mode 100644 index 4a66fa7fac..0000000000 --- a/docs/latex/wx/settings.tex +++ /dev/null @@ -1,187 +0,0 @@ -\section{\class{wxSystemSettings}}\label{wxsystemsettings} - -wxSystemSettings allows the application to ask for details about -the system. This can include settings such as standard colours, fonts, -and user interface element sizes. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/settings.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxFont}{wxfont}, \helpref{wxColour}{wxcolour} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSystemSettings::wxSystemSettings}\label{wxsystemsettingsctor} - -\func{}{wxSystemSettings}{\void} - -Default constructor. You don't need to create an instance of wxSystemSettings -since all of its functions are static. - -\membersection{wxSystemSettings::GetColour}\label{wxsystemsettingsgetcolour} - -\func{static wxColour}{GetColour}{\param{wxSystemColour}{ index}} - -Returns a system colour. - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_COLOUR\_SCROLLBAR}}{The scrollbar grey area.} -\twocolitem{{\bf wxSYS\_COLOUR\_BACKGROUND}}{The desktop colour.} -\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVECAPTION}}{Active window caption.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTION}}{Inactive window caption.} -\twocolitem{{\bf wxSYS\_COLOUR\_MENU}}{Menu background.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOW}}{Window background.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWFRAME}}{Window frame.} -\twocolitem{{\bf wxSYS\_COLOUR\_MENUTEXT}}{Menu text.} -\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWTEXT}}{Text in windows.} -\twocolitem{{\bf wxSYS\_COLOUR\_CAPTIONTEXT}}{Text in caption, size box and scrollbar arrow box.} -\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVEBORDER}}{Active window border.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVEBORDER}}{Inactive window border.} -\twocolitem{{\bf wxSYS\_COLOUR\_APPWORKSPACE}}{Background colour MDI applications.} -\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHT}}{Item(s) selected in a control.} -\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHTTEXT}}{Text of item(s) selected in a control.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNFACE}}{Face shading on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNSHADOW}}{Edge shading on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_GRAYTEXT}}{Greyed (disabled) text.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNTEXT}}{Text on push buttons.} -\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTIONTEXT}}{Colour of text in active captions.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNHIGHLIGHT}}{Highlight colour for buttons (same as wxSYS\_COLOUR\_3DHILIGHT).} -\twocolitem{{\bf wxSYS\_COLOUR\_3DDKSHADOW}}{Dark shadow for three-dimensional display elements.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DLIGHT}}{Light colour for three-dimensional display elements.} -\twocolitem{{\bf wxSYS\_COLOUR\_INFOTEXT}}{Text colour for tooltip controls.} -\twocolitem{{\bf wxSYS\_COLOUR\_INFOBK}}{Background colour for tooltip controls.} -\twocolitem{{\bf wxSYS\_COLOUR\_DESKTOP}}{Same as wxSYS\_COLOUR\_BACKGROUND.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DFACE}}{Same as wxSYS\_COLOUR\_BTNFACE.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DSHADOW}}{Same as wxSYS\_COLOUR\_BTNSHADOW.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DHIGHLIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\twocolitem{{\bf wxSYS\_COLOUR\_3DHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\twocolitem{{\bf wxSYS\_COLOUR\_BTNHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.} -\end{twocollist} - -\pythonnote{This static method is implemented in Python as a -standalone function named {\tt wxSystemSettings\_GetColour}} - -\membersection{wxSystemSettings::GetFont}\label{wxsystemsettingsgetfont} - -\func{static wxFont}{GetFont}{\param{wxSystemFont}{ index}} - -Returns a system font. - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_OEM\_FIXED\_FONT}}{Original equipment manufacturer dependent fixed-pitch font.} -\twocolitem{{\bf wxSYS\_ANSI\_FIXED\_FONT}}{Windows fixed-pitch font.} -\twocolitem{{\bf wxSYS\_ANSI\_VAR\_FONT}}{Windows variable-pitch (proportional) font.} -\twocolitem{{\bf wxSYS\_SYSTEM\_FONT}}{System font.} -\twocolitem{{\bf wxSYS\_DEVICE\_DEFAULT\_FONT}}{Device-dependent font (Windows NT only).} -\twocolitem{{\bf wxSYS\_DEFAULT\_GUI\_FONT}}{Default font for user interface -objects such as menus and dialog boxes. Note that with modern GUIs nothing -guarantees that the same font is used for all GUI elements, so some controls -might use a different font by default.} -\end{twocollist} - -\pythonnote{This static method is implemented in Python as a -standalone function named {\tt wxSystemSettings\_GetFont}} - -\membersection{wxSystemSettings::GetMetric}\label{wxsystemsettingsgetmetric} - -\func{static int}{GetMetric}{\param{wxSystemMetric}{ index}, \param{wxWindow*}{ win = NULL}} - -Returns the value of a system metric, or -1 if the metric is not supported on the current system. -The value of {\it win} determines if the metric returned is a global value or -a \helpref{wxWindow}{wxwindow} based value, in which case it might determine the widget, the -display the window is on, or something similar. The window given should be as close to the -metric as possible (e.g a wxTopLevelWindow in case of the wxSYS\_CAPTION\_Y metric). - -{\it index} can be one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_MOUSE\_BUTTONS}}{Number of buttons on mouse, or zero if no mouse was installed.} -\twocolitem{{\bf wxSYS\_BORDER\_X}}{Width of single border.} -\twocolitem{{\bf wxSYS\_BORDER\_Y}}{Height of single border.} -\twocolitem{{\bf wxSYS\_CURSOR\_X}}{Width of cursor.} -\twocolitem{{\bf wxSYS\_CURSOR\_Y}}{Height of cursor.} -\twocolitem{{\bf wxSYS\_DCLICK\_X}}{Width in pixels of rectangle within which two successive mouse -clicks must fall to generate a double-click.} -\twocolitem{{\bf wxSYS\_DCLICK\_Y}}{Height in pixels of rectangle within which two successive mouse -clicks must fall to generate a double-click.} -\twocolitem{{\bf wxSYS\_DCLICK\_MSEC}}{Maximal time, in milliseconds, which may -pass between subsequent clicks for a double click to be generated.} -\twocolitem{{\bf wxSYS\_DRAG\_X}}{Width in pixels of a rectangle centered on a drag point -to allow for limited movement of the mouse pointer before a drag operation begins.} -\twocolitem{{\bf wxSYS\_DRAG\_Y}}{Height in pixels of a rectangle centered on a drag point -to allow for limited movement of the mouse pointer before a drag operation begins.} -\twocolitem{{\bf wxSYS\_EDGE\_X}}{Width of a 3D border, in pixels. } -\twocolitem{{\bf wxSYS\_EDGE\_Y}}{Height of a 3D border, in pixels. } -\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_X}}{Width of arrow bitmap on horizontal scrollbar.} -\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_Y}}{Height of arrow bitmap on horizontal scrollbar.} -\twocolitem{{\bf wxSYS\_HTHUMB\_X}}{Width of horizontal scrollbar thumb.} -\twocolitem{{\bf wxSYS\_ICON\_X}}{The default width of an icon.} -\twocolitem{{\bf wxSYS\_ICON\_Y}}{The default height of an icon.} -\twocolitem{{\bf wxSYS\_ICONSPACING\_X}}{Width of a grid cell for items in large icon view, -in pixels. Each item fits into a rectangle of this size when arranged.} -\twocolitem{{\bf wxSYS\_ICONSPACING\_Y}}{Height of a grid cell for items in large icon view, -in pixels. Each item fits into a rectangle of this size when arranged.} -\twocolitem{{\bf wxSYS\_WINDOWMIN\_X}}{Minimum width of a window.} -\twocolitem{{\bf wxSYS\_WINDOWMIN\_Y}}{Minimum height of a window.} -\twocolitem{{\bf wxSYS\_SCREEN\_X}}{Width of the screen in pixels.} -\twocolitem{{\bf wxSYS\_SCREEN\_Y}}{Height of the screen in pixels.} -\twocolitem{{\bf wxSYS\_FRAMESIZE\_X}}{Width of the window frame for a wxTHICK\_FRAME window.} -\twocolitem{{\bf wxSYS\_FRAMESIZE\_Y}}{Height of the window frame for a wxTHICK\_FRAME window.} -\twocolitem{{\bf wxSYS\_SMALLICON\_X}}{Recommended width of a small icon (in window captions, and small icon view).} -\twocolitem{{\bf wxSYS\_SMALLICON\_Y}}{Recommended height of a small icon (in window captions, and small icon view).} -\twocolitem{{\bf wxSYS\_HSCROLL\_Y}}{Height of horizontal scrollbar in pixels.} -\twocolitem{{\bf wxSYS\_VSCROLL\_X}}{Width of vertical scrollbar in pixels.} -\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_X}}{Width of arrow bitmap on a vertical scrollbar.} -\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_Y}}{Height of arrow bitmap on a vertical scrollbar.} -\twocolitem{{\bf wxSYS\_VTHUMB\_Y}}{Height of vertical scrollbar thumb.} -\twocolitem{{\bf wxSYS\_CAPTION\_Y}}{Height of normal caption area.} -\twocolitem{{\bf wxSYS\_MENU\_Y}}{Height of single-line menu bar.} -\twocolitem{{\bf wxSYS\_NETWORK\_PRESENT}}{1 if there is a network present, 0 otherwise.} -\twocolitem{{\bf wxSYS\_PENWINDOWS\_PRESENT}}{1 if PenWindows is installed, 0 otherwise.} -\twocolitem{{\bf wxSYS\_SHOW\_SOUNDS}}{Non-zero if the user requires an application to present information visually in situations -where it would otherwise present the information only in audible form; zero otherwise.} -\twocolitem{{\bf wxSYS\_SWAP\_BUTTONS}}{Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise.} -\end{twocollist} - -{\it win} is a pointer to the window for which the metric is requested. -Specifying the {\it win} parameter is encouraged, because some metrics on some ports are not supported without one, -or they might be capable of reporting better values if given one. If a window does not make sense for a metric, -one should still be given, as for example it might determine which displays cursor width is requested with -wxSYS\_CURSOR\_X. - -\pythonnote{This static method is implemented in Python as a -standalone function named {\tt wxSystemSettings\_GetMetric}} - -\membersection{wxSystemSettings::GetScreenType}\label{wxsystemsettingsgetscreentype} - -\func{static wxSystemScreenType}{GetScreenType}{\void} - -Returns the screen type. The return value is one of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSYS\_SCREEN\_NONE}}{Undefined screen type} -\twocolitem{{\bf wxSYS\_SCREEN\_TINY}}{Tiny screen, less than 320x240} -\twocolitem{{\bf wxSYS\_SCREEN\_PDA}}{PDA screen, 320x240 or more but less than 640x480} -\twocolitem{{\bf wxSYS\_SCREEN\_SMALL}}{Small screen, 640x480 or more but less than 800x600} -\twocolitem{{\bf wxSYS\_SCREEN\_DESKTOP}}{Desktop screen, 800x600 or more} -\end{twocollist} - diff --git a/docs/latex/wx/setup.tex b/docs/latex/wx/setup.tex deleted file mode 100644 index e711d84add..0000000000 --- a/docs/latex/wx/setup.tex +++ /dev/null @@ -1,3 +0,0 @@ -\section{wxWindows Compile-Time Configuration Options}\label{setup} - - diff --git a/docs/latex/wx/sharedptr.tex b/docs/latex/wx/sharedptr.tex deleted file mode 100644 index ac6400c13a..0000000000 --- a/docs/latex/wx/sharedptr.tex +++ /dev/null @@ -1,107 +0,0 @@ -\section{\class{wxSharedPtr<T>}}\label{wxsharedptr} - -A smart pointer with non-intrusive reference counting. It is modeled -after {\bf boost::shared\_ptr<>} and can be used with STL containers -and \helpref{wxVector<>}{wxvector} - unlike {\bf std::auto\_ptr<>} -and \helpref{wxScopedPtr<>}{wxscopedptrtemplate}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<ptr\_shrd.h> - -\wxheading{Data structures} - -{\small% -\begin{verbatim} -typedef T element_type -\end{verbatim} -}% - -\wxheading{See also} - -\helpref{wxScopedPtr}{wxscopedptrtemplate}, \helpref{wxWeakRef}{wxweakref}, -\helpref{wxObjectDataPtr}{wxobjectdataptr} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSharedPtr<T>::wxSharedPtr<T>}\label{wxsharedptrwxsharedptr} - -\func{wxEXPLICIT}{wxSharedPtr<T>}{\param{T* }{ptr = NULL}} - -\func{}{wxSharedPtr<T>}{\param{const wxSharedPtr<T>\& }{tocopy}} - -Constructors. - -\membersection{wxSharedPtr<T>::\destruct{wxSharedPtr<T>}}\label{wxsharedptrdtor} - -\func{}{\destruct{wxSharedPtr<T>}}{\void} - -Destructor. - -\membersection{wxSharedPtr<T>::get}\label{wxsharedptrget} - -\constfunc{T*}{get}{\void} - -Returns pointer to its object or NULL. - -\membersection{wxSharedPtr<T>::operator unspecified\_bool\_type}\label{wxsharedptroperatorbool} - -\constfunc{}{operator unspecified\_bool\_type}{\void} - -Conversion to a boolean expression (in a variant which is not -convertable to anything but a boolean expression). If this class -contains a valid pointer it will return {\it true}, if it contains -a NULL pointer it will return {\it false}. - -\membersection{wxSharedPtr<T>::operator*}\label{wxsharedptroperatorreft} - -\constfunc{T\&}{operator*}{\void} - -Returns a reference to the object. If the internal pointer is NULL this -method will cause an assert in debug mode. - -\membersection{wxSharedPtr<T>::operator->}\label{wxsharedptroperatorderef} - -\constfunc{T*}{operator->}{\void} - -Returns pointer to its object or NULL. - -\membersection{wxSharedPtr<T>::operator=}\label{wxsharedptroperatorassign} - -\func{wxSharedPtr<T>\& operator}{operator=}{\param{const wxSharedPtr<T>\& }{tocopy}} - -Assignment operator. Releases any previously held pointer -and creates a reference to the same object as {\it topcopy}. - -\membersection{wxSharedPtr<T>::operator=}\label{wxsharedptroperatorassign2} - -\func{wxSharedPtr<T>\& operator}{operator=}{\param{T *}{ptr}} - -Assignment operator. Releases any previously held pointer -and creates a reference to {\it ptr}. - -\membersection{wxSharedPtr<T>::unique}\label{wxsharedptrunique} - -\constfunc{bool}{unique}{\void} - -Returns true if this is the only pointer pointing to its object. - -\membersection{wxSharedPtr<T>::use\_count}\label{wxsharedptruse\_count} - -\constfunc{long}{use\_count}{\void} - -Returns the number of pointers pointing to its object. - -\membersection{wxSharedPtr<T>::reset}\label{wxsharedptrreset} - -\func{void}{reset}{\param{T * }{ptr = NULL}} - -Reset pointer to {\it ptr}. If the reference count of the -previously owned pointer was 1 it will be deleted. - diff --git a/docs/latex/wx/sistream.tex b/docs/latex/wx/sistream.tex deleted file mode 100644 index 1404b13e6c..0000000000 --- a/docs/latex/wx/sistream.tex +++ /dev/null @@ -1,40 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: sistream.tex -%% Purpose: wxStringInputStream docs -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2004-09-19 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin -%% License: wxWindows licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStringInputStream}}\label{wxstringinputstream} - -This class implements an input stream which reads data from a string. It -supports seeking. - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/sstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStringInputStream::wxStringInputStream}\label{wxstringinputstreamctor} - -\func{}{wxStringInputStream}{\param{const wxString\&}{ s}} - -Creates a new read-only stream using the specified string. Note that the string -is copied by the stream so if the original string is modified after using this -constructor, changes to it are not reflected when reading from stream. - diff --git a/docs/latex/wx/size.tex b/docs/latex/wx/size.tex deleted file mode 100644 index 6034d1edbc..0000000000 --- a/docs/latex/wx/size.tex +++ /dev/null @@ -1,231 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: size.tex -%% Purpose: wxSize documentation -%% Author: wxTeam -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxTeam -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSize}}\label{wxsize} - -A {\bf wxSize} is a useful data structure for graphics operations. -It simply contains integer {\it width} and {\it height} members. - -wxSize is used throughout wxWidgets as well as wxPoint which, although almost -equivalent to wxSize, has a different meaning: wxPoint represents a position -while wxSize - the size. - -\pythonnote{wxPython defines aliases for the {\tt x} and {\tt y} members -named {\tt width} and {\tt height} since it makes much more sense for -sizes. -} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/gdicmn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxPoint}{wxpoint}, \helpref{wxRealPoint}{wxrealpoint} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSize::wxSize}\label{wxsizector} - -\func{}{wxSize}{\void} - -\func{}{wxSize}{\param{int}{ width}, \param{int}{ height}} - -Creates a size object. - - - -\membersection{wxSize::DecBy}\label{wxsizedecby} - -\func{void}{DecBy}{\param{const wxSize\& }{size}} - -\func{void}{DecBy}{\param{int }{dx}, \param{int }{dy}} - -\func{void}{DecBy}{\param{int }{d}} - -Decreases the size in x- and y- directions - -\begin{enumerate} - \item By \arg{size.x} and \arg{size.y} for the first overload - \item By \arg{dx} and \arg{dy} for the second one - \item By \arg{d} and \arg{d} for the third one -\end{enumerate} - -\wxheading{See also} - -\helpref{IncBy}{wxsizeincby} - - -\membersection{wxSize::DecTo}\label{wxsizedecto} - -\func{void}{DecTo}{\param{const wxSize\& }{size}} - -Decrements this object so that both of its dimensions are not greater than the -corresponding dimensions of the \arg{size}. - -\wxheading{See also} - -\helpref{IncTo}{wxsizeincto} - - -\membersection{wxSize::IsFullySpecified}\label{wxsizeisfullyspecified} - -\constfunc{bool}{IsFullySpecified}{\void} - -Returns \true if neither of the size object components is equal to $-1$, which -is used as default for the size values in wxWidgets (hence the predefined -\texttt{wxDefaultSize} has both of its components equal to $-1$). - -This method is typically used before calling -\helpref{SetDefaults}{wxsizesetdefaults}. - - -\membersection{wxSize::GetWidth}\label{wxsizegetwidth} - -\constfunc{int}{GetWidth}{\void} - -Gets the width member. - - -\membersection{wxSize::GetHeight}\label{wxsizegetheight} - -\constfunc{int}{GetHeight}{\void} - -Gets the height member. - - -\membersection{wxSize::IncBy}\label{wxsizeincby} - -\func{void}{IncBy}{\param{const wxSize\& }{size}} - -\func{void}{IncBy}{\param{int }{dx}, \param{int }{dy}} - -\func{void}{IncBy}{\param{int }{d}} - -Increases the size in x- and y- directions - -\begin{enumerate} - \item By \arg{size.x} and \arg{size.y} for the first overload - \item By \arg{dx} and \arg{dy} for the second one - \item By \arg{d} and \arg{d} for the third one -\end{enumerate} - -\wxheading{See also} - -\helpref{DecBy}{wxsizedecby} - - -\membersection{wxSize::IncTo}\label{wxsizeincto} - -\func{void}{IncTo}{\param{const wxSize\& }{size}} - -Increments this object so that both of its dimensions are not less than the -corresponding dimensions of the \arg{size}. - -\wxheading{See also} - -\helpref{DecTo}{wxsizedecto} - - - -\membersection{wxSize::Scale}\label{wxsizescale} - -\func{wxSize\&}{Scale}{\param{float}{ xscale}, \param{float}{ yscale}} - -Scales the dimensions of this object by the given factors. -If you want to scale both dimensions by the same factor you can also use -the \helpref{operator *=}{wxsizeoperators} - -Returns a reference to this object (so that you can concatenate other operations in the same line). - - -\membersection{wxSize::Set}\label{wxsizeset} - -\func{void}{Set}{\param{int}{ width}, \param{int}{ height}} - -Sets the width and height members. - - -\membersection{wxSize::SetDefaults}\label{wxsizesetdefaults} - -\func{void}{SetDefaults}{\param{const wxSize\& }{sizeDefault}} - -Combine this size object with another one replacing the default (i.e. equal -to $-1$) components of this object with those of the other. It is typically -used like this: -\begin{verbatim} - if ( !size.IsFullySpecified() ) - { - size.SetDefaults(GetDefaultSize()); - } -\end{verbatim} - -\wxheading{See also} - -\helpref{IsFullySpecified}{wxsizeisfullyspecified} - - -\membersection{wxSize::SetHeight}\label{wxsizesetheight} - -\func{void}{SetHeight}{\param{int}{ height}} - -Sets the height. - - -\membersection{wxSize::SetWidth}\label{wxsizesetwidth} - -\func{void}{SetWidth}{\param{int}{ width}} - -Sets the width. - - -\membersection{Operators}\label{wxsizeoperators} - -\func{void}{operator $=$}{\param{const wxSize\& }{sz}} - -Assignment operator. - - -\func{bool}{operator $==$}{\param{const wxSize\& }{s1}, \param{const wxSize\& }{s2}} - -\func{bool}{operator $!=$}{\param{const wxSize\& }{s1}, \param{const wxSize\& }{s2}} - -\func{wxSize}{operator $+$}{\param{const wxSize\& }{s1}, \param{const wxSize\& }{s2}} - -\func{wxSize}{operator $-$}{\param{const wxSize\& }{s1}, \param{const wxSize\& }{s2}} - -\func{wxSize\&}{operator $+=$}{\param{const wxSize\& }{sz}} - -\func{wxSize\&}{operator $-=$}{\param{const wxSize\& }{sz}} - -Operators for comparison, sum and subtraction between \helpref{wxSize}{wxsize} objects. - - -\func{wxSize}{operator $/$}{\param{const wxSize\& }{sz}, \param{int }{factor}} - -\func{wxSize}{operator $*$}{\param{const wxSize\& }{sz}, \param{int }{factor}} - -\func{wxSize}{operator $*$}{\param{int }{factor}, \param{const wxSize\& }{sz}} - -\func{wxSize\&}{operator $/=$}{\param{int }{factor}} - -\func{wxSize\&}{operator $*=$}{\param{int }{factor}} - -Operators for division and multiplication between a \helpref{wxSize}{wxsize} object and an integer. - diff --git a/docs/latex/wx/sizeevt.tex b/docs/latex/wx/sizeevt.tex deleted file mode 100644 index 4bcdef0ad9..0000000000 --- a/docs/latex/wx/sizeevt.tex +++ /dev/null @@ -1,70 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: sizeevt.tex -%% Purpose: wxSizeEvent documentation -%% Author: wxWidgets team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSizeEvent}}\label{wxsizeevent} - -A size event holds information about size change events. - -The EVT\_SIZE handler function will be called when the window has been resized. - -You may wish to use this for frames to resize their child windows as appropriate. - -Note that the size passed is of -the whole window: call \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} for the area which may be -used by the application. - -When a window is resized, usually only a small part of the window is damaged and you -may only need to repaint that area. However, if your drawing depends on the size of the window, -you may need to clear the DC explicitly and repaint the whole window. In which case, you -may need to call \helpref{wxWindow::Refresh}{wxwindowrefresh} to invalidate the entire window. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a size event, use this event handler macro to direct input to a member -function that takes a wxSizeEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SIZE(func)}}{Process a wxEVT\_SIZE event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSize}{wxsize},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSizeEvent::wxSizeEvent}\label{wxsizeeventctor} - -\func{}{wxSizeEvent}{\param{const wxSize\& }{sz}, \param{int }{id = 0}} - -Constructor. - -\membersection{wxSizeEvent::GetSize}\label{wxsizeeventgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the entire size of the window generating the size change event. - diff --git a/docs/latex/wx/sizer.tex b/docs/latex/wx/sizer.tex deleted file mode 100644 index a1e1ef5c64..0000000000 --- a/docs/latex/wx/sizer.tex +++ /dev/null @@ -1,828 +0,0 @@ -\section{\class{wxSizer}}\label{wxsizer} - -wxSizer is the abstract base class used for laying out subwindows in a window. You -cannot use wxSizer directly; instead, you will have to use one of the sizer -classes derived from it. Currently there are \helpref{wxBoxSizer}{wxboxsizer}, -\helpref{wxStaticBoxSizer}{wxstaticboxsizer}, -\helpref{wxGridSizer}{wxgridsizer}, -\helpref{wxFlexGridSizer}{wxflexgridsizer}, -\helpref{wxWrapSizer}{wxwrapsizer} - and \helpref{wxGridBagSizer}{wxgridbagsizer}. - -The layout algorithm used by sizers in wxWidgets is closely related to layout -in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is -based upon the idea of the individual subwindows reporting their minimal required -size and their ability to get stretched if the size of the parent window has changed. -This will most often mean that the programmer does not set the original size of -a dialog in the beginning, rather the dialog will be assigned a sizer and this sizer -will be queried about the recommended size. The sizer in turn will query its -children, which can be normal windows, empty space or other sizers, so that -a hierarchy of sizers can be constructed. Note that wxSizer does not derive from wxWindow -and thus does not interfere with tab ordering and requires very little resources compared -to a real window on screen. - -What makes sizers so well fitted for use in wxWidgets is the fact that every control -reports its own minimal size and the algorithm can handle differences in font sizes -or different window (dialog item) sizes on different platforms without problems. If e.g. -the standard font as well as the overall design of Motif widgets requires more space than -on Windows, the initial dialog size will automatically be bigger on Motif than on Windows. - -Sizers may also be used to control the layout of custom drawn items on the window. The -Add, Insert, and Prepend functions return a pointer to the newly added wxSizerItem. Just -add empty space of the desired size and attributes, and then use the wxSizerItem::GetRect -method to determine where the drawing operations should take place. - - -Please notice that sizers, like child windows, are owned by the library and -will be deleted by it which implies that they must be allocated on the heap. -However if you create a sizer and do not add it to another sizer or window, the -library wouldn't be able to delete such an orphan sizer and in this, and only -this, case it should be deleted explicitly. - -\pythonnote{If you wish to create a sizer class in wxPython you should -derive the class from {\tt wxPySizer} in order to get Python-aware -capabilities for the various virtual methods.} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Sizer overview}{sizeroverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSizer::wxSizer}\label{wxsizerwxsizer} - -\func{}{wxSizer}{\void} - -The constructor. Note that wxSizer is an abstract base class and may not -be instantiated. - - -\membersection{wxSizer::\destruct{wxSizer}}\label{wxsizerdtor} - -\func{}{\destruct{wxSizer}}{\void} - -The destructor. - - -\membersection{wxSizer::Add}\label{wxsizeradd} - -\func{wxSizerItem*}{Add}{\param{wxWindow* }{window}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Add}{\param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Add}{\param{wxSizer* }{sizer}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Add}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -Appends a child to the sizer. wxSizer itself is an abstract class, but the parameters are -equivalent in the derived classes that you will instantiate to use it so they are described -here: - -\docparam{window}{The window to be added to the sizer. Its initial size (either set explicitly by the -user or calculated internally when using wxDefaultSize) is interpreted as the minimal and in many -cases also the initial size.} - -\docparam{sizer}{The (child-)sizer to be added to the sizer. This allows placing a child sizer in a -sizer and thus to create hierarchies of sizers (typically a vertical box as the top sizer and several -horizontal boxes on the level beneath).} - -\docparam{width and height}{The dimension of a spacer to be added to the sizer. Adding spacers to sizers -gives more flexibility in the design of dialogs; imagine for example a horizontal box with two buttons at the -bottom of a dialog: you might want to insert a space between the two buttons and make that space stretchable -using the \arg{proportion} flag and the result will be that the left button will be aligned with the left -side of the dialog and the right button with the right side - the space in between will shrink and grow with -the dialog.} - -\docparam{proportion}{Although the meaning of this parameter is undefined in wxSizer, it is used in wxBoxSizer -to indicate if a child of a sizer can change its size in the main orientation of the wxBoxSizer - where -0 stands for not changeable and a value of more than zero is interpreted relative to the value of other -children of the same wxBoxSizer. For example, you might have a horizontal wxBoxSizer with three children, two -of which are supposed to change their size with the sizer. Then the two stretchable windows would get a -value of 1 each to make them grow and shrink equally with the sizer's horizontal dimension.} - -\docparam{flag}{This parameter can be used to set a number of flags -which can be combined using the binary OR operator |. Two main -behaviours are defined using these flags. One is the border around a -window: the \arg{border} parameter determines the border width whereas -the flags given here determine which side(s) of the item that the -border will be added. The other flags determine how the sizer item -behaves when the space allotted to the sizer changes, and is somewhat -dependent on the specific kind of sizer used. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTOP}\\ -\windowstyle{wxBOTTOM}\\ -\windowstyle{wxLEFT}\\ -\windowstyle{wxRIGHT}\\ -\windowstyle{wxALL}}{These flags are used to specify which side(s) of - the sizer item the \arg{border} width will apply to. } - -\twocolitem{\windowstyle{wxEXPAND}}{The item will be expanded to fill -the space assigned to the item.} -\twocolitem{\windowstyle{wxSHAPED}}{The item will be expanded as much -as possible while also maintaining its aspect ratio} -\twocolitem{\windowstyle{wxFIXED\_MINSIZE}}{Normally wxSizers will use -\helpref{GetAdjustedBestSize}{wxwindowgetadjustedbestsize} to -determine what the minimal size of window items should be, and will -use that size to calculate the layout. This allows layouts to -adjust when an item changes and its \arg{best size} becomes -different. If you would rather have a window item stay the size it -started with then use wxFIXED\_MINSIZE.} -\twocolitem{\windowstyle{wxALIGN\_CENTER wxALIGN\_CENTRE}\\ -\windowstyle{wxALIGN\_LEFT}\\ -\windowstyle{wxALIGN\_RIGHT}\\ -\windowstyle{wxALIGN\_TOP}\\ -\windowstyle{wxALIGN\_BOTTOM}\\ -\windowstyle{wxALIGN\_CENTER\_VERTICAL wxALIGN\_CENTRE\_VERTICAL}\\ -\windowstyle{wxALIGN\_CENTER\_HORIZONTAL wxALIGN\_CENTRE\_HORIZONTAL}}{The wxALIGN flags allow you to -specify the alignment of the item within the space allotted to it by -the sizer, adjusted for the border if any.} -\end{twocollist} -} - -\docparam{border}{Determines the border width, if the \arg{flag} - parameter is set to include any border flag.} - -\docparam{userData}{Allows an extra object to be attached to the sizer -item, for use in derived classes when sizing information is more -complex than the \arg{proportion} and \arg{flag} will allow for.} - -\docparam{flags}{A \helpref{wxSizerFlags}{wxsizerflags} object that -enables you to specify most of the above parameters more conveniently.} - -\membersection{wxSizer::AddSpacer}\label{wxsizeraddspacer} - -\func{wxSizerItem*}{AddSpacer}{\param{int }{size}} - -Adds non-stretchable space to the sizer. More readable way of calling -\helpref{Add}{wxsizeradd}(size, size, 0). - - -\membersection{wxSizer::AddStretchSpacer}\label{wxsizeraddstretchspacer} - -\func{wxSizerItem*}{AddStretchSpacer}{\param{int }{prop = 1}} - -Adds stretchable space to the sizer. More readable way of calling -\helpref{Add}{wxsizeradd}(0, 0, prop). - - -\membersection{wxSizer::CalcMin}\label{wxsizercalcmin} - -\func{wxSize}{CalcMin}{\void} - -This method is abstract and has to be overwritten by any derived class. -Here, the sizer will do the actual calculation of its children's minimal sizes. - - -\membersection{wxSizer::Clear}\label{wxsizerclear} - -\func{void}{Clear}{\param{bool }{delete\_windows = false}} - -Detaches all children from the sizer. If \arg{delete\_windows} is \true then child windows will also be deleted. - - -\membersection{wxSizer::ComputeFittingClientSize}\label{wxsizercomputefittingclientsize} - -\func{wxSize}{ComputeFittingClientSize}{\param{wxWindow* }{window}} - -Computes client area size for \arg{window} so that it matches the -sizer's minimal size. Unlike \helpref{GetMinSize}{wxsizergetminsize}, this -method accounts for other constraints imposed on \arg{window}, namely display's -size (returned size will never be too large for the display) and maximum -window size if previously set by -\helpref{wxWindow::SetMaxSize}{wxwindowsetmaxsize}. - -The returned value is suitable for passing to -\helpref{wxWindow::SetClientSize}{wxwindowsetclientsize} or -\helpref{wxWindow::SetMinClientSize}{wxwindowsetminclientsize}. - -\wxheading{See also} - -\helpref{ComputeFittingWindowSize}{wxsizercomputefittingwindowsize}, -\helpref{Fit}{wxsizerfit} - - -\membersection{wxSizer::ComputeFittintWindowSize}\label{wxsizercomputefittingwindowsize} - -\func{wxSize}{ComputeFittingWindowSize}{\param{wxWindow* }{window}} - -Like \helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize}, -but converts the result into \emph{window} size. - -The returned value is suitable for passing to -\helpref{wxWindow::SetSize}{wxwindowsetsize} or -\helpref{wxWindow::SetMinSize}{wxwindowsetminsize}. - -\wxheading{See also} - -\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize}, -\helpref{Fit}{wxsizerfit} - - -\membersection{wxSizer::Detach}\label{wxsizerdetach} - -\func{bool}{Detach}{\param{wxWindow* }{window}} - -\func{bool}{Detach}{\param{wxSizer* }{sizer}} - -\func{bool}{Detach}{\param{size\_t }{index}} - -Detach a child from the sizer without destroying it. \arg{window} is the window to be -detached, \arg{sizer} is the equivalent sizer and \arg{index} is the position of -the child in the sizer, typically 0 for the first item. This method does not -cause any layout or resizing to take place, call \helpref{wxSizer::Layout}{wxsizerlayout} -to update the layout "on screen" after detaching a child from the sizer. - -Returns true if the child item was found and detached, false otherwise. - -\wxheading{See also} - -\helpref{wxSizer::Remove}{wxsizerremove} - - -\membersection{wxSizer::Fit}\label{wxsizerfit} - -\func{wxSize}{Fit}{\param{wxWindow* }{window}} - -Tell the sizer to resize the \arg{window} so that its client area matches the -sizer's minimal size -(\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize} is called -to determine it). -This is commonly done in the constructor of the window -itself, see sample in the description -of \helpref{wxBoxSizer}{wxboxsizer}. Returns the new \emph{window} size. - -\wxheading{See also} - -\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize}, -\helpref{ComputeFittingWindowSize}{wxsizercomputefittingwindowsize} - - -\membersection{wxSizer::FitInside}\label{wxsizerfitinside} - -\func{void}{FitInside}{\param{wxWindow* }{window}} - -Tell the sizer to resize the virtual size of the \arg{window} to match the sizer's -minimal size. This will not alter the on screen size of the window, but may cause -the addition/removal/alteration of scrollbars required to view the virtual area in -windows which manage it. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars},\rtfsp -\helpref{wxSizer::SetVirtualSizeHints}{wxsizersetvirtualsizehints} - - -\membersection{wxSizer::GetChildren}\label{wxsizergetchildren} - -\constfunc{const wxSizerItemList\&}{GetChildren}{\void} - -\func{wxSizerItemList\&}{GetChildren}{\void} - -Returns the list of the items in this sizer. The elements of type-safe -\helpref{wxList}{wxlist} \texttt{wxSizerItemList} are objects of type -\helpref{wxSizerItem *}{wxsizeritem}. - - -\membersection{wxSizer::GetContainingWindow}\label{wxsizergetcontainingwindow} - -\constfunc{wxWindow *}{GetContainingWindow}{\void} - -Returns the window this sizer is used in or \NULL if none. - - -\membersection{wxSizer::GetItem}\label{wxsizergetitem} - -\func{wxSizerItem *}{GetItem}{\param{wxWindow* }{window}, \param{bool }{recursive = false}} - -\func{wxSizerItem *}{GetItem}{\param{wxSizer* }{sizer}, \param{bool }{recursive = false}} - -\func{wxSizerItem *}{GetItem}{\param{size\_t }{index}} - -Finds item of the sizer which holds given \arg{window}, \arg{sizer} or is located -in sizer at position \arg{index}. -Use parameter \arg{recursive} to search in subsizers too. - -Returns pointer to item or NULL. - -\membersection{wxSizer::GetItemById}\label{wxsizergetitembyid} - -\func{wxSizerItem *}{GetItemById}{\param{int }{id}, \param{bool }{recursive = false}} - -Finds item of the sizer which has the given \arg{id}. This \arg{id} is not the -window id but the id of the wxSizerItem itself. This is mainly useful for -retrieving the sizers created from XRC resources. - -Use parameter \arg{recursive} to search in subsizers too. - -Returns pointer to item or \NULL. - - -\membersection{wxSizer::GetSize}\label{wxsizergetsize} - -\func{wxSize}{GetSize}{\void} - -Returns the current size of the sizer. - - -\membersection{wxSizer::GetPosition}\label{wxsizergetposition} - -\func{wxPoint}{GetPosition}{\void} - -Returns the current position of the sizer. - - -\membersection{wxSizer::GetMinSize}\label{wxsizergetminsize} - -\func{wxSize}{GetMinSize}{\void} - -Returns the minimal size of the sizer. This is either the combined minimal -size of all the children and their borders or the minimal size set by -\helpref{SetMinSize}{wxsizersetminsize}, depending on which is bigger. - -Note that the returned value is \emph{client} size, not window size. -In particular, if you use the value to set toplevel window's minimal or -actual size, use \helpref{wxWindow::SetMinClientSize}{wxwindowsetminclientsize} -or \helpref{wxWindow::SetClientSize}{wxwindowsetclientsize}, \emph{not} -\helpref{wxWindow::SetMinSize}{wxwindowsetminsize} -or \helpref{wxWindow::SetSize}{wxwindowsetsize}. - - -\membersection{wxSizer::Hide}\label{wxsizerhide} - -\func{bool}{Hide}{\param{wxWindow* }{window}, \param{bool }{recursive = false}} - -\func{bool}{Hide}{\param{wxSizer* }{sizer}, \param{bool }{recursive = false}} - -\func{bool}{Hide}{\param{size\_t }{index}} - -Hides the \arg{window}, \arg{sizer}, or item at \arg{index}. -To make a sizer item disappear, use Hide() followed by \helpref{Layout()}{wxsizerlayout}. -Use parameter \arg{recursive} to hide elements found in subsizers. - -Returns \true if the child item was found, \false otherwise. - -\wxheading{See also} - -\helpref{wxSizer::IsShown}{wxsizerisshown},\rtfsp -\helpref{wxSizer::Show}{wxsizershow} - - -\membersection{wxSizer::Insert}\label{wxsizerinsert} - -\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxWindow* }{window}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxSizer* }{sizer}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -Insert a child into the sizer before any existing item at \arg{index}. - -\docparam{index}{The position this child should assume in the sizer.} - -See \helpref{wxSizer::Add}{wxsizeradd} for the meaning of the other parameters. - - -\membersection{wxSizer::InsertSpacer}\label{wxsizerinsertspacer} - -\func{wxSizerItem*}{InsertSpacer}{\param{size\_t }{index}, \param{int }{size}} - -Inserts non-stretchable space to the sizer. More readable way of calling -\helpref{Insert}{wxsizerinsert}(size, size, 0). - - -\membersection{wxSizer::InsertStretchSpacer}\label{wxsizerinsertstretchspacer} - -\func{wxSizerItem*}{InsertStretchSpacer}{\param{size\_t }{index}, \param{int }{prop = 1}} - -Inserts stretchable space to the sizer. More readable way of calling -\helpref{Insert}{wxsizerinsert}(0, 0, prop). - - -\membersection{wxSizer::IsShown}\label{wxsizerisshown} - -\constfunc{bool}{IsShown}{\param{wxWindow* }{window}} - -\constfunc{bool}{IsShown}{\param{wxSizer* }{sizer}} - -\constfunc{bool}{IsShown}{\param{size\_t }{index}} - -Returns \true if the \arg{window}, \arg{sizer}, or item at \arg{index} is shown. - -\wxheading{See also} - -\helpref{wxSizer::Hide}{wxsizerhide},\rtfsp -\helpref{wxSizer::Show}{wxsizershow} - - -\membersection{wxSizer::Layout}\label{wxsizerlayout} - -\func{void}{Layout}{\void} - -Call this to force layout of the children anew, e.g. after having added a child -to or removed a child (window, other sizer or space) from the sizer while keeping -the current dimension. - - -\membersection{wxSizer::Prepend}\label{wxsizerprepend} - -\func{wxSizerItem*}{Prepend}{\param{wxWindow* }{window}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Prepend}{\param{wxWindow* }{window}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Prepend}{\param{wxSizer* }{sizer}, \param{const wxSizerFlags\& }{flags}} - -\func{wxSizerItem*}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}} - -\func{wxSizerItem*}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}} - -Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginning of the -list of items (windows, subsizers or spaces) owned by this sizer. - - -\membersection{wxSizer::PrependSpacer}\label{wxsizerprependspacer} - -\func{wxSizerItem*}{PrependSpacer}{\param{int }{size}} - -Prepends non-stretchable space to the sizer. More readable way of calling -\helpref{Prepend}{wxsizerprepend}(size, size, 0). - - -\membersection{wxSizer::PrependStretchSpacer}\label{wxsizerprependstretchspacer} - -\func{wxSizerItem*}{PrependStretchSpacer}{\param{int }{prop = 1}} - -Prepends stretchable space to the sizer. More readable way of calling -\helpref{Prepend}{wxsizerprepend}(0, 0, prop). - - -\membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes} - -\func{void}{RecalcSizes}{\void} - -This method is abstract and has to be overwritten by any derived class. -Here, the sizer will do the actual calculation of its children's positions -and sizes. - - -\membersection{wxSizer::Remove}\label{wxsizerremove} - -\func{bool}{Remove}{\param{wxWindow* }{window}} - -\func{bool}{Remove}{\param{wxSizer* }{sizer}} - -\func{bool}{Remove}{\param{size\_t }{index}} - -Removes a child from the sizer and destroys it if it is a sizer or a spacer, -but not if it is a window (because windows are owned by their parent window, -not the sizer). \arg{sizer} is the wxSizer to be removed, -\arg{index} is the position of the child in the sizer, e.g. $0$ for the first item. -This method does not cause any layout or resizing to take place, call -\helpref{wxSizer::Layout}{wxsizerlayout} to update the layout "on screen" after removing a -child from the sizer. - -{\bf NB:} The method taking a wxWindow* parameter is deprecated as it does not -destroy the window as would usually be expected from Remove. You should use -\helpref{wxSizer::Detach}{wxsizerdetach} in new code instead. There is -currently no wxSizer method that will both detach and destroy a wxWindow item. - -Returns true if the child item was found and removed, false otherwise. - - -\membersection{wxSizer::Replace}\label{wxsizerreplace} - -\func{bool}{Replace}{\param{wxWindow* }{oldwin}, \param{wxWindow* }{newwin}, \param{bool }{recursive = false}} - -\func{bool}{Replace}{\param{wxSizer* }{oldsz}, \param{wxSizer* }{newsz}, \param{bool }{recursive = false}} - -\func{bool}{Remove}{\param{size\_t }{oldindex}, \param{wxSizerItem* }{newitem}} - -Detaches the given \arg{oldwin}, \arg{oldsz} child from the sizer and -replaces it with the given window, sizer, or wxSizerItem. - -The detached child is removed {\bf only} if it is a sizer or a spacer -(because windows are owned by their parent window, not the sizer). - -Use parameter \arg{recursive} to search the given element recursively in subsizers. - - -This method does not cause any layout or resizing to take place, call -\helpref{wxSizer::Layout}{wxsizerlayout} to update the layout "on screen" after replacing a -child from the sizer. - -Returns true if the child item was found and removed, false otherwise. - - -\membersection{wxSizer::SetDimension}\label{wxsizersetdimension} - -\func{void}{SetDimension}{\param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}} - -Call this to force the sizer to take the given dimension and thus force the items owned -by the sizer to resize themselves according to the rules defined by the parameter in the -\helpref{Add}{wxsizeradd} and \helpref{Prepend}{wxsizerprepend} methods. - - -\membersection{wxSizer::SetMinSize}\label{wxsizersetminsize} - -\func{void}{SetMinSize}{\param{int }{width}, \param{int }{height}} - -\func{void}{SetMinSize}{\param{const wxSize\& }{size}} - -Call this to give the sizer a minimal size. Normally, the sizer will calculate its -minimal size based purely on how much space its children need. After calling this -method \helpref{GetMinSize}{wxsizergetminsize} will return either the minimal size -as requested by its children or the minimal size set here, depending on which is -bigger. - - -\membersection{wxSizer::SetItemMinSize}\label{wxsizersetitemminsize} - -\func{void}{SetItemMinSize}{\param{wxWindow* }{window}, \param{int}{ width}, \param{int}{ height}} - -\func{void}{SetItemMinSize}{\param{wxSizer* }{sizer}, \param{int}{ width}, \param{int}{ height}} - -\func{void}{SetItemMinSize}{\param{size\_t }{index}, \param{int}{ width}, \param{int}{ height}} - -Set an item's minimum size by window, sizer, or position. The item will be found recursively -in the sizer's descendants. This function enables an application to set the size of an item -after initial creation. - - -\membersection{wxSizer::SetSizeHints}\label{wxsizersetsizehints} - -\func{void}{SetSizeHints}{\param{wxWindow* }{window}} - -This method first calls \helpref{wxSizer::Fit}{wxsizerfit} and then -\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints} on the {\it window} -passed to it. This only makes sense when {\it window} is actually a -\helpref{wxTopLevelWindow}{wxtoplevelwindow} such as a wxFrame or a -wxDialog, since SetSizeHints only has any effect in these classes. -It does nothing in normal windows or controls. - -This method is implicitly used by \helpref{wxWindow::SetSizerAndFit}{wxwindowsetsizerandfit} -which is commonly invoked in the constructor of a toplevel window itself (see -the sample in the description of \helpref{wxBoxSizer}{wxboxsizer}) if the -toplevel window is resizable. - - -\membersection{wxSizer::SetVirtualSizeHints}\label{wxsizersetvirtualsizehints} - -\func{void}{SetVirtualSizeHints}{\param{wxWindow* }{window}} - -Tell the sizer to set the minimal size of the \arg{window} virtual area to match the sizer's -minimal size. For windows with managed scrollbars this will set them appropriately. - -\wxheading{See also} - -\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars} - - -\membersection{wxSizer::Show}\label{wxsizershow} - -\func{bool}{Show}{\param{wxWindow* }{window}, \param{bool }{show = true}, \param{bool }{recursive = false}} - -\func{bool}{Show}{\param{wxSizer* }{sizer}, \param{bool }{show = true}, \param{bool }{recursive = false}} - -\func{bool}{Show}{\param{size\_t }{index}, \param{bool }{show = true}} - -Shows or hides the \arg{window}, \arg{sizer}, or item at \arg{index}. -To make a sizer item disappear or reappear, use Show() followed by \helpref{Layout()}{wxsizerlayout}. -Use parameter \arg{recursive} to show or hide elements found in subsizers. - -Returns true if the child item was found, false otherwise. - -\wxheading{See also} - -\helpref{wxSizer::Hide}{wxsizerhide},\rtfsp -\helpref{wxSizer::IsShown}{wxsizerisshown} - - - - -\section{\class{wxSizerFlags}}\label{wxsizerflags} - -Normally, when you add an item to a sizer via -\helpref{wxSizer::Add}{wxsizeradd}, you have to specify a lot of flags and -parameters which can be unwieldy. This is where wxSizerFlags comes in: it -allows you to specify all parameters using the named methods instead. For -example, instead of - -\begin{verbatim} - sizer->Add(ctrl, 0, wxEXPAND | wxALL, 10); -\end{verbatim} - -you can now write - -\begin{verbatim} - sizer->Add(ctrl, wxSizerFlags().Expand().Border(10)); -\end{verbatim} - -This is more readable and also allows you to create wxSizerFlags objects which -can be reused for several sizer items. -\begin{verbatim} - wxSizerFlags flagsExpand(1); - flagsExpand.Expand().Border(10); - - sizer->Add(ctrl1, flagsExpand); - sizer->Add(ctrl2, flagsExpand); -\end{verbatim} - -Note that by specification, all methods of wxSizerFlags return the wxSizerFlags -object itself to allowing chaining multiple methods calls like in the examples -above. - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSizerFlags::wxSizerFlags}\label{wxsizerflagsctor} - -\func{}{wxSizerFlags}{\param{int }{proportion = 0}} - -Creates the wxSizer with the proportion specified by \arg{proportion}. - - -\membersection{wxSizerFlags::Align}\label{wxsizerflagsalign} - -\func{wxSizerFlags\& }{Align}{\param{int }{align = 0}} - -Sets the alignment of this wxSizerFlags to \arg{align}. - -Note that if this method is not called, the wxSizerFlags has no specified alignment. - -\wxheading{See also} - -\helpref{Top}{wxsizerflagstop},\\ -\helpref{Left}{wxsizerflagsleft},\\ -\helpref{Right}{wxsizerflagsright},\\ -\helpref{Bottom}{wxsizerflagsbottom},\\ -\helpref{Centre}{wxsizerflagscentre} - - -\membersection{wxSizerFlags::Border}\label{wxsizerflagsborder} - -\func{wxSizerFlags\& }{Border}{\param{int }{direction}, \param{int }{borderinpixels}} - -\func{wxSizerFlags\& }{Border}{\param{int }{direction = wxALL}} - -Sets the wxSizerFlags to have a border of a number of pixels specified by -\arg{borderinpixels} with the directions specified by \arg{direction}. - -In the overloaded version without \arg{borderinpixels} parameter, the border of -default size, as returned by \helpref{GetDefaultBorder}{wxsizerflagsgetdefaultborder}, -is used. - - -\membersection{wxSizerFlags::Bottom}\label{wxsizerflagsbottom} - -\func{wxSizerFlags\& }{Bottom}{\void} - -Aligns the object to the bottom, shortcut for \texttt{Align(wxALIGN\_BOTTOM)} - -\wxheading{See also} - -\helpref{Align}{wxsizerflagsalign} - - -\membersection{wxSizerFlags::Center}\label{wxsizerflagscenter} - -\func{wxSizerFlags\& }{Center}{\void} - -Sets the object of the wxSizerFlags to center itself in the area it is given. - - -\membersection{wxSizerFlags::Centre}\label{wxsizerflagscentre} - -\func{wxSizerFlags\& }{Centre}{\void} - -\helpref{wxSizerFlags::Center}{wxsizerflagscenter} for people with the other dialect of english. - - -\membersection{wxSizerFlags::DoubleBorder}\label{wxsizerflagsdoubleborder} - -\func{wxSizerFlags\& }{DoubleBorder}{\param{int }{direction = wxALL}} - -Sets the border in the given \arg{direction} having twice the default border -size. - - -\membersection{wxSizerFlags::DoubleHorzBorder}\label{wxsizerflagsdoublehorzborder} - -\func{wxSizerFlags\& }{DoubleHorzBorder}{\void} - -Sets the border in left and right directions having twice the default border -size. - - -\membersection{wxSizerFlags::Expand}\label{wxsizerflagsexpand} - -\func{wxSizerFlags\& }{Expand}{\void} - -Sets the object of the wxSizerFlags to expand to fill as much area as it can. - - -\membersection{wxSizerFlags::GetDefaultBorder}\label{wxsizerflagsgetdefaultborder} - -\func{static int}{GetDefaultBorder}{\void} - -Returns the border used by default in \helpref{Border}{wxsizerflagsborder} method. - - -\membersection{wxSizerFlags::Left}\label{wxsizerflagsleft} - -\func{wxSizerFlags\& }{Left}{\void} - -Aligns the object to the left, shortcut for \texttt{Align(wxALIGN\_LEFT)} - -\wxheading{See also} - -\helpref{Align}{wxsizerflagsalign} - - -\membersection{wxSizerFlags::FixedMinSize}\label{wxsizerflagsfixedminsize} - -\func{wxSizerFlags\& }{FixedMinSize}{\void} - -Set the \texttt{wxFIXED\_MINSIZE} flag which indicates that the initial size of -the window should be also set as its minimal size. - - -\membersection{wxSizerFlags::Proportion}\label{wxsizerflagsproportion} - -\func{wxSizerFlags\& }{Proportion}{\param{int }{proportion = 0}} - -Sets the proportion of this wxSizerFlags to \arg{proportion} - - -\membersection{wxSizerFlags::Right}\label{wxsizerflagsright} - -\func{wxSizerFlags\& }{Right}{\void} - -Aligns the object to the right, shortcut for \texttt{Align(wxALIGN\_RIGHT)} - -\wxheading{See also} - -\helpref{Align}{wxsizerflagsalign} - - -\membersection{wxSizerFlags::Shaped}\label{wxsizerflagsshaped} - -\func{wxSizerFlags\& }{Shaped}{\void} - -Set the \texttt{wx\_SHAPED} flag which indicates that the elements should -always keep the fixed width to height ratio equal to its original value. - - -\membersection{wxSizerFlags::Top}\label{wxsizerflagstop} - -\func{wxSizerFlags\& }{Top}{\void} - -Aligns the object to the top, shortcut for \texttt{Align(wxALIGN\_TOP)} - -\wxheading{See also} - -\helpref{Align}{wxsizerflagsalign} - - -\membersection{wxSizerFlags::TripleBorder}\label{wxsizerflagstriplebleborder} - -\func{wxSizerFlags\& }{TripleBorder}{\param{int }{direction = wxALL}} - -Sets the border in the given \arg{direction} having thrice the default border -size. - - diff --git a/docs/latex/wx/sizer00.bmp b/docs/latex/wx/sizer00.bmp deleted file mode 100644 index f9a1905a83ed824e19ce4cfaff27da0810a3bf1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2318 zcmd6pv1-FG5QZ-$LrS4Ufk4)D>Rgd_FUgpt#ip|hegQ-GkVV-&v=8J*@ak7_?@nou zZP__N3i<J!W$WYTPL_>dxA(We`ojE(@qzJ#F@iB>fbR*w?9Rp%uPLgkqA5s{1d5`7 zJ&x<ThAhiq`c^?%mXPN;Grpt(bn_tA60}%>th8W_z9H=V@FS5T-?@?KaJ{Tj#w_@7 z8u8b=BWz*t<jT*Y<&J3=HA8I6c8FEz-q4V52rH}MxDG92e+|a2Z_BucZS?eaaSg1o z`!^Da*^u|`zrGKS@46#rlHOxS9dzwXUYd=`o06c0_*3gudY+9CA&&TSzQiKPwjy?w zvaMy~l=Px?XU*7G$5idHhIbl0V+dHg&wANL4P?vm`v&wTTeD3>y-A-1?VXTkY+J!B a*bf(APZr)mvj#76y1DfIQ}o;mVMo8@#fv}y diff --git a/docs/latex/wx/sizer00.eps b/docs/latex/wx/sizer00.eps deleted file mode 100644 index 6ddbd3ce4d..0000000000 --- a/docs/latex/wx/sizer00.eps +++ /dev/null @@ -1,678 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer00.eps -%%CreationDate: Sun May 02 2004 15:00:49 -%%BoundingBox: 0 0 88 50 -%%HiResBoundingBox: 0 0 88 50 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 88 50 8 3 1 88 7 "beginimage" -%BeginPhotoshop: 3770 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 00000032000000580000000700730069007A0065007200300030000000010000 -% 0000000000000000000000000000000000010000000000000000000000580000 -% 0032000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003200000000526768746C6F6E670000005800000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003200000000526768746C6F6E67000000580000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C0000000007D2000000010000 -% 0058000000320000010800003390000007B600180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC000110800320058030122000211010311 -% 01FFDD00040006FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E9FA2E5643FA174BB1F6 -% 39F659858EFB1EE3B9CE73AB6973DEE74B9CE72B7F68BBF7BF00B3FA1FFE27FA -% 47FE10C6FF00CF6C572CBE9ADDB5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A -% 4A49F68BBF7BF00B99FACDF5EEEE819F5E1FD97ED3EA542DDFEA0644BACAF6ED -% F46DFF0044B7CE46F203316DAC7773DF5BBB8101B5FC77FF006179BFF8CCFF00 -% 97A8FF00C28CFF00CF97AB3C963864CC2131C51A27B225A0B74FFF001DABBFF2 -% BBFF00071FFBCE97FE3B577FE577FE0E3FF79D79F24B57EE1CB7F9BFF9D3FF00 -% BE59C47BBE83FF008ED5DFF95DFF00838FFDE747E9FF00E342ECDCFC6C3FB07A -% 7F69B5956FF581DBBDC2BDDB7D06EEDBB979BAEFFF00C54750CFB3A966603F26 -% D7E1D5D3EE7D58CE7B8D4D71B29F7B2927D363BF4967E6FE7A8B3F29CBE3C529 -% 8C77C23F7A691224EEF7C726D0092E80224C0EE431BFE739DB538BEF71001927 -% 400008458DB5A6A73058CB06D756750E07F374FF00A2B3FD57B8FD97D42EC17B -% CD433275B746FEA7EA37FEBB5BF25BFD3BD1FD07F8658CBDB99D9777ECFC8B2B -% B3FC0BDCC7B63F7496B98E6A4859ED6B7A6E4B5A035ADA5E001A00034A4929FF -% D0E8BA1FFE27FA47FE10C6FF00CF6C5716261E36365F4DFAA7465535E452EAAB -% 2EAAD636C612DE9D98F66EAEC0E63B6BDBBD6BFEC0FABFFF0095381FFB0947FE -% 924949170DF5E7EADF5AEADD5A9C8E9F8FEB54CC76D6E76FADBEE0FB5E5B16BD -% 8EFA2F6AED7F607D5FFF00CA9C0FFD84A3FF004925FB03EAFF00FE54E07FEC25 -% 1FFA494B8734B0CF8E201355EA4116F947FCC5FAD5FF00707FF05A7FF4AA5FF3 -% 17EB57FDC1FF00C169FF00D2ABD4F27A4FD59C5A5D7DFD2F01B5B624FD8E9249 -% 276318C632973ECB2C7BBD3AAAAFF496D9FA3AD56653F53DD8D91927A661D75E -% 230DB90DB7A7B6AB1B580E7FABF67BF1ABC8756EF4ECD8F6D5FA4F4AD657FCDA -% B5FE93CDFBB0FB25FF007E8E00F9AFFCC5FAD5FF00707FF05A7FF4AAD1E81F55 -% FEB774DEAD8D90DA6CC6ABD463729D5DF58DD4EF63EEAEC155DBADA9CD67BEAF -% CF5E85FB27EACFDA7ECA3A5E01BB67AA5830E930C9D8D73DC29DB5FA8EDDE96F -% FE7BD3BBD2FE62ED84FD81F57FFF002A703FF6128FFD2484BE259A40C4C61445 -% 6D2FFBE5708656305953EA7486D836B8830624173770FF0048D1E959FF0004F4 -% BD3A8D469731AEA5CDD8EAC8F696FEEE9FF476FD0FCC51FD81F57FFF002A703F -% F6128FFD2497EC0FABFF00F95381FF00B0947FE92545721CE66CE9790C92EDB4 -% 3C6E71926187571FDE49737978F898DF5CB3E9C4C6A716A6F457FB31EB6D4D24 -% D81DBDCCA5AC66FF00E5A4929FFFD1D8E97FD0FEA8FF00C533FF0089B9ABA15C -% B31FD469E83F56F33A761FDBEEC5A287BB1FD46D32D7E1DF885DEADBEDF63B25 -% 8A1FB7FEBC7FF3BD5FFEC5D5FF0092494F5892E4FF006FFD78FF00E77ABFFD8B -% ABFF002497EDFF00AF1FFCEF57FF00B1757FE49253B9D5AAB37E165B18EB1983 -% 906FB98C05CF2C7539188E3556DF75AEADD92DB7D367E95F55767A1EADFE9D36 -% 65F5916F55C6CCC9C4A6EF4EAE999B8C1B6536556596E40A1F5D7463DECAF22C -% D9F65F7BFD2D9FA6A9947ADFA7F42BFEDFFAF1FF00CEF57FFB1757FE492FDBFF -% 005E3FF9DEAFFF0062EAFF00C924A76B028BBA75CEC6B37E55794F75ADCD201B -% 0D846E7D79DE9358CFA0CDB8990CAEBA3D0AEAC0FD0FA38BF6DD25C9FEDFFAF1 -% FF00CEF57FFB1757FE492FDBFF005E3FF9DEAFFF0062EAFF00C924A7AC49727F -% B7FEBC7FF3BD5FFEC5D5FF00924BF6FF00D78FFE77ABFF00D8BABFF24929ADD4 -% 7FF16FD47FF4CAFF00FAB6A4854D1D7F27AD67F58EA9D3C6056EE99663002EAE -% D05C1CDB1BFCDBB7FD0DC924A7FFD2E2CFF374FF00CB1FCC53FD5FE6EBFE67FE -% EB7FDC5FFBADE926FF00DCBAE7D2494F41FF00B974BFF72EB9F49253D07FEE5D -% 2FFDCBAE7D2494F41FFB974BFF0072EB9F49253D07FEE5D2FF00DCBAE7D2494F -% 41FF00B974973E924A7FFFD93842494D04210000000000530000000101000000 -% 0F00410064006F00620065002000500068006F0074006F00730068006F007000 -% 00001200410064006F00620065002000500068006F0074006F00730068006F00 -% 7000200043005300000001003842494D042200000000012E4D4D002A00000008 -% 0007011200030000000100010000011A00050000000100000062011B00050000 -% 00010000006A012800030000000100020000013100020000001B000000720132 -% 0002000000140000008D8769000400000001000000A4000000D0000000480000 -% 0001000000480000000141646F62652050686F746F73686F702043532057696E -% 646F777300323030343A30353A30322031353A30303A3430000000000003A001 -% 000300000001FFFF0000A00200040000000100000058A0030004000000010000 -% 00320000000000000006010300030000000100060000011A0005000000010000 -% 011E011B00050000000100000126012800030000000100020000020100040000 -% 00010000012E0202000400000001000000000000000000000048000000010000 -% 0048000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6114 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6114 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>88</exif:PixelXDimension> - <exif:PixelYDimension>50</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:00:40-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:00:40-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:00:40-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:6e1e0112-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:6e1e0113-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 50 def -/cols 88 def -88 50 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 88 string def -/picstr2 88 string def -/picstr3 88 string def -/picstr4 88 string def -/_rowpadstr 88 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 19858 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8s)Z/u -`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzz!<<*!s8U'W`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzz!<<*!s8U'W`Pog8s)W8# -`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/KE(uOs8U'W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%fcS/s8U'W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/s8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzs8U'W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzs8U'W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/s8U'W -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzs8U'W`Pog8`Pogr -F*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzs8U'W -`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/s8U'W`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8 -s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzs8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9d -hVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzs8U'W`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/s8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8 -s2Dsr`Pog8`Pof;`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -s8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ -`PhfWzzzzzzzzs8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDD -F)uDD`DX[o`PhfWzzzzzzzzs8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8 -s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -s8U'W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`HB/= -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8 -`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzs8U'W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/s8U'W`Pog8`Pogr -F*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`Pqju -F2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/s8U'W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsYs8U'W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzs8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/s8U'W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8U'W`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8s)Z/u -`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9d -hVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5j -zzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5j!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N'! -`Pl9dhVQ5j!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N'!`Pl9dhVQ5j!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8N'!`Pl9dhVQ5j!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8N'!`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XX"`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"`Pl9dhVQ5j -!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9d -hVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6 -`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX" -!!(R"e^XZMe^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j -!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"e^XZMe^`1Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"e^XZMe^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XX"!!(R"e^XZMe^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9d -hVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZMe^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZMe^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^XZMe^XZMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6 -`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZM -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1M -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#!7fWMe^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j -!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZM!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -!7fWMe^`1Me^XX"!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9d -hVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XX"!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XX"!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMe^`1Me^XX"!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6 -`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZM -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1M -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMe^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^`1Me^XZMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j -!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`1Me^XZMe^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZMe^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^XZMe^XZMe^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9d -hVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZMe^`1M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^XZMe^XZMe^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XX"!!(R"e^XZMe^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6 -`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"e^XZM -e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"e^XZMe^`4#!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XX"!!(R"e^XZMe^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j -!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9d -hVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6 -`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^%6`Pl9dhVQ5j!<:U"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^%6`Pl9dhVQ5j!<:T6Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u.J`Pl9dhVQ5j -!<:T6Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u.J`Pl9dhVQ5j!<:T6Pa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsP`u.J`Pl9dhVQ5j!<:T6Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u.J`Pl9d -hVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5j -zzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzz -zzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzz -zzzzzzzzzzzz`Pl9dhVQ5jzzzzzzzzzzzzzzzzzzzz`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r' -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dH -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer00.gif b/docs/latex/wx/sizer00.gif deleted file mode 100644 index e6fe21d7a004715b31b21908ab3a802129dde579..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a>cNk%v~VORh%0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui09XJr06+x)5XecZy*TU5bC5$Qj$|nkXsWJkn-(x! z7KSm`rSJh}@4LWYOLnt~XhxC_Gzd7K(5Q4uty-^GXK2Z577*aDcuX#X17tKptv0*g z;DmO-4F$gNynfGj%L7{<0)vEwhKGoWii?bmi90@#Btn#xl9zOlBn6R4CzYTqL_J8J zIhvS1p{pvXk#$~uva_^fe}PPQwQp@<Y`(jGbFf*(#>dD}xLvNz&d<%T(4VZV(<9Q? z)vKeMI0HyM+0)yh-QEV_;;7o?p*N(anM~L9_R*TU!TbDafb(7S^&104Os`)3ZUMA| zXW*GMXPh{+H7sAliEEx1Bsftav5OeiL+0_w?w-k$N_KQu$+D%(4C7GBychGCyLa|# zI=cx9o(USK=(Xbs<Xi}KN57>MdNhVprzMC6F?ys1(xA+$*4WC`#(@!1i*oW&>QzZ- zVO>xK_w6dSvo_PZC_;B>R&sJ%(1g1)FN?iQX9}M7@u}g%h!ZPb%ouUSTp&eCE<+OX z<jZC%2aMeBAh3rRH8Tu}aLvQg14YNeSo)Xgkg5ev^bERo>c^Wg>lPE6^KOy75hNH+ jytwh>$dfBy&RjWeJISI;pZ-th;Om%lP~XlydH?`B^H2m5 diff --git a/docs/latex/wx/sizer01.bmp b/docs/latex/wx/sizer01.bmp deleted file mode 100644 index b5ae0f77c706277b7c1f8cb5d2d9982738ff1ab0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3238 zcmdUxzfQw25XN1^21Co#6(&X`tFSO3XJi2CsB<dy1uC&eEMAea@B+L^AE9errF>@> z$8{aoi2%`SY{mBd{M}vt_2KdJoN0SSe~nh4-J=cIDSF0kuzqo7+7M%EbzRdED~f`x zRx9>~^UY?%mdhm@KG$r$UbCvIv`?rTbv0~qa@EZ)Ntk!D{*3Bk+~{;c)KM^H;&mOX zCZAr+>?6hAcXVb+^*&yv9F0|}=x{Bb4-o)RC)c73?LXF(i>MUFlSyGlJ0ch)=y(-K zV*C=sb>K}E@P(qWsqOXgiV$b~?9KQ;GbQq~@2XNJ+0zcw;~f$%Q*hSC7F-Qa9s%=L z-#JG|gw65T*3Fp-Bf|0cZ6+rz>h`|%?Xl%^&L@j@MhcP1sgP(H&IRQ|{=~KEz)y+{ zz7oGJ13=3}8Tdk^VI~VLW0`zGcE`Eil^pR5n)s{^&ncTGwig=QqBRV~HKpjtXxV4X zlfB2lyJ7s;^gh(-UCEK^mPv`@Tjy{M4D9H{YmL1r6Ju0yozJ0bYTTV3QTMrbY|0(( cx1VL~ZtW*~v9-I}70rbH+(+j6FazxO1(grv%m4rY diff --git a/docs/latex/wx/sizer01.eps b/docs/latex/wx/sizer01.eps deleted file mode 100644 index 1bcc24cd15..0000000000 --- a/docs/latex/wx/sizer01.eps +++ /dev/null @@ -1,809 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer01.eps -%%CreationDate: Sun May 02 2004 15:04:22 -%%BoundingBox: 0 0 98 60 -%%HiResBoundingBox: 0 0 98 60 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 98 60 8 3 1 98 7 "beginimage" -%BeginPhotoshop: 4342 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000003C000000620000000700730069007A0065007200300031000000010000 -% 0000000000000000000000000000000000010000000000000000000000620000 -% 003C000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003C00000000526768746C6F6E670000006200000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003C00000000526768746C6F6E67000000620000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000A0D000000010000 -% 00620000003C0000012800004560000009F100180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108003C0062030122000211010311 -% 01FFDD00040007FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D735F537A867E2FD62E9D4E2E4DB45593998CCC8AEB7B98DB1BEA -% B5BB2E630B5B6B76BDFF004FF7D740DA075DFADDF586AEB391664E2F47AFA8E4 -% E253916DC6861AEC15B1AF6D04E4331592D7BEBC3F4EDFD0D7FF0016AFCF96E5 -% A1220E2F488F1589CF8BF77E55B67BA5FF00C76AEFFCAEFF00C1C7FEF3A5FF00 -% 8ED5DFF95DFF00838FFDE759C71BEA357D7315F90E733A6E4F4FF50B98CC938A -% DCD1EA50F2C6DBF67EA97F4EF5697FF3577ABF69FD17AF5D5EB7A5A9D2FA5B3A -% 5753EB15E574EE9EE03A0DF9989662D97DB4D95B87A7EAD36DF92FBDADCA65B6 -% 63DCF6FA36FA757EADE9576D9664B65879503F9995D71012328FF5787E7F9A2A -% B3DD87FE3B577FE577FE0E3FF79D76BD3BA8DF9D838B9406C39555768AC43A3D -% 46B5FB276B777D25E196BDB65AF7B58DA9AF71736A66E2D68267633D575966D6 -% 7FC258F7AF68FABC4B7A1F4D20C118B41047FC5B143CFF002F8B142071C78493 -% AEA4FE698925D16E558E68735E1CD70904410414FF0069B648DDAB62440D2407 -% 8FFA2EDCB3B21EFC3B1EDC36820B3D5BABDBB9B8F25BFACB6BFCE6595BACBBEC -% 5F99E9FDA7FA27E8958C7AAAAEA1E99DE1FEF7584EE2F2EF73AD7BFF003DCFFD -% E59EB9CAFB7E6FFA7B3FE55F4FE91FA1FE8BFE2BFE0BF9B4903FF92E924A7FFF -% D0E8BA1FFE27FA47FE10C6FF00CF6C57157FAB9FF20F49FF00C218FF00F9ED88 -% 87A9DEEC8C8A71BA7E4650C5B05565AC7E3319BCD7564ED67DAF2F1AD76DAB26 -% AFF0692922E1BEBCFD5BEB5D5BAB5391D3F1FD6A998EDADCEDF5B7DC1F6BCB62 -% D7B1DF45ED5DAFDBFA8FFE53E57FDBD83FFC914BEDFD47FF0029F2BFEDEC1FFE -% 48A970E69619F1C4026ABD4822DF2BABEA57D6FA6D65D4E23ABB6B707D7632EA -% 9AE6B9A7731EC7B6EDCD735C8B5FD55FAF15661CFAAAB6BCC2E73CE4B726B16E -% E7CFAAFF0059B7FA9BACDEFDFEE5E9FF006FEA3FF94F95FF006F60FF00F2452F -% B7F51FFCA7CAFF00B7B07FF922AC9F89663BC31F6DA5FF007C8E00F9AB3EAFFF -% 008C2AF31F9EC392CCCB5BB2DC96E5B45AE68DBEC7DC323D47B7F475FE77E628 -% 7FCDAFAFBF6EFDA3B6FF00B77FDCBFB533D6FA3E97F3FEBFABFCD7E8FE9FF36B -% D37EDFD47FF29F2BFEDEC1FF00E48A5F6FEA3FF94F95FF006F60FF00F2450FF4 -% 8E5FDCC7B57CA7E5EDF32B8478BE576FD4AFADF75AFBAEC47596D8E2FB2C7DD5 -% 39CE738EE7BDEF75DB9CE7397A7745AADC4E97814DCC02DC7A2965959870DCC6 -% 35AF61DBED77B9A8DF6FEA3FF94F95FF006F60FF00F2452FB7F51FFCA7CAFF00 -% B7B07FF922A2CFCDCF3011908811D47084814BE3D4DC76C564EE9DEEB0997B9E -% 7575AF7FE758E4ABA6BAB70AC6C6B9DBB60FA2D27E97A6DFCC639DEFD89BEDFD -% 47FF0029F2BFEDEC1FFE48A5D23AB63759E955F52C56BD94DE1FB1B6801E3639 -% F4BB7063AC6FD2AFF7D574B85FFC97492FFE4BA4929FFFD1E9BEAE7FC83D27FF -% 000863FF00E7B62274CFE91D5BFF000FFF00EE974D43FAB9FF0020F49FFC218F -% FF009ED889D33FA4756FFC3FFF00BA5D352537D2492494A59AFC8EA39795914F -% 4FB29C76613C556BEFA9D717D8EAEBC9FD1B2AC8C4F4EBAEABEAF7B9F67AB67A -% 9FA2A7D1F53234967DD819B5E45B7F4DC8AB1CE4B83F2197D2EBDA5ED6B296DB -% 57A79188FA9CEA6AAEBB3DF655FA2ABD3AEAB3D7F5D29A4FFACF5D576236F6B6 -% B192DCAABD10417BF2F1F231FA7B31B11EF34B2C6DD75B7EC7DACABF45B2FBBE -% CB5FACB631BED3E8B4E56CF58C978AA760932D635CFF00759E9B7D9EAEDAFD6F -% E77D1A3F99652AFA1E332DA5C4FAB5329C9A6EAED6877AAECCB29C9C9B6DFA35 -% FE92CA6CDF4B69F47F4FFA3F4AB67A6ADE251663D66A7DAEB98D77E85CF92F0C -% 81B6BB6D739CEBDCC76EFD33FF004BE97A7EBFAD7FA99172527492492521CBFE -% 8977FC5BBF21581FE2FBFF0011783F0BFF00F3F5EB7F2FFA25DFF16EFC85607F -% 8BEFFC45E0FC2FFF00CFD7A4A41FFC97492FFE4BA4929FFFD2E9BEAE7FC83D27 -% FF000863FF00E7B62A7D4BEA851D4332ECA3D4BA8637DA1CDB1F4635E2BAB7B5 -% 95E3FA8DABD377BDD5535EE7AE7307FF001C5FD9B83F63FB1FD93EC947D9BC7D -% 3F4D9E9EFF0053DDEAEDFE77FE13F9BFD1A37FEBCEFF00BA7FF45253A7FF0030 -% 313FF2DFAAFF00EC48FF00D2297FCC0C4FFCB7EABFFB123FF48ACCFF00D79DFF -% 0074FF00E8A5FF00AF3BFEE9FF00D1494E9FFCC0C4FF00CB7EABFF00B123FF00 -% 48A5FF0030313FF2DFAAFF00EC48FF00D22B33FF005E77FDD3FF00A297FEBCEF -% FBA7FF0045253A7FF30313FF002DFAAFFEC48FFD2297FCC0C4FF00CB7EABFF00 -% B123FF0048ACCFFD79DFF74FFE8A5FFAF3BFEE9FFD1494E9FF00CC0C4FFCB7EA -% BFFB123FF48A5FF30313FF002DFAAFFEC48FFD22B33FF5E77FDD3FFA297FEBCE -% FF00BA7FF45253A7FF0030313FF2DFAAFF00EC48FF00D22B6BA4749C6E8DD2AB -% E9B8AE7BE9A03F63AD20BCEF73EE76E2C6D6DFA567EE2E4BFF005E77FDD3FF00 -% A297FEBCEFFBA7FF0045253A1FFC974973DFF66FFF0074FF00A679FF004AFF00 -% 5FFACA4929FFD9003842494D042100000000005300000001010000000F004100 -% 64006F00620065002000500068006F0074006F00730068006F00700000001200 -% 410064006F00620065002000500068006F0074006F00730068006F0070002000 -% 43005300000001003842494D042200000000012E4D4D002A0000000800070112 -% 00030000000100010000011A00050000000100000062011B0005000000010000 -% 006A012800030000000100020000013100020000001B00000072013200020000 -% 00140000008D8769000400000001000000A4000000D000000048000000010000 -% 00480000000141646F62652050686F746F73686F702043532057696E646F7773 -% 00323030343A30353A30322031353A30343A3231000000000003A00100030000 -% 0001FFFF0000A00200040000000100000062A0030004000000010000003C0000 -% 000000000006010300030000000100060000011A0005000000010000011E011B -% 0005000000010000012601280003000000010002000002010004000000010000 -% 012E020200040000000100000000000000000000004800000001000000480000 -% 00013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6114 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6114 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>98</exif:PixelXDimension> - <exif:PixelYDimension>60</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:04:21-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:04:21-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:04:21-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:f81a8a85-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a86-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 60 def -/cols 98 def -98 60 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 98 string def -/picstr2 98 string def -/picstr3 98 string def -/picstr4 98 string def -/_rowpadstr 98 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 27299 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzz -zz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWz!!!$!s8W-!s8W*!zzzz!<3$!zz`Pog8`PqjuF2c,;`Pogr -F*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zz!<<*!s8W-!rr<$!zz -z!!!$!zz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7egVs8W-!s8W+OK7ef/K7ef/K7ef/K7ef/KE$RVK7ef/K7ef/ -`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%fcS/s8W-!rsfMK%LrsY%LrsY%LrsY%Ls!K%LrsY%LrsY%M$Is`Pog8 -s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'! -zzzzzs8N'!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzs8N'!zzzz!!*'!zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/K7ef/K7ef/ -K7ef/K7ef/s8R_(K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%LrsY%LrsY%LrsY%LrsY -%M&O=%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!z!<<*!rr<$!!<<*!s8N*!s8W-!zz`Pog8`Pog8 -s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$! -s8W*!!!!$!s8W-!!<<*!s8N'!z!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVKE(uO -s8R`Os8W-!K7ef/K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%Ls!Ks8W-!%fcS/ -s8NQ=%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-! -s8W-!`Pog8`PhfWzz!!*'!zs8N'!s8N'!s8N'!zs8N'!zz`Pog8`Pog8`W("#s)W8# -`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8zzzs8N'!!!*'!!!*'!!!*'! -z!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-! -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8R_(K7ef/s8R_(K7ef/K7ef/ -`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8 -%LrsY%LrsY%LrsYs8NQ=%M&O=%M&O=%M&O=%LrsY%M&O=%LrsY%LrsY%M$Is`Pog8 -`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzz!!*'! -zs8N'!s8N'!s8W*!zs8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8 -`Pqkr`Pog8`Pog8`H0#;`Pog8zzzs8N'!!!*'!!!*'!!!*'!rr<$!!!*'!zz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^ -K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8W+OK7ef/s8R_(K7ef/K7ef/`Pog8`Pog8 -`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#;`Pog8%LrsY%LrsY -%LrsYs8NQ=%M&O=%M&O=%M&O=rsfMK%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzz!!*'!zs8W-!s8N'! -!<<*!rr<$!s8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDD -F)uDDF*#;u`Pog8zzzs8N'!!!*'!s8W-!!!!$!s8W*!!!*'!zz!!(!W`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/ -K7j4(K7ef/s8W-!s8R_(KE(uOs+>rVs8R_(K7ef/K7ef/`Pog8`Pog8`PqjuF*#=> -`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#<C`Pog8%LrsY%LrsY%LrsYs8NQ= -%M&O=s8W-!%Ls!Ks8W*/%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!z!!!$!s8N'! -s8N'!zz`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzs8N'!!!*'!zz!<<*!!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(K7ef/ -K7egVs8R_(s8R_(K7ef/K7ef/`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%LrsY%LrsY%fcS/ -%M&O=%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!!<3$!zs8N'!s8N'!zz`Pog8`Pog8s)W8# -`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!*'!!!!$! -z!!*'!!!*'!zz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(KE$RVK7ef/s8R_(s8R_(K7ef/ -K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%Ls!K%LrsY%M&O=%M&O=%LrsY%LrsY%M$Is -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zz!!*'!z!<<*!rr<$!s8W-!rr<$!!<<*!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$!s8W*!!!*'!s8W*!!!!$! -s8N'!z!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVs8W-!s+>rVKE(uOK7ef/K7ef/ -`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%M&O=s8W*/%Ls!Ks8NQ=%LrsY%M$Is`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzz`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzz -zzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX -@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eH#XL -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W*!!7fWMe^_XX@K>9A`PpBXe^`1Ms8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!rr<&Le^`4#`Pl9dhVQ5je^`4#eH#XLs8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W*!!7fWMe^_XX@K>9A`PpBXe^`1Ms8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!rr<&Le^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoU"e^`4# -`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!7fWMe^_XX@K>9A -`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoU"e^`4#`Pl9dhVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX -@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1M -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWM -e^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL -!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9d -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBX -e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A -`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH"," -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX -@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1M -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWM -e^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -eH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9d -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBX -e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A -`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX -@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1M -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^_XX@K>9A`PpBXe^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"Pa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%C4!7fWMe^_XX@K>9A`PpBXe^`1Ms4*?uPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -PQ1^6e^`4#`Pl9dhVQ5je^`4#eH#X"Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%C4!7fWM -e^_XX@K>9A`PpBXe^`1Ms4*?uPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPQ1^6e^`4#`Pl9d -hVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzz -zzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4# -eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzz -zzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A -`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dH -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer01.gif b/docs/latex/wx/sizer01.gif deleted file mode 100644 index 3284a3ff447d742a1b0b7126866a57576496b05b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$Tk?Nk%v~VPXJ00J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui0Ac_<06+x)5XecZy*TU5yA9GHj$~<$M5?Mq>$Ynw zv$JXzhH>Yn00O6=u(pB~U98u!P&?stqvy#N8X&INtai)odcWXsSVRR{vw?zm&2GCB zfq<6$6KT_KvHX7B@AF`Ae^+!>cWMcVii?bmj*pO$l8|w817$*)nwy-Ro|%}RCq$&B zrYoXTbtMIvP$Z^CDMqxivrI&pPp_&~sj#QP!ZyDop@7KA%3XzKhs#}qf78%gf|kc< zYSrA!*ICVW-Q(ogtHtQ)>OJS^!|$i-q3N->NwzOc`Atqd15&-r&?|+{o(v=eY{?Mv z1Yp2*@FM17#ft<EcD~kW-1sS5xsTod!kxjACZEZZC{wCj$r5EHaF<p+14+}%H!LD& zjvLgcC(mv-3B@#|?V~i3XvhUckh5sbr&^XaB^jrx)vH*uYTe4UtJjw}hdP5wwoM@c zXw#})%eJlCw{YXioxApjhr4+5>h&;>qu;*|)kz#2LteXLgcB3k5#(ZtzK97L9Hy}F z4qgt89sak{M7<-oLdU3#s&S6Yk2mki!J74e1HecXRB}reX=0}R1%dqQa}pY(aotXl zTLkJ6yi+MAe7Sk*jFFc|Gz`7B^y%u71Kz&TW7+Rtrh*^8MLdG9=+moTf7KjOlH16G z1S{10`S|jc(q}4G9Q^rJC56;lI8yaDQXlwn^OGMvl~bU7c#yMTANv8dpLr4Pv;~6= z5_qA3I!PGdfFxG)piEBXryoxkCa9u`A4169j5OBBB8V@_XI_qF?Z_ikB5@}qM?TnS L<dH~P6#)P{uN6y( diff --git a/docs/latex/wx/sizer02.bmp b/docs/latex/wx/sizer02.bmp deleted file mode 100644 index 1b68da9772261bf21b543a186ba0052382465ba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4038 zcmeH}u};G<5QeXaje!QKQdgMRqr#37HY5Z|9-v5_*ebDCEa~2b2P$vSHLp_syVTXi z4Ygw=P*H!ycADJh|9ozu+&z4rljsfoHQFoMJz9@W(Gxx5{>53{`uNSQsw%!k<MEi5 z%O$<ze7#=NbULN}Q$?%QiWZB7#I$u$kcdvM0(6NC;sE`KD?2L|zs^{B<l1X?fOYYG zDrCWGeWBc7{^6s@_8YWU+`2mdKU{>R4CPR3bgys5$gsqq<>p{D6H;TPFK5~LauHk` z^7RYly63s6r)B8Qv#j^eGW6gY^)NpUg)4WTzuZeZT<H77RLpBs?=!D>6LjQEC7R=5 z)#bOp&y-)XM=GqYr@F8QOH|lzaRqyFXMeXk@+@BBcr@9=rCE~Xd6J?fInG%KXNK8t z{lMV>kY+rE2;qRl&cPu(Z*rrF*cq;vux{gcGc}tb$4qk7esRI8+vfSq=Qn7YgHwv- zHS)B$`qkOO$qF}<@!VFPd`YDII7hUM(-m=mM_u$3hI8!$=WRIN4Z}J2eG91*PE&G4 c*YSVGnCP!LlZR`x^K`|V`^<$Xl<N_F0kjNXBLDyZ diff --git a/docs/latex/wx/sizer02.eps b/docs/latex/wx/sizer02.eps deleted file mode 100644 index c25314164f..0000000000 --- a/docs/latex/wx/sizer02.eps +++ /dev/null @@ -1,936 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer02.eps -%%CreationDate: Sun May 02 2004 15:04:17 -%%BoundingBox: 0 0 108 70 -%%HiResBoundingBox: 0 0 108 70 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 108 70 8 3 1 108 7 "beginimage" -%BeginPhotoshop: 4444 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 000000460000006C0000000700730069007A0065007200300032000000010000 -% 00000000000000000000000000000000000100000000000000000000006C0000 -% 0046000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000004600000000526768746C6F6E670000006C00000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000004600000000526768746C6F6E670000006C0000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000A74000000010000 -% 006C00000046000001440000589800000A5800180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC00011080046006C030122000211010311 -% 01FFDD00040007FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D79F2ED7EAF75AEB03EA57D6370CFC90EC26F4F662385CF9A5A6E -% 754E663FBBF40D756DF4FF0045F98B472727CBC002315DCA31F9E71F9E5C1FF7 -% 4B048F76E7FE3B577FE577FE0E3FF79D2FFC76AEFF00CAEFFC1C7FEF3A174BE8 -% DF56EDE95D1F3BAE3BD4BFAED999F69BDE72ADCB758D7FD9F1BF673309B6D0FB -% 7D72CB6EFB7D577ACFB7FC27F36A9FD5CE93D13AB749AB1BA7D58D95F58C3AE7 -% DD87D41D9158B6B68DD537A6DD87918B8FBB60FE6727F4AF7FDA2DF529C6C74C -% F6394A27DA9544F09373E1FD2893C5C7F2FEAD372EEE8FFE3B577FE577FE0E3F -% F79D2FFC76AEFF00CAEFFC1C7FEF3ACBEBB66233EA2FD5C15E150CB327ED85D7 -% 37D40F0FAEDA697DC3F4DE9D96E4D7533D6FB432FF00FBABF67AF62E49498F93 -% E5A609F6AAA528FCD2FD09707EF20C8F77D9FEACFD67BBAFE05999E97D9BD3B4 -% D5B3707CC36BB376EF4EAFF4AB5BED36C91BB56C4881A480F1FF0045DB971DFE -% 2CFF00E41BFF00F0DBFF00F3DD0BA5CB02B757935FF497B9B536B040F5DA08DD -% 5BC9FA0EC7ACEF6E5FF8067E8AEFD1D94ACAE66118669C622A313A05E366E1C9 -% B4402E82E98D06BB63747F577B150FB5E4FEDDF4FD477A7F64DDB27DBBBD48DF -% B3E8EFFE527C3FD36EC9B4CE49FD1D8D20B7D2DA7FA2B2B77BAA6D4EFA5F9F6B -% FF004D620FFEB41FFA07FF00A314297FFFD0E8BA1FFE27FA47FE10C6FF00CF6C -% 57157FAB9FF20F49FF00C218FF00F9ED8B4D2535170DF5E7EADF5AEADD5A9C8E -% 9F8FEB54CC76D6E76FADBEE0FB5E5B16BD8EFA2F6AF44494B8734B0CF8E20135 -% 5EA4116F8CFF00CC5FAD5FF707FF0005A7FF004AA2D7F53FEBA5545B8D563D8C -% A3236FAF536FAC32CD877D5EAD62EDB67A6EF757BFE82F614959FF0049E6FDD8 -% 7D92FF00BE47007C8E8FAB5F5F71B16CC3C66DF4E2DDBBD5C7AF298DADFB87A7 -% 67A9532F15BF7D6363F729D7F57FFC615586702A3935E196B98719B96D156D7C -% FAACF45B91E9EDB37BF7FB57ACA487FA472FEE63EFF29DFF00C65708F17C859F -% 557EBC5786FC06556B30ED76FB719B9358A9CE1B7DEFA45FE9BDDFA3AFF37F31 -% 57FF0098BF5ABFEE0FFE0B4FFE955ECC923FE93CC368E3FB25FF007CAE00F25F -% 51BA4F50E93D26EC7EA157A36BF21D635BB9AEF69654C0E9A9CF6FD2639741E9 -% 30DEEBC89B1CD6B013F9AD68FA15FEE35CEFD2BFFE15EAEA4AA64C8724E53357 -% 237A2E1A348D4C377AF1166DD8E23F3808F4FD4FDE755F46B7FEE7B3FD1AA3FF -% 00AD07FE81FF00E8C5B6B1BFF5A6FF00D05FFD1A98A7FFD1E9BEAE7FC83D27FF -% 000863FF00E7B622F5CC9BB13A2F50CAC776CBA8C6BADA9F00C3D95BDEC76D76 -% E6BB6B9A85F573FE41E93FF8431FFF003DB13FD65FFC4E755FFC2591FF009E9E -% 9292D9D27218F733F6B679DA4898C2EDFF00B4D51FD9991FF96D9FFF00B25FFC -% 8D5A57FF003F67F59DF954125343F66647FE5B67FF00EC97FF002352FD9991FF -% 0096D9FF00FB25FF00C8D57D54EAF66555D2736DC20E396CC7B5D8E1ADDEEF50 -% 31C6AD95C3BD477A9F99B52523FD9991FF0096D9FF00FB25FF00C8D4BF66647F -% E5B67FFEC97FF23551C9C2E998756266F49AAA66564646336BC9A61D65F5DB65 -% 7F6BF52FF7599CDB307ED19573EE75FF00CDFDBFF9DA3D7AEB74A361B4FED06B -% 474E19D97F632D24B4E4FDB72763B3C16B7D377A9B1BD359FA4C7FB4FBEDFD7B -% F66575A53AFF00B3323FF2DB3FFF0064BFF91A97ECCC8FFCB6CFFF00D92FFE46 -% ABE924A687ECCC8FFCB6CFFF00D92FFE46AC8EBF91D43A45FD2063F51CABBEDB -% D428C6B997B714B0D4F3FA56FE830B1AD6BDDEDF77A8BA65CB7D76FE97F577FF -% 004EB8FF0095253D4AC6FF00D69BFF00417FF46AD958DFFAD37FE82FFE8D494F -% FFD2E9BEAE7FC83D27FF000863FF00E7B627FACBFF0089CEABFF0084B23FF3D3 -% D37D5CFF00907A4FFE10C7FF00CF6C5A6929E6B23FC65FD50F5EC2CCB7BDA5C4 -% 870A6C0083AFE7B1AE43FF00C72FEA97FDC8B3FEDA7FFE45752924A796FF00C7 -% 2FEA97FDC8B3FEDA7FFE452FFC72FEA97FDC8B3FEDA7FF00E45752924A78DA3E -% BC7D41C7C9B32F1DADA726E9F56F66316D8EDC77BFD4B5B5EF7EF7FBDC887FC6 -% 0FD4A34BF1CBC9A6DDFEA55E83B63BD42E75DBD9B36BFD673DFEAFFA45D72492 -% 9E5BFF001CBFAA5FF722CFFB69FF00F914BFF1CBFAA5FF00722CFF00B69FFF00 -% 915D4A4929E5BFF1CBFAA5FF00722CFF00B69FFF009158FD73EB5F44EBBD47A0 -% D1D3AE759655D4F1DEF6B98E6FB776D997B76FD25E82924A52C6FF00D69BFF00 -% 417FF46AD958DFFAD37FE82FFE8D494FFFD3BDD1FAA75B6747E9B5E3745BAEAD -% 9858ED65BEBE3B77815B3F48D63EEDCD6BBF337FBD5DFDAFF597FF0028AEFF00 -% D88C5FFD2CBC3D2494FB87ED7FACBFF94577FEC462FF00E964BF6BFD65FF00CA -% 2BBFF62317FF004B2F0F49253EE1FB5FEB2FFE515DFF00B118BFFA592FDAFF00 -% 597FF28AEFFD88C5FF00D2CBC3D2494FB87ED7FACBFF0094577FEC462FFE964B -% F6BFD65FFCA2BBFF0062317FF4B2F0F49253EE1FB5FEB2FF00E515DFFB118BFF -% 00A592FDAFF597FF0028AEFF00D88C5FFD2CBC3D2494FB87ED7FACBFF94577FE -% C462FF00E964BF6BFD65FF00CA2BBFF62317FF004B2F0F49253EE1FB5FEB2FFE -% 515DFF00B118BFFA59677ED3EB5FB6FD4FD8D77DA3ECFB7D1F5B1FE8FA93EA7A -% 9EB6CFA7EDD8BC812494FF00FFD93842494D0421000000000053000000010100 -% 00000F00410064006F00620065002000500068006F0074006F00730068006F00 -% 700000001200410064006F00620065002000500068006F0074006F0073006800 -% 6F007000200043005300000001003842494D042200000000012E4D4D002A0000 -% 00080007011200030000000100010000011A00050000000100000062011B0005 -% 000000010000006A012800030000000100020000013100020000001B00000072 -% 01320002000000140000008D8769000400000001000000A4000000D000000048 -% 00000001000000480000000141646F62652050686F746F73686F702043532057 -% 696E646F777300323030343A30353A30322031353A30343A3136000000000003 -% A001000300000001FFFF0000A0020004000000010000006CA003000400000001 -% 000000460000000000000006010300030000000100060000011A000500000001 -% 0000011E011B0005000000010000012601280003000000010002000002010004 -% 000000010000012E020200040000000100000000000000000000004800000001 -% 00000048000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6115 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6115 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>108</exif:PixelXDimension> - <exif:PixelYDimension>70</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:04:16-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:04:16-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:04:16-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:f81a8a81-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a82-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 70 def -/cols 108 def -108 70 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 108 string def -/picstr2 108 string def -/picstr3 108 string def -/picstr4 108 string def -/_rowpadstr 108 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 35519 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8s)Z/u -`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzs8W-!s8W-!zzzz!!*$!zzz!!(!W`Pog8s)W8#`Pog8 -`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzs8W-!s8W-!z -zzz!!*$!zzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/s8W-!s8W-!K7ef/K7ef/K7ef/K7ef/K7j2V -K7ef/K7ef/K7ef/K7h.^`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsYs8W-!s8W-!%LrsY%LrsY%LrsY%LrsY -%M&LK%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$!zzzz!<<'!zzz!!(!W`Pog8`W("# -`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$! -zzzz!<<'!zzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7egVs+>rVK7ef/K7ef/K7ef/K7ef/KE(t( -K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY -%fcP=%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$!!!*'!s8N'!!!*'!s8W*!s8W-!rr<$! -zz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzz!!!$!rr<$!!!*'!s8N'!!!*'!s8W*!s8W-!rr<$!zz!!(!W`Pog8`Pqju -F2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7egVs+>rVK7j4(s8R_(K7j4(s8W+Os8W-!s+>rVK7ef/K7ef/K7h.^`Pog8 -`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%Ls!KrsfMK%M&O=s8NQ=%M&O=s8W*/s8W-!rsfMK%LrsY%LrsY%M$Is -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfW -zzz!!!$!rr<$!!<<'!!<<'!!<<'!z!<<'!zzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8 -`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzz!!!$!rr<$!!<<'!!<<'!!<<'! -z!<<'!zzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-! -s8W-!`Pog8`PmI^K7ef/K7ef/K7ef/K7egVs+>rVKE(t(KE(t(KE(t(K7ef/KE(t( -K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-! -s8W-!s8W-!`Pog8`Pi;s%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%fcP=%fcP=%LrsY -%fcP=%LrsY%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8 -s2Dsr`Pog8`Pof;`Pog8`PhfWzzz!!!$!rr<$!!<<'!!<<'!!<<*!z!<<'!zzz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfW -zzz!!!$!rr<$!!<<'!!<<'!!<<*!z!<<'!zzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^K7ef/K7ef/K7ef/K7egVs+>rV -KE(t(KE(t(KE(uOK7ef/KE(t(K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`Pi;s%LrsY%LrsY%LrsY%Ls!K -rsfMK%fcP=%fcP=%fcS/%LrsY%fcP=%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzz!!!$!rr<$!!<<*! -s8W*!!!*'!s8N'!!<<'!zzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8 -s)W7&F)uDDF)uDD`DX[o`PhfWzzz!!!$!rr<$!!<<*!s8W*!!!*'!s8N'!!<<'!z -zz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#- -`PmI^K7ef/K7ef/K7ef/K7egVs+>rVKE(uOs8W+OK7j4(s8R_(KE(t(K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD -`HB/=`Pi;s%LrsY%LrsY%LrsY%Ls!KrsfMK%fcS/s8W*/%M&O=s8NQ=%fcP=%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzz!!!$!rr<$!!<<'!zzs8W*!!<<'!zzz!!(!W`Pog8`PogrF*%A& -F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$!!<<'! -zzs8W*!!<<'!zzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7egVs+>rVKE(t(K7ef/K7ef/s8W+O -KE(t(K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%LrsY%LrsY -s8W*/%fcP=%LrsY%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$!!<<'!!!*$!z!<<'!!<<'! -zzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzz!!!$!rr<$!!<<'!!!*$!z!<<'!!<<'!zzz!!(!W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7egV -s+>rVKE(t(K7j2VK7ef/KE(t(KE(t(K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,u -F*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%Ls!KrsfMK%fcP=%M&LK%LrsY%fcP=%fcP=%LrsY%LrsY%LrsY%M$Is`Pog8`Pqju -F2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$! -!!*'!s8N'!!<<*!s8N'!!!*'!rr<$!zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzz!!!$!rr<$!!!*'!s8N'!!<<*!s8N'! -!!*'!rr<$!zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7egVs+>rVK7j4(s8R_(KE(uOs8R_(K7j4( -s+>rVK7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%Ls!KrsfMK%M&O=s8NQ=%fcS/s8NQ= -%M&O=rsfMK%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8s)W8# -`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XX"zzzzzzzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX" -zzzzzzzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzz -zzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzz -zzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X[" -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!!(R"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4# -!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4# -!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4# -!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4# -!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M -!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -eH".M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZM -e^`4#eH".M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`4#eH".M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM!7fWM -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM -!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -!7fWM!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#!7fWM!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["eWc;_Pa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Ds!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["eWc;_Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%Ds!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["eWc;_Pa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%Ds!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^X["eWc;_ -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%Ds!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX" -zzzzzzzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzz -zzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzz -zzzzzzzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzzz -zzzz!!(R"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzzzzzzz!!(R" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzzzzzzz!!(R"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzzzzzzz!!(R"e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzzzzzzz!!(R"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r' -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dH -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer02.gif b/docs/latex/wx/sizer02.gif deleted file mode 100644 index 891ad5acfa884df42090365024f4be1323cab47d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`QGNk%v~VQc_K0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui0Bit806+x)5XecZy*TU5yO)79jAUt^B%!V>TfFew z&U8WFXJHumehMJ~YDl~pWiHq%W?LeSDwK{#nxcTB0b<MTdcWYXcuX#v#Urdxdv3em z@OU~n8V3q-b6_9n_PKv~U<rF;b6IwHf_8j<UV)2Tgpgl{Ymu0lnp>82o1dU<okXN1 zP^YM=P^GK`YB{7-rm8AW1W35Hw@s;}Q?gfdt)#TY#yG=7uWX^s&R(O5&(mUsXs*K2 zpp*!Ijm?vW*of7N)aP5_*URYbnTG=L^7Hid_V@Vt`uqI-%gF!(3LF^lAHe~~5+*!I z!XQCox?&_z!laiJ9|Noe%fb*MuU$v~a?v6(MdQXb9Tlon)nkZ`AHo>QoJn&CJ9jwq zM9az3&CW1<f(ji<w5ZXeNRtW`cN3_&o}ko)`3dGuC~n@iaLXhW4An1Iw}I6PC{))< z<1Uqh3eMWpw4Q(}olCc_-JndfvEBQ&Dc`@G;MN>Wn4y{vh!ZPbyx3vk$B>o9Jh-y* zshN%iTHZ{f<wckrDHqd4i?or8z)Y5K%%pXJ6CRV)YC_sHGSsR~u-?JDw~qs}N`Gwa z<caOhBzcp{95A+%B{M{_L_H#R!^sahYmZ{Wx^?CNw{ORceV};l<U>bZ&t5R#_Xxhi zhbn(Q&-(Up;?Li1e>c|v1}NZ`fCLuknp<AEw-$eKoCS@7PBGXZf@t{#)>E5663B*T zQTU*Rk6@SyR%C6(m4{vU7uF{vc0*Q&CI$wgA0m$E$cs2?;$VspR#l^fWbDX=ia!D= zhLAGq6=4EQHtFP(P(~@`lvGwZC5l7#2-aO(cIjn|@o8z~IsT0qN||PUf@YeUtjQ)O TqqHX{WI%jr=bd=Y6#)P{FpFS! diff --git a/docs/latex/wx/sizer03.bmp b/docs/latex/wx/sizer03.bmp deleted file mode 100644 index d093307dcb69e3cfaef07af38532c441b389f21a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3342 zcmeH~y>7xV6op;Xtv@2&SUYuYM7wn;$=IPSM(PSGFM!k?v9M-q#!5`Q2amv-N8lCc zId)=9$PZ>fqUr@Zc6>hH>+8sY=a=g%q3jFw9m)XZ3FS<jqZZ=(Qiz)iU7F~#BuT;{ z(eL-gVzCetwAbsk7>!1v`Id;~aw%4;m6*+DN|&!ZSA)~Wt)nqe-_7n1W~MGS(SBTz z=}9o-efM>`S<g7$&!RugsKnJKVmk*P^ZES8m4Tj2<h5dcaEZJ)ilfN$V)UXIH{+b2 zl!25C#QLJdM9Ucraga(iFWGbk-YWEC7(~>9hHf>3W*q}<%7CV~8U`+?Vu-v}#)e@X zo5xJ)ynzN>oHq%3MZ{bHBi9B%F{WSmT<iTY8Zg|S%(nBE-L1a<Gf1MH>jTazhZFlG z&TIGe9P52*`3Z`xV@Y=2+r>z5M5aAJe5@Q|YY)Nn${861q3i|{B}6+=>w#WzC4Qij zK?tqHCu0E6O<8P;ffi0SjNkiYc!uc>X^+0IW~C6vosQ4=L1c7en0Iy_P&N$X>M}Z7 zhvPYhr>K-W4Ad5ri;dGLQ?pXYyoFNYoB65Ffrf2AmAS^;T!}VjT&<^WPqo~tk%L2? woovM>*XD*bx7}2^PDLfpjxAU1O2#-WZ|wLfmzoj9<o`g_^c(yg?`mLv0WWE2od5s; diff --git a/docs/latex/wx/sizer03.eps b/docs/latex/wx/sizer03.eps deleted file mode 100644 index fa3260a14e..0000000000 --- a/docs/latex/wx/sizer03.eps +++ /dev/null @@ -1,853 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer03.eps -%%CreationDate: Sun May 02 2004 15:04:11 -%%BoundingBox: 0 0 99 62 -%%HiResBoundingBox: 0 0 99 62 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 99 62 8 3 1 99 7 "beginimage" -%BeginPhotoshop: 5008 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000003E000000630000000700730069007A0065007200300033000000010000 -% 0000000000000000000000000000000000010000000000000000000000630000 -% 003E000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003E00000000526768746C6F6E670000006300000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003E00000000526768746C6F6E67000000630000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000CA7000000010000 -% 00630000003E0000012C000048A800000C8B00180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108003E0063030122000211010311 -% 01FFDD00040007FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D735F537A867E2FD62E9D4E2E4DB45593998CCC8AEB7B98DB1BEA -% B5BB2E630B5B6B76BDFF004FF7D740DA075DFADDF586AEB391664E2F47AFA8E4 -% E253916DC6861AEC15B1AF6D04E4331592D7BEBC3F4EDFD0D7FF0016AFCF96E5 -% A1220E2F488F1589CF8BF77E55B67BA5FF00C76AEFFCAEFF00C1C7FEF3A5FF00 -% 8ED5DFF95DFF00838FFDE759C71BEA357D7315F90E733A6E4F4FF50B98CC938A -% DCD1EA50F2C6DBF67EA97F4EF5697FF3577ABF69FD17AF5D5EB7A5A9D2FA5B3A -% 5753EB15E574EE9EE03A0DF9989662D97DB4D95B87A7EAD36DF92FBDADCA65B6 -% 63DCF6FA36FA757EADE9576D9664B65879503F9995D71012328FF5787E7F9A2A -% B3DD87FE3B577FE577FE0E3FF79D75BD0BAEDDD5FA551D4767A1EBEFFD1C87C6 -% C7BEAFA7B19FB9FB8BC52D7B6CB5EF6B1B535EE2E6D4CDC5AD04CEC67AAEB2CD -% ACFF0084B1EF5EB1F517FF0012B83FF5DFFCFD6A8F9EE5B0E2C519423C24C80D -% E474E192A2492F45F69B751BB504B4E83420ED737FB2E4BED36CC6ED637440E0 -% 92DDDFE731CA8E517D170B7159EB64DFB9CFC41C590D77EB7EDFA0FF0051ADAA -% CFFB9DF42BFD67F48A786DADD5FAEDB3D77DF0EB2F3A1711EDFA3FE0D95FD0AE -% 9FF02B357A3FB5E4FDB36FA8EDBF6BDB13A6DFB2EFD91FB9BFDFB7F7D242FF00 -% B5BFFA19FF00BA8924A7FFD0E8BA1FFE27FA47FE10C6FF00CF6C57157FAB9FF2 -% 0F49FF00C218FF00F9ED8887A9E43F27228C4E9B9396312C155B6D4EC76B37BA -% BAB276B7ED3978F6FF00359157F834949170DF5E7EADF5AEADD5A9C8E9F8FEB5 -% 4CC76D6E76FADBEE0FB5E5B16BD8EFA2F6AEDBEDBD53FF0029737FEDCC3FFDEF -% 4BEDBD53FF0029737FEDCC3FFDEF52E1CD2C33E38804D57A9045BE5557D4AFAD -% F4DACBA9C47576D6E0FAEC65D535CD734EE63D8F6DDB9AE6B916BFAABF5E2ACC -% 39F5556D7985CE79C96E4D62DDCF9F55FEB36FF53759BDFBFDCBD43EDBD53FF2 -% 9737FEDCC3FF00DEF4BEDBD53FF29737FEDCC3FF00DEF564FC4B31DE18FB6D2F -% FBE47007CD19F57FFC615798FCF61C96665ADD96E4B72DA2D7346DF63EE191EA -% 3DBFA3AFF3BF3143FE6D7D7DFB77ED1DB7FDBBFEE5FDA99EB7D1F4BF9FF5FD5F -% E6BF47F4FF009B5E9DF6DEA9FF0094B9BFF6E61FFEF7A5F6DEA9FF0094B9BFF6 -% E61FFEF7A1FE91CBFB98F6AF94FCBDBE65708F17CAADFA95F5BEEB5F75D88EB2 -% DB1C5F658FBAA739CE71DCF7BDEEBB739CE72F41FAA98395D3BA062E1E633D2C -% 8ABD4DEC90E8DD659637DD59733E8396A7DB7AA7FE52E6FF00DB987FFBDE97DB -% 7AA7FE52E6FF00DB987FFBDEA3CFCE64CD010908800F17A41FFBE48880BB6A63 -% 6DB6D03DF738B9EE3AFF005183FE0EA6FE8EA67E63121531B6D96B443AD83601 -% C17099B76FFA47FF008477F84FF8C4DF6DEA9FF94B9BFF006E61FF00EF7A260E -% 71CB390C7E3DB8B762DBE8DD4DDE997071AEAC96FBB1ADC8A9CD755915FF0084 -% 5592E77FDADFFD0CFF00DD4492FF00B5BFFA19FF00BA8924A7FFD1E9BEAE7FC8 -% 3D27FF000863FF00E7B62B9F5784E575AD62339BFF00B67D3D53FAB9FF0020F4 -% 9FFC218FFF009ED889D333E9C07F5BBAE65D6039CC6B5B45365EF27EC780EFE6 -% F16BB5ED6FB3F9C7FE8D253B19F9B46052CBAE322CBA9A1AD6F25F7D95E2D7F4 -% B67B5AFB77D9FF0006859F9F6D16D58989537233721AFB2AAAC79AAB15D46B17 -% DD75E2BBDCC6B1D7D35B5B5D375AFB6EAFF47E8FAF7D187D5FABB7AA370B1B1B -% 0B3C3C67E1DA4DB87915B032BC8AACB5EFB6CA856C6B2B1BFDEB67A862651CAA -% 3A8E10ADF958D5DB48A6E71656FAEF34BEDFD3575DF6536B2CC5A1F5D9E8DFFE -% 169F4BF4DF68C74A4193D72DE9F5E29EA98EDC7764E49C671AEC3733F99BB2EA -% 7E36DA999192EB9F4371198FF66A321F94FF00D0D777E87ED07B3AE74D65155F -% BECB05FBBD3AE9A6DB6DFD19D97EFC5C7AACC9ABECF6FE8727D5A7F56BFF0041 -% 7FA777B10DD89D4F2ADE9F919628A9F8996EBDF554E7BC36B38D9386D636F7D7 -% 57DA2DF5B27D6FE6317F45FA2F7FA3EAE466DFF56F37F41730B6DB69B7A81F49 -% B9591860B33727EDF5BFED782C7DFBA96575D6FC6F4BD17BECF53D5FD5EBF552 -% 9D6BFAEF4AA3D32FBF7B2DADB70B6A63EDADB53BF9BC9C8BF1D96D38B8AFDAFD -% 99392FAA8FD15DFA4FD0DA963F57A2DCFC8C078D97537FA15B44B8BC0A31B3AC -% BCB5ADFD0D55FDB19439EFFD17ABE8FE93D5C9A6A54E9E93D47A75B59E9A319C -% D3878D82F361B18DA4629BFD3BE9A3F5AB32DAEFB5FF0046BB371DFF00A0FE9A -% FF005BD5A678FD1B2B13ACE7F55A1D5EFEA17D5EB56E261F8F5D3463B65DB7F4 -% 3958B7372EEA7D3FD164556FA191FCE53918294C3A675ECFCAAFA6DF9987563E -% 3F576B4E2BAABDD73C39F4D99EC6E457662E2318DFB3D16FBEBBAEFD37A7ECFF -% 000B5DA67D61E90F6BDE2E736BADBEA7A8FAAC631D5EE6D6ECAA2DB2B6D79387 -% 5FA95BEFCDC775B894536577DD75743FD4593F57FEAD6574E3D383F0F0705F83 -% 586E465E1BCBADCA8A5D8CEAB247D930FF00456DCF6673F7DF91FA7C6A7F47FE -% 1EA2E2744EB58F5E1D4CB28A4F4CC41D3F1EF639CF75953DF8632331D559436A -% C5CAAF1B037E363FEBF47DA6EFD359E8D3FA74A776BCAA2DBEDC7ADDBACC7DBE -% B000C34BC6F6D65F1E9FABE9FE91D56EF56BAACA6C7FE8EFA7D4C6C2FF00953A -% D7FE1DAFFF006CF015DE8FD25BD1DAFC1C30D674A635AEC4A65CE7D6F73AD765 -% B37BFDCEA1CEF4AEABD4B2DBBD6B72BFC07D9EAAE9617FCA9D6BFF000ED7FF00 -% B6780929A5FF006B7FF433FF0075124BFED6FF00E867FEEA24929FFFD2E9BEAE -% 7FC83D27FF000863FF00E7B629507AD6065E7BF171B1B269CCBDB7B1D6E4594B -% C4518D88E63AB6616537E962EFFE7562F47EA9D6D9D1FA6D78DD16EBAB66163B -% 596FAF8EDDE056CFD2358FBB735AEFCCDFEF577F6BFD65FF00CA2BBFF62317FF -% 004B24A753F69FD63FFCAEC2FF00D8DB7FF91A97ED3FAC7FF95D85FF00B1B6FF -% 00F23565FED7FACBFF0094577FEC462FFE964BF6BFD65FFCA2BBFF0062317FF4 -% B24A753F69FD63FF00CAEC2FFD8DB7FF0091A97ED3FAC7FF0095D85FFB1B6FFF -% 0023565FED7FACBFF94577FEC462FF00E964BF6BFD65FF00CA2BBFF62317FF00 -% 4B24A753F69FD63FFCAEC2FF00D8DB7FF91A97ED3FAC7FF95D85FF00B1B6FF00 -% F23565FED7FACBFF0094577FEC462FFE964BF6BFD65FFCA2BBFF0062317FF4B2 -% 4A753F69FD63FF00CAEC2FFD8DB7FF0091A97ED3FAC7FF0095D85FFB1B6FFF00 -% 23565FED7FACBFF94577FEC462FF00E964BF6BFD65FF00CA2BBFF62317FF004B -% 24A753F69FD63FFCAEC2FF00D8DB7FF91A87D369CD6DD9D939ACAAAB737205C2 -% BA6C75AD6B5B463627F3B6538AE739CEC5DFFCD2CFFDAFF597FF0028AEFF00D8 -% 8C5FFD2C97ED7FACBFF94577FEC462FF00E96494CFFED6FF00E867FEEA24B2BF -% 69F58FB56EFD8D76EFB4EEDBEB63FD2FB3ECF4F77ADFE8BF4DBFFEB6924A7FFF -% D9003842494D042100000000005300000001010000000F00410064006F006200 -% 65002000500068006F0074006F00730068006F00700000001200410064006F00 -% 620065002000500068006F0074006F00730068006F0070002000430053000000 -% 01003842494D042200000000012E4D4D002A0000000800070112000300000001 -% 00010000011A00050000000100000062011B0005000000010000006A01280003 -% 0000000100020000013100020000001B0000007201320002000000140000008D -% 8769000400000001000000A4000000D000000048000000010000004800000001 -% 41646F62652050686F746F73686F702043532057696E646F777300323030343A -% 30353A30322031353A30343A3131000000000003A001000300000001FFFF0000 -% A00200040000000100000063A0030004000000010000003E0000000000000006 -% 010300030000000100060000011A0005000000010000011E011B000500000001 -% 0000012601280003000000010002000002010004000000010000012E02020004 -% 000000010000000000000000000000480000000100000048000000013842494D -% 03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6114 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6114 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>99</exif:PixelXDimension> - <exif:PixelYDimension>62</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:04:11-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:04:11-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:04:11-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:ed609698-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609699-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 62 def -/cols 99 def -99 62 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 99 string def -/picstr2 99 string def -/picstr3 99 string def -/picstr4 99 string def -/_rowpadstr 99 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 28848 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVJ7hhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G!8cShhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhI6KAhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR*u!8cShhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8 -`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8 -`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ -`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8`Pog8`Pog8`Pof* -!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8 -`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`Pogr -F2c,;`Pog8`W("u`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzz -zzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq -`Pog8`W("u`Pog8`PogrF2c,;`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+ -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWz!!!$! -s8W-!s8W*!zzzz!<3$!zz!6)pr`PogrF*#=>`Pog8s)W8#`Pog8`F8i(hSmIQ`Pog8 -`Pog8`Pog8`Pog8`Pog8`;fl<z!!*'!s8W-!s8N'!zzzzrr<$!zz`Pog8`PqjuF2c,; -`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/KE(uO -s8W-!s+>rVK7ef/K7ef/K7ef/K7egVK7ef/K7ef/K7efq`Pog8`W("#`Pog8`Pqju -F2c,;`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsYs8W-!s8W-! -%LrsY%LrsY%LrsY%LrsY%M&LK%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zzzzzs8N'!zz!6)pr -`Pog8s)W8#`PogrF*#=>`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl< -zz!<<'!zzzz!!!$!rr<$!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/s8R_(K7ef/K7ef/K7ef/K7ef/K7j4( -K7ef/K7ef/K7efq`Pog8`PqjuF2c,;`W("#`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8 -`Pog8`Pog8`Poe+%LrsY%LrsY%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY%fcP=%LrsY -%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzz!!*'!z!<<*!rr<$!!<<*!s8N*!s8W-!zz!6)pr`Pog8`W("#`Pqju -F2c,;`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zz!<<'!zs8W-!z -s8W-!rrE*!s8W*!zz`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/s8R_(K7egVs8W+OK7egVs8W-!KE(uOs8R_( -K7ef/K7efq`Pog8`PogrF*#=>s)W8#`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8 -`Pog8`Poe+%LrsY%LrsY%Ls!KrsfMK%M&O=s8NQ=%M&O=s8W*/s8W-!rsfMK%LrsY -%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8 -`PhfWzz!!*'!zs8N'!s8N'!s8N'!zs8N'!zz!6)pr`Pog8`PqjuF8p<&`Pog8`Pog8 -`F8i(hSmIQ`Pogrs8W-!s8W-!s8W,<`Pog8`;fl<zz!<<'!!!!$!rr<'!rr<'!rr<$! -!!!$!rr<$!zz`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-! -s8U'W`Pog8K7ef/K7ef/K7ef/s8R_(K7j4(K7j4(K7j4(K7ef/K7j4(K7ef/K7ef/ -K7efq`Pog8`Pog8s)W8]F*#=>`Pog8`Pof*!8cSO`Pog8`W,u<s8W-!s8W-!s2Dsr -`Poe+%LrsY%LrsY%Ls!KrsfMK%fcP=%fcP=%fcP=%LrsY%fcP=%LrsY%LrsY%M$Is -`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfW -zz!!*'!zs8N'!s8N'!s8W*!zs8N'!zz!6)pr`Pog8`PogrF)uEA`Pog8`Pog8`F8i( -hSmIQ`Pogr`Pog8`Pog8`Plo;`Pog8`;fl<zz!<<'!!!!$!rr<'!rr<'!s8N'!!!!$! -rr<$!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#; -`Pog8K7ef/K7ef/K7ef/s8R_(K7j4(K7j4(K7j4(s+>rVK7j4(K7ef/K7ef/K7efq -`Pog8`Pog8`W("#F2c,;`Pog8`Pof*!8cSO`Pog8`W*or`Pog8`Pog8F2c,;`Poe+ -%LrsY%LrsY%Ls!KrsfMK%fcP=%fcP=%fcS/%LrsY%fcP=%LrsY%LrsY%M$Is`Pog8 -`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzz!!*'! -zs8W-!s8N'!!<<*!rr<$!s8N'!zz!6)pr`Pog8`PogrF)uEA`Pog8`Pog8`F8i(hSmIQ -`PogrF)uDDF)uDDF)uEA;T6Vo`;fl<zz!<<'!!!!$!s8W-!rr<$!s8W-!!!!$!rr<$! -zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#;3`Pog8 -K7ef/K7ef/K7ef/s8R_(K7j4(s8W-!K7egVs8W+OK7j4(K7ef/K7ef/K7efq`Pog8 -`Pog8`W("#F2c,;`Pog8`Pof*!8cSO`Pog8`W("#F)uDDF)uDDF2`:@`Poe+%LrsY -%LrsY%Ls!KrsfMK%fcS/s8W*/%M&O=s8NQ=%fcP=%LrsY%LrsY%M$Is`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'! -z!!!$!s8N'!s8N'!zz!6)pr`Pog8`PqjuF8p<&`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8 -`Pog8`Pog8`Pog8`;fl<zz!<<'!!!!$!rr<$!z!!*'!rr<'!rr<$!zz`Pog8`Pog8 -`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/ -K7ef/s8R_(K7j4(K7ef/K7ef/KE(uOK7j4(K7ef/K7ef/K7efq`Pog8`Pog8s)W8] -F*#=>`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%Ls!K -rsfMK%fcP=%LrsY%LrsYs8W*/%fcP=%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!!<3$!z -s8N'!s8N'!zz!6)pr`Pog8`W("#`PqjuF2c,;`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8 -`Pog8`Pog8`;fl<zz!<<'!!!!$!rr<$!rr<$!!!!$!rr<'!rr<$!zz`Pog8`Pog8 -s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/ -K7ef/s8R_(K7j4(K7egVK7ef/K7j4(K7j4(K7ef/K7ef/K7efq`Pog8`PogrF*#=> -s)W8#`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%Ls!K -rsfMK%fcP=%M&LK%LrsY%fcP=%fcP=%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!z!<<*!rr<$!s8W-! -rr<$!!<<*!zz!6)pr`Pog8s)W8#`PogrF*#=>`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8 -`Pog8`Pog8`;fl<zz!<<'!zs8W-!!!!$!s8W-!zs8W*!zz`Pog8`PogrF*#=>`Pqju -F2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/s8R_( -K7egVs8W+OK7j4(s8W+OK7egVs8R_(K7ef/K7efq`Pog8`PqjuF2c,;`W("#`Pog8 -`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%Ls!KrsfMK%M&O= -s8NQ=%fcS/s8NQ=%M&O=rsfMK%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`PogrF*#=>`Pog8 -s)W8#`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8 -`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq`Pog8`W("# -`Pog8`PqjuF2c,;`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8 -`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr -`PogrF2c,;`Pog8`W("u`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl< -zzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7efq`Pog8`W("u`Pog8`PogrF2c,;`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8 -`Poe+%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8 -`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8 -`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ -`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8`Pog8`Pog8`Pof* -!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz!6)pr`Pog8`Pog8`Pog8`Pog8 -`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`;fl<zzzzzzzzzzz`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7efq`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Poe+%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIa -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO -`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz -!!(R"e^`3h`F8i(hSmIae^`4#zzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBX -e^`1Mzzzzzzzzzzzzzzzzzzzze^`4#e]#L:!8cSO`RWMhe^XX"zzzzzzzzzzzzzz -zzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWM -e^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L: -!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5j -e^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4# -!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)* -e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h -`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A -`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMh -e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%* -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4# -e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9d -hVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mJm4e!:K:C!:K:CmdBN2mdBN2mdBN2 -mdBN2mJu\CmdBKCzmdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4# -!:K:CmdBN2mdBN2mdBN2mdBN2zmdBKCmdBN2mdBN2mdBN2mdBN2mdBN2!:K:Cmd:&T -!!!#emdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2 -mdBN2mdBN2mdBKC!!!#emd:)CmdBN2mdBN2mdBN2mdBN2mdBKCmdBN2mJm4e!!)HT -mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2 -mdBN2md:&T!!)HTmJu\CmdBN2mdBN2mdBN2mdBN2md:)CmdBN2z!:K:CmdBN2mdBN2 -mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*s8W-!s8W-!rrDKTmdBN2!:K:C -mJu\C!:K:CmdBN2mdBN2mdBN2mdBN2mJu\CmdBKCmdBN2!:K:CmdBN2mdBN2mdBN2 -mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:Ts8W-!s8W-!!:K:CmdBKCmdBN2!:K7T -mdBN2mdBN2mdBN2mdBN2mdBN2!:K:Cmd:)CmdBKCmdBN2mdBN2mdBN2mdBN2mdBN2 -!7fWMe^_XX@K>9A`PpBXe^`1MmdC,Ts8W-!s8W*!mdBN2md:)CmdBKCmd:)CmdBN2 -mdBN2mdBN2mdBN2mdBKCmdBN2mJu\Cmd:)CmdBN2mdBN2mdBN2mdBN2mdBKCe^`4# -e]#L:!8cSO`RWMhe^XZfmf3=es8W-!s8N)emdBN2mJu\Cmd:)CmJu\CmdBN2mdBN2 -mdBN2mdBN2md:)CmdBN2!:K:CmJu\CmdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9d -hVQ5je^`4#eH#%*s6f=CmdBN2mJu\CmdBKCmdBN2mdBN2!:BgemdBN2!!!#emdBKC -!!)HTmJu\C!:K7TmdBN2!:K:C!!!#emJu\Cmd:)CmdBN2mJtefe^`3h`F8i(hSmIa -e^`4#!:K:TmdBN2mdBN2!:K:Cmd:)CmdBN2mdBKCmJm7TmdBKC!!)HTmd:&T!:K:C -!:K7Tmd:)CmdBKCmdBKC!!)HT!:K:CmJu\CmdBN2!7fWMe^_XX@K>9A`PpBXe^`1M -mdC,CmdBN2mdBKCmdBN2mJu\CmdBN2md:)C!!)HTmd:&T!:K:CmJm4emdBKCmd:)C -mJu\Cmd:)Cmd:&T!:K7TmdBN2!:K:CmdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmf2_C -mdBN2md:)CmdBN2!:K:CmdBN2mJuYT!:K:CmJm4emdBN2!!!#emd:)CmJu\C!:K:C -mJu\CmJm4emd:)CmdBKCmdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*s6f=CmdBN2 -U]BiNmdBKCmdBN2mdBN2!!)HT!:K7TmdBKCmd:)Cmd:)CmJuYTmdBKCmdBN2!:K7T -mdBKCmd:)CmJu\CmdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:TmdBN2mdBM=!:K:C -md:)CmdBN2mdBKC!:K7Tmd:)Cmd:)CmJu\CmJu\C!:BjTmd:)CmdBKCmd:)Cmd:)C -mJu\C!:K:CmdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdC,CmdBN2md?kNmdBN2mJu\C -mdBN2md:&Tmd:)CmJu\CmJu\C!:K:C!:K7TmJu\CmJu\Cmd:)CmJu\CmJu\C!:K7T -mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2 -mJm7TmJu\C!:K:C!:K7TmdBKCmd:)C!:K:C!:K:CmJu\C!:K:C!:K7Tmd:)CmdBN2 -md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*s6f=CmdBN2U]BiNmdBKCmdBN2mdBN2!:K:C -!:K7TmdBKCmd:)CmdBN2mJm7TmdBKCzmdBKCmdBKCmdBKC!:K:CmdBN2mJtefe^`3h -`F8i(hSmIae^`4#!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKCmd:)Cmd:)C -mJu\CmdBN2!!)HTmd:&T!!!#emd:)Cmd:)Cmd:&TmdBN2mdBN2!7fWMe^_XX@K>9A -`PpBXe^`1MmdC,CmdBN2md?kNmdBN2mJu\CmdBN2md:)Cmd:)CmJu\CmJu\C!:K:C -mdBKC!:K:CmJm4e!!)HTmJu\CmJu\CmJm7TmdBN2mdBKCe^`4#e]#L:!8cSO`RWMh -e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJu\CmJu\C!:K:C!:K7TmdBN2md:&T -mdBN2z!:K:C!:K:C!:K:C!!)HTmdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*s6f=C -mdBN2U]BiNmdBKCmdBN2mdBN2!:K:C!:K7Tzmd:)CmdBN2mJm7TmdBKCmdBN2!:K7T -mdBKCmdBKC!:K:CmdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:TmdBN2mdBM=!:K:C -md:)CmdBN2mdBKCmdBKCmd:&T!!!#emJu\CmdBN2!!)HTmd:)CmdBKCmd:)Cmd:)C -md:&TmdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdC,CmdBN2md?kNmdBN2mJu\C -mdBN2md:)Cmd:)CmJm4e!!)HT!:K:CmdBKC!:K:CmJu\Cmd:)CmJu\CmJu\CmJm7T -mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2 -mJu\CmJu\Cz!:K7TmdBN2md:&TmdBN2!:K:CmJu\C!:K:C!:K:C!!)HTmdBN2md:)* -e^`4#`Pl9dhVQ5je^`4#eH#%*s6f=CmdBN2U]BiNmdBKCmdBN2mdBN2!:K:C!:K7T -mdBN2md:)CmdBN2mJuYTmdBKCmdBN2!:K7TmdBKCmd:)CmJu\CmdBN2mJtefe^`3h -`F8i(hSmIae^`4#!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKCmd:)CmdBN2 -mJu\CmdBN2!:BjTmd:)CmdBKCmd:)Cmd:)CmJu\C!:K:CmdBN2!7fWMe^_XX@K>9A -`PpBXe^`1MmdC,CmdBN2md?kNmdBN2mJu\CmdBN2md:)Cmd:)CmJu\CmdBN2!:K:C -mdBKCmJu\CmJu\Cmd:)CmJu\CmJu\C!:K7TmdBN2mdBKCe^`4#e]#L:!8cSO`RWMh -e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJu\CmJu\C!:K:CmdBKCmdBN2md:)C -!:K:C!:K:CmJu\C!:K:C!:K7Tmd:)CmdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%* -s6f=CmdBN2U]BiNmdBN2!:K:CmJu\C!:K:C!:K7TmdBKCmd:)Cmd:)CmJu\C!:K7T -mdBN2!:K7TmdBKCmJu\Cmd:)CmdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:TmdBN2 -mdBM=!:K:CmdBKCmdBN2!:K7TmdBKCmd:)Cmd:)CmJu\CmJu\C!:K7Tmd:)CmdBKC -md:)Cmd:)C!:K:CmJu\CmdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdC,CmdBN2md?kN -mdBN2md:)CmdBKCmd:)Cmd:)CmJu\CmJu\C!:K:C!:K7Tmd:)CmJu\Cmd:)CmJu\C -mJuYTmdBN2!:K:CmdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmf2_CmdBN2m\BjNmdBN2 -mJu\Cmd:)CmJu\CmJu\C!:K:C!:K7TmdBKCmd:)CmJu\C!:K:CmJu\C!:K:C!:BjT -mdBKCmdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*s6f=CmdBN2U]BiNmdBN2mJm4e -!:K:C!:K:C!:K:C!!!#emdBKC!!)HTmJu\CmJuYTzmdBN2!!!#emJu\Cmd:)CmdBN2 -mJtefe^`3h`F8i(hSmIae^`4#!:K:TmdBN2mdBM=!:K:CmdBN2zmdBKCmdBKCmdBKC -!!)HTmd:&T!:K:C!:K:C!:Bge!!!#emdBKC!!)HT!:K:CmJu\CmdBN2!7fWMe^_XX -@K>9A`PpBXe^`1MmdC,CmdBN2md?kNmdBN2mdBKC!!!#emd:)Cmd:)Cmd:&T!:K:C -mJm4emdBKCmdBKCmJm4e!!)HTmd:&T!:K7TmdBN2!:K:CmdBKCe^`4#e]#L:!8cSO -`RWMhe^XZfmf2_CmdBN2m\BjNmdBN2md:&T!!)HTmJu\CmJu\CmJm4emdBN2!!!#e -md:)Cmd:)Cz!:K:CmJm4emd:)CmdBKCmdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%* -s6c\YUnjf^U]BiNmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:Tm\HYS -Unjf^!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdC,CUnjf^Unjdd -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmf2^NUnjf^Une"YmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*zz!!)HTmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtef -e^`3h`F8i(hSmIae^`4#!:K7Tzz!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBX -e^`1Mmd:&TzzmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmJm4ez!!!#e -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC -e^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4# -`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i( -hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBX -e^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZf -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mJtefe^`3h`F8i(hSmIae^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWM -e^_XX@K>9A`PpBXe^`1MmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L: -!8cSO`RWMhe^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5j -e^`4#eH#%*mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`3h`F8i(hSmIae^`4# -!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!7fWMe^_XX@K>9A`PpBXe^`1MmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e]#L:!8cSO`RWMhe^XZfmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2md:)*e^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzz -zzzzz!!(R"e^`3h`F8i(hSmIae^`4#zzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A -`PpBXe^`1Mzzzzzzzzzzzzzzzzzzzze^`4#e]#L:!8cSO`RWMhe^XX"zzzzzzzzz -zzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIa -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`3h`F8i(hSmIae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO -`RWMhe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`3h`F8i(hSmIae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e]#L:!8cSO`RWMhe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`F8i(hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pof*!8cSO`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`F8i( -hSmIQ`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pof*!8cSO`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U]>o@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU!8_0o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`dHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer03.gif b/docs/latex/wx/sizer03.gif deleted file mode 100644 index 3d3c9f9ae269053bfcfb3755cbe912d6925abd9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;0(Nk%v~VPgP30J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#JR?(U?d zqyPW_000000000000000EC2ui0Am0?06+x)5XecZy*TU5`wh|{j$~<$M5?Mq>$Ynw zv-4^ehH>Yn00O6=u(pB~U98u!Ks@1eqvy#N8X&INtai)odcWYXSVRR{vw?(q&2GEj z@VI<VPXx5&pGccd6y6GbYl3ZpeTHg;iG%@-jf0SjaCcdGReW`snwy+#lvtK#Vxy#` zrlp}mswG6NuCFnxvIAu|s!$}aMkz+UySz-Ts!zC6db6sq%FD6HLbYe7($mynsnJ)8 znU08^c7@#DiFmZfn0|oTc8-zXi;RznklgTxo^GF4*L?K-{{H|23LH3)92Efw6DnND zu%W|;5F<*Q$nco6ix@L%3<7PV2xcJvm3bV|(W9<lNq)Uxva*R29s{Hpt1|NB5h6$k z{F));iOiX1YK9!@k_3(*M@y6($+YQ6Xw{-ht+o%1xT{z<<wH;vi@K~}!*1=GP0gP- zioT|a_s$brd+y}5jZ1f2rE-_7qH`0d(4<J(0>@<}*B#tK2F>XW7`Cz2#Cg3so(y&@ zUQtssYYubGsprqm%6J$}y0q!hOF^q%P12%CqOhAib-gjR?G!tZ7VG@F)y`$VWgCSl z;wOpJE0Y&6VKWJ^=P`oY&~3oDQra<dXy4A`KrUA*TLRl9UBxi%s#0fc4qc}VU#_SZ zCw`q~@7qLo?9RSlJx2VoHRa#AMF7GkAa<-J=owU-HRvEHm+kT3gqo3s06`dLsNshF zK!%xQl!fSxWekES;)&aMD4~fcwipMAih-zH3xWYAPFnYjs3JBOnw5@UXu;LZkb~t& zWL<VaSYlawwb56O_y86Tl5Ej+m?3KIc+Oc))+pDJhS?aVnBNeF*j-EZh>ikmw)v!s zA;K6LlW^AQiI#fVsi&MD(y3>ie6C30pww7M=%J(-is+(W@TTCS2XZLsq?A$`0RTIX C*Lj@) diff --git a/docs/latex/wx/sizer04.bmp b/docs/latex/wx/sizer04.bmp deleted file mode 100644 index 04df07073b138066c5e5997089da3bb60d8bd3cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7670 zcmeI1F^|(Q6vuOjjpafW2?mB^VntD5N9o8AsH>c^6{%mK5;G@sQmRfTbwOh3fP~l> zI%V!h=-Q9LTK>;T8Ygia$1dV@>eIz>8~^-&etxfQa_`>%dEs#TjP@0dFF2@w;XFo* z*SP-lNp@V~H68o?o-R4l>D1Y7x6W7e4~K&@pU<7k4|`{~+c~S%%2_U#&UZet+PIeX z=%tliIlh&hfKM#UhrR`#JPdxp`q__cc$DPpUp(s-!`pS1G9~Zz(kK2krud)y^}tR) zvg3!zot6GDxv}D-WHGRbKeo<>A0prGEcA)LvEU=*>-E4U|EL1YdH$Jip&xyN+3<+p z;-tJ6dZEig=7kKc+HTi~TumRGN3azSWiJd}*E7-w$9c@6whsSk2})D&o*S~zh==ot zKSj}u7erm9_l&jpf24$|j_-*b882S%>Yw>${dC1ly#6oZC)7XkP;D}OD!sh^aW>>p zx!F8Md|v-xP4!8flHZ)C`e#P*E9>7>AC7Y~jeo%#?SBF5oMri=!xdxB{OLbGg!(uA z{zcy9^;>LI%UQO6yzZG5U(`QUu+m!fGyl8FzwP^z*3av|%K@qWx&D=VCSH`qPrTmM zZ}R<~;Yj$jhy6Ycp9sJI-5&BO^m&9Te7uP_EZwB>CQW1YY~bncNxXk@iHmuo#YYJE z^O`=%>gw0;pSV6_<b;-f{r<JD|E+w?wDkSj{X6vGJmODL)QNwShi+~RQ>cvgulD?c zum8xz$DXt!<)tI#Z}R-9K7Z+(zsS8oCI5OAFy-&Cn!mkxZ=DS<pC8ced=LAT+0Wwn z9qy(L?O{CsG+aC|TECT@mJhT{bhxUog$MV5pO6pK82Uf?gc6*o`O!EC7z;)?0*3z4 zfDub`sPw_(58!A_Q<Vk`FqiM<fiVd`oN@V#pUlYK`hKZ_9_ceUPHSlB`x9Dy?*B*X zy}{Aop*+I!JNWDePaDr8AkIu`760iCZsI5|%45&Qw2abds9yXErs2QF{?Vceo_4V` qF5jI$B~a@T&)0y)Fn<Z>cE9+-EB$lTe|@ePc~$*yXzy3H{Ka47Sz*Zl diff --git a/docs/latex/wx/sizer04.eps b/docs/latex/wx/sizer04.eps deleted file mode 100644 index 17e3b6edce..0000000000 --- a/docs/latex/wx/sizer04.eps +++ /dev/null @@ -1,1548 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer04.eps -%%CreationDate: Sun May 02 2004 15:04:02 -%%BoundingBox: 0 0 128 118 -%%HiResBoundingBox: 0 0 128 118 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 128 118 8 3 1 128 7 "beginimage" -%BeginPhotoshop: 7000 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 00000076000000800000000700730069007A0065007200300034000000010000 -% 0000000000000000000000000000000000010000000000000000000000800000 -% 0076000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007600000000526768746C6F6E670000008000000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007600000000526768746C6F6E67000000800000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000001470000000010000 -% 008000000076000001800000B1000000145400180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC000110800760080030122000211010311 -% 01FFDD00040008FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D79F24B57EE1CB7F9BFF9D3FF00BE59C47BBE83FF008ED5DFF95D -% FF00838FFDE74BFF001DABBFF2BBFF00071FFBCEB3BFC57F50CFAFEB5E0E0332 -% 6D661DAEB9F6E335EE1539C28B7DEFA41F4DEEFD1D7F9BF98A1D0A8ABACF4DEB -% 3D67AF647DB2FE995E3578EFEA16E4BE968BED7B5DEAFD88BB3DDB76FE81953B -% D2F52EFD2D7FB90CB96E5A329038B48881D273323EECBDB8FA5367BBA9FF008E -% D5DFF95DFF00838FFDE74BFF001DABBFF2BBFF00071FFBCEA85783F521BD7BAA -% 636FD945B5D2FE88ECE190CC6DD736BB9CDCB351C4CFAEAFD2ECC5C9B5DE8331 -% 7F59BFED1FA1F56ED584CE91D23EB7D19DD2B0C64E13B0586B63AF7566BB6C63 -% 9AC65DF6AFB57A0FF4AACCFE7AAB7D5FE93FCD558F483839515FA9959E0D0994 -% 74C8631FDFFD1F71567BB2FF00C76AEFFCAEFF00C1C7FEF3A5FF008ED5DFF95D -% FF00838FFDE75E7C929FEE1CB7F9BFF9D3FF00BE4711EEFA474FFF001A1766E7 -% E361FD83D3FB4DACAB7FAC0EDDEE15EEDBE83776DDCBB5393680497401126077 -% 218DFF0039CEDABC47A07FCBDD37FF000DD1FF009F18BDA8B1B6B4D4E60B1960 -% DAEACEA1C0FE6E9FF456773F831E2940638F0D8D7527FE92E892774A2FBDC400 -% 649D00002AD9D9777ECFC8B2BB3FC0BDCC7B63F7496B98E6AA7EABDC7ECBEA17 -% 60BDE6A1993ADBA37F53F51BFF005DADF92DFE9DE8FE83FC323E7B5ADE9B92D6 -% 80D6B69780068000D2A92E7FFFD0E8BA1FFE27FA47FE10C6FF00CF6C57157FAB -% 9FF20F49FF00C218FF00F9ED8AB757FAE5D0BA3667D8FA85AFAEEDA1E00639C0 -% B5DC1DCC9F0494E8AE1BEBCFD5BEB5D5BAB5391D3F1FD6A998EDADCEDF5B7DC1 -% F6BCB62D7B1DF45ED5B7FF008E5FD52FFB9167FDB4FF00FC8A5FF8E5FD52FF00 -% B9167FDB4FFF00C8A970E69619F1C4026ABD4822DE0BFE62FD6AFF00B83FF82D -% 3FFA552FF98BF5ABFEE0FF00E0B4FF00E955DEFF00E397F54BFEE459FF006D3F -% FF002297FE397F54BFEE459FF6D3FF00F22AD7FA4F37EEC3EC97FDFA3803C3E2 -% FD4FFAE9877B727131ECC7BD93B2DAAFAD8F6C82C76DB19735CDDCD76D53C2FA -% ABF5E302D3760556E25AE6EC759464D75B8B490ED85F55ED76DDCD6AED7FF1CB -% FAA5FF00722CFF00B69FFF00914BFF001CBFAA5FF722CFFB69FF00F9140FC4B2 -% 9DE18F5F097FDF2B8078BC7E3FD5FF00F1858B6DD7629C9A2DC976FC8B2BCB6B -% 1D63A5CEDF73D990D75AEDCF7FD3FDF50A3EAD7D7DC6CAB33319B7D39576EF57 -% 22BCA636C7EE3EA59EA5ACBC58FDF60DEFDCBB3FFC72FEA97FDC8B3FEDA7FF00 -% E452FF00C72FEA97FDC8B3FEDA7FFE450FF48E5D7D18F5DFD27FEF95C23C5E0B -% FE62FD6AFF00B83FF82D3FFA552FF98BF5ABFEE0FF00E0B4FF00E955DEFF00E3 -% 97F54BFEE459FF006D3FFF002297FE397F54BFEE459FF6D3FF00F229DFE93CDF -% BB0FB25FF7EAE00F1DD1FEA67D65C6EAD8591761ECAA9C8AACB1DEAD461AD7B5 -% EF7436D2EFA217A6D8C1654FA9D21B60DAE20C18905CDDC3FD2347A567FC13D6 -% 2D5FE31BEABDD632AAAEB6CB6C706B18DA6C739CE71DAD631AD6EE739CE5A177 -% D66C2A726FC538F9965B8CF355C29C7B2D6B5E035FB3D5C76D956EDAF67E7AAD -% CC7333CE4198038457A520536BD3A8D469731AEA5CDD8EAC8F696FEEE9FF0047 -% 6FD0FCC55F399B3A5E4324BB6D0F1B9C649861D5C7F79353F58A8BB2198ECC2C -% F16D8F15B43F12E60DCE3B06FB2D632BAFDDF9F63BD8ACF58FF93327FE29FF00 -% F50E50A5FFD1E9BEAE7FC83D27FF000863FF00E7B62E1FEB6635199FE31FA6E2 -% 64377D190712AB59244B1F76CB1BB985AE6EE6BBF35771F573FE41E93FF8431F -% FF003DB1713F5BF1FAC7FCF8A73FA5615D9D6E0578D745555973439B63EDA45C -% 31C6E6B6C755FBCA6E58D6681B11D7E62786B4FDE44B672EAFAB7879F474E382 -% 725F63BA7BF333994E3FAD6B88CAB3007D971DB91FA6736C736B7B77E2B3EC78 -% DF6CFE7EDB319419F53DE72EFC4BB2BECF732FC3C7A2BB6A707BDFD42BB2FC46 -% 5EC05DF65B6AD95FDB58EF53D0FD67D1B326DA29A72C94E3FD6BAF1F1F19FF00 -% 57B22EA68A1F8B635F8B963D6A5F77ED165790EA9D5B9BE8667E9AA7E2FD9ACF -% F077FAD57B12C6A7EB7E2DE2DC7E8391586E5636632A6E1640635D862D663543 -% 6B773AADB7BBD6758F7E4DFF00CED991EB7AB659B9F781EAAE631F5E1B9E3FDF -% EFFDC62AF0287A5F47E98CEBDD2B1B377750C2EA8EA854EA5E689DD90EC1B1D6 -% 7A95596BA8F571F23631BF66C8BB1FD1B77E1DDEA63D7CFAE868C1FADF464F4C -% C86745CC2FE91B7ECE0E26443B65F6E7B7D6F6FBBF4D7BDBECF4FF0044A87FCD -% 9FACBFF94F9FFF00B0B77FE92524398C20932CF8CE95FCE47A4A5D3FBBC0AA3D -% 8B9A92D2FF009B3F597FF29F3FFF00616EFF00D2497FCD9FACBFF94F9FFF00B0 -% B77FE92527DEB97FF3D8FF00C78A384F62E6A4B4BFE6CFD65FFCA7CFFF00D85B -% BFF4925FF367EB2FFE53E7FF00EC2DDFFA492FBD72FF00E7B1FF008F15709EC5 -% CD49697FCD9FACBFF94F9FFF00B0B77FE924BFE6CFD65FFCA7CFFF00D85BBFF4 -% 925F7AE5FF00CF63FF001E2AE13D8A3E81FF002FF4BFFC3B8FFF009F6B5EBFD0 -% DBFE55EBF69E2BEA4FDBFD634E36CFFC9FF61798F44FABBF586AEB5D3ADB7A56 -% 6D75579743ECB1F8D6B5AD6B6D639EF7BDD586B18C685E958BD3B0FA85BD6EAC -% CF54D63ABDAE68A6D75243863E1B7F9CA3658EFA7F437EC58BF15C909E789848 -% 4C7001713C5FA53ECC901435EECBA56EC2EBD6F4D79FD1DF61CEC43FC9B2C1F6 -% DAB4DDFCD65DBEB6FB5FFA4FB67A7533D3C756BAC7FC9993FF0014FF00FA872A -% 27A6F4AE99D67A33716AB9D6E46611BEFC8B6FD8198F94E2EA85D67B1EE9D9FB -% 9B3FE13D2D97BAC7FC9993FF0014FF00FA872CF5EFFFD2E9BEAE7FC83D27FF00 -% 0863FF00E7B620FDAAFC2C8FADB998CEF4F231BA5D16D2F8076BD8CEA5656EDA -% F0E63B6BDBF9C8DF573FE41E93FF008431FF00F3DB14BA7E155D43AC7D63C0B8 -% B9B565E0E251639901C1B60EA153CB0B839BBF6BBF752525B7EB3E6F4FC8EA63 -% 3C6332B6F51661603EEC8F469683895F5070CBC97637E818EA9AEB18ED996FFB -% 664FD8BF98AABCA52B3EBA3061D1994E27DA697E3E6E4E4594DAD7318CE9D655 -% 8F98FA2C21BF6BAAEDF6FD86C6FA7EBFEADEB578B55F7DF87A177D5EA6CC9C8C -% A665645375F90CCBADECF48FA37328FD9AFB71DB6D16B5DF68C2FD0DACCBFB55 -% 7FE128F46DFD22595F577172E834E45F916176265613ED73C17B999A6A7E55C7 -% 733636DDF8EDF4195B2BC5A3F9AAB1BD1F4ABAD29159D52CCBC2CA365B67477E -% 164369CA2D6B2FBBDF5D5938F4E2FB7269765DDF6CC3A5F5FD9B37F58FB46161 -% FDA3F56CE5A1D2FEDFF60ABF687F49F74CEDDFB373BD0FB47A3FABFDAFECFE97 -% DB3ECDFAAFDABD6FB37EAFE9AA995F57A9BEE7645595918B90ECB19C2DABD225 -% B60C61D27635B9346455E93B17F7EBDFEAFF00845A18B4D9450DAADBECCA7B66 -% 6FB4303DD24BBDC31ABC7A7DBF43D94A4A4C924924A5249249294924924A477F -% F3167F55DF9172DD23FA4F5CFF00D3B5DFFB6F82BA9BFF0098B3FAAEFC8B96E9 -% 1FD27AE7FE9DAEFF00DB7C14948FA97FCBFF0057BFF0E59FFB6F90AC758FF933 -% 27FE29FF00F50E55FA97FCBFF57BFF000E59FF00B6F90AC758FF0093327FE29F -% FF0050E494FF00FFD3E9BEAE7FC83D27FF000863FF00E7B620FDAAFC2C8FADB9 -% 98CEF4F231BA5D16D2F8076BD8CEA5656EDAF0E63B6BDBF9C8DF573FE41E93FF -% 008431FF00F3DB14BA7E155D43AC7D63C0B8B9B565E0E251639901C1B60EA153 -% CB0B839BBF6BBF752525B7EB3E6F4FC8EA633C6332B6F51661603EEC8F469683 -% 895F5070CBC97637E818EA9AEB18ED996FFB664FD8BF98AABCA52B3EBA3061D1 -% 994E27DA697E3E6E4E4594DAD7318CE9D6558F98FA2C21BF6BAAEDF6FD86C6FA -% 7EBFEADEB578B55F7DF87A177D5EA6CC9C8CA665645375F90CCBADECF48FA373 -% 28FD9AFB71DB6D16B5DF68C2FD0DACCBFB557FE128F46DFD22595F577172E834 -% E45F916176265613ED73C17B999A6A7E55C7733636DDF8EDF4195B2BC5A3F9AA -% B1BD1F4ABAD2988CDCEEA58994CA05DD3F2B0AEF4EFAEAF46DBCFE86BCEA69C6 -% B320BB01991657958ACBDD7B2EC7AECFB563D567F33D4958E83957E5F4C65B92 -% EDF736CBAA792007CD375B8DB723D30DA7ED6CF4B6667D97F53FB57ADF63FD57 -% D150BFA0E3DAFBAE65D751936E48CD65F596175568C7674C26965D55D4398FC3 -% ADD5B9B914DFFCF5967D3F47D2B7818556062B71AA2E780E7D8FB1F05CFB2D7B -% B2322E7ED0C66FBAFB6CB76D4CAE9FF435D757B1253612492494A49249252924 -% 924948EFFE62CFEABBF22E5BA47F49EB9FFA76BBFF006DF057537FF3167F55DF -% 9172DD23FA4F5CFF00D3B5DFFB6F829291F52FF97FEAF7FE1CB3FF006DF2158E -% B1FF002664FF00C53FFEA1CABF52FF0097FEAF7FE1CB3FF6DF2158EB1FF2664F -% FC53FF00EA1C929FFFD4E9BEAE7FC83D27FF000863FF00E7B620FDAAFC2C8FAD -% B998CEF4F231BA5D16D2F8076BD8CEA5656EDAF0E63B6BDBF9C8DF573FE41E93 -% FF008431FF00F3DB14BA7E155D43AC7D63C0B8B9B565E0E251639901C1B60EA1 -% 53CB0B839BBF6BBF752525B7EB3E6F4FC8EA633C6332B6F51661603EEC8F4696 -% 83895F5070CBC97637E818EA9AEB18ED996FFB664FD8BF98AABCA52B3EBA3061 -% D1994E27DA697E3E6E4E4594DAD7318CE9D6558F98FA2C21BF6BAAEDF6FD86C6 -% FA7EBFEADEB578B55F7DF87A177D5EA6CC9C8CA665645375F90CCBADECF48FA3 -% 7328FD9AFB71DB6D16B5DF68C2FD0DACCBFB557FE128F46DFD22595F577172E8 -% 34E45F916176265613ED73C17B999A6A7E55C7733636DDF8EDF4195B2BC5A3F9 -% AAB1BD1F4ABAD2917EDFBEF65B8B463FA5D58640C76E358458180B71F2ACCBB7 -% D1735AEAB0B0B3A8B72D9EB5557DB3FC9D8F9967DA30F2322DFD5ECABF37A074 -% CCCC977A991938945B73E00DCF7D6CB2C76D606B1BB9EEFCD50B7EAE745C8BB2 -% 2ECDC4A735D9177AF1935D76863BD2C7C370A3D461F4D8FAB0A8DFFCB563A574 -% CC5E93D371BA6E1B76E3E2D62B6680131F4ACB3D36B18EB6D7FE96E7ECFD25A9 -% 29B6924924A5249249294924924A477FF3167F55DF9172DD23FA4F5CFF00D3B5 -% DFFB6F82BA9BFF0098B3FAAEFC8B87C7EB38B819DD6E9B2AC9B6C3D52D7C518F -% 75C035D461B44D94D6FABFC1FD0F53D4494DBEA5FF002FFD5EFF00C3967FEDBE -% 42B1D63FE4CC9FF8A7FF00D43965FED26753EBFD13ECF8D96C18F94F7DAFBB1A -% EA9A1A68BEB07D4B6B6D7FCE398CFA4B53AC7FC9993FF14FFF00A8724A7FFFD5 -% E9BEAE7FC83D27FF000863FF00E7B62B5F57BFF14FD6BFF0B60FE5CF557EAE7F -% C83D27FF000863FF00E7B62BDD3B1FEC7D4F3BA81B27ED95D150AF64ED147AC7 -% 7EFF00519FCE7DABE86CFF0006929E852547F6879FFD0FFD4A97ED0F3FFA1FFA -% 95253792547F6879FF00D0FF00D4A97ED0F3FF00A1FF00A95253792547F6879F -% FD0FFD4A97ED0F3FFA1FFA95253792547F6879FF00D0FF00D4A97ED0F3FF00A1 -% FF00A95253792547F6879FFD0FFD4A97ED0F3FFA1FFA952536AFFE62CFEABBF2 -% 2E53A0DAF1D53AFD4D71697752B0B0831EE14E2FB7FEB9FF0057E92DF7E707B1 -% CC2747020FB3C7FEBAB230FA6B31F2B3F24DEEDD9D94ECA0D6B3E84B6BA58DDF -% EA7B9DB68F53FD77A4A6B62DAFEA7F585B95638BF1BA6BFECF8BBB506F716FDB -% B21BB87F81F660D7631DECB3F69528FD63FE4CC9FF008A7FFD4391FA6F4EC3E9 -% D4E3D355963998FB75731BB9E41DCFB2D735E375D73FF49759B7DF6FBD03AC7F -% C9993FF14FFF00A8724A7FFFD6BDD1FAA75B6747E9B5E3745BAEAD9858ED65BE -% BE3B77815B3F48D63EEDCD6BBF337FBD5DFDAFF597FF0028AEFF00D88C5FFD2C -% BC3D2494FB87ED7FACBFF94577FEC462FF00E964BF6BFD65FF00CA2BBFF62317 -% FF004B2F0F49253EE1FB5FEB2FFE515DFF00B118BFFA592FDAFF00597FF28AEF -% FD88C5FF00D2CBC3D2494FB87ED7FACBFF0094577FEC462FFE964BF6BFD65FFC -% A2BBFF0062317FF4B2F0F49253EE1FB5FEB2FF00E515DFFB118BFF00A592FDAF -% F597FF0028AEFF00D88C5FFD2CBC3D2494FB87ED7FACBFF94577FEC462FF00E9 -% 64BF6BFD65FF00CA2BBFF62317FF004B2F0F49253EE1FB5FEB2FFE515DFF00B1 -% 18BFFA592FDAFF00597FF28AEFFD88C5FF00D2CBC3D2494FB87ED7FACBFF0094 -% 577FEC462FFE9655BA8755EBEEC2BDB7744B9959ADE1CFF5F18ED05AE976D6DD -% EEDABC612494FF00FFD93842494D042100000000005300000001010000000F00 -% 410064006F00620065002000500068006F0074006F00730068006F0070000000 -% 1200410064006F00620065002000500068006F0074006F00730068006F007000 -% 200043005300000001003842494D042200000000012E4D4D002A000000080007 -% 011200030000000100010000011A00050000000100000062011B000500000001 -% 0000006A012800030000000100020000013100020000001B0000007201320002 -% 000000140000008D8769000400000001000000A4000000D00000004800000001 -% 000000480000000141646F62652050686F746F73686F702043532057696E646F -% 777300323030343A30353A30322031353A30343A3032000000000003A0010003 -% 00000001FFFF0000A00200040000000100000080A00300040000000100000076 -% 0000000000000006010300030000000100060000011A0005000000010000011E -% 011B000500000001000001260128000300000001000200000201000400000001 -% 0000012E02020004000000010000000000000000000000480000000100000048 -% 000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6116 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6116 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>128</exif:PixelXDimension> - <exif:PixelYDimension>118</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:04:02-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:04:02-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:04:02-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:ed609694-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609695-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 118 def -/cols 128 def -128 118 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 128 string def -/picstr2 128 string def -/picstr3 128 string def -/picstr4 128 string def -/_rowpadstr 128 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 70667 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8 -`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzz!!*'!s8W-!s8N'!zzzzrr<$!zzzzz!!(!W`Pog8s)W8# -`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzz!!*'! -s8W-!s8N'!zzzzrr<$!zzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(s8W-! -s8R_(K7ef/K7ef/K7ef/K7ef/s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%M&O=s8W-!s8NQ=%LrsY%LrsY%LrsY%LrsYrsfMK%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzz!<<'!zzzz!!!$!rr<$!zzzzz!!(!W`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zz!<<'!zzzz!!!$!rr<$!zzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t( -K7ef/K7ef/K7ef/K7ef/K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzz!<<'!zs8W-!zs8W-!rrE*!s8W*!zzzzz!!(!W -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzz!<<'!zs8W-!zs8W-!rrE*!s8W*!zzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/KE(t(K7ef/s8W-!K7ef/s8W-!s+C@Os8W+OK7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcP=%LrsYs8W-!%LrsYs8W-!rso)/ -s8W*/%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzz!<<'!!!!$!rr<'!rr<'!rr<$! -!!!$!rr<$!zzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-! -s8W-!s8W-!`Pog8`PhfWzzzzzz!<<'!!!!$!rr<'!rr<'!rr<$!!!!$!rr<$!zzz -zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>t(s+>t(s+>rVK7egV -s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%fcP=%Ls!KrsfP=rsfP=rsfMK%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfW -zzzzzz!<<'!!!!$!rr<'!rr<'!s8N'!!!!$!rr<$!zzzzz!!(!W`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzz!<<'!!!!$! -rr<'!rr<'!s8N'!!!!$!rr<$!zzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9d -hVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -KE(t(K7egVs+>t(s+>t(s8R_(K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcP=%Ls!KrsfP=rsfP=s8NQ=%Ls!KrsfMK -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j -`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzzzzz!<<'!!!!$!s8W-!rr<$!s8W-!!!!$! -rr<$!zzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDD -F)uDD`DX[o`PhfWzzzzzz!<<'!!!!$!s8W-!rr<$!s8W-!!!!$!rr<$!zzzzz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs8W-!s+>rVs8W-!K7egVs+>rV -K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j -`Pog8s)W7&F)uDDF)uDD`HB/=`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcP= -%Ls!Ks8W-!rsfMKs8W-!%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zz!<<'!!!!$!rr<$!z!!*'!rr<'!rr<$!zzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzz!<<'!!!!$!rr<$!z!!*'! -rr<'!rr<$!zzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>rV -K7ef/K7j4(s+>t(s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A& -F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%fcP=%Ls!KrsfMK%LrsY%M&O=rsfP=rsfMK%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzz!<<'!!!!$!rr<$!rr<$!!!!$!rr<'!rr<$!zzzzz!!(!W -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzz!<<'!!!!$!rr<$!rr<$!!!!$!rr<'!rr<$!zzzzz!!(!W`Pog8`PqjuF2c,u -F*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/KE(t(K7egVs+>rVs+>rVK7egVs+>t(s+>rVK7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcP=%Ls!KrsfMKrsfMK -%Ls!KrsfP=rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzz!<<'!zs8W-!!!!$! -s8W-!zs8W*!zzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzz!<<'!zs8W-!!!!$!s8W-!zs8W*!zzzzz!!(!W`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7ef/s8W-!K7egVs8W-!K7ef/s8W+OK7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcP=%LrsY -s8W-!%Ls!Ks8W-!%LrsYs8W*/%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("# -`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8 -`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsMi3LOMi3LOMi3LOMi3MDe^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsMi3LOMi3LOMi3LOMi3MDe^`4# -`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsMi3LOMi3LOMi3LOMi3MDe^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsMi3LOMi3LOMi3LOMi3MDe^`4#`Pl9d -hVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!!$!MZ<_Wzz!!*&Le^`4#`Pl9d -hVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!!$!MZ<_Wzz!!*&Le^`4#`Pl9d -hVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!!$!MZ<_Wzz!!*&Le^`4#`Pl9d -hVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!!$!MZ<_Wzz!!*&Le^`4#`Pl9d -hVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZC`8`Pogr`Pog8`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZC`8`Pogr`Pog8`Pql- -e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZC`8`Pogr`Pog8 -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZC`8`Pogr -`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZC`8 -`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RL -MZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5j -e^`4#eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZC`8 -`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RL -MZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzz -zzz!!(RLMZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`8`Pql-!6)pr`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA] -MZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!zzzz!!*$! -zzzzzzzzzzzzzzz!!(RLMZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6 -!!*$!!<3$!zzzz!!*$!zzzzzzzzzzzzzzz!!(RLMZC`8`W+K=PQ8\A`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+LS=H+>S=H+>S=H+>S=H+>S=KVLS=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S,h+>MZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFT&J5Te -&J5Te&J5Te&J5Te&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^%6!!*$!!<3$!zzzzs8W*!zzzzzzzzzzzzzzz!!(RLMZC`8`W+K= -PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!zzzzs8W*!zzzzzzzzzz -zzzzz!!(RLMZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -S=H+>S=H+>S=H+>S=H+>s8W+hS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`8`W+K=PQ8\A`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFT&J5Te&J5Te&J5Te&J5Tes8W*2&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!s8W*!!<<*! -!!!$!!<3$!rr<$!!!*$!zzzzzzzzzzzzzzz!!(RLMZC`8s4,ZMeW^'Q`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!s8W*!!<<*!!!!$!!<3$!rr<$!!!*$!zzzzzzzzz -zzzzzz!!(RLMZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLs8W+h -SH&WhS=H,LSH#+Ls.#ULS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`8s4,ZMeW^'Q`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$Ts8W*2&c_n2&J5WT&cWFTrt,hT&J>$T&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$! -rr<'!rrE*!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZC`8s4,ZMeW^'Q`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!rrE*!!<3$!!!*$!zzzzzzzzz -zzzzzz!!(RLMZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -s.#ULs.#VZs.',hSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`8s4,ZMeW^'Q`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTrt,hTrt,kCrt5;2&cWFT&J>$T&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$! -rr<'!!!*$!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZC`re^`4#e^]la`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$!!!*$!zzzzzzzzz -zzzzzz!!(RLMZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -s.#ULs.#VZS=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`re^`4#e^]la`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTrt,hTrt,kC&J>$T&cWFT&J>$T&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!s8W-! -rr<'!!!*$!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZC`re^`4#e^]la`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!s8W-!rr<'!!!*$!!<3$!!!*$!zzzzzzzzz -zzzzzz!!(RLMZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -s8W-!s.#VZS=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZC`re^`4#e^]la`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTs8W-!rt,kC&J>$T&cWFT&J>$T&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$! -!!!$!!!*$!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZEe-Pa%DsPa%Ds!6+uge^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!!!!$!!!*$!!<3$!!!*$!zzzzzzzzz -zzzzzz!!(RLMZEe-Pa%DsPa%Ds!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -s.#ULS=H,LS=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZEe-Pa%DsPa%Ds!6+uge^`4# -`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTrt,hT&J5WT&J>$T&cWFT&J>$T&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&HLA]MZEe-Pa%DsPa%Ds!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$! -rr<'!!!*$!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZEe-z!!!"`!6+uge^`4#`Pl9d -hVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$!!!*$!zzzzzzzzzzzzzz -z!!(RLMZEe-z!!!"`!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+Ls.#ULs.#VZ -S=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZEe-z!!!"`!6+uge^`4#`Pl9dhVQ5je^`4# -eW^%6&J>$T&cWFTrt,hTrt,kC&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZEe-z!!!"` -!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<<'!!<<*!!!!$!!!*$!!<3$!!!*$! -zzzzzzzzzzzzzzz!!(RLMZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6 -!!*$!!<<'!!<<*!!!!$!!!*$!!<3$!!!*$!zzzzzzzzzzzzzzz!!(RLMZC`8`Pog8 -`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH&VZSH&WhS=H,LS=KVLSH#+L -S=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S,h+>MZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6 -&J>$T&c_kC&c_n2&J5WT&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZC`8`Pog8`Pog8 -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZEeWs8W-! -s8W-!!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZEeW -s8W-!s8W-!!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S,h+>MZEeWs8W-!s8W-!!6+uge^`4#`Pl9dhVQ5je^`4# -eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZEeWs8W-! -s8W-!!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZEe- -e^`4#e^`4#!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RL -MZEe-e^`4#e^`4#!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZEe-e^`4#e^`4#!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA]MZEe- -e^`4#e^`4#!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzz -zzz!!(RLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S,h+>MZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&HLA] -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzzzzz -zzz!!(RLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzz -zzzzzzzzzzz!!(RLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^%6zzz -zzzzzzzzzzzzzzzzzzz!!(RLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^%6zzzzzzzzzzzzzzzzzzzzzz!!(RLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-! -s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-! -s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-! -!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$! -rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$! -s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -!<3$!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$! -rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!z!<<'!s8N*!rrE*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!rrE*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*! -rrE*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -!<<'!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*! -z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-! -s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-! -rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$! -s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*! -rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$! -rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*! -s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W-! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W-!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*! -s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!s8W*!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -s8W*!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*! -rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*! -rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!rr<$! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-! -s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-! -s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-! -s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*! -rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!rrE'! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -!!!$!rr<$!s8W*!rrE*!!<<*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -!<<'!!<3$!rrE*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*! -rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -z!<<'!s8N*!rrE'!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*! -rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!s8W*!s8N*!rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE'!z!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -s8W*!s8N*!rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*! -rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*! -s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37 -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe- -e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4#e^`37!6+uge^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-e^`4# -e^`37!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZEe-Pa%DsPa%Ds!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-Pa%DsPa%Ds -!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-Pa%DsPa%Ds!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-Pa%DsPa%Ds!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZ<_Wzz!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZ<_Wzz!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZ<_Wzz!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZ<_Wzz!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Pog8 -`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Pog8`Pog8 -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZEe-s8W-!s8W+`!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-s8W-!s8W+`!6+ug -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZEe-s8W-!s8W+`!6+uge^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZEe-s8W-!s8W+`!6+uge^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZC`re^`4#e^`1M`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`re^`4#e^`1M`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZC`re^`4#e^`1M`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`re^`4#e^`1M`Pql-e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`r -e^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`re^`4# -e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZC`re^`4#e^]la`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8s4,ZMe^XZ= -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZC`8s4,ZMe^XZ=`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8s4,ZMe^XZ=`Pql- -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZC`8s4,ZMe^XZ=`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8s4,ZMeW^'Q`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZC`8s4,ZMeW^'Q`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`W+K=eH!S-`Pql-e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8 -`W+K=eH!S-`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`W+K=eH!S-`Pql-e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`W+K= -eH!S-`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`W+K=PQ8\A -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZC`8`W+K=PQ8\A`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`W+K=PQ8\A`Pql- -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Pql-!6)pr`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZC`8`Pql-!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Pql-!6)pr`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -MZC`8`PqkA!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`PqkA!6)pr`Pql-e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8 -`PqkA!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`PqkA!6)pr`Pql-e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Podr -`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLMZC`8`Podr`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Podr`Pog8 -`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLMZC`8`Podr`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Podr`Pog8`Pql- -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLMZC`8`Podr`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLMZC`8`Podr`Pog8`Pql-e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLMZC`8`Podr`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MMZC`8`Pog8`Pog8`Pql-e^`4#`Pl9d -hVQ5je^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -MZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eW^'ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MMZC`8`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5j -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MMZC`8 -`Pog8`Pog8`Pql-e^`4#`Pl9dhVQ5je^`4#eWg+6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!MuWhWs8W-!s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4# -eWg+6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!MuWhWs8W-! -s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4#eWg+6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!MuWhWs8W-!s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4#eWg+6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!MuWhWs8W-!s8W-! -s8W,Le^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dH -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer04.gif b/docs/latex/wx/sizer04.gif deleted file mode 100644 index b72db4174f94619f749ee300e75284e241c6157a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1521 zcmV<N1rGX0Nk%v~VSoU30J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl$48$ zivR$e000000000000000EC2ui0Du5?06+x)5XecZy*TU5yZ=`p4P<GaXi2PW>%MFu z&oXSscmAS<VemebKm<q`kGf>5ww%Ri&4MzQ>itUA)NnLFc)#GVcuX#v&*-#zP1+W_ z;6xy>sN3)OynfH``~Q9c2n7lOCItwFhhc3*Bw=!N3k7wQlX;ezcb0&io}YDsgaL>N zrl+Qch+vIekfb!Rva__cwzs&sv4e%HVsZn%UafDhGqA|A$py>0&d<<@qr!2jj00|u z)zRGD-nqP_WWdzK+Fx?VGR^AD>+kU2^19*F=+>;*j&S$${{PSFjl=iF96vAV;IUKq zZjM7(03*^6IELJ{YzGk}l*o~zz*!dm^I<gBu_VB7hkz{-xo?fjmoQ_>WTTJEk((-} z=-kOu3C^E2-yFJm#YE2=Oja;inpCNjqb_b*DXL{3P$W>ZYE5$W=E#{~!-^ft(p5D{ zlx9?tVJB@RJe)wuor_0QArit=2D{kuEZx6=1KY7Hjts$JLC+zCNXp^5IqDY1GwF}w zufqrolBCSJo8?z~%NE<#5Hd5<?j*bGJnwV0&;=7`+{n5%xM>4nBmUa2G&0nUCkMCv z&GkLqnPqP#&U}{f#mF_2ZccsTD7>$+i&m_$y7yQL=#>>fzP$PK=+moT&%V9;_weJR zx7xM7{rmXy*T<-Tz}Ei&w$PvdLHz|tKvM@g@q`nxY-L0i!30s2P5K$w6oOGW1>g}@ zKscdL6&ffaR6smP6@de$sN#wP@<!H+Fvd8BboV@D<Bd4xsN;@2_UI#yqx4vga(-Q6 zq+D?crX(MPVF8_!+s!t|TSjuCNtK%{sU?#r*`v~sE^0Jom6@<b<&{)!speoP;RI%1 zHU22)oOIT?<8xw0M`UlSLG+Ac-#LS4NU?>v(K3uNwAy5W;xZ^^G%nVTX@K^r&_j*h z)=O@0n#E_Pwmqt+p@}Z~Cu*S9B5J3j@rmf9iqha`s<N!gm#30m`dF#WR7$IJxK#w{ zp1J<onXOT7rkXCZ8ao63vW3D~?5m1W+pM$FY%1)i(uz6hZ@e;kt+UYX)-7$=b`%be z+~VqOx+ZmbnRd~-i!QtowHcaT?Y3Ghz7pw6f+8!`>#vLmCma@vEH>=$!$J@N!o(C; zZ1Ke%@CWh69IL2tej|p=Q;HwsC-TWYozR1c5mN|qfEZ2@b5B)Bh?mVKl#B}s7Cxn6 zf<HI0p@{}~*fNMW`=IpFKOA5b%swXwg;Pn*JTiw$dqv;N0AA>G)IVFj6VXW<QSyB# zr+otuCq~%z+4iX|cT_EIZSvfBlWcd#eD@7hm<k6jcp8xoZusH19*oN3j5qH1<B&%# z`Q(r*VEN^kXP!9!cahlX`RAbLC~z=5Y%ZlFYo@+rlTH#$uetV)iKZuNsjepL`?}65 z=dz#K)>@Oe^}Fp`vYr>gyPxiR@U>qVSCYgB)})t;B>xIp%VVj1n$ZhJ7$P_l3cKQC zc5i+s-`6rMsi>dtK9|AHYyETp=Nmt0^M6|ZKjkJzDy+~b6~6jcxI@M2H>WX`0@Fo6 zV!g{!rvVhT76`8f{;yg9oZ$W}c&>5n&l?<!-3RTbE%}*lIU|%u2+5a1{@w32`I{D_ zav{J9zVJ9PeBcBT2pK=2%7!Jx-wCIKC`>`HSstX-3VD~oCPI*c##*A3T3DGILMMm! zqGB|ph(ax<ZqbT)!eSD==qNCX&wm{RU^ITnKr^l{jTqEb4<oZdH};E()iUC%Y6!%_ zm@rvHJYXE#0WdDokBrbTr2Y^oDBL*ijUr^^7w_VxAudvqWxR_$67f1TMiP^aq$D+v zXUTtoGLxkAg6>NBz*C}f5w5%A6kVyQSjJM8uRxqG({P<i0&<tY6kOqgNlX|GvzW+S Xm~8yU%x0P`bkK~ZG^hEH2mk;(;@STT diff --git a/docs/latex/wx/sizer05.bmp b/docs/latex/wx/sizer05.bmp deleted file mode 100644 index 9d9049617381f75ab58a296e5aa75f11a64d7c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3238 zcmdUxJ5Iwu5QaC14vHAb5-n7eNUK0Yh1Mm7A>#u$QZ5jQKBCD5D7XM8$Q5#gw7yFC zXE)dz+mmD+KxC3xtv&P2V{Nbf`1E<Mth{2pf#%Q$XiuGDRO%M?i!-Nv9J3Zh!6udG zxmqk1>J9VNYNaNViRwQWYPnph`Fw7D+J-1p5ai@KOs+Vw4wLT8EJU=+6N1c+f|>4l zT`y-<Kht;GOAcq!4tf4J6B9)-N{l19was-)DW;TCW&lgl#(-d0lolq6D2)RduC4<U zTAN!p6evowpS5c&B2;7WGz2qpaL-c9<5}eCCL{a#mV=p({bVCghdm@<Cq0UNG`yd` zde3=zOuKj<>$UdIv?Ipz_-!WRTs$=1^>S_5NbA8^X2_U?hK8UC=7#%Wf99k-@FSDJ zm+)IN0BoAA41AHKVg_TIrev})%e~e%Dm&tdcJ-BcbjICOwY~7c9kgP&t|3>)!sa^T z_K5}q?~19{X5;W+qp~BfTSA2Ycb?sA;9xJ$_O(WA?!*bNxb0`xHFfUZh^o8XJ7voO c_uJ1hWi)xxs7-b)EtYBfxZiTF3)4fqFZK;__5c6? diff --git a/docs/latex/wx/sizer05.eps b/docs/latex/wx/sizer05.eps deleted file mode 100644 index e691a79cf9..0000000000 --- a/docs/latex/wx/sizer05.eps +++ /dev/null @@ -1,814 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer05.eps -%%CreationDate: Sun May 02 2004 15:03:54 -%%BoundingBox: 0 0 98 60 -%%HiResBoundingBox: 0 0 98 60 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 98 60 8 3 1 98 7 "beginimage" -%BeginPhotoshop: 4368 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000003C000000620000000700730069007A0065007200300035000000010000 -% 0000000000000000000000000000000000010000000000000000000000620000 -% 003C000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003C00000000526768746C6F6E670000006200000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003C00000000526768746C6F6E67000000620000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000A28000000010000 -% 00620000003C000001280000456000000A0C00180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108003C0062030122000211010311 -% 01FFDD00040007FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D735F537A867E2FD62E9D4E2E4DB45593998CCC8AEB7B98DB1BEA -% B5BB2E630B5B6B76BDFF004FF7D740DA075DFADDF586AEB391664E2F47AFA8E4 -% E253916DC6861AEC15B1AF6D04E4331592D7BEBC3F4EDFD0D7FF0016AFCF96E5 -% A1220E2F488F1589CF8BF77E55B67BA5FF00C76AEFFCAEFF00C1C7FEF3A5FF00 -% 8ED5DFF95DFF00838FFDE759C71BEA357D7315F90E733A6E4F4FF50B98CC938A -% DCD1EA50F2C6DBF67EA97F4EF5697FF3577ABF69FD17AF5D5EB7A5A9D2FA5B3A -% 5753EB15E574EE9EE03A0DF9989662D97DB4D95B87A7EAD36DF92FBDADCA65B6 -% 63DCF6FA36FA757EADE9576D9664B65879503F9995D71012328FF5787E7F9A2A -% B3DD87FE3B577FE577FE0E3FF79D76BD3BA8DF9D838B9406C39555768AC43A3D -% 46B5FB276B777D25E196BDB65AF7B58DA9AF71736A66E2D68267633D575966D6 -% 7FC258F7AF68FABC4B7A1F4D20C118B41047FC5B143CFF002F8B142071C78493 -% AEA4FE698925D16E558E68735E1CD70904410414FF0069B648DDAB62440D2407 -% 8FFA2EDCB3B21EFC3B1EDC36820B3D5BABDBB9B8F25BFACB6BFCE6595BACBBEC -% 5F99E9FDA7FA27E8958C7AAAAEA1E99DE1FEF7584EE2F2EF73AD7BFF003DCFFD -% E59EB9CAFB7E6FFA7B3FE55F4FE91FA1FE8BFE2BFE0BF9B4903FF92E924A7FFF -% D0E8BA1FFE27FA47FE10C6FF00CF6C57157FAB9FF20F49FF00C218FF00F9ED89 -% DFD62E397938B8BD333334E23DB5DD65029D81CEAEBC80DFD364D367F37733FC -% 1A4A4EB86FAF3F56FAD756EAD4E474FC7F5AA663B6B73B7D6DF707DAF2D8B5EC -% 77D17B5767FB4BA9FF00E51751FBB1BFF7B52FDA5D4FFF0028BA8FDD8DFF00BD -% AA5C39A5867C71009AAF5208B7CB6AFA95F5BE9B5975388EAEDADC1F5D8CBAA6 -% B9AE69DCC7B1EDBB735CD722D7F557EBC559873EAAADAF30B9CF392DC9AC5BB9 -% F3EABFD66DFEA6EB37BF7FB97A6FED2EA7FF00945D47EEC6FF00DED4BF69753F -% FCA2EA3F7637FEF6AB27E2598EF0C7DB697FDF23803E6ECFABFF00E30ABCC7E7 -% B0E4B332D6ECB725B96D16B9A36FB1F70C8F51EDFD1D7F9DF98A1FF36BEBEFDB -% BF68EDBFEDDFF72FED4CF5BE8FA5FCFF00AFEAFF0035FA3FA7FCDAF4BFDA5D4F -% FF0028BA8FDD8DFF00BDA97ED2EA7FF945D47EEC6FFDED43FD2397F731ED5F29 -% F97B7CCAE11E2F96DBF52BEB7DD6BEEBB11D65B638BECB1F754E739CE3B9EF7B -% DD76E739CE5E9DD16AB713A5E0537300B71E8A5965661C37318D6BD876FB5DEE -% 6A27ED2EA7FF00945D47EEC6FF00DED4BF69753FFCA2EA3F7637FEF6A8B3F373 -% CC04642204751C2120533C7A9B8ED8AC9DD3BDD6132F73CEAEB5EFFCEB1C9574 -% D756E158D8D73B76C1F45A4FD2F4DBF98C73BDFB143F69753FFCA2EA3F7637FE -% F6A3E166B73B0CE436AB283BADA9F55A1A1ED7D2FB31AD63FD37DB5FF3B53FE8 -% D8ABA5E77FF92E925FFC9749253FFFD1E9BEAE7FC83D27FF000863FF00E7B62A -% CCB32AB1D74E1DBE8643BAB74BAD9641207A87A5D4EF5195BE97D953D8FD9755 -% EAD7EAD5FA3567EAE7FC83D27FF0863FFE7B62AD5FD3EB3FFA7AE91FF57D2525 -% 3B1D3BAB7556615DD47AADD8F752CC8BB0EAC7C5C77D763EE6653BA5E36DB6FC -% DBEAFD6AD67D0B1955753EFF00D2E57A555962B4DFAC784D639F9ACB30195586 -% 9CA7E49AC331EDDB55F4D5977D56DD8F5FDA71F22AB68B996D98DFF69ADBEACD -% B2AC6B2377D5DAAFE8B7F4AB6C6D8DBB26CCB05F5873373F2DFD5AAA6FC773BF -% 4F8EDB5CCA322BF52BFB453EA7F31EA7E8C389F5571EBA998D9231ACC22EB2DC -% 8E9F462B31F16CB5C29AF1EC38CD75BBD98F55167E8B2ECCCF572AFF00B4FE8B -% EC9855E3A526E9BD6F2B3BAD6560BB0AEC7C5A71A8C8A6EB8318E77AB664D7B9 -% F57ACFBEB65CCC763A8AAEC6A3229F4B27ED8CA3F415AD8593D37A3E561751B7 -% 2ECCCFB4D5663B71B658C26C0DA6ECAC8C3FD69D73DD6FA38D9DF65B7D6AECBF -% 25F4FDAACBFD4F556B24A5249249294924924A52E4FA57F45CBFFC3DD43FF6F3 -% 2D758B93E95FD172FF00F0F750FF00DBCCB494E1FF00F25D24BFF92E924A7FFF -% D2E9BEAE7FC83D27FF000863FF00E7B62237A664D397959585D4B270CE6BDB65 -% D5D4DC7733732B663B5CDFB5626458DFD1D2CFF08B8CC1FF00C717F66E0FD8FE -% C7F64FB251F66F1F4FD367A7BFD4F77ABB7F9DFF0084FE6FF468DFFAF3BFEE9F -% FD1494F63E8758FF00CBCCDFFB6F0BFF0091E97A1D63FF002F337FEDBC2FFE47 -% AE3BFF005E77FDD3FF00A297FEBCEFFBA7FF0045253D8FA1D63FF2F337FEDBC2 -% FF00E47A5E8758FF00CBCCDFFB6F0BFF0091EB8EFF00D79DFF0074FF00E8A5FF -% 00AF3BFEE9FF00D1494F63E8758FFCBCCDFF00B6F0BFF91E97A1D63FF2F337FE -% DBC2FF00E47AE3BFF5E77FDD3FFA297FEBCEFF00BA7FF45253D8FA1D63FF002F -% 337FEDBC2FFE47A5E8758FFCBCCDFF00B6F0BFF91EB8EFFD79DFF74FFE8A5FFA -% F3BFEE9FFD1494F63E8758FF00CBCCDFFB6F0BFF0091E9F0F0C61623A916BEF2 -% 5F6DAFB6DDBBDCFBACB326E73BD165357F3B73FE856C5C6FFEBCEFFBA7FF0045 -% 2FFD79DFF74FFE8A4A743FF92E92E7BFECDFFEE9FF004CF3FE95FEBFF5949253 -% FFD93842494D042100000000005300000001010000000F00410064006F006200 -% 65002000500068006F0074006F00730068006F00700000001200410064006F00 -% 620065002000500068006F0074006F00730068006F0070002000430053000000 -% 01003842494D042200000000012E4D4D002A0000000800070112000300000001 -% 00010000011A00050000000100000062011B0005000000010000006A01280003 -% 0000000100020000013100020000001B0000007201320002000000140000008D -% 8769000400000001000000A4000000D000000048000000010000004800000001 -% 41646F62652050686F746F73686F702043532057696E646F777300323030343A -% 30353A30322031353A30333A3533000000000003A001000300000001FFFF0000 -% A00200040000000100000062A0030004000000010000003C0000000000000006 -% 010300030000000100060000011A0005000000010000011E011B000500000001 -% 0000012601280003000000010002000002010004000000010000012E02020004 -% 000000010000000000000000000000480000000100000048000000013842494D -% 03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6114 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6114 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>98</exif:PixelXDimension> - <exif:PixelYDimension>60</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:53-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:53-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:53-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:ed609690-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:ed609691-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 60 def -/cols 98 def -98 60 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 98 string def -/picstr2 98 string def -/picstr3 98 string def -/picstr4 98 string def -/_rowpadstr 98 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 27575 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzz -zz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWz!!!$!s8W-!s8W*!zzzz!<3$!zz`Pog8`PqjuF2c,;`Pogr -F*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zz!<<*!s8W-!rr<$!zz -z!!!$!zz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7egVs8W-!s8W+OK7ef/K7ef/K7ef/K7ef/KE$RVK7ef/K7ef/ -`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%fcS/s8W-!rsfMK%LrsY%LrsY%LrsY%Ls!K%LrsY%LrsY%M$Is`Pog8 -s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'! -zzzzzs8N'!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzs8N'!zzzz!!*'!zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/K7ef/K7ef/ -K7ef/K7ef/s8R_(K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%LrsY%LrsY%LrsY%LrsY -%M&O=%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!z!<<*!rr<$!!<<*!s8N*!s8W-!zz`Pog8`Pog8 -s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$! -s8W*!!!!$!s8W-!!<<*!s8N'!z!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVKE(uO -s8R`Os8W-!K7ef/K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%Ls!Ks8W-!%fcS/ -s8NQ=%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-! -s8W-!`Pog8`PhfWzz!!*'!zs8N'!s8N'!s8N'!zs8N'!zz`Pog8`Pog8`W("#s)W8# -`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8zzzs8N'!!!*'!!!*'!!!*'! -z!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-! -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8R_(K7ef/s8R_(K7ef/K7ef/ -`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8 -%LrsY%LrsY%LrsYs8NQ=%M&O=%M&O=%M&O=%LrsY%M&O=%LrsY%LrsY%M$Is`Pog8 -`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzz!!*'! -zs8N'!s8N'!s8W*!zs8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8 -`Pqkr`Pog8`Pog8`H0#;`Pog8zzzs8N'!!!*'!!!*'!!!*'!rr<$!!!*'!zz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^ -K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8W+OK7ef/s8R_(K7ef/K7ef/`Pog8`Pog8 -`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#;`Pog8%LrsY%LrsY -%LrsYs8NQ=%M&O=%M&O=%M&O=rsfMK%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzz!!*'!zs8W-!s8N'! -!<<*!rr<$!s8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDD -F)uDDF*#;u`Pog8zzzs8N'!!!*'!s8W-!!!!$!s8W*!!!*'!zz!!(!W`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/ -K7j4(K7ef/s8W-!s8R_(KE(uOs+>rVs8R_(K7ef/K7ef/`Pog8`Pog8`PqjuF*#=> -`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#<C`Pog8%LrsY%LrsY%LrsYs8NQ= -%M&O=s8W-!%Ls!Ks8W*/%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!z!!!$!s8N'! -s8N'!zz`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzs8N'!!!*'!zz!<<*!!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(K7ef/ -K7egVs8R_(s8R_(K7ef/K7ef/`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%LrsY%LrsY%fcS/ -%M&O=%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!!<3$!zs8N'!s8N'!zz`Pog8`Pog8s)W8# -`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!*'!!!!$! -z!!*'!!!*'!zz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(KE$RVK7ef/s8R_(s8R_(K7ef/ -K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%Ls!K%LrsY%M&O=%M&O=%LrsY%LrsY%M$Is -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zz!!*'!z!<<*!rr<$!s8W-!rr<$!!<<*!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$!s8W*!!!*'!s8W*!!!!$! -s8N'!z!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVs8W-!s+>rVKE(uOK7ef/K7ef/ -`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%M&O=s8W*/%Ls!Ks8NQ=%LrsY%M$Is`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzz`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzz -zzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX -@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGut` -['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I -['[3I['[3I['[3I['[3I['[3I['[3I!7fWMe^_XX@K>9A`PpBXe^`1M['[3I['[3I -['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I -['[3I['[3I['[3I['[3I['Th`e^`4#`Pl9dhVQ5je^`4#eGut`['[3I['[3I['[3I -['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I -['[3I['[3I['[3I!7fWMe^_XX@K>9A`PpBXe^`1M['[3I['[3I['[3I['[3I['[3I -['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I['[3I -['[3I['Th`e^`4#`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4# -`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A -`PpBXe^`1M[/^1+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4# -eGuuVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+ -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX -@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5j -e^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M -[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrr<$!zs8W-!s8W-!s8W-! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4# -`Pl9dhVQ5je^`4#eGuuVrr<$!zs8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBX -e^`1M[/^.+z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*! -!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W-! -s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!s8W-!s8W-! -s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W-!s8W-!s8W-!s8W-! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX -@K>9A`PpBXe^`1M[/^.+s8N*!s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5j -e^`4#eGuuVrrE*!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+ -s8N*!s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*! -rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!s8W*! -s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!rrE*!rrE*!!<<'! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!s8W*!s8N*!rrE*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX -@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5j -e^`4#eGuuVrrE*!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M -[/^.+s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*! -!<<*!rr<$!!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*! -zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!rr<$!!!*'!rr<'! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!zs8W*!!<<*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4# -`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A -`PpBXe^`1M[/^.+s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4# -eGuuVrrE*!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+ -s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*! -rrE*!rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!s8W*! -rrE*!s8N*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!rrE*!rrE'!s8W-! -!<3'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8N*!s8W*!s8W*!rrE*!s8N*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX -@K>9A`PpBXe^`1M[/^.+s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5j -e^`4#eGuuVrrE*!!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M -[/^.+s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWM -e^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9d -hVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBX -e^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuV -rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -!7fWMe^_XX@K>9A`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4# -`Pl9dhVQ5je^`4#eGuuVrrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A -`PpBXe^`1M[/^.+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4# -eGuuVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+ -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^_XX@K>9A`PpBXe^`1M[/^1+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eGuuVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX -@K>9A`PpBXe^`1M[/^1+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5j -e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzz -zzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX -@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`dHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer05.gif b/docs/latex/wx/sizer05.gif deleted file mode 100644 index 5a0c06a0dbdbe27859551ef945fb3246ed5c86aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 695 zcmV;o0!aNwNk%v~VPXJ00J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#Isw6p*K z00000000000000000000EC2ui0Ac_<06+x)5XecZy*TU5yA9GHj$~<$M5?Mq>$Ynw zv$JXzhH>Yn00O6=u(pB~U98u!P&?stqvy#N8X&INtai)odcWXsSVRR{vw_5G&2GEj z@VI;((2{>5ZMqfUzXE`OE`ok@hKF!<S$9=>YKV}Ll5C1tjAlZanwy-Ro<U`wK}4jb zrYoXTcqIjyP$Z^CDMqxivrI&pPp_&~sj#QP!ZyDop=V;r%FE1Rmw9N9eFf8p)sxt7 zl~>QmS9{di;^TC71INwj>g!|YtHto~@;&eH!}q82$MLbaNw#YU1e_5>$^e7(eAz1n z(4Pz>0v*Z_@&sW*ObhX8B*=;v2^<&y=ZPHo3mv<YDAjdyl%S={moQ_>oJq5$O`F>g ztc+HOoKI{ycVYoI?OL^>g|7X~7SvrMp5dbQ>|<2wQl{oi4wZJbtF^4F^aL79wyfE+ zXw#})I~MHIlyKvIVI-ig-Me`6>fOt?uiw9b@&52YxUk{F9`=!3%(xfEVjCmJ&{q$# z<jXq>dUX2uSHF$6Chp*6afD(Ka!h<qa;tTW(33SAC~d6r!5p}A^Ed#ER6`}VWWh#7 z5qGB3o*6n6{t(x2Vxv*>a6Ioa=8l_bBTr>rGG&F9yKDU3xv_bYTIH%=FLb?oxa|?J zoln2MeX?%NIP%KhP}B7Can;{!fRyA1%~pJr<sX5O{1+BfNc};GQGqash=Xr^BVbii z9cAH#26_`<Qh!iF;)ni)xL;ICRcIAeN}=cmhWbG$<A5|Cs9{exc9o-u;PlwvkM9+k dQhY`xxeSs@HVH;I=S7L$eN<LyrIir?06T8LR?7eY diff --git a/docs/latex/wx/sizer06.bmp b/docs/latex/wx/sizer06.bmp deleted file mode 100644 index ccc2e9f174a6dda7bb0447c76bd6e0126f918af0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18526 zcmeI4F>ezw6vth}#?qrYsf;kOq7c|oDp(i-b(Ja-Ly`IgDzQf>(nXyrbwOh3fP~l> zI%V!h=-QcYQQq^NlV_jf*pA(}Ri2u=v+r{E>;L)r-n|~Y`}pMp6ZQ?3FX8igi!t2Z zVvj}tzxRwieNun6p$9)VH#cJ6(a{mRy1HWDp>=zE%T7*C*!HIzc71)#&d<-;>FFu^ zDUMVZMYhJ+qZgUlbI`Dpsb$YrWoaFuTb5|mhAqr5_d&M_Ut+)N{ev(GOy3$=r~KV& zHr^(%ZL{%3JqJc)8&7^%jIxz>-H`1S;KgLKX@OeF@iw{VY==Af>Nd!ity`UCt6R4k zC1V>EyVa<|pT<06VNgwWQpG8f0T={lC|i|^4fWa;bYW~=_}W<_-5R#JY?Yr+k!_Te zt&pO@+K+7jH;%)dH1~yCH(W~dV~c-3l^k_^!gvezsmK}<=>}972}C$Q-3FL6q+)C4 zx4CehY~X@PDz>?Mo2`4qR`$z&!TY@Ib69FNzQ71wn{L2VB3QO;pjg@O7loc`-nDKx zpOCy4^a3Wq285cWVAC$4Hd}1cr$DG#0=8Cc>K&?X$W|78-p`H=913xY5s@Do5v$N# z%GdAH84<y(`_{}h12b)G*wjcRacYul)~D#Uw92AhBeWI7wzSF;N~3-+j7>d<+QRH6 zj&0b&bR@cw{0;68nklg`wp}ZUPca2)@;6v#$OhR_&FIQztg_g2b>FA>ROWBM<*b{r z%Hn=~+mR}p^r<^rQ_0YtENxeG-`8ft{Ea)uLc>Ppv^23W&)<A?)2l4*+Sra%b&~-A zzLlHJdeIzG>qcBEDnPa?y6-cyxzBHR<Wo&4wYf+)bCtzi8{3gYHx))}Eo3uRS!`Ey z-?uVb>rzSLR8vZAF4S$qrV6FC9)@nTYTI(SR|km&lD{pfBaJmt)h4-rd7-opR@g}X zre2O`@LXSF#Zu&N`LQ+iHvrU4iG`N>X*$e4ZQbg#@M&FtYYVq--JJ8cG%jqNRrRSH zWlQq6)>+bYnAw)(Zw@Fi$~lBhie_B<j<*=)oMdb^Z5`97d%<RXsj4WveHv4@VrsL$ z`Lk8de?N^;YMPC=rMijm4Ppx|=Mc8x<?xbEFQ>!H>2#<$7<}sYE&<gow49@`0TO^M zU>iWRJPXmSdAugi{=RcaA+V;4b@O|dfan(d=&$O=`C{Gt-uY><1(b7CHk(gZWFszh zE$6h^hI~ORc)erR(v3cT1&lXvD8wlQgE>w^*@DYCs%~=T;HEjm>zziTTNPT)F|!%x zw_vu`t<~SBQZ&<A%)LJEsZ!k@Hk&<3!h2R1Zd-$v2<DEsy4l&vi+X<)Haee}e>KrN ziv`Oo@nYAX+J0NkMR&z0=SVhs-dwgfY+;_*=(dV(b-tb5GW&lINEGX>*$7G<3#4Ps zXgz|mVe@bX=yrhG;X;oEkJBVM6tTWS&T|}<ZEwHV<Gi;ApB{(pFaspyLcWN)0UP`P z)ZRW~1{xp%n2;?x8zAvj*}BI<HpzByjP|zE3H){8Yp5FsXQE$M)2(xWqiyEX&$#^t zKC7{TVtX*$;<DAn@hEI!#0CF~sFCJV>=G7yQX!UzQNE9^4K##E5(|=NHJ`?xLvU0` zHk?TUO~@8~?hS;|zJ_eVudvAQo`q<_Hf);XEKR8yu65n$zIAWs&ZhqNHTkqqw_I(D FvHzS_m017) diff --git a/docs/latex/wx/sizer06.eps b/docs/latex/wx/sizer06.eps deleted file mode 100644 index 23006c5cff..0000000000 --- a/docs/latex/wx/sizer06.eps +++ /dev/null @@ -1,3017 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer06.eps -%%CreationDate: Sun May 02 2004 15:03:49 -%%BoundingBox: 0 0 308 118 -%%HiResBoundingBox: 0 0 308 118 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 308 118 8 3 1 308 7 "beginimage" -%BeginPhotoshop: 5012 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 00000076000001340000000700730069007A0065007200300036000000010000 -% 0000000000000000000000000000000000010000000000000000000001340000 -% 0076000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007600000000526768746C6F6E670000013400000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007600000000526768746C6F6E67000001340000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000CAB000000010000 -% 00A00000003D000001E00000726000000C8F00180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108003D00A0030122000211010311 -% 01FFDD0004000AFFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E8BEAFBACFF9BFD336B8 -% 8030B18C4C7F82A956FAD7D4F3FA7740CACCC3B8D59157A7B1FA3A37595D6EF6 -% D81CCFA0E46E8D6E363FD59E9B93957331E966162EFB6D706304D5535BB9EF2D -% 6B7739DB556EAD97F557AB74FB7A7E4758C565576DDCEAF2290EF6B9B68DA5EE -% 7B7E933F753F1188C9032D62240CBAFA6FD4A3B3E7FF00F3FBEB77FE581FFB6E -% AFFD2497FCFEFADDFF009607FEDBABFF00492DEFF9A3FE2FFF00F2F9BFFB158D -% FF00904BFE68FF008BFF00FCBE6FFEC5637FE4169FDE791FF371FF00C2E2B2A5 -% DDC1FF009FDF5BBFF2C0FF00DB757FE924BFE7F7D6EFFCB03FF6DD5FFA49740C -% FA9DF506C7B58CEB81EF790D6B5B938E492740D680C4F57D4CFA87758CAAAEB7 -% EA5B638358C6E4E3B9CE738ED6B18D6B3739CE725F79E47FCDC7FF000B8AAA5D -% DE7BFE7F7D6EFF00CB03FF006DD5FF00A492FF009FDF5BBFF2C0FF00DB757FE9 -% 25D87FE359D07FEE4E5FF9D5FF00E914BFF1ACE83FF7272FFCEAFF00F48A5F79 -% E47FCDC7FF000B8AAA5DDE3FFE7F7D6EFF00CB03FF006DD5FF00A496C627D61F -% AC997D2E8CAAFAD5ADCAC8B3219E8BB168F458DC465597977DB94D73AEF4ABC2 -% BFD7FD160DB7D96576515D3FCDFA9B1FF8D6741FFB9397FE757FFA4516BFF16D -% D2EAF4BD2CFCEAFD0B0DD4EDB183658764DD5455FA3B7F4357E919FE8ABFDC4D -% 9731C99AE18447FD4E2AA9399D3F2FEBA66651A5DF5871856CCB6623EDA2B194 -% DFD21A9945EDB30B12DC765593F68D98BF6CC8C3F56F65D47E8ACA6EF4F9FB7E -% BDFD6CAED7B1BD4FD56B1C5ADB595561AE00C6F67AB45766D7FF00C256C7AEE3 -% FE60E2FF00E5AF52FE7FED7FCF8FE91FF733F9BFE95FF763F9D40B7FC58F46BA -% D7DD76666596D8E2FB2C7BD8E739CE3B9EF7BDD4EE739CE421CC72809E28C4F8 -% 7B71FF00BD55178CFF009FDF5BBFF2C0FF00DB757FE924BFE7F7D6EFFCB03FF6 -% DD5FFA49761FF8D6741FFB9397FE757FFA452FFC6B3A0FFDC9CBFF003ABFFD22 -% 9FF79E47FCDC7FF0B8AAA5DDE3FF00E7F7D6EFFCB03FF6DD5FFA492FF9FDF5BB -% FF002C0FFDB757FE925D75BFE2C7EAED35BEDB73326BAAB6973DEE7D4D6B5AD1 -% B9CF7B9D4ED6B5AD52FF00C6B3A0FF00DC9CBFF3ABFF00D2297DE791FF00371F -% FC2E2AA97778FF00F9FDF5BBFF002C0FFDB757FE924BFE7F7D6EFF00CB03FF00 -% 6DD5FF00A49761FF008D6741FF00B9397FE757FF00A452FF00C6B3A0FF00DC9C -% BFF3ABFF00D2297DE791FF00371FFC2E2AA9774FF523AD755EABD1EFC9CDBCDF -% 7B2F756C26182032A7B5BFA26B7F39EEFCC5BF565BAD2431CF06B259707482C7 -% B4C7A3FCA7B7FC27F83FE6F67ABFA4F4AAF43FAB789D0F0DF89876DAE65961B4 -% B9E46F0E2D657EC7D42ADBFCDABDF64AD9EF6C34B5BB400206D1F45B03F77F31 -% 66E69425924602A04FA4570FE0B86CFF00FFD0275CFF00F25F57FE14C0FCB86B -% 936E17D46B72725F6655D8F59CE7B71ABAD8E2CFB17AF8ADAEDF52DAEDB9B6B7 -% 0ADCF7B2B7B2C7BFD0AFD5F4DFFA1CDF40C2FF00C4B743FEBF47FF00CFDD3D6B -% BB2BEBD538D8ACAF0B1F22D1815BB26DB5ED0FFB77A196EB69F4EAB2AA1D53B3 -% AAE9F5BEC63EA657F68B3D2F56BFD360D9E5F998E2890606566EC4847FE94322 -% D22FABE2598DE94DC6C61855936D9535F96EB0973ABB9AFBEBB2AA76B28ABD0C -% 8ABECF93EEAEFB2AFE6BED3FCF6FA5B19FBA3EE5F4862BBAE3B32E664B71DB88 -% CC87FA56B4383DF41AE9763B057EADAD6DADC9B722BBF26C7B3FA27E8F07F5BF -% 5B1B415B1F14C63FF0303E72FF00D768E03DDF9EBEA6B5A3EB0E390003E9E476 -% FF00BAF7AF5CC819D5F51A6814BC63545CDB2E75948A9EE7063F7D550B6DCE75 -% D53D9E87A7E86355E97AD759FCD54B73AD7FC9395FF16E599D43FA557FF1E7FE -% A6C54F9AE6067989C6031D4787841BFF000B68AE88A1BDA4493ED3B4BBB02013 -% E67FF394CABA54924924A52484DC9A5D92FC56BA6EA98CB5EC83A32C3632A76E -% FA3EE763DC9DF431EE2E25E09F07BDA3FCD6B8352534FA85B94CCDC2631D6D78 -% 8F73BD5B29AFD471B03AAFB3E3DDFA3C8F4712EADD95F68C8D957A5E955FADE3 -% FF00858F49B7A95C6E39CD7D62ABB219493B036CABD7B198CE733632FAECA28A -% 5BE9FF0080BB1EFAEFF5722DB3F56B9F65AFC6CFFB72CFFC9A5F65AFC6CFFB72 -% CFFC9A4A69FD65FF00C4E755FF00C2591FF9E9EB4955C8E9D8B934598D787BE9 -% B98EAEC61B6C82D70D8F6E8FFCE6956925292492494A517FD077C0A928BFE83B -% E05253FFD1D8C2FF00C4B743FEBF47FF00CFDD3D6861758FADECE925F918EDC9 -% CCABA77DA65D8D752E7E47A02FFB27A4D3632DC8A2F38F5DECAFECBF6EFB6DDF -% 63FB35DD1F331ADCFC2FFC4B743FEBF47FFCFDD3D6863758FADF47496BF2B1DB -% 95983A737241FB35D5B9D91651917B311F5526E67DA31AFC0F4F2D9FA97AFF00 -% B471FD1FB1DD5538DD4129D7A72F29FD42BC7CA3914BE8B1D5034D07ECD95FAB -% E3E459936D8FA327EC355775F6D58CCFDA0CF52EA6CABD6CAFE696B2E7DDD4BE -% B03BAE6160FD96C6E1D3906ACECE6D4DF46F070CE532CAB7DD664E254DCE77A5 -% FCCE455EA32BABF697ABEAE2DBD024A6975AFF009272BFE2DCB33A87F4AAFF00 -% E3CFFD4D8B4FAD7FC9395FF16E599D43FA557FF1E7FEA6C4949C7F30FF00EB37 -% F23D4145EC658DD96343DB33B5C2448EF07E287F64C4FF00435FF9A3FB92538D -% 76375EFDA02EC00FAF19B921EEA72AE2F6BE2ACE19164B2EBDF561653ECE9F5E -% 353FF692EAFED3FB33F47FA7DCA9EE7D6C7B98EA9CE6826B74173491F41FE9BA -% CAF737F90F7B143EC989FE86BFF347F725F64C4FF435FF009A3FB92534E8FF00 -% C51E77FE12C3FF00CFBD456921578D8F53DD655532B7BC06BDCD680486EE2C6B -% 9CDFA5B3D47EDFEBA2A4A52492492949249DAD2E0E23F3449FBC37FEFC929649 -% 249252945FF41DF02A4A0E7B4EF64FB83648F23BA3FEA5253FFFD2D8C3207D55 -% E8649801FD1E4FFD7B01773EBD1FE91BFE705C27D5FBBEB00E85D38538986EA8 -% 62638639F95635C5BE957B5CE63706C6B1CE6FE67A8F5A1EBFD65FFB8585FF00 -% B176FF00F23D253D5FAF47FA46FF009C12F5E8FF0048DFF382E53D7FACBFF70B -% 0BFF0062EDFF00E47A5EBFD65FFB8585FF00B176FF00F23D253BFD66DA9DD2B2 -% 835ED24D6E8008256259B6DCEA8B1A5AF60F52FB60CB89DD5555EFB2BB1B6EEF -% 7DD77A59155F4D95D1ECF43210FD7FACBFF70B0BFF0062EDFF00E47A5EBFD65F -% FB8585FF00B176FF00F23D253A692CCF5FEB2FFDC2C2FF00D8BB7FF91E97AFF5 -% 97FEE1617FEC5DBFFC8F494E9A4B33D7FACBFF0070B0BFF62EDFFE47A5EBFD65 -% FF00B8585FFB176FFF0023D253A692CCF5FEB2FF00DC2C2FFD8BB7FF0091E97A -% FF00597FEE1617FEC5DBFF00C8F494E9A4B33D7FACBFF70B0BFF0062EDFF00E4 -% 7A5EBFD65FFB8585FF00B176FF00F23D253A6A4D7B1955AE7B835A1A249303E9 -% B1657AFF00597FEE1617FEC5DBFF00C8F4BD7FACBFF70B0BFF0062EDFF00E47A -% 4A6EFDAF13FD357FE70FEF597662D37753BB245F561D3655E958FC6B436EC893 -% 43B7E4BB657E8BB1ABA2DC5C7B196DF7FA3976FD9EFC2B51FD7FACBFF70B0BFF -% 0062EDFF00E47A5EBFD65FFB8585FF00B176FF00F23D2536EABF029AD9555655 -% 5D55B4358C696B5AD6B46D6B18D6FB5AD6B5332CAECBEE756E0F1E9B04B48226 -% 6DF0557D7FACBFF70B0BFF0062EDFF00E47A675FF597699C2C288D7F5BB7FF00 -% 91E929FFD9003842494D042100000000005300000001010000000F0041006400 -% 6F00620065002000500068006F0074006F00730068006F007000000012004100 -% 64006F00620065002000500068006F0074006F00730068006F00700020004300 -% 5300000001003842494D042200000000012E4D4D002A00000008000701120003 -% 0000000100010000011A00050000000100000062011B0005000000010000006A -% 012800030000000100020000013100020000001B000000720132000200000014 -% 0000008D8769000400000001000000A4000000D0000000480000000100000048 -% 0000000141646F62652050686F746F73686F702043532057696E646F77730032 -% 3030343A30353A30322031353A30333A3438000000000003A001000300000001 -% FFFF0000A00200040000000100000134A0030004000000010000007600000000 -% 00000006010300030000000100060000011A0005000000010000011E011B0005 -% 000000010000012601280003000000010002000002010004000000010000012E -% 0202000400000001000000000000000000000048000000010000004800000001 -% 3842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6116 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6116 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>308</exif:PixelXDimension> - <exif:PixelYDimension>118</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:48-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:48-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:48-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:e2e9dee7-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee8-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 118 def -/cols 308 def -308 118 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 308 string def -/picstr2 308 string def -/picstr3 308 string def -/picstr4 308 string def -/_rowpadstr 308 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 171638 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzs8W-!s8W-!zzzz!!*$! -zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzs8W-!s8W-! -zzzz!!*$!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/s8W-!s8W-!K7ef/ -K7ef/K7ef/K7ef/K7j2VK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8W-!s8W-!%LrsY%LrsY -%LrsY%LrsY%M&LK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$! -zzzz!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzz!!!$!rr<$!zzzz!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("# -`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7egVs+>rVK7ef/K7ef/K7ef/K7ef/KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8 -s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!K -rsfMK%LrsY%LrsY%LrsY%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzz!!!$!rr<$!!!*'!s8N'!!!*'!s8W*!s8W-!rr<$!zzzzzzzzzzzzzzz -zzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!!*'!s8N'!!!*'! -s8W*!s8W-!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rV -K7j4(s8R_(K7j4(s8W+Os8W-!s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,uF*#=>`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%M&O= -s8NQ=%M&O=s8W*/s8W-!rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$! -rr<$!!<<'!!<<'!!<<'!z!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<'!!<<'!!<<'!z!<<'!zzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8 -s8W-!s8W-!s8W-!`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(KE(t(KE(t(K7ef/ -KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-! -s8W-!s8W-!`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%fcP=%fcP=%LrsY%fcP= -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8 -`Pof;`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<'!!<<'!!<<*! -z!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzz!!!$!rr<$!!<<'!!<<'!!<<*!z!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7egVs+>rVKE(t(KE(t(KE(uOK7ef/KE(t(K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%Ls!KrsfMK%fcP=%fcP=%fcS/%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<*!s8W*!!!*'!s8N'!!<<'!zzzzzzzzzz -zzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7& -F)uDDF)uDD`DX[o`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<*!s8W*! -!!*'!s8N'!!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rV -KE(uOs8W+OK7j4(s8R_(KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`HB/=`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%fcS/ -s8W*/%M&O=s8NQ=%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$! -rr<$!!<<'!zzs8W*!!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pogr -F*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<'!zzs8W*!!<<'!zzzzzzzzzzzzzzzzzz -zzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(K7ef/K7ef/s8W+OKE(t(K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%LrsY%LrsYs8W*/%fcP=%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!<<'!!!*$!z!<<'!!<<'! -zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$! -!<<'!!!*$!z!<<'!!<<'!zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pqju -F2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7egVs+>rVKE(t(K7j2VK7ef/KE(t(KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,u -F*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!K -rsfMK%fcP=%M&LK%LrsY%fcP=%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzz!!!$!rr<$!!!*'!s8N'!!<<*!s8N'!!!*'!rr<$!zzzzzzzzzzzzzzz -zzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!$!rr<$!!!*'!s8N'!!<<*! -s8N'!!!*'!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rV -K7j4(s8R_(KE(uOs8R_(K7j4(s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%M&O= -s8NQ=%fcS/s8NQ=%M&O=rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%)aMi3LOMi3LOMi3LOMq-A.e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eWc;_ -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%)aMi3LOMi3LOMi3LOMq-A.e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eWc;_Pa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%)aMi3LOMi3LOMi3LOMq-A.e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[L -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%)aMi3LOMi3LOMi3LOMq-A.e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzz -z!<7rWzzzs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzz!<7rWzzzs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzz!<7rWzzzs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6zzzzzzzzzzzzzzz!<7rWzzzs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8`W*or`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8`W*or`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8`W*or`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8`W*or`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzz -zzzzzzzzzzzec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H)Lec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TT -ec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzz -zec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzz -zec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H)Lec1O- -`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TTec1O-`Pog8 -s4%+g`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!zzzz!!*$!zzzzz -zzzec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!zzzz -!!*$!zzzzzzzzec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVL -SH#+LS=H+>S=H+>S=H+>S=H+>S=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H)Lec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFT -&J5Te&J5Te&J5Te&J5Te&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TT -ec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!zzzz -s8W*!zzzzzzzzec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$! -!<3$!zzzzs8W*!zzzzzzzzec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^%6S=KVLSH#+LS=H+>S=H+>S=H+>S=H+>s8W+hS=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H)Lec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6 -&J>$T&cWFT&J5Te&J5Te&J5Te&J5Tes8W*2&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5TTec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$! -s8W*!!<<*!!!!$!!<3$!rr<$!!!*$!zzzzzzzzec1O-`Pql-e^`37!6)prs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".M -eH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^%6!!*$!s8W*!!<<*!!!!$!!<3$!rr<$!!!*$!zzzzzzzzec1O- -`Pql-e^`37!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLs8W+hSH&WhS=H,L -SH#+Ls.#ULS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H)Lec1O-`Pql- -e^`37!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$Ts8W*2&c_n2&J5WT&cWFT -rt,hT&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TTec1O-`Pql-e^`37 -!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!rrE*!!<3$! -!!*$!zzzzzzzzec1O-`Pql-e^`37!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$! -!<3$!rr<$!rr<'!rrE*!!<3$!!!*$!zzzzzzzzec1O-`Pql-e^`37!6)prs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+Ls.#ULs.#VZs.',hSH#+LS=KVLS=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H)Lec1O-`Pql-e^`37!6)prs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^%6&J>$T&cWFTrt,hTrt,kCrt5;2&cWFT&J>$T&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5TTec1O-`Pql-e^`37!6)prs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWM -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$!!!*$!zzzzzzzzec1O-`W+K=e^`4# -PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$! -!!*$!zzzzzzzzec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVL -SH#+Ls.#ULs.#VZS=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H)Lec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFT -rt,hTrt,kC&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TT -ec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!s8W-! -rr<'!!!*$!!<3$!!!*$!zzzzzzzzec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6!!*$!!<3$!s8W-!rr<'!!!*$!!<3$!!!*$!zzzzzzzzec1O-`W+K=e^`4# -PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+Ls8W-!s.#VZS=KVLSH#+L -S=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H)Lec1O-`W+K=e^`4#PQ8\A -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTs8W-!rt,kC&J>$T&cWFT&J>$T -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TTec1O-`W+K=e^`4#PQ8\As4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!!!!$!!!*$!!<3$!!!*$!zzzz -zzzzec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$! -rr<$!!!!$!!!*$!!<3$!!!*$!zzzzzzzzec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^%6S=KVLSH#+Ls.#ULS=H,LS=KVLSH#+LS=KVLS=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H)Lec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWM -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6&J>$T&cWFTrt,hT&J5WT&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5TTec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$!!!*$!zzzzzzzzec1O-s4%)Lz!0dK& -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<3$!rr<$!rr<'!!!*$!!<3$!!!*$! -zzzzzzzzec1O-s4%)Lz!0dK&s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=KVLSH#+L -s.#ULs.#VZS=KVLSH#+LS=KVLS=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H)L -ec1O-s4%)Lz!0dK&s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J>$T&cWFTrt,hTrt,kC -&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TTec1O-s4%)L -z!0dK&s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$!!<<'!!<<*!!!!$!!!*$!!<3$! -!!*$!zzzzzzzzec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6!!*$! -!<<'!!<<*!!!!$!!!*$!!<3$!!!*$!zzzzzzzzec1O-`Pog8`Pog8`Pog8s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".M -eH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^%6S=KVLSH&VZSH&WhS=H,LS=KVLSH#+LS=KVLS=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H)Lec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".M -e^XZMe^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^%6&J>$T&c_kC&c_n2&J5WT&J>$T&cWFT&J>$T&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5TTec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZM -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6zzzzzzzzzzzzzzzec1O-s8W-!s8W-!s8N)<s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1M -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6zzzzzzzzzzzzzzzec1O-s8W-!s8W-!s8N)<s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1M -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^%6S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H+>S=H+>S=H)Lec1O-s8W-!s8W-!s8N)<s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^%6&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5Te&J5Te&J5TTec1O-s8W-!s8W-!s8N)<s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6 -zzzzzzzzzzzzzzzec1O-s4,ZMe^`4#e^XZ=s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6 -zzzzzzzzzzzzzzzec1O-s4,ZMe^`4#e^XZ=s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6 -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+> -S=H+>S=H)Lec1O-s4,ZMe^`4#e^XZ=s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te -&J5TTec1O-s4,ZMe^`4#e^XZ=s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzz -zzzzzzec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzz -zzzzzzec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6S=H+>S=H+> -S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H+>S=H)L -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6&J5Te&J5Te&J5Te -&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5Te&J5TTec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^%6zzzzzzzzzzzzzzzec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%Ds!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Ds!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec40a -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%Ds!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec40aPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-! -s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLzzzzzzzzz -zzzzz!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLzzzz -zzzzzzzzzz!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL -zzzzzzzzzzzzzz!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eGoRLzzzzzzzzzzzzzz!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$! -s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*! -rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*! -!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*! -s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!s8W*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!!<<'!s8N*!rrE*!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -z!<<'!s8N*!rrE*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*! -rrE*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!rrE*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!rrE*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!!<<'!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -!<<'!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*! -rrE*!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Ms8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8N)Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!z!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Ms8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-! -s8W-!s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-! -s8W-!s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-! -s8W-!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-! -!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!!<<*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!!<<'!!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!!<<'!!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -!<<'!!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'! -!<3$!rrE*!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*! -rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1M -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*! -s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W-! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W-!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -z!<<'!s8N*!rrE*!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*! -s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*! -rrE*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4# -eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*! -!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".M -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE*!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rr<'!rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rr<'! -rr<$!s8W*!s8N*!rrE*!rr<$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!s8W-!s8W-!s8W-!s8W-!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!s8W-!s8W-!s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -s8W-!s8W-!s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-! -s8W-!s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!s8W-!s8W-! -s8W-!s8W-!s8N'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*! -!<<*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*! -rrE'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!rrE'! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!!!!$!rr<$!s8W*!rrE*!!<<*!rrE'!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!!<<'!!<3$!rrE*!rrE'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*! -!<<*!!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -!<<'!s8N*!rrE*!!<<'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*! -rrE'!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Ms8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Ms8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!z!<<'!s8N*!rrE'!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rrE*!!<<*!s8W*!s8N*!rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rrE*!!<<*!s8W*!s8N*!rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*! -s8W*!s8N*!rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!s8W*!s8N*! -rrE'!z!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8N*!rrE*!!<<*!!<<'!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eW^(6s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8N*!rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8N*! -rr<'!rr<$!s8W*!s8N*!rrE*!s8W*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZM -e^`4#eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4# -eW^'Qs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Q -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4,ZMe^`4#eW^'Qs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-s4*?uPa%DsP`u0es4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-zz!!!#<s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-zz!!!#< -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-zz!!!#<s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-zz!!!#<s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4./L -s8W-!s-*N&s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4./Ls8W-! -s-*N&s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4./Ls8W-!s-*N& -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-s4./Ls8W-!s-*N&s4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`W+K=e^`4#eH!S-s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`W+K=e^`4#eH!S-s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`W+K=e^`4#eH!S-s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-`W+K=e^`4#eH!S-s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-`W+K=e^`4#PQ8\As4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -`Pql-e^`4#!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql- -e^`4#!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`4# -!6)prs4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`4#!6)pr -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`37!6)prs4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`37!6)prs4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`37!6)prs4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pql-e^`37!6)prs4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-`Pogre^`1M`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-`Pogre^`1M`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-`Pogre^`1M`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-`Pogre^`1M`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4# -eH".Me^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -`Pogre^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pogr -e^]la`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pogre^]la -`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s4%+g`Pog8 -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s4%+g`Pog8s4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s4%+g`Pog8s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s4%+g`Pog8s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s-*N&`Pog8s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8s-*N&`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec1O-`Pog8s-*N&`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec1O-`Pog8s-*N&`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec1O-`Pog8`;mlr`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec1O-`Pog8`;mlr`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O- -`Pog8`;mlr`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8 -`;mlr`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8`;mlr -`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8`;mlr`Pog8 -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8`;mlr`Pog8s4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eW^(6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec1O-`Pog8`;mlr`Pog8s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MeWc;_Pa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9d -hVQ5je^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9dhVQ5j -e^`4#eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9dhVQ5je^`4# -eW^'ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec1O-`Pog8`Pog8`Pog8s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9dhVQ5je^`4#eWg+6 -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8S#Ws8W-!s8W-!s8W-!s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4# -eWg+6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8S#Ws8W-!s8W-!s8W-!s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5j -e^`4#eWg+6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8S#Ws8W-!s8W-!s8W-!s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4#`Pl9d -hVQ5je^`4#eWg+6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8S#Ws8W-!s8W-!s8W-!s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Mzzzzzzzzzzzzzz!!!#Le^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r' -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer06.gif b/docs/latex/wx/sizer06.gif deleted file mode 100644 index 2eebd3236652bbdad4699d9eee9bfa01f4a08b78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2181 zcmV;02zvKNNk%v~VKf1D0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl$48$ zivR$e000000000000000EC2ui05k!106+x)5XecZy*TU5yZ>M)j$~<`=oLsq>%MU8 z5_E0fc&_h!@BhGEVMrVXYlWk7$!t1pv4X)6oyG(!fNaZsdcR<=(N;v3&B?HO&8Equ zR2N)^WepJcynfH``~QG}f`f#GhKGoWii?bmjxBXscX|l{0SlO!nwy-Ro}Zwa0SE;O z0WSpzr>Kstu6wDkvIv#4wuX>dEqj%h3k8_KznsFwn!=&Uouj1zsR_{0(5JDt)`iuG zqkG%kjJ4O{eYtkL&PC|y>g(+7?xd#Kl+@z&fAaQ);Q8X@lIBFt2~0PzKtXp1+re|@ zr_um?{31%6NKuc!UGoxZ+{ls0LWs2g=-q2%$&#LJcu*eNSFxqbaRVY@%u^}gkb^c2 z-rUKvBf^gjMfw3*sH94jsuHn$$<*b=Ni@&-oJw^F&^``{Hr>j#tHqeQpyH{?6KC0- zMlDrU*bHP=uW%`9Ws3AEz_oZc0#)}muHSrf0U=GAbnwc$V9RC9%lKV0R1R7Fog6N3 z%cXWHYu?QH?^7<IXS5kjy0q!jsK10>omdho&~aX*o=w{fnKWaF+!#~4H)+stV$%uB zx{L4Q$dfBST^zJbv7Mt!pPnysRA0b|1RIhmd$3K&l!?d0%v6hPksneYWckn0JSYtl zTDl&O^|6-5>)#)$JVQT1)i>1tU-Z>?Ur08Ubdy?W^;CpZjak)JQ0fV2;e`ksNLGX# z7I76HeGTYWff!1sp;XQ&Xb^)sndM-FADUC4h=~l=jY;3gS7K);cIcyo@ldE$dlZql zBWFFL#h{8UI+)^*sZ5AffJat2S&~q~C?$wgT1g#|6JgfcO!#HV;X>!lBZrq3g2~5w zDV?N<n9uQIrjH6}#HN60_37uIfCeh4QG1Xhz@dmHs_3GOHtOi3kVY!$q?A@_>7|%v zs_CYjcDg8W&4nuJsHB!^>Zz!vs_Lq&w))(u%f%||thDx!>Z_*Ks;dvY(Qt;ZWuUX` zuu!~V#Y4wl0cxqlHhbIuvpVQTK(Ef~$^{&AY=JAY)pqOcw?9;|g%rx#(dxPArmOC{ z?6&J}adqw~@4Q}}IOx6j=KE(egSy$7zY*y;oxR@;!=J$i_lIVhAxUN>!1)+C@R-o` zQm`=>XWU)F$@n*8R1817h>dXyJcz_5Qfv-(+iiyo#^Hs>@iGeo$0o#a!l(1jh@c#u zz4`_%G@vo6i8EzKi{mqoDlewf(;YF{VbLHb{nyY~XT2kq1)+Er)L>7&rHoe7Yc?ZX zFSwxBPYYz!k5uFLF&}s4W%AifVOjTDaW_09fp_EWRMS!A1mQ+fpE<VCfZ$9rVS)d# zwBQw`-L~OhKM42#;#D_3@|!smrc~sVPh|O$EOs3bi(&^k<=n6UUV2=5?@d+TA@=c% zG`#oj`|rR9?>p(U^K*JthimCNm#`P_{3C>y`8C_BU%vVBWIwOHE2q0n{fo&rhI^OW zGgY=VbcS`8?Nu!#X!GT}bTpiz6K_tT(Id!y`;Xxh+4=Evh2ua6xg6myUWMD=?H<Fh z^uRBGa*^Fv5GXwb`lMzpScStN_!0oxB7KVCpa`}1nRl7+geXj*3Rh^VNTlF}FpQxL zXGp^u+VF-M*cJ<S$ip7`@Q0<+;i$kx#3B;$R?8xl5tqosVTsFF<#J7~nz$Tl1;L6` zq>ZtJlPwtk=nx?>$f9z3l^fio0a{}0&9$b`#VA%`3UG`g6%HVqG#-bH!U7g=uxLlq z00)lFN#YRu*c&_|0S9Fyq!zb$o@9AZkfKtgBq#ZVH(K(M=9(fUH_1s`p-PC6?4&41 zSpy_y5{Rfwr7Bm6LJE%Xm6SUWEN4kC4GHg-xXfiP6~N10`tp}Ivmi(8ccuLGB5TMD z8U`N{g_}tbLj;?dG?n48HEA$pRr260CbyYrVoX2UnI_E`SRn^$lPgIh6wgF=n5`Kz zKL-0|F|y;Gjfs;J)kKd5&$*QWawBKNoQFGIX|Z^^j5`KJm_qMK9yIxH75r?9Kjowf z94&(Xo0{>a#uEC?g)-DXsqj<ojx^Do#pj{{^-DAv%F>3mg&pL>P&!LO(RJ!0rL=pe zFIvh{kP69}Bf=?MYA4KujPHSMdgg_QT2#kik8xhwoi3+J)!_|PeNJ-`LfF>2|1dA2 zv^>)Bpysv}g)MxHIVxDgTB5P0WqLV*l3Lk1OSfXqdT3RiSF=agS2DG!?3n9FuGZIZ z{1ve35G;-0g3-br;;@KChhlZ7RL9B!vXS)&=j8Uc&++V}a}ug$|1j2J##M1o?c88% zM8Hvqwy~ofgk8&$q9?6RuAB9n=M?ccZ=f``vvBL%@Jf*D?G>tv)kaO}*G}NRVz$Kp zwO-i7m)nuXE~w6Z?mIL4lj_D44{L1%Y_sbJ%yM_KbgL|R6=B}YqL&-VjPIb<3q6A7 zmAgPXu4?H!yV6GOzI^j8Qu!+{=$2J2UIQ@yQp;Ha_jkL~8?NfO+EurF*TIIs?>Z1; z-@ATKx-ZhJg$Imb_EfgLk$rE84-sAiP7tdJ)No=a^t%hMSP(O{C_7UM!hbkT#*!uH zwQjtKk^(ezqdOpsD+pu{^{)>QC9)!n3^^Sq`Nbh*a+C9mO;xN(%7~z{Z`s-0JfIk{ zHLJ!oTWr}JGndTs;qa36w`I+m$C@x;vt#vqWivy#&Rl-MHM<OE6Jr<4K8^}HXM{Yi zLbI3_RgH9{<(y?lTUxuWytJm#mcLDV8WAOArKm?u>QXlc3-V31s#neGR=fJuu#WY; HA^-q854%=j diff --git a/docs/latex/wx/sizer07.bmp b/docs/latex/wx/sizer07.bmp deleted file mode 100644 index 4797967f249e7126d123cdc09ba216f65644f1b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9862 zcmeI2y>8nu6oqM{TNk^N)_5qo3u%Flg*+DMk7Z<b0Kb5N?n2>084Gyn1NjlW`c>R> zuS7SbNrDO~lmc`U{U3@S&%I(~BcDG1dMh}7VEqoumx&M`v7Lxle13-OZ(cXc3}<LL zpU-@4v)PE_@hE=c=yJJ;-EJpl-_GK6I*G&Kz#7wPo^(tXGXCw!GbwGS(%PxWQ;w;G z8xUtbfXLzJ05I#3Gj5g|KdTsXXhvkdcj_vR&AEU2;}y)=LELgac-`D7`rUNxm+q&o zV#(=udzWhDB=bi<T{TkoRG;&CUBi4Xep~;R`mE+zU17dbn^`#RVz0cTlMFvvUuw^_ zg_D|bdqr;Hw2Qqs;bX<5N?+Q6nUltrF{vUqb2`KwINf$y{A|0{E5^xb5-%3?zEnLZ zqty@CPt=(+Tz;aw)o^hd#dxjv<jev%Z&KmnG>Y>(Z_b<cszok8Z)OS?r%~+12|{|_ z-G-Vu(TJWReT-&KhuDj=Zst$DGao<kqQ?`OHbx7lUF^rH5}A)IewxJ=PP=&IG<(yY z{f~ZDT!MQi-u2>3Im__)+J&>3J3I$P;<i4ceU96E4!9YVzqsMN<|Emikuz>;hUBOG ziZSUe-j@auDrb>YJU4LU3{TB~{9F?&trE}s`Z3S%xA8fbtD-2&Vu__Fu^$w`BSvD4 z?I$?#3&7=yki!CafMh%S;RIe8iSvHTb~c>rEyagC4;w#Plb<CLPPvcbXTGNDZ1et| z_TFQO!U-prD9;`^oA=e2oLr%yqbB#1yweGe&^xn<{H&KNN`F`oQh(2pWQ&sbp5`Sg zAjwIyQ&_N_{mk=WU|MV9<lJMG_}@*!<QO@%B);HKdP!T=&*xXt+8++5{Lh=Tw|8md IUFjx&0Tk+X;Q#;t diff --git a/docs/latex/wx/sizer07.eps b/docs/latex/wx/sizer07.eps deleted file mode 100644 index 35f96f4e09..0000000000 --- a/docs/latex/wx/sizer07.eps +++ /dev/null @@ -1,1684 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer07.eps -%%CreationDate: Sun May 02 2004 15:03:43 -%%BoundingBox: 0 0 336 58 -%%HiResBoundingBox: 0 0 336 58 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 336 58 8 3 1 336 7 "beginimage" -%BeginPhotoshop: 4046 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000003A000001500000000700730069007A0065007200300037000000010000 -% 0000000000000000000000000000000000010000000000000000000001500000 -% 003A000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003A00000000526768746C6F6E670000015000000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000003A00000000526768746C6F6E67000001500000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C0000000008E5000000010000 -% 00A00000001C000001E000003480000008C900180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108001C00A0030122000211010311 -% 01FFDD0004000AFFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E83A0DDE9FD5FE97BAC7 -% 31BF62C6886BDFFE06BFCDA19639667D77EBBD47A6749AB27A664BAAB1D92DA9 -% CF2C3AB4D76BC8D9975FEF35BEED8B43A1DD557D1BA155612D3978F8F4D66240 -% 73710E54BFF3B6FA78CFFA3F9EACF5CFAAF83D73119899792E656CB05A0D521D -% B835ECFCFAACF6FE914986518E48998B803EA15C5A28EC5F2FFF009FDF5BBFF2 -% C0FF00DB757FE924BFE7F7D6EFFCB03FF6DD5FFA49769FF8D47D5FFF00B9D91F -% E737FF007992FF00C6A3EAFF00FDCEC8FF0039BFFBCCB4BEF3C8FF009B8FFE17 -% 15952EEF17FF003FBEB77FE581FF00B6EAFF00D2497FCFEFADDFF9607FEDBABF -% F492ED3FF1A8FABFFF0073B23FCE6FFEF325FF008D47D5FF00FB9D91FE737FF7 -% 992FBCF23FE6E3FF0085C5552EEF17FF003FBEB77FE581FF00B6EAFF00D2497F -% CFEFADDFF9607FEDBABFF492ED3FF1A8FABFFF0073B23FCE6FFEF325FF008D47 -% D5FF00FB9D91FE737FF7992FBCF23FE6E3FF0085C5552EEF17FF003FBEB77FE5 -% 81FF00B6EAFF00D24B4F07EB07D75CFC6C6B71FAAB5B664D996C0CB594D6C68C -% 2A29CE7BDD90FAFD36FAB5DEE67E93D3AABF4FF496FA7FCDF40EFF00153F57C0 -% 919B92E3E01CD9FC718289FF00155D08303FED3950491F4ABED1FF0001FCA425 -% CC724768447FD4A25552FE45C6ABACFD75B0DEF6759A6EC7C6FB4B2CBF1C5360 -% 16E3D397995D7E9BABA6D75599574F7BF1F2D8CFB3FA567D3F5EBBB1D63FFCFE -% FADDFF009607FEDBABFF00492EC3FF001ACE83FF007272FF00CEAFFF0048A5FF -% 008D6741FF00B9397FE757FF00A4521CC7242EE113FF00528AAA5FC8BC7FFCFE -% FADDFF009607FEDBABFF004925FF003FBEB77FE581FF00B6EAFF00D24BB0FF00 -% C6B3A0FF00DC9CBFF3ABFF00D2297FE359D07FEE4E5FF9D5FF00E9147EF3C8FF -% 009B8FFE171554BBBC7FFCFEFADDFF009607FEDBABFF004925FF003FBEB77FE5 -% 81FF00B6EAFF00D24BB0ABFC56740B9A1CCCACA2D737783BABE237FF00A04BFF -% 001ACE83FF007272FF00CEAFFF0048A5F79E47FCDC7FF0B8AAA5DDE3FF00E7F7 -% D6EFFCB03FF6DD5FFA492FF9FDF5BBFF002C0FFDB757FE925D87FE359D07FEE4 -% E5FF009D5FFE914BFF001ACE83FF007272FF00CEAFFF0048A5F79E47FCDC7FF0 -% B8AAA5DDA1F51FEB475FEADD5AEC6CFCC3654DC7758D1B1821C1F5303FF44DA5 -% CFF6BDDECF51767465DD738EA5AC68D0C9F7EB02EA49DBBB19DB5DE95BB7F4BF -% F07E9ACBE89F51FA5F45C9B3271ADBAD75B51A5ECB8B1CDDAE2D7BBDACAEBFF4 -% 6B6CD6DDC46E9756DDC04701DE1FD7F4BFE82A1CD4F1CF25E21C30A1A01C3F82 -% E175ABFFD0D5B2DC4E9BD3FEAE3F22E6D38D8F656D36DAE0D000E9F955B3738E -% D6EE72BBFF003BBEAC7FE59E37FDB8165E37FCFEFB3D5F63FD95F66F4D9E8FA9 -% EBEFD9B5BE97ABB7DBEAFA7B7D4D9F9E8BFF00AF23FF00351FFB30929BFF00F3 -% BBEAC7FE59E37FDB812FF9DDF563FF002CF1BFEDC0A87FEBC8FF00CD47FECC25 -% FF00AF23FF00351FFB3092937FCE2FAB06FF005BF6B6357177ADB697867A9FA1 -% FB26CCCF73FED3FE91BFCD7F358BFF0071FF00484C6FAD7F57ABA5ACBFAC635F -% 63641B7735A5C27D85ED67B3D4D9FCEFA7E9D6FB3F9BA69FE6955FFD791FF9A8 -% FF00D984BFF5E47FE6A3FF006612537FFE777D58FF00CB3C6FFB7025FF003BBE -% AC7FE59E37FDB8150FFD791FF9A8FF00D984BFF5E47FE6A3FF00661253A989F5 -% 8FA166E43317133E8BEFB27656C782E300BDD03FAAD56B33AC748C16B29CDCEC -% 7C6B4973C5775ACADDB4ED6B5FB2C735DB3731EB07FF005E47FE6A3FF6612FFD -% 791FF9A8FF00D98494EA7FCE5FAB9FF96B85FF00B1157FE4D66F52CDFAB99D8B -% 958FFB6F0BF5BF53DD75D55BE8FA98EEC0FD4C7AD57A1CFAAEFDFF0057299FF6 -% A7F471FF00D791FF009A8FFD984BFF005E47FE6A3FF6612537F1BAE7D56C5A5B -% 451D4F09B5B6607DA6B249277BDEF7BEC73ECB2C7BBD4B6DB3F496D9FA4B117F -% E72FD5CFFCB5C2FF00D88ABFF26B2FFF005E47FE6A3FF6612FFD791FF9A8FF00 -% D98494EEE266E163F4EAB32FC8AAAC5F401F5DEF6B6B87B36D67D571D9FA473D -% BB156FF9CBF573FF002D70BFF622AFFC9ACBFF00D791FF009A8FFD984BFF005E -% 47FE6A3FF6612537EDEBDF572DB297FED9C667A0F2FDACC9A835F2CB29F4EE1B -% FDF5FE97D5DBFE9ABA952E9797F55B02FBF24F55E9EEBAFD807A76D75D75B194 -% E3E33A9C6A4DF6B69AEC76236CF67FC0536FABF65A547FF5E47FE6A3FF006612 -% FF00D791FF009A8FFD98494EA7FCE5FAB9FF0096B85FFB1157FE4D4B1BA86075 -% 0B727EC19756406D4C0E7D1632CD849BB6FD1F51BBBFAEB23FF5E2FE7FECBDBF -% 9DE97ADBE3BFA5EAFE8BD4FDCF53F46B40FF00CE7833F638EFFCE24A7FFFD900 -% 3842494D042100000000005300000001010000000F00410064006F0062006500 -% 2000500068006F0074006F00730068006F00700000001200410064006F006200 -% 65002000500068006F0074006F00730068006F00700020004300530000000100 -% 3842494D042200000000012E4D4D002A00000008000701120003000000010001 -% 0000011A00050000000100000062011B0005000000010000006A012800030000 -% 000100020000013100020000001B0000007201320002000000140000008D8769 -% 000400000001000000A4000000D0000000480000000100000048000000014164 -% 6F62652050686F746F73686F702043532057696E646F777300323030343A3035 -% 3A30322031353A30333A3432000000000003A001000300000001FFFF0000A002 -% 00040000000100000150A0030004000000010000003A00000000000000060103 -% 00030000000100060000011A0005000000010000011E011B0005000000010000 -% 012601280003000000010002000002010004000000010000012E020200040000 -% 00010000000000000000000000480000000100000048000000013842494D03FD -% 0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6115 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6115 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>336</exif:PixelXDimension> - <exif:PixelYDimension>58</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:42-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:42-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:42-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:e2e9dee3-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee4-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 58 def -/cols 336 def -336 58 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 336 string def -/picstr2 336 string def -/picstr3 336 string def -/picstr4 336 string def -/_rowpadstr 336 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 85591 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8 -`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u -`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzz!!*'!s8W-!s8N'!zzzzrr<$!zzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!*'!s8W-!s8N'!zzz -zrr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7j4(s8W-!s8R_(K7ef/K7ef/K7ef/K7ef/s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M&O=s8W-!s8NQ=%LrsY%LrsY%LrsY%LrsY -rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzz!<<'!zzzz!!!$!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("# -`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzz!<<'!zzzz!!!$!rr<$!zzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7ef/K7ef/K7ef/ -K7ef/K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!zs8W-!zs8W-!rrE*! -s8W*!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzz!<<'!zs8W-!zs8W-!rrE*!s8W*!zzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7ef/s8W-!K7ef/s8W-!s+C@O -s8W+OK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%fcP=%LrsYs8W-!%LrsYs8W-!rso)/s8W*/%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfW -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!!!!$!rr<'!rr<'!rr<$!!!!$!rr<$! -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzz!<<'!!!!$!rr<'!rr<'!rr<$!!!!$!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-! -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>t(s+>t(s+>rV -K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8 -`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%fcP=%Ls!KrsfP=rsfP=rsfMK%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!!!!$!rr<'!rr<'!s8N'!!!!$! -rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzz!<<'!!!!$!rr<'!rr<'!s8N'!!!!$!rr<$!zzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8 -`Pof;`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>t(s+>t( -s8R_(K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%fcP=%Ls!KrsfP=rsfP=s8NQ=%Ls!KrsfMK%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD -`SSSQ`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!!!!$!s8W-!rr<$!s8W-! -!!!$!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`DX[o`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzz!<<'!!!!$!s8W-!rr<$!s8W-!!!!$!rr<$!zzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7& -F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs8W-! -s+>rVs8W-!K7egVs+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`HB/=`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%fcP=%Ls!Ks8W-!rsfMKs8W-!%Ls!KrsfMK%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!!!!$!rr<$!z!!*'! -rr<'!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzz!<<'!!!!$!rr<$!z!!*'!rr<'!rr<$!zzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>rVK7ef/ -K7j4(s+>t(s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%fcP=%Ls!KrsfMK%LrsY%M&O=rsfP=rsfMK%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!!!!$!rr<$!rr<$!!!!$! -rr<'!rr<$!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzz!<<'!!!!$!rr<$!rr<$!!!!$!rr<'!rr<$!zzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7egVs+>rV -s+>rVK7egVs+>t(s+>rVK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,u -F*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%fcP=%Ls!KrsfMKrsfMK%Ls!KrsfP=rsfMK%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!<<'!zs8W-!!!!$!s8W-! -zs8W*!zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzz!<<'!zs8W-!!!!$!s8W-!zs8W*!zzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/KE(t(K7ef/s8W-!K7egVs8W-!K7ef/ -s8W+OK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%fcP=%LrsYs8W-!%Ls!Ks8W-!%LrsYs8W*/%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)W8#`Pog8 -`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#eGoRLzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec5[Ls8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4# -e^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9d -hVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec5[L -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#eH#XLs8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!rr<&Le^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4# -eH#XLs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!rr<&Le^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#eH#XLs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!rr<&Le^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#eH#XL -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!rr<&Le^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eGoU"e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoU"e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoU" -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eGoU"e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ze^`4#!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL -!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4#!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4#!7fWMeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ze^`4#!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM!7fWM!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM!7fWM!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -eH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M -!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#eH".M!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7_)"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`4#eH".M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#hVR,GhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!!!#Le^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#hVR,GhVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZM -e^`4#eH".M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -hVR,GhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!!!#Le^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#hVR,GhVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#@U`eU -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#@U`eUhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M -!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#@U`eUhVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#@U`eUhVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#eH".M!7fWM!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#eH".M!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM!7fWMeH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#!7fWM!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#!7fWM!7fWMeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#!7fWM!7fWMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4#!7fWM -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`4#!7fWMe^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\C -hVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5j -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\C -hVQ5je^`4#eH#X"Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"Pa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5j -e^`4#eH#X"Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4#eH#X"Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pp\ChVQ5je^`4# -eGoRLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec40aPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%Ds!7fWMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -P`u0ue^`4#`Pp\ChVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#L -e^`4#e^`4#ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds!7fWMe^`4#e^`4MeWc;_ -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pp\ChVQ5je^`4#eGoRLzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec40aPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Ds!7fWMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4# -`Pp\ChVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4# -ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds!7fWMe^`4#e^`4MeWc;_Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsP`u0ue^`4#`Pp\ChVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^`4#e^`1M -zzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pp\ChVQ5je^`4#eGoRLzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^`4# -e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pp\ChVQ5je^`4#eGoRLzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pp\ChVQ5je^`4#eGoRLzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzz -zzz!7fWMe^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pp\ChVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\C -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pp\ChVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8 -`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\C -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\ChVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -hI=IC`Pog8`Pog8`Pog8`Pp\ChVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8hI=IC`Pog8`Pog8`Pog8`Pp\ChI9r'@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eUhI>?u -hVR,GhVR,GhVR,GhVR*uhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eUhI>?uhVR,GhVR,GhVR,GhVR*uhI9r'@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eUhI>?uhVR,G -hVR,GhVR,GhVR*uhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eUhI>?uhVR,GhVR,GhVR,GhVR*uzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzhI9r' -@U`eU@U`eU@U`eU@U`eUzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzhI9r'@U`eU@U`eU@U`eU@U`eUzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzhI9r'@U`eU@U`eU@U`eU@U`eUzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzhI9r'@U`eU@U`eU -@U`eU@U`eU~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer07.gif b/docs/latex/wx/sizer07.gif deleted file mode 100644 index 3097ef4e99dfd672e61b576fd940c7938c5ab51c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1175 zcmV;I1Zew5Nk%v~VNd}&0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui08jxs06+x)5XecZy*TU5yZ>M)j$~<`XsQL$;J$Dy zzeH`{c&_h!@BhG{a91cAi^EzW$!t2G(4VYeFifj50ShqedZXa5c$`Dtj<(}6Z6>?l zaNUe*ebHyy)&Rlp`~QG}f`f#GhKGoWii?bmj*pO$l9PQdd0cyb0R@zuo}ZBk0Re=Z zpr?tVrKqfis(zMRE`OV?lccnKxCpzpkD|SRrk}yQx_!lyuY$v##kjl4lFNK900Mfn zqubow-rwNi;^XAy=I7|6s|oDw?(gvN^7Hid_0oKt_WS(({_(-AVG}^GpuvL(6DnND zu%W|;5F<*QNU@^Dix@L%jCd^sHcVdsLehvsvZTqAC{v~s$#TG@DIx2?P)W0<k2VC% z=){?Gjm@7nL(-9nM^?*_K$9w6%Csqtqaj~rLYA(o)vH*uUM;1jtJkk!!-^dn79Rq# zXw#})dnBMsqqLg&YV_=wvAK|dtpZi|uGze1<x=Vk4HY#6v9f6rjJL64LV5==e*Ee1 zpUIRv9TuoKv**vCLyH~_Yd}YkP*ba3&APSg*RW&Do=v-UZK<!F>fX(}H<;MCUHcyH zgeMv{MtUYE&fG_rI|HC+F`B!%^_xC>@>tIEx_1Iz=t!Tgr~3Ev=+pm>LFGBo#Hek{ zpHIKO{rmXy&zDNNzyJRL26zbne6uVj;DL{*BN>8?Smp<23=Xo{Tb=0wVSn6cqTzv& zF~drR$ZY6|gMC~G35a&3sF_>*8HgZZ3NqMXASTiU2sAN*LSjCr!1xzne^^i;GBt{Z z;$0yMIHNEhZX=?K$^_PAj=}u6$b_d2X<>w1x{@Q4T_UpMSz(IlR+dwhspgt&hRIoc z`o$^doOIS{=WExbcA5%&_UY%JfCeh)poH=n+?|Lfs_3GO)_Evv>P0H)q&)yfop6+9 zs;PQcxJMqGt8GeLcR`RU>QZxHVTY<QJUW&Pr}~D|PD*4~YplD4SH*a(Uh2Y7RRkOC z00+#3>u$5Eft*jK9vhVZuB;YS9;VJVm24VitkG<>D!Eq&uP;0rD!1g8ThbNpMHelB zu$k-byJA>6ZENt>Yi|<rg4*c5{Pyebzc94e=D-9OEE>B8C#>+otsuM@TM$Pq@x&C1 z_2p#@Ly2+5EW+ht#sDt4@xo&k8RmonZwYe97eAPB$uD<YAulF>)=M-=a@cZ-sN9^h zm5jjLqlh@`C^IH;F-RDa2#V}7UpF2Dbc0etor^J32Ys}bG%FpoUlBUZv(+0Gc8bu% zd~LSTe;71#EnffpB+FHkjik?&)t$E7Ij{J~n_R=avVUUp$S~RpWBF0wH4i>l;bb1J zcfyLlt<OK0XRi57=A8Glv*9F9ZgAyDYogWZsHd(vIfSh4x>l{fE_+pfo3?nGj_0mB p$bjR%`|rTF**n0*7jOLWs^tmQHM2MG{PWO9Fa7khUqev@06RuXS;YVV diff --git a/docs/latex/wx/sizer08.bmp b/docs/latex/wx/sizer08.bmp deleted file mode 100644 index 21040933bcd0ab64dcb5de9726d318f5a5623d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6566 zcmeI1y-ve05XW7_#?mk~BTS4)QDH~v$N)5zSc}vbsKmq)p-PrIRqB!vsbb(2nEMD_ z`v`r7a%bnmaUAy&RTYICu^T7%^Z$HKVw&FFf4WTAE7Vs|hEU$1wAd-sj9tU|^D|l6 z(8jV}ukjQc4u@>HT(WoA-)^^TJRY<5<C?8jE4JBe*kZ9@^Z8u(s+CjK06w{_W)~>v zRkQjGuVS9mse<sMU_#=&c6c_P$@H6KIfj<H>Azw^r^7>zn`-tPAOQg6Ni{2j{dWYV zBAmi#G8D$ii9my(qh)}^=qa%4fH!797qZ62<N48&U}yBv%l2PmF!|~8Z4%H-Wz1<Z z9!+(OXUzv2MwuUTii}4Op0{TG;e2A8io(JDKSP@JM=S`PP+u18Ye~GGYRiJ1Y1W^@ z^_(22b6q#<kIde|pV!Hx5k8M1wmR!iE#~=)Vjt@NNa1rtvEyZCjvLJ)+*GrV2MGXN zm53rMgZ;aL%0U!HlcDH1IT2_ObhHeR7(E4c9q`5s=t9=mqIiC^B-j~!^s@b%nOW|h zqkWZm$T2nEp%9**iOW$uN0VR)pYeDO^`1}B@y(`q6k{_Z{sEZ*YGGA)*I6Fh;KlR0 zqjDzj{a(=b11LS%_i;Svk6f7!_yv9sd;|E4832Tgl>uK6$(Zg)$fV3*gm&wBqE~c; zn^4A=>UaYjO%~e|Hg2F~493;R=+N-A&d6K4z<_tg=&^}@uoAtZBj&9a1h6GKyK^96 zMaQ0N=o?2O4KpsrvujSJyHZ2cb*`Os$Q7=){W589<vWGg%3aelf>D3eAney+TF~zg DLsshP diff --git a/docs/latex/wx/sizer08.eps b/docs/latex/wx/sizer08.eps deleted file mode 100644 index 95af5735a0..0000000000 --- a/docs/latex/wx/sizer08.eps +++ /dev/null @@ -1,1329 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer08.eps -%%CreationDate: Sun May 02 2004 15:03:37 -%%BoundingBox: 0 0 98 124 -%%HiResBoundingBox: 0 0 98 124 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 98 124 8 3 1 98 7 "beginimage" -%BeginPhotoshop: 5836 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000007C000000620000000700730069007A0065007200300038000000010000 -% 0000000000000000000000000000000000010000000000000000000000620000 -% 007C000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007C00000000526768746C6F6E670000006200000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000007C00000000526768746C6F6E67000000620000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000FE4000000010000 -% 00620000007C0000012800008F6000000FC800180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108007C0062030122000211010311 -% 01FFDD00040007FFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBE9ADD -% B5B8D7DC006CD8D7D6D04900BA1B643FDAEF6A4A49F68BBF7BF00B99FACDF5EE -% EE819F5E1FD97ED3EA542DDFEA0644BACAF6EDF46DFF0044B7CE46F203316DAC -% 7773DF5BBB8101B5FC77FF006179BFF8CCFF0097A8FF00C28CFF00CF97AB3C96 -% 3864CC2131C51A27B225A0B74FFF001DABBFF2BBFF00071FFBCE97FE3B577FE5 -% 77FE0E3FF79D735F537A867E2FD62E9D4E2E4DB45593998CCC8AEB7B98DB1BEA -% B5BB2E630B5B6B76BDFF004FF7D740DA075DFADDF586AEB391664E2F47AFA8E4 -% E253916DC6861AEC15B1AF6D04E4331592D7BEBC3F4EDFD0D7FF0016AFCF96E5 -% A1220E2F488F1589CF8BF77E55B67BA5FF00C76AEFFCAEFF00C1C7FEF3A5FF00 -% 8ED5DFF95DFF00838FFDE759C71BEA357D7315F90E733A6E4F4FF50B98CC938A -% DCD1EA50F2C6DBF67EA97F4EF5697FF3577ABF69FD17AF5D5EB7A5A9D2FA5B3A -% 5753EB15E574EE9EE03A0DF9989662D97DB4D95B87A7EAD36DF92FBDADCA65B6 -% 63DCF6FA36FA757EADE9576D9664B65879503F9995D71012328FF5787E7F9A2A -% B3DD87FE3B577FE577FE0E3FF79D76BD3BA8DF9D838B9406C39555768AC43A3D -% 46B5FB276B777D25E196BDB65AF7B58DA9AF71736A66E2D68267633D575966D6 -% 7FC258F7AF68FABC4B7A1F4D20C118B41047FC5B143CFF002F8B142071C78493 -% AEA4FE698925D16E558E68735E1CD70904410414FF0069B648DDAB62440D2407 -% 8FFA2EDCB3B21EFC3B1EDC36820B3D5BABDBB9B8F25BFACB6BFCE6595BACBBEC -% 5F99E9FDA7FA27E8958C7AAAAEA1E99DE1FEF7584EE2F2EF73AD7BFF003DCFFD -% E59EB9CAFB7E6FFA7B3FE55F4FE91FA1FE8BFE2BFE0BF9B4903FF92E924A7FFF -% D0E8BA1FFE27FA47FE10C6FF00CF6C57157FAB9FF20F49FF00C218FF00F9ED88 -% BFB4726CC8C8A713A6E4E58C4B0556DB5BB198CDE6BAB276B7ED5978F6BB6D59 -% 157F83494CD70DF5E7EADF5AEADD5A9C8E9F8FEB54CC76D6E76FADBEE0FB5E5B -% 16BD8EFA2F6AEE3ED5D57FF29733FEDDC2FF00E4825F6AEABFF94B99FF006EE1 -% 7FF2414B8734B0CF8E201355EA4116F9455F52BEB7D36B2EA711D5DB5B83EBB1 -% 9754D735CD3B98F63DB76E6B9AE45AFEAAFD78AB30E7D555B5E61739E725B935 -% 8B773E7D57FACDBFD4DD66F7EFF72F52FB5755FF00CA5CCFFB770BFF0092097D -% ABAAFF00E52E67FDBB85FF00C90564FC4B31DE18FB6D2FFBE47007CC99F57FFC -% 615798FCF61C96665ADD96E4B72DA2D7346DF63EE191EA3DBFA3AFF3BF3143FE -% 6D7D7DFB77ED1DB7FDBBFEE5FDA99EB7D1F4BF9FF5FD5FE6BF47F4FF009B5EA1 -% F6AEABFF0094B99FF6EE17FF002412FB5755FF00CA5CCFFB770BFF0092087FA4 -% 72FEE63DABE53F2F6F995C23C5F28B7EA57D6FBAD7DD7623ACB6C717D963EEA9 -% CE739C773DEF7BAEDCE739CBD3BA2D56E274BC0A6E6016E3D14B2CACC386E631 -% AD7B0EDF6BBDCD567ED5D57FF29733FEDDC2FF00E4825F6AEABFF94B99FF006E -% E17FF241459F9B9E6023211023A8E1090298E3D4DC76C564EE9DEEB0997B9E75 -% 75AF7FE758E4ABA6BAB70AC6C6B9DBB60FA2D27E97A6DFCC639DEFD8A5F6AEAB -% FF0094B99FF6EE17FF0024143A4756C6EB3D2ABEA58AD7B29BC3F636D003C6C7 -% 3E976E0C758DFA55FEFAAE970BFF0092E925FF00C9749253FFD1E9BEAE7FC83D -% 27FF000863FF00E7B62BBD03FA4759FF00C3E3FF006CBA72A5F573FE41E93FF8 -% 431FFF003DB15DE81FD23ACFFE1F1FFB65D39253AC924924A52CCB327A9E665E -% 4D1D36DA3199836369B9F9153EF2FB1D5D595FA26539187E9555D3914FE91F65 -% BEB5BEAFE8A8F43D4C9D359D7F4ECFAF26EC8E97935631CA70B3259914BAF6BA -% C6B19436EABD3C9C37D4E75155555ADDF6D5FA1ABD3AE9B3ED1F684A6859F5B2 -% AA6FC36E431B58CA6E5D3E8821D63F331B231BA6B3130DEF752CB5B7DF7647A6 -% FB594FE8BD3C8BFEC95B2F5B78BF6AF41A72FD3F5CC978AA7636492DADAE7FBA -% CF4DBFA3F5B655EB7F3BE851FCCD746AE818B5DD4B89F5A9AE8CBA6FAAE687FA -% CECDB68CACABAEFA357E92DA2DF529653E8FEB1FA3F46AAFD25730F1EDC6A8D2 -% FB9D7B1AEFD0BAC93636B81B6ABAE739CEC8756EDDB6F7FE95F57A7EBFAF91EA -% E4DE949D24924948737FA1DFFF0016FF00FA92B90FF17DFF0088BC1F85FF00F9 -% FAF5D7E6FF0043BFFE2DFF00F525721FE2FBFF0011783F0BFF00F3F5E92907FF -% 0025D24BFF0092E924A7FFD2E9BEAE7FC83D27FF000863FF00E7B62A9D47EA8D -% 39F997E57ED3EA38A321CDB2CA31AF15D5BDAC663FA82AF4DDEF7554B3DEADFD -% 5CFF00907A4FFE10C7FF00CF6C5AC2A1B5AE73DADDC2403BA624B7F35A7C1253 -% CA7FCC2C7FFCB9EADFFB123FF48A5FF30B1FFF002E7AB7FEC48FFD22BABF4D9F -% E95BF73BFF002097A6CFF4ADFB9DFF0090494F29FF0030B1FF00F2E7AB7FEC48 -% FF00D2297FCC2C7FFCB9EADFFB123FF48AEAFD367FA56FDCEFFC825E9B3FD2B7 -% EE77FE41253CA7FCC2C7FF00CB9EADFF00B123FF0048A5FF0030B1FF00F2E7AB -% 7FEC48FF00D22BABF4D9FE95BF73BFF2097A6CFF004ADFB9DFF90494F29FF30B -% 1FFF002E7AB7FEC48FFD2297FCC2C7FF00CB9EADFF00B123FF0048AEAFD367FA -% 56FDCEFF00C825E9B3FD2B7EE77FE41253CA7FCC2C7FFCB9EADFFB123FF48AD9 -% E91D271BA374AAFA6E2B9EFA680FD8EB482F3BDCFB9DB8B1B5B7E959FB8B4BD3 -% 67FA56FDCEFF00C82A78D994E6E3BEEA24D62CBAA04F734D96633DCD89F63DF4 -% EEAFFE0D253CE7FF0025D24BFF0092E924A7FFD3E9BEAE7FC83D27FF000863FF -% 00E7B62D6B3E855FD53FF54F593F573FE41E93FF008431FF00F3DB16B59F42AF -% EA9FFAA7A4A60924924A52CD7E4751CBCAC8A7A7D94E3B309E2AB5F7D4EB8BEC -% 7575E4FE8D9564627A75D755F57BDCFB3D5B3D4FD153E8FA991A4B3EEC0CDAF2 -% 2DBFA6E4558E725C1F90CBE975ED2F6B594B6DABD3C8C47D4E7535575D9EFB2A -% FD155E9D7559EBFAE94D27FD67AEABB11B7B5B58C96E555E8820BDF978F918FD -% 3D98D88F79A59636EBADBF63ED655FA2D97DDF65AFD65B18DF69F45A72B67AC6 -% 4BC553B04996B1AE7FBACF4DBECF576D7EB7F3BE8D1FCCB2957D0F1996D2E27D -% 5A994E4D37576B43BD5766594E4E4DB6FD1AFF004965366FA5B4FA3FA7FD1FA5 -% 5B3D356F128B31EB353ED75CC6BBF42E7C978640DB5DB6B9CE75EE63B77E99FF -% 00A5F4BD3F5FD6BFD4C8B9293A49249294B1BEABFF00C87FFA1199FF00B7592B -% 65637D57FF0090FF00F42333FF006EB2525399FF00C97492FF00E4BA4929FFD4 -% E9BEAE7FC83D27FF000863FF00E7B62266F4CCACBB778EA9978CC02194D1E806 -% 347783662DB73B73BDFF00A4B5E87F573FE41E93FF008431FF00F3DB16B0A86D -% 6B9CF6B770900EE9892DFCD69F0494E2FEC1CAFF00CBAEA1F7E3FF00EF1A5FB0 -% 72BFF2EBA87DF8FF00FBC6B6BD367FA56FDCEFFC825E9B3FD2B7EE77FE412538 -% BFB072BFF2EBA87DF8FF00FBC697EC1CAFFCBAEA1F7E3FFEF1ADAF4D9FE95BF7 -% 3BFF002097A6CFF4ADFB9DFF0090494E2FEC1CAFFCBAEA1F7E3FFEF1A5FB072B -% FF002EBA87DF8FFF00BC6B6BD367FA56FDCEFF00C825E9B3FD2B7EE77FE41253 -% 8BFB072BFF002EBA87DF8FFF00BC697EC1CAFF00CBAEA1F7E3FF00EF1ADAF4D9 -% FE95BF73BFF2097A6CFF004ADFB9DFF90494E2FEC1CAFF00CBAEA1F7E3FF00EF -% 1AB7D3FA7D7D3700625563ED6B4D8F365BB77975AF7E4585DE932AAFF9CB5DF4 -% 6B57FD367FA56FDCEFFC82A78D994E6E3BEEA24D62CBAA04F734D96633DCD89F -% 63DF4EEAFF00E0D253CE7FF25D24BFF92E924A7FFFD5E9BEAE7FC83D27FF0008 -% 63FF00E7B62D6B3E855FD53FF54F593F573FE41E93FF008431FF00F3DB16B59F -% 42AFEA9FFAA7A4A60924924A52CD7E4751CBCAC8A7A7D94E3B309E2AB5F7D4EB -% 8BEC7575E4FE8D9564627A75D755F57BDCFB3D5B3D4FD153E8FA991A4B3EEC0C -% DAF22DBFA6E4558E725C1F90CBE975ED2F6B594B6DABD3C8C47D4E7535575D9E -% FB2AFD155E9D7559EBFAE94D27FD67AEABB11B7B5B58C96E555E8820BDF978F9 -% 18FD3D98D88F79A59636EBADBF63ED655FA2D97DDF65AFD65B18DF69F45A72B6 -% 7AC64BC553B04996B1AE7FBACF4DBECF576D7EB7F3BE8D1FCCB2957D0F1996D2 -% E27D5A994E4D37576B43BD5766594E4E4DB6FD1AFF004965366FA5B4FA3FA7FD -% 1FA55B3D356F128B31EB353ED75CC6BBF42E7C978640DB5DB6B9CE75EE63B77E -% 99FF00A5F4BD3F5FD6BFD4C8B9293A49249294B1BEABFF00C87FFA1199FF00B7 -% 592B65637D57FF0090FF00F42333FF006EB2525399FF00C97492FF00E4BA4929 -% FFD6E9BEAE7FC83D27FF000863FF00E7B62266F4CCACBB778EA9978CC02194D1 -% E806347783662DB73B73BDFF00A4B5EB8CC1FF00C717F66E0FD8FEC7F64FB251 -% F66F1F4FD367A7BFD4F77ABB7F9DFF0084FE6FF468DFFAF3BFEE9FFD1494F4BF -% B072BFF2EBA87DF8FF00FBC697EC1CAFFCBAEA1F7E3FFEF1AE6BFF005E77FDD3 -% FF00A297FEBCEFFBA7FF0045253D2FEC1CAFFCBAEA1F7E3FFEF1A5FB072BFF00 -% 2EBA87DF8FFF00BC6B9AFF00D79DFF0074FF00E8A5FF00AF3BFEE9FF00D1494F -% 4BFB072BFF002EBA87DF8FFF00BC697EC1CAFF00CBAEA1F7E3FF00EF1AE6BFF5 -% E77FDD3FFA297FEBCEFF00BA7FF45253D2FEC1CAFF00CBAEA1F7E3FF00EF1A5F -% B072BFF2EBA87DF8FF00FBC6B9AFFD79DFF74FFE8A5FFAF3BFEE9FFD1494F4BF -% B072BFF2EBA87DF8FF00FBC6ADF4FE9F5F4DC0189558FB5AD363CD96EDDE5D6B -% DF916177A4CAABFE72D77D1AD71FFF00AF3BFEE9FF00D14BFF005E77FDD3FF00 -% A2929D0FFE4BA4B9EFFB37FF00BA7FD33CFF00A57FAFFD652494FF00FFD93842 -% 494D042100000000005300000001010000000F00410064006F00620065002000 -% 500068006F0074006F00730068006F00700000001200410064006F0062006500 -% 2000500068006F0074006F00730068006F007000200043005300000001003842 -% 494D042200000000012E4D4D002A000000080007011200030000000100010000 -% 011A00050000000100000062011B0005000000010000006A0128000300000001 -% 00020000013100020000001B0000007201320002000000140000008D87690004 -% 00000001000000A4000000D00000004800000001000000480000000141646F62 -% 652050686F746F73686F702043532057696E646F777300323030343A30353A30 -% 322031353A30333A3336000000000003A001000300000001FFFF0000A0020004 -% 0000000100000062A0030004000000010000007C000000000000000601030003 -% 0000000100060000011A0005000000010000011E011B00050000000100000126 -% 01280003000000010002000002010004000000010000012E0202000400000001 -% 0000000000000000000000480000000100000048000000013842494D03FD0000 -% 000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6115 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6115 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>98</exif:PixelXDimension> - <exif:PixelYDimension>124</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:36-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:36-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:36-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:d0bb59ca-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:e2e9dee0-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 124 def -/cols 98 def -98 124 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 98 string def -/picstr2 98 string def -/picstr3 98 string def -/picstr4 98 string def -/_rowpadstr 98 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 58524 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzz -zz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWz!!!$!s8W-!s8W*!zzzz!<3$!zz`Pog8`PqjuF2c,;`Pogr -F*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zz!<<*!s8W-!rr<$!zz -z!!!$!zz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7egVs8W-!s8W+OK7ef/K7ef/K7ef/K7ef/KE$RVK7ef/K7ef/ -`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%fcS/s8W-!rsfMK%LrsY%LrsY%LrsY%Ls!K%LrsY%LrsY%M$Is`Pog8 -s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'! -zzzzzs8N'!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzs8N'!zzzz!!*'!zz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/K7ef/K7ef/ -K7ef/K7ef/s8R_(K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%LrsY%LrsY%LrsY%LrsY -%M&O=%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!z!<<*!rr<$!!<<*!s8N*!s8W-!zz`Pog8`Pog8 -s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$! -s8W*!!!!$!s8W-!!<<*!s8N'!z!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVKE(uO -s8R`Os8W-!K7ef/K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%Ls!Ks8W-!%fcS/ -s8NQ=%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-! -s8W-!`Pog8`PhfWzz!!*'!zs8N'!s8N'!s8N'!zs8N'!zz`Pog8`Pog8`W("#s)W8# -`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8zzzs8N'!!!*'!!!*'!!!*'! -z!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-! -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8R_(K7ef/s8R_(K7ef/K7ef/ -`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8 -%LrsY%LrsY%LrsYs8NQ=%M&O=%M&O=%M&O=%LrsY%M&O=%LrsY%LrsY%M$Is`Pog8 -`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzz!!*'! -zs8N'!s8N'!s8W*!zs8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8 -`Pqkr`Pog8`Pog8`H0#;`Pog8zzzs8N'!!!*'!!!*'!!!*'!rr<$!!!*'!zz!!(!W -`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^ -K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8W+OK7ef/s8R_(K7ef/K7ef/`Pog8`Pog8 -`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#;`Pog8%LrsY%LrsY -%LrsYs8NQ=%M&O=%M&O=%M&O=rsfMK%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzz!!*'!zs8W-!s8N'! -!<<*!rr<$!s8N'!zz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDD -F)uDDF*#;u`Pog8zzzs8N'!!!*'!s8W-!!!!$!s8W*!!!*'!zz!!(!W`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/ -K7j4(K7ef/s8W-!s8R_(KE(uOs+>rVs8R_(K7ef/K7ef/`Pog8`Pog8`PqjuF*#=> -`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#<C`Pog8%LrsY%LrsY%LrsYs8NQ= -%M&O=s8W-!%Ls!Ks8W*/%M&O=%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!z!!!$!s8N'! -s8N'!zz`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzs8N'!!!*'!zz!<<*!!!*'!zz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(K7ef/ -K7egVs8R_(s8R_(K7ef/K7ef/`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%LrsY%LrsY%fcS/ -%M&O=%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzz!!*'!zs8N'!!<3$!zs8N'!s8N'!zz`Pog8`Pog8s)W8# -`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!*'!!!!$! -z!!*'!!!*'!zz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/s8R_(KE$RVK7ef/s8R_(s8R_(K7ef/ -K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsYs8NQ=%M&O=%Ls!K%LrsY%M&O=%M&O=%LrsY%LrsY%M$Is -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zz!!*'!z!<<*!rr<$!s8W-!rr<$!!<<*!zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzs8N'!!!!$!s8W*!!!*'!s8W*!!!!$! -s8N'!z!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVs8W-!s+>rVKE(uOK7ef/K7ef/ -`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%M&O=s8W*/%Ls!Ks8NQ=%LrsY%M$Is`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzz`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzz -zzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX -@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eH#XL -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W*!!7fWMe^_XX@K>9A`PpBXe^`1Ms8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!rr<&Le^`4#`Pl9dhVQ5je^`4#eH#XLs8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W*!!7fWMe^_XX@K>9A`PpBXe^`1Ms8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!rr<&Le^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC -!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJm7;e^`4# -`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC!7fWMe^_XX@K>9A -`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJm7;e^`4#`Pl9dhVQ5je^`4# -eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DF -e^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX -@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5j -e^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1M -s6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKC!!!#emdBKCmdBN2!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mJm4e!:K:CmJu\Cmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBKC!!!#emdBKCmdBN2!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWM -e^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJm4e -!:K:CmJu\Cmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9d -hVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)CmdBKCmdBKC -mdBKCmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBX -e^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!:K:CmJu\CmJu\CmJu\C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X; -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)CmdBKCmdBKCmdBKCmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!:K:CmJu\CmJu\CmJu\CmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2!:K7Tmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBKCmdBN2md:)CmJu\C!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mJu\CmdBN2!:K7Tmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN -!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC -mdBN2md:)CmJu\C!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4# -`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2 -!:K7TmJu\CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A -`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCmdBN2md:)CmJuYT -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4# -eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2!:K7TmJu\CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCmdBN2md:)CmJuYTmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2!:K7T!!)HTmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKCmdBN2md:)CmJm4emdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mJu\CmdBN2!:K7T!!)HTmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBKCmdBN2md:)CmJm4emdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DF -e^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJu\C -mdBN2!:K7Tmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX -@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCmdBN2md:)C -mJu\C!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5j -e^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2!:K7Tmd:)C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1M -s6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCmdBN2md:)CmJu\C!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJu\CmdBN2!:K7TmdBKCmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBKCmdBN2md:)CmJu\CmJu\CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mJu\CmdBN2!:K7TmdBKCmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBKCmdBN2md:)CmJu\CmJu\CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -md:)CmdBKCmdBKCmdBN2!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWM -e^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!:K:C -mJu\CmJu\Cmd:)CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9d -hVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md:)CmdBKCmdBKC -mdBN2!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBX -e^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2!:K:CmJu\CmJu\Cmd:)C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X; -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC!!!#emdBKCmdBN2mJu\CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJm4e!:K:CmJu\CmdBKCmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBKC!!!#emdBKCmdBN2mJu\CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mJm4e!:K:CmJu\CmdBKCmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN -!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4# -`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A -`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4# -eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DF -e^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX -@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5j -e^`4#eH#X;mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1M -s6f=CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2md?kN!7fWMe^_XX@K>9A`PpBXe^`1Ms6f=CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;Unjf^Unjf^Unjf^Unjf^ -Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^ -Unjf^Unjdd!7fWMe^_XX@K>9A`PpBXe^`1Ms6c\YUnjf^Unjf^Unjf^Unjf^Unjf^ -Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^ -U]:DFe^`4#`Pl9dhVQ5je^`4#eH#X;Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^ -Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjdd!7fWM -e^_XX@K>9A`PpBXe^`1Ms6c\YUnjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^ -Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^Unjf^U]:DFe^`4#`Pl9d -hVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzz -zzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4# -eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzz -zzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A -`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A -`PpBXe^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4# -ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`4Ms8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZM -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".M -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".M -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds!7fWMe^_XX@K>9A`PpBXe^`4MeWc;_ -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9dhVQ5je^`4#ec40aPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%Ds!7fWMe^_XX@K>9A`PpBXe^`4MeWc;_Pa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsP`u0ue^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4# -eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzz -zzzz!!!#Le^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#ec5[Ls8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`4Ms8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8N)Le^`4#`Pl9dhVQ5je^`4#ec5[Ls8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!!7fWMe^_XX@K>9A`PpBXe^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8N)Le^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4# -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -eH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU" -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRL -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL -!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9d -hVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBX -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A -`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#`Pl9dhVQ5je^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX -@K>9A`PpBXe^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5j -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^_XX@K>9A`PpBXe^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#`Pl9dhVQ5je^`4#ec40aPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Ds!7fWMe^_XX@K>9A`PpBXe^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -P`u0ue^`4#`Pl9dhVQ5je^`4#ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds!7fWM -e^_XX@K>9A`PpBXe^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#`Pl9d -hVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^_XX@K>9A`PpBXe^`1Mzzzzz -zzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^_XX@K>9A`PpBXe^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`dHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer08.gif b/docs/latex/wx/sizer08.gif deleted file mode 100644 index 4e32edca1ad927d335aeb896a9dfb7dd06b2d93a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcmV-w1eN<oNk%v~VPXJ$0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#JR?(U?d zq?DAD000000000000000EC2ui0Ac`q06+x)5XecZy*TU5yA9GHj$~<$M5?Mq>$Ynw zv$JXzhH>Yn00O6=u(pB~U98u!P&?stqvy#N8X&INtai)odcWXsSVRR{vw=cl&2GEj z@VI<Vmn#ARE%_(Xrt5%i0dIo|g@u8McX?TRReov;l9QB`mY0~Bnwyz;dIM#BVxy#` zrlXE#S_P-AuC5D=SgE2|tgl|OSd6^5U$LK|XSTk@##+FQpnSu}&d*!4%?P*9)}_g_ z%a2*r&$?H=2;k1ySJJE3>Z9fe(n9d@^7HidLBjSXMEm^xEBRBHkthHU3W<J3QW#m7 zP$3f{@SYe9SOwrge;6~`ut-AKx{tp9(4kS2C=nt<Y!IC+IcHHYW{_CQoJli*OJyEG z>O3WKr%y3GuXy{0W|vWG?SfMK=`-mzRZOFHQ7W~n(xJ|D$=Z6&X-;BQ*Lj5*w(L8O zXw#}Kfe)?5xBk|)<%sZMl7=ss<Za@F#{el5&7`e+ga{G>4P^*<0yywmxR4>1z!8Kp zTY+mcYqs~btW>3G@`@f!y0q!js7ZUmNp=^>ny_QTxv8!5xYx2%5?V88W$rb!&poXb z4)<@Ax_P(p9Xq(Y;nV&cpFYz$Xgt`nYv0bjyZ7(l!>_L0+H+K@=67CAZw=gf_T}6| zPuG4+FLLo;asylc=(wWLjJ2QtQ1Io)+JNJTr{IDNHkh4$P!*`&d=gG*8&(yzBHx7> z`XXS21oj7D9{3&eA#qDxqm_UE1-M~(DRv0UiwHVs<Bd3uC!B3ELgR=4Kn5w~kVF<~ z<dH}wspOJF{@}rrP(~@G2Xk#^<&~FJ<W^){{-aiv0Cg!Q0XtMS(OGoylUPP;dO4Y2 zA~e<!W^taTkD7KN_7Fodw7F4V2FRJEU{T~?=%G9uaM3<^?d4EHex?wSq40p24`E5r z5Cfl*?Er<KBUozBm|c2m>Y$I28kt;lTBPc#U$%<ntef%JqciB;YRq*x_Ufy55TYm@ zb;O!PBZ#*Zt85+CQRtfgve_*s?R3rBHtcb}9ikku)xvn~Z`tyOhqB$)Xk2dLBB$<g z<s$nnw%ARZ+;8m)d+xIM0;l71*4~@%vh_yy>%asbi=wW_<ccsZ3NP$R!w&Q0Y{bP} zmD<G^XRNUc22X<_#ao={G00(vOrMI_0T>Qa9iL2;A1k-Wa<C(dcvQ;jnB0wu_Qfpo zGdlCv9?m`&ZA{Q1lI#W2F)Gak)2u8Y_0&{XZS~byXRY<tTes}=D-eJEMc86bHF4Rb zkc~FYt8DD{+i-g=^x9CbokiX1Jjh~+xZn*9IpXl`q1;KoJmS7U6W(-IJ<BZkD}E2H wBRG$r5;@(9fBbbH-CTF>`RAZtt+?G_s7*S*FrMxOnzXjgYQeC_4qgNRJ1@pSxBvhE diff --git a/docs/latex/wx/sizer09.bmp b/docs/latex/wx/sizer09.bmp deleted file mode 100644 index a29ca7601ccb50b8b64b6558c2a3f7cf8432a5bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13798 zcmeI3J+IR+6oy^I#&W~d6(+<Q6?T-441A;tj792<REa%8mC_NZ4E&(}gsvU=8|6JV zH?0%fwVm|Zy7K8wZa&@{KY7oo?S9;M@Bhvij~`gS!t#2;*jN0Xu&4a^cbtFzOe}Xe zLd)@Z<mZ;lCEM@!>?ih4rxRPR*X-`&ksS^Pw%hHvMzzXf41hj)8DG301M~PIZmuS_ z$c10AVKs@%EhW+WwJGC?syWx!_D?(^abYKt*d{KgOeDXY>}rx<kJYc*azZ^N18yen z*OyaM8_OYr--L@;!BtreM!!T;c2%==7OS|d+Dcpv@64LIN`5IF;KgWBUv)NZYIF(m zMKtxL7HjI>AhzHlDnRk4)R|4gr50<r4C3ot<kOUsouRO$=F*7OTqdzKSH~_hS66K0 zQi^T4GRdqfe)YsAF16T}i#(UYl*gXf#HAM7a&^l-d>%nWRo}fWwO<;s+Aov%x?h;f z5LwqS4VPN1;WCIVxTLabcQjn>d1*t#C286nE>2ucvuQ0cZVdCQ=G~!7Q$xAz-qZQu z!X=(GmN&u0iu!VS-C_IAl(-4IJ1$Aw=Q8I0!A>SFH>;Ch$uBnt+|;SQ2Kt4WR-Ms| zO$>l;R~t{=%OjrwPKj&0Mm(;h=ED3GFBwCI%vDx2W6m&f&ah!SC|eH4Zn8@HeCW5B z$qTM8R&UVVNOZ|Xi4*k|JdcDTef|h8@q9!w14oxj;DoJvVz}hOWc9yKad8Dsoz(oL zU($)dJBiCJ0m-jN<yZRtm#qW6@1+&t;*vRWUC%?rel3WNR*~g#@h#71t1-FCqL`PT zixSHm+dcstVj{Nj`~pi^%z;zl;TOOG6t`<+F7UvtAzZT+x2xq^tSH{*x!<jlO~@e} zqg;AkgZ#=DR9)vhexjW>SUj)Exv&D(s9fTe=LlT5uOWVQ^GJ5_7~mJ>a9)=9@w*7M ze~Y@mr}4xpfHihM0gtG%L{M+x6Wp$``&A#1&fgFhmKet&!r~Fx_;`=i_N(oIj<*lF f+cIFI=hx-QfZI`Xss5=b@G<UJU<Ot56CC^pM?rZ_ diff --git a/docs/latex/wx/sizer09.eps b/docs/latex/wx/sizer09.eps deleted file mode 100644 index 7d2a900fc6..0000000000 --- a/docs/latex/wx/sizer09.eps +++ /dev/null @@ -1,2305 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer09.eps -%%CreationDate: Sun May 02 2004 15:03:30 -%%BoundingBox: 0 0 298 90 -%%HiResBoundingBox: 0 0 298 90 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 298 90 8 3 1 298 7 "beginimage" -%BeginPhotoshop: 4892 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000005A0000012A0000000700730069007A0065007200300039000000010000 -% 00000000000000000000000000000000000100000000000000000000012A0000 -% 005A000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000005A00000000526768746C6F6E670000012A00000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000005A00000000526768746C6F6E670000012A0000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000C34000000010000 -% 00A000000030000001E000005A0000000C1800180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108003000A0030122000211010311 -% 01FFDD0004000AFFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E8BEAFBACFF9BFD336B8 -% 8030B18C4C7F82A94BABE6E4E374BCEBE8B1CCBA8C6B6DADFC80E6B1EE61F77B -% 1DB5CCFA2A3F57AB73BA074B223FA1637FE79A958EA1D39F9B819387BC57F69A -% 9F56F89DBBDA6BDDB7DBBB6EE4E85710BDAC5A9F2BFF009FDF5BBFF2C0FF00DB -% 757FE924BFE7F7D6EFFCB03FF6DD5FFA49741FF8D33FFF002D07FDB1FF00A9D2 -% FF00C699FF00F9683FED8FFD4EB5FDFF0087F687FE17FF00A02CA93CFF00FCFE -% FADDFF009607FEDBABFF004925FF003FBEB77FE581FF00B6EAFF00D24BA0FF00 -% C699FF00F9683FED8FFD4E97FE34CFFF00CB41FF006C7FEA74BDFF0087F687FE -% 17FF00A02AA4F3FF00F3FBEB77FE581FFB6EAFFD2497FCFEFADDFF009607FEDB -% ABFF00492E83FF001A67FF00E5A0FF00B63FF53A5FF8D33FFF002D07FDB1FF00 -% A9D2F7FE1FDA1FF85FFE80AA93CFFF00CFEFADDFF9607FEDBABFF492DBA7EB07 -% 5FC9E9D8F938DD72F39190EB986BB70E86555FD96BA733A85B66432DBAEF428C -% 6C875B5FA587664647A3B3ECC8BFF8D33FFF002D07FDB1FF00A9D159FE2C732B -% 60AEBEB4F631BEA6D6B6A7003D668A72200C8FFB514B7D2BBFD2D5FA37A6CB37 -% 226B87823FF52FFD76AA97F22C3A7E5FD74CCCA34BBEB0E30AD996CC47DB4563 -% 29BFA435328BDB661625B8ECAB27ED1B317ED99187EADECBA8FD1594DDE9F3F6 -% FD7BFAD95DAF637A9FAAD638B5B6B2AAC35C018DECF568AECDAFFF0084AD8F5D -% 2D7FE2DBA8D56FAD5F5DB196ED633D46D6E0EDB51ADD8ECDE32776DA1D8F47A3 -% FE8BD0A767F3681FF8D33FFF002D07FDB1FF00A9D08E5E4812646076A1ED7DBF -% A0AA97F22F3FFF003FBEB77FE581FF00B6EAFF00D2497FCFEFADDFF9607FEDBA -% BFF492E83FF1A67FFE5A0FFB63FF0053A5FF008D33FF00F2D07FDB1FFA9D3FDF -% F87F687FE17FFA02AA4F3FFF003FBEB77FE581FF00B6EAFF00D2497FCFEFADDF -% F9607FEDBABFF492E83FF1A67FFE5A0FFB63FF0053A5FF008D33FF00F2D07FDB -% 1FFA9D2F7FE1FDA1FF0085FF00E80AA93CFF00FCFEFADDFF009607FEDBABFF00 -% 4925FF003FBEB77FE581FF00B6EAFF00D24BA0FF00C699FF00F9683FED8FFD4E -% 97FE34CFFF00CB41FF006C7FEA74BDFF0087F687FE17FF00A02AA4ECFD46EB3D -% 53AB749BB233F20DB736F7D6C790180015D4F635DE8B5BEDDEFF00A7B1EF5BD5 -% E53AC3EC73B41EF93C121AE635BCB6DDD5BBD4F56BFD0ECF4BD1B2EFF079DF56 -% 7EAD59D0302CC3193F68365AEB7D40D3591B98CAA1B0FB3DCDF4F77A9BD6A7D9 -% B686900015B76B40D21BF4B67F55BF99FE8FF49FE92C5979CC0E599C75C04FA6 -% 870FE0B86CFF00FFD0EA7EAAB5AEE83D303A6061504C6874A2B729578FD4597E -% 4BDB7B0576E4B2C635ED759140A68A6DA2B1EA51F67B1F9155D6B5FF00A6ABF4 -% 9FCD7E9137D54FF907A6FF00E10A7FF6DD8ABDEDCDCBEB5918B5E75D874D18D8 -% F6B594B6832FB6CCC658E7BB2B1F25DF471AAFA2929D1C26E4B585D9AE0FB1EE -% 2E35D7A32B0400DA2A7966FB1AC8F75D6B77DD67A967A78F57A78D4599A3F71D -% FE70FF00C82CAFD959DFF9739BFE661FFEF02A99B56762D95515F51EA3979173 -% 5EF6514B3003B65658DB6DDF938B8F4ED63EFA59FCEFABFA5FE6FF009CD894F4 -% 1347EE3BFCE1FF00904A68FDC77F9C3FF20B9FC3166739BF63EB59D754EA9B71 -% B8578818D16065B456FDF82D7FAF6D367ADE8ECDF555FD23D1F5F1BD6B7FB2B3 -% BFF2E737FCCC3FFDE0494EACD1FB8EFF00387FE4129A3F71DFE70FFC82C3B6AC -% FC1CFE9C0F51C8CAAB2B21F4DB55CCC70D2D18F9590DF763E2E3DAD736DC7AFF -% 00C22DA6B83665A1DF19FF00BE96A4A65347EE3BFCE1FF00904A68FDC77F9C3F -% F2097A8CFF0044DFBDDFF9343C9C934D2EB2BC4392F6C4535101EE931ED37DF4 -% 55EDFA5EFB525249A3F71DFE70FF00C825347EE3BFCE1FF9054BA6F5CE9BD4CD -% C30C35FE87A44CEE04B2EAABCBA2E159B3D46D765777F85657FA4AEEFF0046AE -% FA8CFF0044DFBDDFF93494A9A3F71DFE70FF00C825347EE3BFCE1FF9043BAE01 -% D5B5B5B47A8EDA4FBA400D7BF4977F2149AE0D996877C67FEFA5A92994D1FB8E -% FF00387FE4129A3F71DFE70FFC825EA33FD137EF77FE4D56CEEA5561B2BFD58D -% F6DEFF004A8A2AFA6F7ED7DCE6B5D75D4D2DDB4D36DBFA5B6BFE6FFD26C624A6 -% CCD1FB8EFF00387FE4129A3F71DFE70FFC82A5575AC3BBA85DD3AAA0BF2319E1 -% 97C4ED634D55E4B2E7BBD5F6D767ACDA2AFF000D6DDEB7A757A38F9175577D46 -% 7FA26FDEEFFC9A4A54D1FB8EFF00387FE4106CB185EFAD8D2DDAC0E24BA6776F -% 1FBADFDC55FACE6598F86C7D0D6D6F764E2545C249D96E4E3D1737DE5EDF7D36 -% 3D8887FA45DFF14CFCB724A7FFD1EABEAA7FC83D37FF000853FF00B6EC55729F -% D4713ACDF958FD3EDCEAAFC6C7A83AAB29600EA9F98FB03BED3752FF00A39357 -% D162ABD03EB1742A3A0F4FA5FD531A8B9989431E0DD507348A6B658C736C2EDA -% EFA4C76E6AB5FF00387A07FE5E63FF00DBD47FE452532FDAFD67FF0028B27FED -% EC5FFDE9503D4FAA9B1B69E8179B58D2D6BFD5C4DC1AE2D73D8D77DA776D7BAB -% AF7FFC5A7FF9C3D03FF2F31FFEDEA3FF002297FCE1E81FF9798FFF006F51FF00 -% 914948AACACFA6C65B4FD5EBEA75750A1A19762B5BE9B4CD757A6CCA15B9B4FF -% 0080F6FE83D4BBD1D9EB5A8FFB5FACFF00E5164FFDBD8BFF00BD2A3FF387A07F -% E5E63FFDBD47FE452FF9C3D03FF2F31FFEDEA3FF002292981BBAB67F50E9C6DE -% 976E2538B7BEEB6EB2DA1C0038F958ED6ECA2FB6CF75990CFCC5A799957E3ECF -% 470EECCDD3BBD1348DB11F4FED77E37D39FF0007BD67FF00CE1E81FF009798FF -% 00F6F51FF914BFE70F40FF00CBCC7FFB7A8FFC8A4A4FFB573BFF0029B37FCFC3 -% FF00DEF517F51CD7B98E3D1F381ADDB9B16E2B44C399EF6B7A806D8DDAFF00A1 -% 67B37FE93F9CAD885FF387A07FE5E63FFDBD47FE452FF9C3D03FF2F31FFEDEA3 -% FF002292958B916618B062F42CBA5B6B9AE735AFC40D9632BC666C67DBF6D6D6 -% 518F4D7B2BF67B11FF006AE77FE5366FF9F87FFBDE81FF00387A07FE5E63FF00 -% DBD47FE452FF009C3D03FF002F31FF00EDEA3FF22929B1566666464D0C7F4DC9 -% C6635C5CEBAD7631681B2C6F18F977DBEE73BF36A563332AFC7D9E8E1DD99BA7 -% 77A2691B623E9FDAEFC6FA73FE0F7ACFFF009C3D03FF002F31FF00EDEA3FF229 -% 7FCE1E81FF009798FF00F6F51FF914949FF6AE77FE5366FF009F87FF00BDEA2F -% EA194F731CFE8996E754EDD592EC325AE21D5EF67EBDED77A763D9FD47A17FCE -% 1E81FF009798FF00F6F51FF914BFE70F40FF00CBCC7FFB7A8FFC8A4A474FE82D -% 17D7D0F385C1DBBD575D8EE793E9D788EF52C7F5273ED6BE9C6C7F51967B2CB6 -% 8AB21FFAC57EAAB7FB573BFF0029B37FCFC3FF00DEF40FF9C3D03FF2F31FFEDE -% A3FF002297FCE1E81FF9798FFF006F51FF0091494C73EFEA39F5538EDE97934F -% EB38B6BADB5F8BB1ACA7228C9B5CEF4B32DB3F9BA9FF0042B5A87FA45DFF0014 -% CFCB72CDFF009C3D03FF002F31FF00EDEA3FF229DBF587EAE34BDC7AC62D8E7B -% 4365D7D3C0DD1F4367EFA4A7FFD93842494D0421000000000053000000010100 -% 00000F00410064006F00620065002000500068006F0074006F00730068006F00 -% 700000001200410064006F00620065002000500068006F0074006F0073006800 -% 6F007000200043005300000001003842494D042200000000012E4D4D002A0000 -% 00080007011200030000000100010000011A00050000000100000062011B0005 -% 000000010000006A012800030000000100020000013100020000001B00000072 -% 01320002000000140000008D8769000400000001000000A4000000D000000048 -% 00000001000000480000000141646F62652050686F746F73686F702043532057 -% 696E646F777300323030343A30353A30322031353A30333A3239000000000003 -% A001000300000001FFFF0000A0020004000000010000012AA003000400000001 -% 0000005A0000000000000006010300030000000100060000011A000500000001 -% 0000011E011B0005000000010000012601280003000000010002000002010004 -% 000000010000012E020200040000000100000000000000000000004800000001 -% 00000048000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6115 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6115 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>298</exif:PixelXDimension> - <exif:PixelYDimension>90</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:29-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:29-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:29-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:d0bb59c6-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c7-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 90 def -/cols 298 def -298 90 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 298 string def -/picstr2 298 string def -/picstr3 298 string def -/picstr4 298 string def -/_rowpadstr 298 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 124846 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8 -`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzz!!!$!s8W-!s8W*!zzzz!<3$!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8 -`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzz -zzzzzzzzzzzzzzzzzzzzzzz!<<*!s8W-!rr<$!zzz!!!$!zzzzzzzzzzzzzzzzzz -zzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7egVs8W-!s8W+OK7ef/K7ef/K7ef/K7ef/KE$RVK7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%fcS/s8W-!rsfMK%LrsY%LrsY%LrsY%Ls!K%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzz!!*'!zzzzzs8N'!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`PogrF*#=> -`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzz -zzzzzzzzzzzzzzs8N'!zzzz!!*'!zzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7j4(K7ef/K7ef/K7ef/K7ef/K7ef/s8R_(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,; -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ=%LrsY%LrsY -%LrsY%LrsY%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzz!!*'!z!<<*!rr<$! -!<<*!s8N*!s8W-!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8s)W8#`W("#`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzz -zzzzs8N'!!!!$!s8W*!!!!$!s8W-!!<<*!s8N'!zzzzzzzzzzzzzzzzzzzzzzzzz -z!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVKE(uOs8R`Os8W-!K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8s)W8# -`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ= -%Ls!Ks8W*/%Ls!Ks8W-!%fcS/s8NQ=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzz!!*'! -zs8N'!s8N'!s8N'!zs8N'!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`W("# -s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8zzzzzzzzzzzzzz -zzzzzzzzzzzzzzs8N'!!!*'!!!*'!!!*'!z!!*'!zzzzzzzzzzzzzzzzzzzzzzzz -zzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8R_(K7ef/s8R_(K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`W("# -s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ= -%M&O=%M&O=%M&O=%LrsY%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzz!!*'! -zs8N'!s8N'!s8W*!zs8N'!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pqju -F*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#;`Pog8zzzzzzzzzzzzzz -zzzzzzzzzzzzzzs8N'!!!*'!!!*'!!!*'!rr<$!!!*'!zzzzzzzzzzzzzzzzzzzz -zzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof; -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8W+OK7ef/s8R_(K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8 -`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#;`Pog8%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -s8NQ=%M&O=%M&O=%M&O=rsfMK%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzz!!*'!zs8W-!s8N'!!<<*!rr<$!s8N'!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8 -`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#;u`Pog8zzzz -zzzzzzzzzzzzzzzzzzzzzzzzs8N'!!!*'!s8W-!!!!$!s8W*!!!*'!zzzzzzzzzz -zzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7& -F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8W-!s8R_(KE(uOs+>rVs8R_(K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#<C`Pog8 -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsYs8NQ=%M&O=s8W-!%Ls!Ks8W*/%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzzz!!*'!zs8N'!z!!!$!s8N'!s8N'!zzzzzzzzzzzzzzzzzzzzzzzz -zzz`Pog8`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzzzzzzzzzzzzzzzzzzzs8N'!!!*'!zz!<<*!!!*'!zzzzzzzzzzzzzz -zzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8R_(K7ef/K7egVs8R_(s8R_(K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsYs8NQ=%M&O=%LrsY%LrsY%fcS/%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzz!!*'!zs8N'!!<3$!zs8N'!s8N'!zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8 -`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzz -zzzzzzzzzzzzzzzzzzzzzzzzs8N'!!!*'!!!!$!z!!*'!!!*'!zzzzzzzzzzzzzz -zzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8R_(KE$RVK7ef/s8R_(s8R_(K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsYs8NQ=%M&O=%Ls!K%LrsY%M&O=%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzz!!*'!z!<<*!rr<$!s8W-!rr<$!!<<*!zzzzzzzzzzzzzzzzzzzzzzzzz -zz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzzzzzzzzzzzzzzzzzzzs8N'!!!!$!s8W*!!!*'!s8W*!!!!$!s8N'!z -zzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/KE(uOs+>rVs8W-!s+>rV -KE(uOK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsYs8NQ=%Ls!Ks8W*/%M&O=s8W*/%Ls!Ks8NQ=%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pqju -F2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8# -`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"z!7fWM -e^`4#e^`4#e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#z!!!#Le^`4#e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XX"z!7fWMe^`4#e^`4#e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#z!!!#Le^`4# -e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`1Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`1Me^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -eH".Me^`4#e^`4#e^`4#e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`1Me^`4#e^`4#e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#eH".Me^`1M!!(R"!7fWMeGoRL!7fWMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`1Me^`4#eGoRLe^XZMe^`1M!!!#Le^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#eH".M -e^`1M!!(R"!7fWMeGoRL!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`1Me^`4#eGoRLe^XZMe^`1M -!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#eH".Me^XZMe^XZMeH".M!7fU"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`1Me^`4#!7fWM!7fU"e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#eH".Me^XZM -e^XZMeH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`1Me^`4#!7fWM!7fU"e^XZMeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#eWc;_PlK:aeH".Me^XZMe^XZMe^XX"e^`1Me^a\aPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Dss4,ZMe^_XX@K>9A`PpBXe^`37Pa%F4 -e^`1Me^`4#!7fWM!7fWM!!(R"eH".Ms-/b4Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa)3ue^`4#`Pl9dhVQ5je^`4#eWc;_PlK:aeH".Me^XZMe^XZM -e^XX"e^`1Me^a\aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -s4,ZMe^_XX@K>9A`PpBXe^`37Pa%F4e^`1Me^`4#!7fWM!7fWM!!(R"eH".Ms-/b4 -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa)3ue^`4#`Pl9dhVQ5j -e^`4#eWg+6s4,ZMeH".Me^XX"!!!#Le^XX"e^`1Me^`4Ms8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,ZMe^_XX@K>9A`PpBXe^`37s8W,Le^`1M -e^`4#z!7fWM!!(R"eH".Mec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4#eWg+6s4,ZMeH".Me^XX"!!!#Le^XX"e^`1M -e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,ZMe^_XX -@K>9A`PpBXe^`37s8W,Le^`1Me^`4#z!7fWM!!(R"eH".Mec5[Ls8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -eH".Me^XZMe^`4#eH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`1Me^`4#!7fWMe^`1M -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#eH".Me^XZMe^`4#eH".M!7fU"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`1Me^`4#!7fWMe^`1Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#eH".M -e^XZMe^XZM!7fWMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`1Me^`4#!7fWM!7_)"e^`1M -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#eH".Me^XZMe^XZM!7fWMeH","e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`1Me^`4#!7fWM!7_)"e^`1MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#eH".Me^`1M -!!(R"!7fWMeH","!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`1Me^`4#eGoRLe^XZMe^`1MeGoU" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#eH".Me^`1M!!(R"!7fWMeH","!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`1Me^`4#eGoRLe^XZMe^`1MeGoU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec5[Ls8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRLzzzzzzzzzzzzzz -zzzzz!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)Le^`4#e^`4# -ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec5[Ls8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8N)Le^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRLzzzz -zzzzzzzzzzzzzzz!7fWMe^`4#e^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8N)L -e^`4#e^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!!7fWMe^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!rr<&L -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`4#eH#XLs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W*!!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!rr<&Le^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#XLs8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W*!!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoU"e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eGoU"e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`1M!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#L -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1M -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".MeH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M -e^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4# -e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH","e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZM -eGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"!!(R"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeGoRLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".M -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".M!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Me^`4#e^XZMeH".MeH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#!7fU"e^`1Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`1Me^`4#e^XZMeH".MeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -!7fU"e^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1M -e^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1M -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMeH".MeH".Me^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1Me^`4#!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#!7fWMeH".MeH".Me^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'a -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XZMe^`1Me^`1M -e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6 -e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1M -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRL!7fWMeH".Me^`1Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eGoRL!7fWMeH".Me^`1Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1M!!!#Le^`1Me^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4# -e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWM -e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1^6e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#eH#X"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la!7fWMe^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`1Ms4*?uPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPQ1^6e^`4#e^`4#ec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eH#X"Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%C4!7fWMe^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Ms4*?uPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -PQ1^6e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`4#eH#X"Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%C4!7fWMe^`4#e^`4M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eW^'ae^`4#e^`4#ec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1M -zzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec40aPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%Ds!7fWMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4#ec40aPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%Ds!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#ec40aPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%Ds!7fWMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0u -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRLzzzzzzzzzzzzzz -zzzzz!7fWMe^`4#e^`4MeWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsP`u0ue^`4#e^`4# -ec40aPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzz -zzzzzzzzzzzzzz!7fWMe^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^`4# -e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWM -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`1Mzzzzzzzzzzzzzzzzzzz -!!!#Le^`4#e^`4#eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^`4#e^`1Mzzzzzzzzzz -zzzzzzzzz!!!#Le^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#eGoRL -zzzzzzzzzzzzzzzzzzz!7fWMe^`4#e^`1Mzzzzzzzzzzzzzzzzzzz!!!#Le^`4#e^`4# -eGoRLzzzzzzzzzzzzzzzzzzz!7fWMe^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBX -e^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4# -`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37 -s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9d -hVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37 -s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5j -e^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZM -e^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4# -eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX -@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A -`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*ae^`4#`Pl9dhVQ5je^`4#eWg*ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`37s4,ZMe^_XX@K>9A`PpBXe^`37s4,ZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eWg*a -e^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Dss4,ZMe^_XX@K>9A`PpBX -e^`37Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa)3ue^`4#`Pl9dhVQ5je^`4#eWc;_Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Dss4,ZMe^_XX@K>9A`PpBXe^`37Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa)3ue^`4# -`Pl9dhVQ5je^`4#ec5[Ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,ZMe^_XX@K>9A`PpBXe^`4M -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Le^`4#`Pl9dhVQ5je^`4#ec5[Ls8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,ZMe^_XX@K>9A`PpBXe^`4Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Le^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r' -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`dHzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer09.gif b/docs/latex/wx/sizer09.gif deleted file mode 100644 index 9aff20396b63faa808ea094c24db564eedabf9e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1468 zcmV;t1w;BrNk%v~VJZPy0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui04f1m06+x)5XecZy*TU5yZ>M)j$~<`Wgrb~>%MSH z%yezvc&_h!@Bg)ea3}=Q3dW>z$z;L`2E#K76Q}^OthUMRdb!2m@JJLRzv#4@5Q9ov z?wEBoK-lm2ynfH``~QG}f`f#GhKGoWii?6Qb69nN0fm!{mY0~Bnwy-Rd5%{sc?kuc zrl+W>s;i8op97Dgc&@Cqwzs&sh_rX0bfcwv0l}J;cE-q?2?54?#Km~Y$DGT4&za5A z2+f$)d%SkOkidMyx|++}dDrKb-hAxsi|^!k;<9((^85V#{)PJPMY=<zpuvL(6DnND zu%W|;5F<*QNU@^Diwa-O5x}vd$B!WYLy8<pvZTqAC{wCj$+D%(moQ_x45g)}i#0fN z>fFh*Cl{MQVbOF^pyr#KK9ed9Gb4;srcKW%otm?zo1=1u2F*gXtJkk!eQvE8Yv8}L zXw$0QBM_L7XwjH4yEAv19gKMM>fOt?uiw5JY1UgyxUk_)0fqjW6>nSP!?WtbgB*yS zp2w8)sk4)~?BG1+pn<l#xs_yRoYYlXjkxsP)OuKNYt5&#V8-Q2CD_fox9{J;g9{%{ zT=?nBng3W`m)y^C&ez)FZce>=bK8rpYu~P2;Mnir!;2qJzP$PK=+mngU$%VM_weJ( z=W)J0`T6*HKqXLy%$S1t1xQ2x7I6$vU=>=8C*Xo)h@rz6{7J<iep<M3AcAzbH{pgH zc1Yg~P!Ncfck7jC;)y7xsN#w&w%{3eFvbX(bTZax<3BX|kqup>*>&TOKn9W{0{YCx z<1{<E7UYsJVmHooOhzdsAx`20-IQ2n*+-RT5!u)<e}%cwam>l6BxcQ(#^q<xpb1$z z*2wrAL2{}YonlYs^QD`HsD@-~XTmnxY)Z}(=q7#=>dBmILJ1n5eZu9Vk=>Aq2c(f6 zN$IAS%=wz2KJJK)oq=U{r7)Nh24^3s7Un4et*T0@J$PE_WjS)?s_U-2_Uh}ezy_PE zj=~me?6JrW+efm@HtVearMJ@hqMlk-Yi*;{TC44p*lz2sw<NYG?zrTZYwo#ZU4g>7 z?6&LfyYR*<@4Ok<hwi=j=Bw|%HrXqlhX4oMVSNeyEAYVx&o_mL7($|9!e8wNgv1bw zH3e1|x>ztnFjO3|gil3v1H~TiRACeuyWsCtQMBCh00$sd@>Eb6<eyX|&y15*FKgj% zcskPzGR`BPk#o>#i1<dz;Tnwe(@-06@zgK;3|`b&XRQOl8Q!P$*I#q(Fu!D%ZT8tG zPW$cJ)egz_+flj=_uN0qP1ml16iWBrtk^y1-Lf4c7vF^IGGuSWh)Stsl@w6i<B&%# z`Q(&WZu#YyXRdkw<aeqat)!Fo$Z6rEQ`7lv*@7;3;DqX3`s;^u`#J2i?<0GWwda1z z?Xl|adpD<>I{WX$r@}j~&nB<Duhxj^d_reFFMUC?_EKw?xH}djw4XM4sQ0x6pXaHu z^^Vr6lg0R|`DrmKzOC7ZhUnm$j&A7p^Pi@8rEzwm?4+&(NcF;TJvPyWeaniC=thM< zOeBhRnOGmFjs!veedB%D+Y_P`xDD>zuYaPE6#b~tz)L*PgN6!Usm3?F18#6o+Ne|s zE%CtmSulMeq@WEuH9!O$PJ^i#A*TW;2=t-Ge?sI25sNrO6DIL*JXE2yP)EK;d9R7o zk)Zl|_`}?BToHua(IWURxI*}SX?bW&W1u$2MmDaojc~ji7Ypd9;@NRg7&PD=_XxZ) zW{{77L`NR$7|25IVvzZWqaqi{$VNKyk&vVuA`MB&PWY{om{i0iGs($9G!1Q_45cVX WsWCO0@|37dr7Bm+%2xg=0029tObT%T diff --git a/docs/latex/wx/sizer10.bmp b/docs/latex/wx/sizer10.bmp deleted file mode 100644 index 0ddafc917e16e28ae74299d4a20d28047a78ede7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17814 zcmeI4v2NQi5QdeaTbHPS0BdVIbr;g^g*|p~TN<5HATJQ0yHNx%kjX$&Kp8q^%9f#1 z=R87|4t|8ZLi!&iOO#29q$Mjwa;HcpspEaRpC<=V;(Yk{a}r7Wj^kVGf3g3<z85{m zF^XQ{{L2@`zK=fbtJR85MTdun(ap_G^aJht`}^ql_&D1Cw2E$TZ=<`ryXf-rGCDgu zlfLR99?}4Q_GUPHO^Ig1*~9P_Ls?ejHxzEcyndx-Jz38X1=M=^EdtC6u||<IRNl2U zhJNBiA1X&|QHmK2-pCq6JJG_kh-Ba;7FT`vEAuu*VLdk$QTkjjiWo(c>qV2K9^iVZ zwJ2L$FPbFv0M|>c1=owFg*L$TqDjK<FPbFv0M|>cMcLwd(Ilw{xL#^4+Ug|{B2K14 zB(dh-7--ki7{yqhiI|Eh@i3*$Ts%V*D-X1(=*-ii*m!X)rb%a>9>vBZMZ5F#C@s7` z^u&@hSH;3B>JxIbnyX$6QEa?|)3IL4i&di-c=T%)gJ(IUzO>~xHAgY<)XPz$>+Lq4 z?kz|D10Lz=X~orQkMS^Y?Vq0~i`)_uN{(Gyq7*aK=aGLx%*wL{kuy}DHAIgmnAfA2 z2*rA`o*@cwy@aUc_GLZY8ijbUo*`<veOXVpMj;-oXNX#EU)IyDQHTfY8KRckm-TdO z6ym{phN$KCRrRzySSW|xv3xvKUYfVq(kGhRhk2#Ok3r8Rm7=9;%=yh}M!=utHJ*p0 z=NDI3S3$g!Q#>x)o`<!%AYL5jOWI;I)10>4oF6@wJSAQnFXptxXpR=NnXPd@oR_?1 zo~OhENWP%&;LR6{5%B<$FX)@i$U{1molFbORQ8SY*ZEO81rIM^+tS-uKLjT|Wqj~Z zJd_$#b>+9_p?HV~RW0VoFO(<s+>Qs-di`X+#tUxfiPYBX=dUM;DdR8Gsy^H6g=$gi zIUiN^=~*xIXdN)bmqO-+5#CmxGy^cimkU>lU`?-CFGYA9<^5OnQfis+ze;3z|5d$E zUWKX~4qk<FG#d3;N7q}-b0}GyeoA`M_fETc$>nrX^>jM-;J~~dL{vhso{AVfG+ECc zL{vhQdOr5gZz}nX`!^-Ju4n(a@e|<9C`USIpZDF3p0jURc5t*UPmISC@ntNqPtbN5 zFvKF}cKLxJ#uH!!Hn#x-m`tw&4;&=t%R4xd=~cYh5!w4Jb6+l{1uc;wY3kum`DHU& zy;{%D)Om;9W4`3!0NmC*`oT(wKpw8mH@{6iDLrYP`H_|rA@Jp%Kyka)%bMbWqxZ8e z_XBdGl`D+y3YW?By4>$Bz{YvvVIT7SjBwHhdjDMGs{6ef*wCVnZWS91EkE_-4%!dG TQ~#OBj@vT79W&JMd+7WFSF?Gq diff --git a/docs/latex/wx/sizer10.eps b/docs/latex/wx/sizer10.eps deleted file mode 100644 index 8921b33c9c..0000000000 --- a/docs/latex/wx/sizer10.eps +++ /dev/null @@ -1,2967 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer10.eps -%%CreationDate: Sun May 02 2004 15:03:21 -%%BoundingBox: 0 0 218 158 -%%HiResBoundingBox: 0 0 218 158 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 218 158 8 3 1 218 7 "beginimage" -%BeginPhotoshop: 5760 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 0000009E000000DA0000000700730069007A0065007200310030000000010000 -% 0000000000000000000000000000000000010000000000000000000000DA0000 -% 009E000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000009E00000000526768746C6F6E67000000DA00000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000009E00000000526768746C6F6E67000000DA0000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C000000000F97000000010000 -% 00A000000074000001E00000D98000000F7B00180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108007400A0030122000211010311 -% 01FFDD0004000AFFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E87A03DE3A074B01C40F -% B163680FFC0D6AFF00A967EF1FBCAA1F579CE6743E94F6987370F1483E62AA96 -% 8BB2725CD2D3759044187B81FF0039A5253CBFD73FAD5D4FA07D8FEC62BB3ED3 -% EAEFF57798D9E96DDBE9D957FA55CD7FE3A1F58BFD1637F9B6FF00E97577FC69 -% 7FDE67FD7FFF0075D704B6393E5B0CF0425280948F159FF0A4B244DBD87FE3A1 -% F58BFD1637F9B6FF00E974BFF1D0FAC5FE8B1BFCDB7FF4BAE3D2563EE9CBFF00 -% 9B8A388F77B0FF00C743EB17FA2C6FF36DFF00D2E97FE3A1F58BFD1637F9B6FF -% 00E975C7A497DD397FF3715711EEF6557F8CCFAC96DACA9B5E20758E0D697EF6 -% 3649DBEFB6DC96575B7F9763F62D2BFEB5FD7AA2CAE9FB2E15F7DDB7D3C7C6B4 -% 64DCE0E67DA596371B0B3722FF0049D47E9BD5F4FD2F4D79DADEC3FAD3F66C8C -% EBFECBBFEDDD29BD276FA91B36D18F87F6A9F4CEFF00E89EA7A3FF0009FCEA64 -% F94C63E4C503A75EFF00E32B88F777B1FEBB7D7ACAB6EA717A5FAF6E33B66457 -% 5D190F756E973765CC65AE754EDCC7FD3FDC4BA87D77FAEFD2DB43BA8F4FAF10 -% 64B5CEA7D6AEE61706BBD37FB5D7EE6B9AEFCC7FBF63EAB7F9BB6A58C7EB95F9 -% 990F1D728FDADD3EEB1B917E258F14B9D92DA1987F6AAF2706AC7757EDABD946 -% CB29F43E9FA991FADAA1D77ADFED8FD9DFA1F43F67E0D383F4B7EFF477FE9BE8 -% 57E9FA9EA7F37EFF00F8C4D8F2B0E202586023FA55AF4F3FDEFEA2AFC5DCFF00 -% C743EB17FA2C6FF36DFF00D2E97FE3A1F58BFD1637F9B6FF00E975C7A4A5FBA7 -% 2FFE6E2AE23DDEC3FF001D0FAC5FE8B1BFCDB7FF004BA5FF008E87D62FF458DF -% E6DBFF00A5D71E925F74E5FF00CDC55C47BBD87FE3A1F58BFD1637F9B6FF00E9 -% 75A7F56FEBEF5AEADD6B1FA7E432865576FDCEAC581DEDADF68DA5F73DBF499F -% BABCF16F7D45FF00C5560FFD77FF003CDAA3CFCAE08E2C84630088488FF15409 -% B1ABEB86EB3D56D52F25E0169124124BC7A5BBFD37E8BD4F4FFD1A8D7926D92C -% 79734180F0E96BB40E9639A4EEFA5B3FE31073319B941B8F60FD09DAFB1E36EE -% 905E3D2AF7B2CD8ED2BB3D7FFACFFA452C76D95D62A7C1F4E1AD7801A1C035BE -% EF4DA5DB3DDEC586C8FF00FFD0E93EADB1AEE83D3244C6162FFE79AD697A55F8 -% 7E559DF567FE41E9BFF84B17FF003CD6A55F4FABA975FCBA721F91E9D1898AFA -% EBA722FA1A1D6599EDB5E5B89753BDCFF46AFA7FB8929BFE957E1F952F4ABF0F -% CA86EFAB7D1DB6B6975B96DB5ED73D959EA1981C5AC2C6D8F6B3ED7B9CDADD6D -% 5BFF00E32B59F753F552875E2DC9CE6371DB63ACB4E5751F48FA2D759935D393 -% EBFD9F26FA1955DEAE363D96E433D0C8FD17E82ED894EA7A55F87E54BD2AFC3F -% 2A87FCD8E97FBF9BFF00B1F99FFBD68593D07A262D62DBEDCD631D657503F6EC -% D3EFB9ECC7A5BEDCA3F4EEB6B624A6C7A55F87E54BD2AFC3F2A88FABBD36922E -% 63F2CBEBF7B7766E5BDB2DF70DF5D992FAEC6FF22C6EC45494C3D2AFC3F2A5E9 -% 57E1F954D2494C3D2AFC3F2A5E957E1F954C024800493C04ADFD0960BBF466D7 -% 6CAC3FDBB9DB5D66C66EFA6FF4EBB2CFEA312530F4ABF0FCA97A55F87E541BFA -% 862E3E4D78D717B1F6C6D79AECF4A5C7656C765ECFB2D765967E8EBAACBBD47B -% FD3FF4B5A26364D3978D56563BB7D37B1B6D4F82258F1BD8EDAEDAE6EE6B9253 -% 2F4ABF0FCA97A55F87E55342C6C9A72F1AACAC776FA6F636DA9F044B1E37B1DB -% 5DB5CDDCD724A65E957E1F952F4ABF0FCAA6924A61E957E1F9546CAD818481AA -% 2A85BFCD9FF5EE929FFFD1E97EACFF00C83D37FF000962FF00E79AD128CABB1B -% AEF517D38B6E6B9D8982DF4E8350701EAF5377A87ED7762D7B3DBFE937A1FD59 -% FF00907A6FFE12C5FF00CF35A35DD36E766BF371B3B230ADB6AAE9B05228735C -% DA9D75957F4BC6CA735CD7655BF412532C66F50CBFACB4F50B7A7DD858D4E15D -% 4175EFA0936596E2DAC6B1B899394EFA1459F490EEE8FD63F625FF0057E8FB30 -% C36E1D9878D92F7BCDAF69A5D8D8ACBE86D42BA1D5EEAFD7CAAEFC9F5BD17FA7 -% 8347DA7F5497D8BAA7FE5D66FF00DB787FFBC097D8BAA7FE5D66FF00DB787FFB -% C092905FF55F206565BF1998DF66CB6DB8A319C5EC6331AFC7E9B86F7EDC76B1 -% DBB1DDD29DB30EAB31FD6A6EFE9D89B14F23EAEE6DF4D986EF405032FED15640 -% 758DC82CBB3AAEB195536DA831D85E936A752CF46DBBED76FD9B23D5C0F47622 -% 7D8BAA7FE5D66FFDB787FF00BC097D8BAA7FE5D66FFDB787FF00BC0929D5C5A1 -% D8DD3D98CE0D68A186A66DDB058CFD1D2EDB5558D556E7D4D63DF4D34329A5FF -% 00A2ABF4680A9D789D49AF6B9FD5F2ED6020BAB7331035C072C7FA7835D9B5FF -% 00F07631EAE24A5249249295EA9A7F4C18EB4D7EF15B36EE76DF76C67A8EAEBD -% EFFF0084B18C58D6DB9F9D9FD389E9D918B562E43EEB6DB9F8E5A1A71F2B1DBE -% DC7CAC8B5CE75B915FF835B2924A73C6366D19D73B11B57A1996B6FC9BAD7B8B -% DAE6B2AC6755462B2A6B5CD7D18B57E92CCCFD1DB6BEDF4ADF4FD0B29748E8D9 -% BD231DA31EBC77DACC1C4C6156F754C75B4BB26CCBB5D6368B5CD6DAECBF558F -% F47D4B6DFE77D35BA924A6B36CEA3EB52D75148A5CC06F78B9C5ECB20CB29ABE -% CCD6DF5EED9FA57DD8FF00F12AA7D5DE9B95D27A651D3AF754F663D4C0D7D636 -% 9DE44E4B1CD6B2B63DBEB7BEAC8FE76E659FAC57EBD4FC9CAD44925292492494 -% A50B7F9B3FEBDD4D42DFE6CFFAF7494FFFD2E97EACFF00C83D37FF000962FF00 -% E79AD6A2CBFAB3FF0020F4DFFC258BFF009E6B5A89294924924A524924929492 -% 4924A5249249294924924A5249249294924924A5249249294A16FF00367FD7BA -% 9A85BFCD9FF5EE929FFFD3E97EACFF00C83D37FF000962FF00E79AD173BAC63E -% 164D78AEAB22FBED63AD6D78D4D97BB634B58F7B9B8EDB1CD6B5D657F4BF7D0B -% EACFFC83D37FF0962FFE79AD1F0FFF001698FF00FA6CC9FF00CFF8292907EDE6 -% 7FE57753FF00D80C9FFD2297EDE67FE57753FF00D80C9FFD22B4BA9647D611D7 -% 6A66135ADE9B43719D7B9C1E458722EB71F26BD9562E53EE7E3515576D7E9657 -% 4F661BEEFB467FDA313F9A107F5EBBA9749B328DD416DD19789409C7353B1738 -% D7939560A5DE9647DAEB6576E0D7D53A86262FEA9FA6BEDBB1F21E94D2FDBCCF -% FCAEEA7FFB0193FF00A452FDBCCFFCAEEA7FFB0193FF00A45760924A78FF00DB -% CCFF00CAEEA7FF00B0193FFA452FDBCCFF00CAEEA7FF00B0193FFA45760924A7 -% 8FFDBCCFFCAEEA7FFB0193FF00A4559C2EA2DCC73DADC6CAC7F4C024E4D16513 -% 331B3ED0DAFD4FA3F98BA759BD4BF9F6FF00547E5724A6AA49249294924924A5 -% 982FB4BC5343ED15BB6B9C0B00986BFF00C258C77D17A97A19DFF712CFF3AAFF -% 00D2C8567DABEC16FD93D4F57F69616EF4A777A7EB607DAA767BBD2FB37ABEBF -% E67A1EA7A9FA355FA8E67D696F55C87638755D3EAB9B8D8ED654EB9F61345798 -% CB1B8FF66DBB2CCE7FD8B2336FEB183815E2FAF47EA79BE9F50494DDF433BFEE -% 259FE755FF00A592F433BFEE259FE755FF00A5958E94DEA36DB764E75F732C0E -% 754FC0D958C76105AEAECC5BFD1FB56533D1D9FAC3B2B65BEA5DEA61E0DFFA8E -% 1E9A4A70CD596D8DF8CF683F9C5D59034DC7E8DAEFCD0A16FF00367FD7BAD8CB -% FE6C7F6BFEA2C58F6FF367FD7BA4A7FFD4E97EACFF00C83D37FF000962FF00E7 -% 9AD1F0FF00F1698FFF00A6CC9FFCFF008281F567FE41E9BFF84B17FF003CD68F -% 87FF008B4C7FFD3664FF00E7FC1494F52924924A5249249294924924A52CDEA5 -% FCFB7FAA3F2B9692CDEA5FCFB7FAA3F2B9253552492494A4924925373A3FD1C9 -% FF008EFF00D174AD059FD1FE8E4FFC77FE8BA56824A524924929065FF363FB5F -% F5162C7B7F9B3FEBDD6C65FF00363FB5FF005162C7B7F9B3FEBDD253FFD5E97E -% ACFF00C83D37FF000962FF00E79AD1B15EC67D73C72F7068FD9993A931FE1F05 -% 07EACFFC83D37FF0962FFE79AD6936BA9B7FDA056C37ECF4C58E68738309DEE6 -% 35CF0EDAD738377EDFA7ECFDC494ED7AF47FA46FF9C12F5E8FF48DFF00382CAF -% 59FE0DFF0031BFF914BD67F837FCC6FF00E45253ABEBD1FE91BFE704BD7A3FD2 -% 37FCE0B2BD67F837FCC6FF00E452F59FE0DFF31BFF0091494EAFAF47FA46FF00 -% 9C12F5E8FF0048DFF382CAF59FE0DFF31BFF00914BD67F837FCC6FFE45253ABE -% BD1FE91BFE705433DEC7DC0B1C1C368D419EE507D67F837FCC6FFE4533AC7384 -% 10DF9340FF00A909298A49249294924924A6E747FA393FF1DFFA2E95A0B12B3E -% 9EEDA1BEF3B9D2D07580CFCE07F35AA5EB3FC1BFE637FF0022929D949637ACFF -% 0006FF0098DFFC8A5EB3FC1BFE637FF22929D2CBFE6C7F6BFEA2C58F6FF367FD -% 7BA37ACF83F44482346B4183A766A0DBFCD9FF005EE929FFD62746FF009F9FB2 -% 307EC9FB2FECFF0065A3D1DFF68DFE9FA6CF47D5D9ECF57D3FE736FE7AB9FF00 -% AF1BFF00355FFB34BC692494FB2FFEBC6FFCD57FECD25FFAF1BFF355FF00B34B -% C692494FB2FF00EBC6FF00CD57FECD25FF00AF1BFF00355FFB34BC692494FB2F -% FEBC6FFCD57FECD25FFAF1BFF355FF00B34BC692494FB2FF00EBC6FF00CD57FE -% CD25FF00AF1BFF00355FFB34BC692494FB2FFEBC6FFCD57FECD25FFAF1BFF355 -% FF00B34BC692494FB2FF00EBC6FF00CD57FECD25FF00AF1BFF00355FFB34BC69 -% 2494FB2FFEBC6FFCD57FECD25FFAF1BFF355FF00B34BC692494FB2FF00EBC6FF -% 00CD57FECD25FF00AF1BFF00355FFB34BC692494FB2FFEBC6FFCD57FECD263FF -% 008E246BFB263CFED2BC6D2494FF00FFD9003842494D04210000000000530000 -% 0001010000000F00410064006F00620065002000500068006F0074006F007300 -% 68006F00700000001200410064006F00620065002000500068006F0074006F00 -% 730068006F007000200043005300000001003842494D042200000000012E4D4D -% 002A000000080007011200030000000100010000011A00050000000100000062 -% 011B0005000000010000006A012800030000000100020000013100020000001B -% 0000007201320002000000140000008D8769000400000001000000A4000000D0 -% 0000004800000001000000480000000141646F62652050686F746F73686F7020 -% 43532057696E646F777300323030343A30353A30322031353A30333A32300000 -% 00000003A001000300000001FFFF0000A002000400000001000000DAA0030004 -% 000000010000009E0000000000000006010300030000000100060000011A0005 -% 000000010000011E011B00050000000100000126012800030000000100020000 -% 02010004000000010000012E0202000400000001000000000000000000000048 -% 0000000100000048000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6116 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6116 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>218</exif:PixelXDimension> - <exif:PixelYDimension>158</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:03:20-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:03:20-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:03:20-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:d0bb59c2-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:d0bb59c3-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 158 def -/cols 218 def -218 158 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 218 string def -/picstr2 218 string def -/picstr3 218 string def -/picstr4 218 string def -/_rowpadstr 218 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 166865 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,Gh>lEhhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G@K>9A -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,G@K>9AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W -`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzz!!!$!s8W-!s8W*!zzzz!<3$! -zzzzzzzzzzzzzzzzz`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzz!<<*!s8W-!rr<$!zzz!!!$!zzzzzzzzz -zzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs8W-!s8W+OK7ef/K7ef/K7ef/K7ef/KE$RV -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%fcS/s8W-!rsfMK%LrsY%LrsY -%LrsY%Ls!K%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzz!!*'!zzzzzs8N'! -zzzzzzzzzzzzzzzzz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzs8N'!zzzz!!*'!zzzzzzzzzzzzzzzzz -!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/K7ef/K7ef/K7ef/K7ef/s8R_(K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ=%LrsY%LrsY%LrsY%LrsY -%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzz!!*'!z!<<*!rr<$!!<<*! -s8N*!s8W-!zzzzzzzzzzzzzzzzz`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzs8N'!!!!$!s8W*!!!!$!s8W-! -!<<*!s8N'!zzzzzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/KE(uO -s+>rVKE(uOs8R`Os8W-!K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8s)W8#`W("#`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -s8NQ=%Ls!Ks8W*/%Ls!Ks8W-!%fcS/s8NQ=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pqju -F2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzz -zzzzzzzz!!*'!zs8N'!s8N'!s8N'!zs8N'!zzzzzzzzzzzzzzzzz`Pog8`Pog8`W("# -s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8zzzzzzzzzzzzzz -zzzzs8N'!!!*'!!!*'!!!*'!z!!*'!zzzzzzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A& -F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7j4(K7ef/s8R_(s8R_(s8R_(K7ef/s8R_(K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pog8`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`PqlWs8W-!s8W-!s8U'W`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsYs8NQ=%M&O=%M&O=%M&O=%LrsY%M&O=%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof; -`Pog8`PhfWzzzzzzzzzzzzzzzzz!!*'!zs8N'!s8N'!s8W*!zs8N'!zzzzzzzzzz -zzzzzzz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr`Pog8`Pog8`H0#; -`Pog8zzzzzzzzzzzzzzzzzzs8N'!!!*'!!!*'!!!*'!rr<$!!!*'!zzzzzzzzzzz -zzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof; -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8R_(s8R_(s8W+OK7ef/s8R_( -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A`Pog8`Pqkr -`Pog8`Pog8`H0#;`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ=%M&O=%M&O=%M&O= -rsfMK%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9d -hVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzzzzzzzzzzzzzzzz!!*'!zs8W-!s8N'! -!<<*!rr<$!s8N'!zzzzzzzzzzzzzzzzz`Pog8`Pog8`PqjuF*#=>`Pog8`Pog8@K>9A -`Pog8`PqjuF)uDDF)uDDF*#;u`Pog8zzzzzzzzzzzzzzzzzzs8N'!!!*'!s8W-!!!!$! -s8W*!!!*'!zzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j -`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8W-! -s8R_(KE(uOs+>rVs8R_(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`PqjuF*#=>`Pog8 -`Pog8@K>9A`Pog8`PqjuF)uDDF)uDDF*#<C`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -s8NQ=%M&O=s8W-!%Ls!Ks8W*/%M&O=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzz!!*'!zs8N'!z!!!$!s8N'!s8N'!zzzzzzzzzzzzzzzzz`Pog8`Pog8`W("# -s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzz -zzzzs8N'!!!*'!zz!<<*!!!*'!zzzzzzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7j4(K7ef/s8R_(K7ef/K7egVs8R_(s8R_(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8 -`W("#s)W8#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsYs8NQ=%M&O=%LrsY%LrsY%fcS/%M&O=%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzz!!*'!zs8N'!!<3$!zs8N'!s8N'!zzzzzzzzzzzzzzz -zz`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -zzzzzzzzzzzzzzzzzzs8N'!!!*'!!!!$!z!!*'!!!*'!zzzzzzzzzzzzzzzzz!!(!W -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/s8R_(KE$RVK7ef/s8R_(s8R_(K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/`Pog8`Pog8s)W8#`W("#`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ=%M&O=%Ls!K%LrsY%M&O=%M&O= -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzz!!*'!z!<<*!rr<$!s8W-!rr<$! -!<<*!zzzzzzzzzzzzzzzzz`Pog8`PogrF*#=>`PqjuF2c,;`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzs8N'!!!!$!s8W*!!!*'!s8W*!!!!$! -s8N'!zzzzzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7j4(K7ef/KE(uOs+>rV -s8W-!s+>rVKE(uOK7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`PogrF*#=>`PqjuF2c,;`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsYs8NQ= -%Ls!Ks8W*/%M&O=s8W*/%Ls!Ks8NQ=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8 -s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/`Pog8`PqjuF2c,;`PogrF*#=>`Pog8@K>9A`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzz`Pog8`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8 -`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8 -`Pqju`Pog8`Pog8s)Z/u`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzz`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#zzzzzzzzzzzzzzze^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzz -zzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#zzzzzzzzzzzzzzze^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtef -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZf -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZfmdBN2mdBN2mdBN2mdBN2md:&T!!)HTmJu\CmdBN2mdBN2mdBN2mdBN2md:)C -mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2zmdBKCmdBN2mdBN2mdBN2mdBN2 -mdBN2!:K:CmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`1Me^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2md:&T!!)HTmJu\CmdBN2mdBN2 -mdBN2mdBN2md:)CmdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2zmdBKCmdBN2 -mdBN2mdBN2mdBN2mdBN2!:K:CmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ze^`1Me^`4#e^`4#e^`4# -e^`4#e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf3=es8W-!s8N)emdBN2mJu\Cmd:)C -mJu\CmdBN2mdBN2mdBN2mdBN2md:)CmdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-!s8N)Le^`4#eH".Me^XZMeH".M -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:Ts8W-!s8W-!!:K:C -mdBKCmdBN2!:K7TmdBN2mdBN2mdBN2mdBN2mdBN2!:K:CmdBN2mdBKCe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Ms8W-!s8W-!!7fWMe^`1M -e^`4#!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf3=e -s8W-!s8N)emdBN2mJu\Cmd:)CmJu\CmdBN2mdBN2mdBN2mdBN2md:)CmdBN2mdBN2 -mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-! -s8N)Le^`4#eH".Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#!:K:Ts8W-!s8W-!!:K:CmdBKCmdBN2!:K7TmdBN2mdBN2mdBN2mdBN2mdBN2 -!:K:CmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Ms8W-!s8W-!!7fWMe^`1Me^`4#!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZfmf2_CmdBN2md:)CmdBN2!:K:CmdBN2mJuYT!:K:CmJm4e -mdBN2!!!#emd:)CmJu\CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4# -!!!#Le^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBN2!:K:Cmd:)CmdBN2mdBKC -mJm7TmdBKC!!)HTmd:&T!:K:C!:K7TmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#!7fWMe^XZMe^`4#e^`1MeGoU" -e^`1M!!(R"e^XX"!7fWM!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2md:)CmdBN2 -!:K:CmdBN2mJuYT!:K:CmJm4emdBN2!!!#emd:)CmJu\CmdBN2mJtefe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^XZMe^`4#!7fWM -e^`4#eH","!7fWMeGoRLe^`4#!!!#Le^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2 -mdBN2!:K:Cmd:)CmdBN2mdBKCmJm7TmdBKC!!)HTmd:&T!:K:C!:K7TmdBN2mdBKC -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -!7fWMe^XZMe^`4#e^`1MeGoU"e^`1M!!(R"e^XX"!7fWM!7fU"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJm7TmJu\C!:K:C!:K7TmdBKCmd:)C -!:K:CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKC!:K7Tmd:)Cmd:)C -mJu\CmJu\C!:BjTmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4#e^`1M!7fU"e^XZMe^XZMeH".M -eH".M!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJm7T -mJu\C!:K:C!:K7TmdBKCmd:)C!:K:CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eGoU"eH".M -!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)C -mdBN2mdBKC!:K7Tmd:)Cmd:)CmJu\CmJu\C!:BjTmdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4# -e^`1M!7fU"e^XZMe^XZMeH".MeH".M!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2 -m\BjNmdBN2!:K:CmdBN2mJu\CmJu\C!:K:C!:K7TmdBN2md:&TmdBN2mdBN2mJtef -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'a -e^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKCmd:)Cmd:)CmJu\CmdBN2!!)HT -mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`37!7fWMe^XZMe^`4#e^`1Me^`1Me^XZMe^XZMeH".Me^`4#!!(R"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJu\CmJu\C!:K:C!:K7T -mdBN2md:&TmdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4# -e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKC -md:)Cmd:)CmJu\CmdBN2!!)HTmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4#e^`1Me^`1Me^XZM -e^XZMeH".Me^`4#!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2!:K:C -mdBN2mJu\CmJu\Cz!:K7TmdBN2md:&TmdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".M -eH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)C -mdBN2mdBKCmdBKCmd:&T!!!#emJu\CmdBN2!!)HTmdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4# -e^`1Me^`1Me^XX"!!!#LeH".Me^`4#!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2 -m\BjNmdBN2!:K:CmdBN2mJu\CmJu\Cz!:K7TmdBN2md:&TmdBN2mdBN2mJtefe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4# -!7fWMe^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2 -mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKCmd:&T!!!#emJu\CmdBN2!!)HTmdBN2mdBKC -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37 -!7fWMe^XZMe^`4#e^`1Me^`1Me^XX"!!!#LeH".Me^`4#!!(R"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJu\CmJu\C!:K:CmdBKCmdBN2md:)C -!:K:CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWMe^`1Me^`4#e^XZM!7fWM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)CmdBN2mdBKCmdBKCmd:)CmdBN2 -mJu\CmdBN2!:BjTmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4#e^`1Me^`1Me^XZMe^`4#eH".M -e^`4#!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2!:K:CmdBN2mJu\C -mJu\C!:K:CmdBKCmdBN2md:)C!:K:CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M -!7fWMe^`1Me^`4#e^XZM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:Cmd:)C -mdBN2mdBKCmdBKCmd:)CmdBN2mJu\CmdBN2!:BjTmdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^XZMe^`4# -e^`1Me^`1Me^XZMe^`4#eH".Me^`4#!7_)"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2 -m\BjNmdBN2mJu\Cmd:)CmJu\CmJu\C!:K:C!:K7TmdBKCmd:)CmJu\CmdBN2mJtef -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'a -e^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -!:K:TmdBN2mdBM=!:K:CmdBKCmdBN2!:K7TmdBKCmd:)Cmd:)CmJu\CmJu\C!:K7T -mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4M -e^`4#e^`37!7fWMe^`1Me^`4#!7fU"e^`1Me^XZMe^XZMeH".MeH".M!7fU"e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2mJu\Cmd:)CmJu\CmJu\C!:K:C!:K7T -mdBKCmd:)CmJu\CmdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#eW^'ae^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1M -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM=!:K:CmdBKCmdBN2!:K7TmdBKC -md:)Cmd:)CmJu\CmJu\C!:K7TmdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^`1Me^`4#!7fU"e^`1Me^XZM -e^XZMeH".MeH".M!7fU"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2m\BjNmdBN2md:&T -!!)HTmJu\CmJu\CmJm4emdBN2!!!#emd:)Cmd:)CmdBN2mJtefe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#e^XX"!!(R" -eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:TmdBN2mdBM= -!:K:CmdBN2zmdBKCmdBKCmdBKC!!)HTmd:&T!:K:C!:K:C!:K:CmdBKCe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`37!7fWMe^`4# -ze^`1Me^`1Me^`1M!!(R"e^XX"!7fWM!7fWM!7fWMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2_CmdBN2 -m\BjNmdBN2md:&T!!)HTmJu\CmJu\CmJm4emdBN2!!!#emd:)Cmd:)CmdBN2mJtef -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'a -e^`4#e^XX"!!(R"eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -!:K:TmdBN2mdBM=!:K:CmdBN2zmdBKCmdBKCmdBKC!!)HTmd:&T!:K:C!:K:C!:K:C -mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4# -e^`37!7fWMe^`4#ze^`1Me^`1Me^`1M!!(R"e^XX"!7fWM!7fWM!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZfmf2^NUnjf^Une"YmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#!:K:Tm\HYSUnjf^!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4MeWc;_Pa%Ds!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmf2^NUnjf^Une"YmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:Tm\HYSUnjf^!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4MeWc;_Pa%Ds!7fWMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmJm4ez!!!#e -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLz!!!#Le^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K7Tzz!:K:C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Mzz!7fWMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmJm4ez!!!#emdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLz!!!#Le^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K7Tzz!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`1Mzz!7fWMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKC -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtef -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZf -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZfmdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mJtefe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#!:K:C -mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZfmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mJtefe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#!:K:CmdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2mdBN2 -mdBN2mdBN2mdBN2mdBN2mdBN2mdBKCe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#zzzzzzzzz -zzzzzze^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#zzzzzzzzzzzzzzze^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]nKPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%Dse^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]nKPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%Dse^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#Pa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa'_Ke^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa'_Ke^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]nKPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Dse^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]nKPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Dse^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa'_Ke^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#Pa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa'_Ke^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]lazzzzzzzzzzzzzzzzzzzzz!!!$!e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]lazzzzzzzzzzz!!!$!e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1[`zzzzzzzzzzzzzzzzzzzzz!<:U"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ1[`zzzzzzzzz -zz!<:U"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lazzzzzzzzzzzzzzzzzzzzz!!!$! -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -zzzzzzzzzzz!!!$!e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1[`zzzzzzzz -zzzzzzzzzzzzz!<:U"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ1[`zzzzzzzzzzz!<:U"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -zzzzzzzzzzzzzzzzzzzzz!!(RLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1[`zzzz -zzzzzzzzzzzzzzzzzec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lazzzzzzzzzzzzzz -zzzzzzz!!(RLe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1[`zzzzzzzzzzzzzzzzzzz -zzec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]lazzs8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]larr<$!zs8W-!s8W-!s8W-!s8N*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1[`z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:^`z!!*'!s8W-!s8W-!s8W-! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]lazzs8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]larr<$!zs8W-!s8W-!s8W-!s8N*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1[`z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:^`z!!*'!s8W-!s8W-!s8W-! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!s8W-! -s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8N*!s8W-!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W-!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W-!s8W-!s8W-! -s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*! -s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*! -s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N'! -!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'! -s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8N*!s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-! -!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!!<<*!rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W*!s8N*!rrE*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!rrE*! -!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*!!<<'!s8N*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*! -s8W*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8N*!rrE*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rrE*! -rrE*!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W*!s8W*! -!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*! -rr<$!!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rr<$!!!*'!rr<'!s8N*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8N*!s8W*!zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!zs8W*!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!!<<*!rr<$!!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rr<$! -!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*! -s8W*!zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W-!s8N*!rrE*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!s8W-! -!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*! -s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W-!s8N*!rrE*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!!<<*!rrE*!rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!rrE*! -rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W*!rrE*!s8N*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W*!s8W*!rrE*!s8N*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*!rrE*!rrE'!s8W-!!<3'!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!!<<*!rrE*!rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W*!s8W*!rrE*! -s8N*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!rrE*!s8N*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!!<<*! -s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-!!<3$! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$! -rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,L -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,L -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,L -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,L -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,L -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,[" -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s4,["e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s4,["e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Lec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#PQ1^6e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]la!7fWMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ1^6e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^]lae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PQ97a -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PQ97ae^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]lae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]lae^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#PQ97ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -PQ97ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#PlLd`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#PlLd`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]oas8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#PlLd`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#PlLd`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBX -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX -@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A -`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^_XX@K>9A`PpBXe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8@K>9A`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -@K>9A`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@K>7o@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dH -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer10.gif b/docs/latex/wx/sizer10.gif deleted file mode 100644 index ce45d6945b49ba194f3c8421da9c86700ea229b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1965 zcmV;e2U7S)Nk%v~VcGzm0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#JR?(U?d zq?DAD000000000000000EC2ui0NMba06+x)5XecZy*TU5yZ>M)j^q_cL#nQ9s}gW5 z&vb3ycpevg&+D`Ta7ZlbS_OjvscZ>O0GD)XtXiu-nQyn{3a{X>%#~cK%C0ABfM~nl z@VI<VuiNkVynfH``~N9wQEY#OhKGoWii?GTP$_i*36qqSmY0~BnwyjXjGv&PhK_5I zlLeRxl9sEJtF5n{uCfWSm!6_^1#%0xZ@vh)zQS(AZN|X4cBF%*oX^nFn90i3)}YLg z*W29P-g()C-{a)v%Hihe>g#|5g4*oy^7C!zbiD!j`uqI-{{H|23LN+k!LD_^d?;MV zu%SbS2J6_HgRe&bAN(v{<gxLg$B!WYL$*1nE}=z?`!t>m*)SrViM;Z$oJq50&5`U( z+T5wo<s6uCD)JmklqODu9gEuZDF-MVp-Q7l^>MUh(y1azHg)$%T+FLj!|tq_PN&$9 zOyfAE$F?oEwQl3e{S<DB-4|l=>fOt??~%KJ-?1oQ*USpPh=F8*k)`os#$OUko?*9) z;WS+V+nvn0v**5=?+Ttvy7VHr$E2xVy@{IX*IP%^S%vD7Dpr~D&8kHU)~r^n#%Xoa z3y$kx$ci0P9;~@K)WKLwpI!^L^_N^rUEj_f4)pHe<$e!Op5FNK=+~W3&z>A~s9-(D zKTDLXIkWQ}=FciId$W5o(I?>lO!k#y)_@QV=beA>e1+hH9u-K=fe`kP)`GH86kvrM zT6p1v`yu$D8}Dt{A%_x<Lm`R^zENU`CyJHgH!D^+Vm%Cc)!vTkWhcOoKn5w~kVF<~ z<dH}wspOJOHtFP(P)0dqW}#JS<&{`wspXbjcIjnZTYe_ym}LINrC?l^nb>0lbOBip zZMvzZ7*e1yfSpcIspXu0J;tUMj`6wI6lLI<=Nf4Ws_3G8F;VAbV16m-q?A@_>7}7% z$m6EwtjFo6p+HB_sHB#f52$U4O5Li`9EWN;swSY{EtS~98gRD=*AO+p7}JNV-^5y* zCAZa@TW|a9Rx7Tx3Kx_AadQlF%s$H*2W&UOCZNE!+!o6!b=Qir%L3$<TimO$eyi>@ zubP)*yYN=yX}t9AF>k&2F7s}_{Eo73zX0=bZ@>T#OfbI&AB=Cp3e)?Zxe!Mz@x&BY zZ1Keyo10U{9CxfScA5rdVvG;Y=uM3f-iW}9D{-{aMlh3nlgi!ThtbO}7XV{~Et2@J zgE<F%QBp(8Y!uDh*xYi_C++-@$}AgQGSb_iTyoDihWymXQlDjV%}#rb^~yhs9Cp_{ zeVz2#VL@H?)@-9a^Vnb;?Y7o$Kqa?~R9|DYh+{{+H{W!xZFk^r=gsxtQK?;Z+*94% zRULXWE|uecLw-5`;&>AmE_#JOo(|`eH*C6EiJz`;q?oqu`s=XA&P)lk*KYgmxaY3B z2x!Xg`|rR9FPffNGHU$sR(RR_p2#=v{0)wh0cnnjK3~M2Ltt;c4bop`s0z#9=}`;Y zUmsbVkflF^_T^Ldr~%)v5WZzf)L;Jq2OQSEV&^a9MP%&T9}FsUzbS+dO9Iq^p8yzy zF9cA4?@K}aSckv_T2M_)m|px2c%=(^a7@Z0UIjl$!pVdXQNl~13Rl>=&Z&-I40|D{ zVkkpS(XfU*x*-nRldg67&=orjRq9gn!y<kzhyoj8bc*=HBO*}`J#3XeXmP97%!OLj z`c*u#H4WVVbWt~*0HZ6!Xsc#@qi4xDjweo43^q<nTF&W|5^0kPTro>owkqQoHQ_`? zwCG&Si31!5DabyaV~(e&qZetl8)i9@H|#p&vwjgR=I~08ag?JAmpH6Scxzc?q~a9A z=o@8q!dW7d0~X^r3^yVNj+q=stOCMB)fiF{0clqhYq_dhKCwTWydy8A<I7+EWR9jv zrZV|qOhxFhncaCNG`AzoX<Db6)_e^%vss#La&s=;{AOIjDb7?Wv7GE7Cpzb$&UJ3_ zobDt~JLCBrc+xYP_Pi%G^Qq5k^0S}X{3k%WsYHA%^PmV#Xy`JR(1wyuI~vlQ<(}3z zYy55hK$3&#SNstYiFOEc79CnYI$EEH{wJa><4AyrrjLm(1f<nannq$aQ;%l!q(IZz z&4ktwkD{oeF(ukgb*j>oF2$q`GFwW)LQ|jG2&l@CDN%Py)3hN~M{qN0OQ)*S#aRxf zQ57mms@heXUX^lQb?I23nv07H=%z`{s#+VzR#CW>K5)gV;+#5H9)Pv2e6=btONY|F z7Ui#Y4eVIX3LwR*6|teXtJnssQKcHTK6Q<(V{gLP!d^CQnFWPpWz^Z6es(FL{lsY7 zR$9xR7PSiv>ES4gQ`f%sXt53IY(Yj?)83XPkQMD_jnZ1V{+2+gWyET+l2^12_p8Zb zUBq%DSKPfG7q>ZiE^w>sIqeQExT^IoNSfQ&>moO|VcqR9H;Io|p%<{~jZJTZV&1iu z1Z}j9>p;OX&;4Rcp#B{vfCFsKO%m8N6l9@-7tCPIJfWcwj<AF$OyLSsH~;`Uvfb&S diff --git a/docs/latex/wx/sizer11.bmp b/docs/latex/wx/sizer11.bmp deleted file mode 100644 index ca7e6c428f92af2701278261bf88cc37b4747e95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12790 zcmeI2v2NQi5QdqeTbHPS0I%)TwGh(og*<jpYx)6PATMAbbB#8DGa7J*zDrj>f>%FA zSNA{ClFlNJiUcV@T%IGECi#Cp{X9Fi;7_0bzE>vh(7wa*2ggqwSL!8NrM_eS^(%W^ z<1rnF!-1yMVzE%W-A?^L|9CvA<#MU6zZ}$lzgOGs)~xY0$*7^!i?<`j8=O%#Vmt|d zJz8WY|IzU4$ParP{rPYF`K3EV?TRQfOIZDEYE5hJzFr~8>=MrJkUr-NvdFi4u!;V- z4#fI#J>etKAMS?RkN&ux@R8^bcf;*Re_T)aNc4xh;r63Ht|xpX`orCD`_UiQ6F$<@ zpH%B4EwoM(4)gTS`Cge_a{m1&)rBsI4@EGVe2+}xgI?(Fd`BkmlSCJ3cfKnV_~cLz zzAKaYz5Icv=eGL!wtjH7;jm)!1#biAPi1!|6Zn=3MKBz`U7a$K%P(*p_q2d7WSXkW z`GU;lSL*f-=L@SZkKf@kddjZP2r|2bz5o2~5;b2`nI(*0O9t#ke%Q?DPxL43KzNqb zkMKTn8V+N`S;n7;i!iYYO$O#7KVS}~p3<Kcm5Q*-{{0Op?0ND0?;r5Ls1rY=@bEG8 zK>Q>@J>r(2J6Y3Bs89L~A}M4(yqFLlU~@;_`28vQK84JuQ?Pu4o!G~A{drsReTsHI zHk;ChOKtg=e6DEc8-F_SxuS)S)Jy*#=}$x9=Tog1-fB|SPk4VNg@;d{gaNnJVCT`& z(@FIcP*^>Gec2JTrv9r(0e-c{qp)*cekH3r<WZl9{IF{m<j>fjPr^p_oMry^B!p#= zAN>hC5T3n^`g!iZ-(&gb0|dj_{bd6K;B$t1uKYQj12xUxXAb1g{9BgY+;-$oXL+u5 zKE;u1^rZln*z_Eo@&_M(08eN1RAK-NxJkbUA6VVazqvK(m;CuH#m6iYlfne$uVD;% z)RuoXC-*CVzEb}Kjy66rpThpGe0!1lk$kfQfkY_RhCei9A|NwKo7&McvPldA_1xc* z+2&85`XmoaK2@n0CjB0-FA><7AinVk%}DPLgg0?%{PMhpx^Mb36u0CMf6N%0f2Gtv D-Dvdc diff --git a/docs/latex/wx/sizer11.eps b/docs/latex/wx/sizer11.eps deleted file mode 100644 index b4802b3182..0000000000 --- a/docs/latex/wx/sizer11.eps +++ /dev/null @@ -1,2271 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: Adobe Photoshop Version 8.0x118 -%%Title: sizer11.eps -%%CreationDate: Sun May 02 2004 15:04:27 -%%BoundingBox: 0 0 188 132 -%%HiResBoundingBox: 0 0 188 132 -%%SuppressDotGainCompensation -%ADO_ContainsXMP: MainFirst -%%EndComments -%%BeginProlog -%%EndProlog -%%BeginSetup -%%EndSetup -%ImageData: 188 132 8 3 1 188 7 "beginimage" -%BeginPhotoshop: 6328 -% 3842494D0425000000000010000000000000000000000000000000003842494D -% 03ED000000000010004800000001000200480000000100023842494D04260000 -% 0000000E000000000000000000003F8000003842494D040D0000000000040000 -% 001E3842494D04190000000000040000001E3842494D03F30000000000090000 -% 00000000000001003842494D040A00000000000100003842494D271000000000 -% 000A000100000000000000023842494D03F5000000000048002F66660001006C -% 66660006000000000001002F6666000100A1999A000600000000000100320000 -% 0001005A00000006000000000001003500000001002D00000006000000000001 -% 3842494D03F80000000000700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% FFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -% 03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E80000 -% 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800003842494D -% 0408000000000010000000010000024000000240000000003842494D041E0000 -% 00000004000000003842494D041A000000000343000000060000000000000000 -% 00000084000000BC0000000700730069007A0065007200310031000000010000 -% 0000000000000000000000000000000000010000000000000000000000BC0000 -% 0084000000000000000000000000000000000100000000000000000000000000 -% 00000000000010000000010000000000006E756C6C0000000200000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000008400000000526768746C6F6E67000000BC00000006736C69 -% 636573566C4C73000000014F626A6300000001000000000005736C6963650000 -% 001200000007736C69636549446C6F6E67000000000000000767726F75704944 -% 6C6F6E6700000000000000066F726967696E656E756D0000000C45536C696365 -% 4F726967696E0000000D6175746F47656E657261746564000000005479706565 -% 6E756D0000000A45536C6963655479706500000000496D672000000006626F75 -% 6E64734F626A6300000001000000000000526374310000000400000000546F70 -% 206C6F6E6700000000000000004C6566746C6F6E67000000000000000042746F -% 6D6C6F6E670000008400000000526768746C6F6E67000000BC0000000375726C -% 54455854000000010000000000006E756C6C5445585400000001000000000000 -% 4D7367655445585400000001000000000006616C745461675445585400000001 -% 00000000000E63656C6C54657874497348544D4C626F6F6C010000000863656C -% 6C546578745445585400000001000000000009686F727A416C69676E656E756D -% 0000000F45536C696365486F727A416C69676E0000000764656661756C740000 -% 000976657274416C69676E656E756D0000000F45536C69636556657274416C69 -% 676E0000000764656661756C740000000B6267436F6C6F7254797065656E756D -% 0000001145536C6963654247436F6C6F7254797065000000004E6F6E65000000 -% 09746F704F75747365746C6F6E67000000000000000A6C6566744F7574736574 -% 6C6F6E67000000000000000C626F74746F6D4F75747365746C6F6E6700000000 -% 0000000B72696768744F75747365746C6F6E6700000000003842494D04280000 -% 0000000C000000013FF00000000000003842494D041100000000000101003842 -% 494D0414000000000004000000013842494D040C0000000011CF000000010000 -% 00A000000070000001E00000D200000011B300180001FFD8FFE000104A464946 -% 00010201004800480000FFED000C41646F62655F434D0001FFEE000E41646F62 -% 6500648000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C -% 0F1518131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E -% 0E0E14110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C -% 0C0C0C0C0C0C0C0C0C0C0C0C0C0CFFC0001108007000A0030122000211010311 -% 01FFDD0004000AFFC4013F000001050101010101010000000000000003000102 -% 0405060708090A0B010001050101010101010000000000000001000203040506 -% 0708090A0B1000010401030204020507060805030C3301000211030421123105 -% 4151611322718132061491A1B14223241552C16233347282D14307259253F0E1 -% F163733516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F346 -% 2794A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F63747576777 -% 8797A7B7C7D7E7F7110002020102040403040506070706053501000211032131 -% 12044151617122130532819114A1B14223C152D1F0332462E172829243531563 -% 7334F1250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375 -% E3F34694A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747 -% 5767778797A7B7C7FFDA000C03010002110311003F00E93A05B633EAF7480D30 -% 3EC38C7FF0262BDF68BBF7BF00B3FA1FFE27FA47FE10C6FF00CF6C572CBF39D6 -% 39D5BB1D8C249630D01C409F6B776F6EEDA9291754EA39387D372F2EA20D98F4 -% 596B0384B4B98C73DBBA36FB7DABCF7FF1D4FAC7FE8B13FEDB7FFE965DB75DF5 -% FF0061752373DAF71C4BF56B0307D0B3F35A76EDDBB1ABC5D697C3B0E3C90999 -% C44A8E96B6648D8BD97FE3A9F58FFD1627FDB6FF00FD2C97FE3A9F58FF00D162 -% 7FDB6FFF00D2CB8D495EFBA72FFE6E2B788F77B2FF00C753EB1FFA2C4FFB6DFF -% 00FA592FFC753EB1FF00A2C4FF00B6DFFF00A5971A925F74E5FF00CDC55C47BB -% DCE17F8C4FAE59F69A70306ACBB5ADDEEAE8A2DB1C1A086EF2CAAD73B6EE7354 -% F3BEBFFD77E9DB3F6874EAF0FD59F4FD7C7BABDDB637ECF56C6EEDBB9AB835D3 -% 33AD74CABEB0F5EEA7BED2DC975CFE9F6E33CE3DFBACCAA6C0FC7C97537BB11C -% FC2FB47A9BE9FE63D5C6FF000C993E57103A628C856D5FF74AB3DDB9FF008EA7 -% D63FF4589FF6DBFF00F4B291FF0019FF005A054DB8E3E30A9EE731961AACDA5C -% C0D758C6BFD6DBB98DB6ADFF00F18C53C6FAE3D2ACEB9D45F90DBFA66275BB31 -% 6DB32BA65EFAECC67D75BBD6769453F6BF56EBECFB6FE87FD2DD47DAEDF42D55 -% 7EB47D64197F57FA674BC6EAD7F507D1666373DEF3737D667AED7F4EB721B7FF -% 003BFA167AB556E7DBF664C183199462797038AACFEEDC388FCBFBB2F42ACF74 -% BFF8EA7D63FF004589FF006DBFFF004B25FF008EA7D63FF4589FF6DBFF00F4B2 -% E352537DD397FF003715711EEF65FF008EA7D63FF4589FF6DBFF00F4B25FF8EA -% 7D63FF004589FF006DBFFF004B2E3524BEE9CBFF009B8AB88F77B2FF00C753EB -% 1FFA2C4FFB6DFF00FA5975FF00543EB2751EB9D36DCBCB15B2C65EEA80A9A437 -% 68656FFCF759EEFD22F1E5E99FE2CFFE41BFFF000DBFFF003DD0AAF3DCBE2861 -% 3284044D8D42624DBD8372DEE73DAD7826B7BAB7811A39A76BDA557CCCEB1DD3 -% B26CA6D98AEDDB6308E5A1CDDCC7B7F94DFA6C40CCAAFBEC78A1C5BE931F4DE0 -% B9C3D5DAFF007E10D3F45B76DFFACD5FCE7DA7D0FE6FD652CEB1B674DCA73663 -% D2B5A43816905A1EC735CD786B9BB5CD592BDFFFD0E93EAFD7BFEAFF0049D623 -% 031BFF003DB55FF43F95F82A7F573FF13FD2BFF08637FE7B6A3F50EA03045005 -% 16E55B956FA35554EC0E2E0CB721DEEC8B71EA6B5B563D9FE11252B33A757998 -% 97E25AF22BC8ADF53CB603835ED2C76D9DDEEF72E5FF00F1ACE83FF7272FFCEA -% FF00F48AE87F6AE77FE5366FF9F87FFBDE97ED5CEFFCA6CDFF003F0FFF007BD4 -% 98F364C608848C6F7A4100BCF7FE359D07FEE4E5FF009D5FFE914BFF001ACE83 -% FF007272FF00CEAFFF0048AE87F6AE77FE5366FF009F87FF00BDE97ED5CEFF00 -% CA6CDFF3F0FF00F7BD3FEF7CC7F9C92B847679EFFC6B3A0FFDC9CBFF003ABFFD -% 2297FE359D07FEE4E5FF009D5FFE915D0FED5CEFFCA6CDFF003F0FFF007BD0B2 -% 7AEE462635B9591D233594D0C75B6BF762186306F7BB6B739CE76D6B52FBDF31 -% FE724AE11D9C3FFC6B3A0FFDC9CBFF003ABFFD2297FE359D07FEE4E5FF009D5F -% FE915D9A497DEF98FF003925708ECF19FF008D6741FF00B9397FE757FF00A452 -% FF00C6B3A0FF00DC9CBFF3ABFF00D22BB3492FBDF31FE724AE11D9E33FF1ACE8 -% 3FF7272FFCEAFF00F48A5FF8D6741FFB9397FE757FFA45766925F7BE63FCE495 -% C23B3C67FE359D07FEE4E5FF009D5FFE914BFF001ACE83FF007272FF00CEAFFF -% 0048AECD24BEF7CC7F9C92B847678CFF00C6B3A0FF00DC9CBFF3ABFF00D22B73 -% A1FD5BC4E8788FC4C4B2C7D6FB0DA4DBB4BB716B19F98DAFDBFA35AE926CF98C -% B31C339990EC55410FA1FCAFC156EA956DE9B94666297FFD4957D54EADFF0025 -% E5FF00C4BFFEA4A892FF00FFD1E9FEAE7FE27FA57FE10C6FFCF6D52EA2DDFD4B -% A23263767384FC7133947EAE7FE27FA57FE10C6FFCF6D4DD5CDADCDE8E69735B -% 68CC79ADCF697343BEC79FB1CFADAEA9CF66EFCCF52BFEBA4A6C756CF1D37A66 -% 57502CF5462D4EB7D3063716890DDDEEDBB943332B2465D5D3F14B2BBAFA6DB9 -% 97DAD3631BE8BF1AB731D431F43ACF51B97FF722BF4F67F8459FD43A2FD60EA1 -% 897E1DFD531C5192C756F0DC37021AE11EC71CD77D15B36635365D55EE6FE968 -% DDE9BC12080F1B6C61DBF4EB7FB1DE93FF0047EA574DBFCE53524A72FAA759CA -% E97650DB2A6E4B0626465663EBFD1C0C638C6DB2B6D963FDAEAEFBBD2A3F4CFF -% 005FECD5FAD553EBE4A97FCE1C6FDB9FB1FD9EA6FF00463D41EB7A9E8FDBFD4F -% B247F42FB3FE8FED5EAFF4BFD07D9FFC3AB97F4AC1C96B9B7B1D607D57D0EDCF -% 793E9E496BF2AADDBF76D7BABAF67FA067E8E8F4AB44661E3B2D7DCC0E6BEDB7 -% D7B087B8073C56DC497B776D737D0AD9FA3FE6B7B3D6FE7BF48929CB7F5DCC3D -% 259D4ABC3F65EFC4762B43DAF3653956D54EC21C71BD0CD6D56FF36F7FD92BB1 -% F4FEB791FA6F4CFF00580D87EAC75236B5ACB4E0DFBDAD25CD0EF49FB9AC7B9B -% 5B9EDDDF9FE9D68CEE8BD35F86DC0B29F530D8CA6A6E3BDCF757B31DDEA63B7D -% 37B9CD76D737F49FF723F9BC8F56B41FAC15B6AFAB1D4AA69716B306F682E717 -% BA054F1EFB2C2EB2C77F2DEEDE929D44924925292492494A551F9E1BD56AE9BB -% 24DB8F6E41B27402B7D14ECDBF9DBFED1FF414F3ABCEB69DB837D78D6EE1365B -% 51B86DEED6D6DB71FDDFCBDEA8E1749EA4CEA8DEA39F9B5E53ABA2CC7632BA0D -% 3A58FA6D2E738E4646EDBF67FDC4949B0B273735E3218EAAAC465B7D165058E7 -% D8E75175F89EAB327D5AEBADAFF45967A7F64B7FE3552A7EB2B98CCA7E6E3B98 -% CC66E75B5BEB20FA95E05C71EDDB597FB5DE9D98FB37BFF4D7FDABF478F4FA1F -% 68D6661E3B1AF6D61D5B6CB7D77063DCD1BE5B638B76386C6DB6337DF5B3F459 -% 0F7DDEB7A9EBDFEA01FD17A6D95BEB7D32CB199153C6E7EACCC78BF39BF4BFC3 -% DADDFF00F07FE07D3494D2C6FAC7F6BC76FD96BA6FCA7E49C367A57EFC6360A7 -% F6839CDCE652EB1D5B715BB7FA1FF4BFD07F37FAC23D5D5EC7F5CFD96EADB5B9 -% D89565FA6F2458D6B9D915644BAAF5F1EC7536B30ABF4FD567F3B75BEB5DE9AB -% AFC3C77DACB9E1CE7D56FAF592F710D79ADD892C6EEDAD6FA163FF0047FCD6F7 -% FADFCF7E9146BE9F8B5DCDBDA1FEAB595D5BCD9612E6542E6D4DBB73CFAFB7ED -% 57BBF4DEA6FB3F4AFF00D255524A6CAA9D5BFE4BCBFF00897FFD4956D54EADFF -% 0025E5FF00C4BFFEA4A4A7FFD2E9FEAE7FE27FA57FE10C6FFCF6D56F2F070B3A -% B1566E3D595535DB832E636C687005BBF6D81CDDDB5CAA7D5CFF00C4FF004AFF -% 00C218DFF9EDA9FAE67D9818D8F730B807E563D36EC61B1FE9DB6B29B7D2A98D -% B2CB2DF4DFFA26B2B7FE93FC1D89296FF9B5F573FF002AB0BFF61EAFFC825FF3 -% 6BEAE7FE55617FEC3D5FF9057BA7DBD37A95F6E3E2E4E77AB47F3C2DC57D01A6 -% 18FF004DD66561535FABE9DD559E8EEF57D27FABFCDAD0FD8EDFFB9377FE07FF -% 00A4525383FF0036BEAE7FE55617FEC3D5FF00904BFE6D7D5CFF00CAAC2FFD87 -% ABFF0020B631B07172EB36E3E65CF636CB2A26183DF4BDF8D7B7DD437E85D558 -% C46FD8EDFF00B9377FE07FFA4525383FF36BEAE7FE55617FEC3D5FF904BFE6D7 -% D5CFFCAAC2FF00D87ABFF20B7BF63B7FEE4DDFF81FFE914BF63B7FEE4DDFF81F -% FE91494D3495CFD8EDFF00B9377FE07FFA452FD8EDFF00B9377FE07FFA452534 -% D2573F63B7FEE4DDFF0081FF00E91548020004C91DCF27EE494BA492A3F6C637 -% A9655192EC86D14538CFAC6250FC8797DEECE6D9EA574519767A7B30ABF7FA6C -% 67FDB95A4A6F2489858B8D9D51B69BF318D6BB6917D071DD20076956662516B9 -% 9EEFE7366C52CBC1C5C2C5BB332732EAF1F1AB75B73E1876B180D963B6B2873D -% DB58DFCD494852573F63B7FEE4DDFF0081FF00E914BF63B7FEE4DDFF0081FF00 -% E91494D3553AB7FC9797FF0012FF00FA92B42FC218E49175960F6E8FD91AEFFF -% 00475D7FB8B3FAB7FC9797FF0012FF00FA92929FFFD3E9FEAE7FE27FA57FE10C -% 6FFCF6D51EBDF43A77FE9CF03FF6E6952FAB9FF89FE95FF8431BFF003DB547AF -% 7D0E9DFF00A73C0FFDB9A525377A8747EA37E3F596D21D5D991D47133719CC35 -% EF733199D2DF61A3D6DF437237E064558EDCBFD0FADE9FAFFABFE9152A7EAD75 -% 0EA165E733ED18A1D60CA19194EC7B2EC87B995E1D9D3FA851D35B462B7A57A5 -% D3F1DD9BD3EAB2DFDA75D989FAEE35D8F750BB04925399D028CAC7C4C8A72697 -% 52E19B99630B8B1C1F5DD937E653757E93ECF63AAC86FB6DF4AEDFFE0D69A492 -% 4A5249249294924924A52C35B8B0D25290FA2FFE28FA97FE12C1FF00CFBD4D11 -% 0FA2FF00E28FA97FE12C1FFCFBD4D2530FAD7D173BA95B41C6F58D4FC6CAC1C8 -% 663BE9ADC4659C6FE7ECCDAB21B5E16DC5B3ED36E2D56E7D7FA1FB35177E9557 -% EB1D23AB64D3D53228C3ADD91D531F2F07D0058D756C155D5E1E77DA1D66C7DB -% D49F8F895E5B36B3F40FE9555BE9FEC6B6CCAEAD2494C297BACA9963EB752E7B -% 439D53F697349126B7FA4EB2ADECFF0083B2C629A4924A68F50EFF00D8FF00D1 -% AB1BAB7FC9797FF12FFF00A92B67A877FEC7FE8D58DD5BFE4BCBFF00897FFD49 -% 494FFFD4E9FEAE7FE27FA57FE10C6FFCF6D51EBDF43A77FE9CF03FF6E6952FAB -% 9FF89FE95FF8431BFF003DB547AF7D0E9DFF00A73C0FFDB9A5253D8249249294 -% 924924A5249249294924924A52C35B8B0D25290FA2FF00E28FA97FE12C1FFCFB -% D4D110FA2FFE28FA97FE12C1FF00CFBD4D253D0249249294924924A68F50EFFD -% 8FFD1AB1BAB7FC9797FF0012FF00FA92B67A877FEC7FE8D58DD5BFE4BCBFF897 -% FF00D49494FF00FFD5E9FEAE7FE27FA57FE10C6FFCF6D56B2F0AACCF405AE735 -% B8F7D592361009750F17D4D9735EDDBEAB19BFDBF4173DD1BEB77D5BC4E8DD37 -% 1EFCFA9B755858ECB180CED70ADBB98EDBF9CDFCE573FE7BFD56FF00CB0ABEF2 -% 929E9FEDEFFE57DEDFFD2497DBDFFCAFBDBFFA49731FF3DFEAB7FE5855F794BF -% E7BFD56FFCB0ABEF2929E9FEDEFF00E57DEDFF00D2497DBDFF00CAFBDBFF00A4 -% 9731FF003DFEAB7FE5855F794BFE7BFD56FF00CB0ABEF2929E9FEDEFFE57DEDF -% FD2497DBDFFCAFBDBFFA49731FF3DFEAB7FE5855F794BFE7BFD56FFCB0ABEF29 -% 29E9FEDEFF00E57DEDFF00D2497DBDFF00CAFBDBFF00A49731FF003DFEAB7FE5 -% 855F794BFE7BFD56FF00CB0ABEF2929E9FEDEFFE57DEDFFD24AA98931A0ECB0B -% FE7BFD56FF00CB0ABEF297FCF7FAADFF0096157DE5253BA9B16BAF1B32FCD697 -% FAB915D54BC02DDBB6975F657B5AEADCEDFBB2EDDFEFFDC587FF003DFEAB7FE5 -% 855F794BFE7BFD56FF00CB0ABEF2929E9FEDEFFE57DEDFFD2497DBDFFCAFBDBF -% FA49731FF3DFEAB7FE5855F794BFE7BFD56FFCB0ABEF2929E9FEDEFF00E57DED -% FF00D2497DBDFF00CAFBDBFF00A49731FF003DFEAB7FE5855F794BFE7BFD56FF -% 00CB0ABEF2929E8EEC8F55B0419246A483A0DDFBAD67EFACEEADFF0025E5FF00 -% C4BFFEA4ACDFF9EFF55BFF002C2AFBCAAFD43EB97D59BF07229AFA8545F656E6 -% B44C492080929FFFD9003842494D042100000000005300000001010000000F00 -% 410064006F00620065002000500068006F0074006F00730068006F0070000000 -% 1200410064006F00620065002000500068006F0074006F00730068006F007000 -% 200043005300000001003842494D042200000000012E4D4D002A000000080007 -% 011200030000000100010000011A00050000000100000062011B000500000001 -% 0000006A012800030000000100020000013100020000001B0000007201320002 -% 000000140000008D8769000400000001000000A4000000D00000004800000001 -% 000000480000000141646F62652050686F746F73686F702043532057696E646F -% 777300323030343A30353A30322031353A30343A3236000000000003A0010003 -% 00000001FFFF0000A002000400000001000000BCA00300040000000100000084 -% 0000000000000006010300030000000100060000011A0005000000010000011E -% 011B000500000001000001260128000300000001000200000201000400000001 -% 0000012E02020004000000010000000000000000000000480000000100000048 -% 000000013842494D03FD0000000000080000000000000000 -%EndPhotoshop -%begin_xml_code -/pdfmark where {pop true} {false} ifelse -/currentdistillerparams where {pop currentdistillerparams -/CoreDistVersion get 5000 ge } {false} ifelse -and not {userdict /pdfmark /cleartomark load put} if -[/NamespacePush pdfmark -[/_objdef {photoshop_metadata_stream} /type /stream /OBJ pdfmark -/MetadataString 6116 string def % exact length of metadata -/TempString 100 string def -/ConsumeMetadata { -currentfile TempString readline pop pop -currentfile MetadataString readstring pop pop -} bind def -ConsumeMetadata -%begin_xml_packet: 6116 -<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> -<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 3.0-28, framework 1.6'> -<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:exif='http://ns.adobe.com/exif/1.0/'> - <exif:ColorSpace>4294967295</exif:ColorSpace> - <exif:PixelXDimension>188</exif:PixelXDimension> - <exif:PixelYDimension>132</exif:PixelYDimension> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:pdf='http://ns.adobe.com/pdf/1.3/'> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'> - <photoshop:History></photoshop:History> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:tiff='http://ns.adobe.com/tiff/1.0/'> - <tiff:Orientation>1</tiff:Orientation> - <tiff:XResolution>72/1</tiff:XResolution> - <tiff:YResolution>72/1</tiff:YResolution> - <tiff:ResolutionUnit>2</tiff:ResolutionUnit> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xap='http://ns.adobe.com/xap/1.0/'> - <xap:CreateDate>2004-05-02T15:04:26-01:00</xap:CreateDate> - <xap:ModifyDate>2004-05-02T15:04:26-01:00</xap:ModifyDate> - <xap:MetadataDate>2004-05-02T15:04:26-01:00</xap:MetadataDate> - <xap:CreatorTool>Adobe Photoshop CS Windows</xap:CreatorTool> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> - <xapMM:DocumentID>adobe:docid:photoshop:f81a8a89-9c49-11d8-8cb8-8d9ae0666694</xapMM:DocumentID> - </rdf:Description> - - <rdf:Description rdf:about='uuid:f81a8a8a-9c49-11d8-8cb8-8d9ae0666694' - xmlns:dc='http://purl.org/dc/elements/1.1/'> - <dc:format>image/epsf</dc:format> - </rdf:Description> - -</rdf:RDF> -</x:xmpmeta> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<?xpacket end='w'?> -%end_xml_packet -[{photoshop_metadata_stream} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark -[{photoshop_metadata_stream} MetadataString /PUT pdfmark -[/_objdef {nextImage} /NI pdfmark -%end_xml_code -gsave % EPS gsave -/hascolor -/deviceinfo where -{pop deviceinfo /Colors known -{deviceinfo /Colors get exec 1 gt} -{false} ifelse} -{/statusdict where -{pop statusdict /processcolors known -{statusdict /processcolors get exec 1 gt} -{false} ifelse} -{false} ifelse} -ifelse -def -40 dict begin -/_image systemdict /image get def -/_setgray systemdict /setgray get def -/_currentgray systemdict /currentgray get def -/_settransfer systemdict /settransfer get def -/_currenttransfer systemdict /currenttransfer get def -/blank 0 _currenttransfer exec -1 _currenttransfer exec eq def -/negative blank -{0 _currenttransfer exec 0.5 lt} -{0 _currenttransfer exec 1 _currenttransfer exec gt} -ifelse def -/inverted? negative def -/level2 systemdict /languagelevel known -{languagelevel 2 ge} {false} ifelse def -/level3 systemdict /languagelevel known -{languagelevel 3 ge} {false} ifelse def -/foureq {4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -4 index eq 8 1 roll -pop pop pop pop and and and} def -hascolor {/band 0 def} {/band 5 def} ifelse -/setcmykcolor where {pop -1 0 0 0 setcmykcolor _currentgray 1 exch sub -0 1 0 0 setcmykcolor _currentgray 1 exch sub -0 0 1 0 setcmykcolor _currentgray 1 exch sub -0 0 0 1 setcmykcolor _currentgray 1 exch sub -4 {4 copy} repeat -1 0 0 0 foureq {/band 1 store} if -0 1 0 0 foureq {/band 2 store} if -0 0 1 0 foureq {/band 3 store} if -0 0 0 1 foureq {/band 4 store} if -0 0 0 0 foureq {/band 6 store} if} if -blank {/band 6 store} if -gsave % Image Header gsave -/rows 132 def -/cols 188 def -188 132 scale -level2 { -band 0 eq { -/DeviceRGB -} {/DeviceGray} ifelse -setcolorspace currentdict /PhotoshopDuotoneColorSpace undef currentdict /PhotoshopDuotoneAltColorSpace undef } if -/picstr1 188 string def -/picstr2 188 string def -/picstr3 188 string def -/picstr4 188 string def -/_rowpadstr 188 string def -/rawreaddata {hasDecodeFile 0 eq {/decodeFile currentfile /ASCII85Decode filter def - /hasDecodeFile 1 def} if - decodeFile exch readstring pop} def -/padreaddata { _topPad 0 gt { /_topPad _topPad 1 sub def pop _rowpadstr } - { _subImageRows 0 gt { /_subImageRows _subImageRows 1 sub def - dup _leftPad _picsubstr rawreaddata putinterval } - { pop _rowpadstr } ifelse } ifelse } def -/image2 level2 {/image load def} {{begin -Width Height BitsPerComponent ImageMatrix -Decode length 2 eq -{/DataSource load image} if -Decode length 6 eq -{DataSource 0 get DataSource 1 get DataSource 2 get -true 3 colorimage} if -Decode length 8 eq -{DataSource 0 get DataSource 1 get -DataSource 2 get DataSource 3 get -true 4 colorimage} if -end} def} ifelse -/_image2 level2 {/_image load def} {{begin -Width Height BitsPerComponent ImageMatrix -/DataSource load _image end} def} ifelse -/beginimage level2 {{ -band 0 eq band 4 eq or band 5 eq or -{image2} -{negative {{pop 0}} {{pop 1}} ifelse -_settransfer _image2} ifelse -} def} -{{pop .9 setgray 0 0 moveto 0 1 lineto -1 1 lineto 1 0 lineto fill 0 setgray -0 1 translate 1 cols div 1 rows div scale -/ratio {cols 400 div mul} def -/Helvetica findfont 15 ratio scalefont setfont -5 ratio -20 ratio moveto -(ASCII85 encoded image needs PostScript Level 2) show -/x 128 string def -{currentfile x readline {} {pop exit} ifelse -(~>) search {pop pop pop exit} {pop} ifelse -} loop } def} -ifelse -/hasDecodeFile 0 def -/readdata /rawreaddata load bind def -12 dict begin -/ImageType 1 def -/Width cols def -/Height rows def -/ImageMatrix [cols 0 0 rows neg 0 rows] def -/BitsPerComponent 8 def -band 0 eq -{/Decode [0 1 0 1 0 1] def -/MultipleDataSources true def -/DataSource [ -{picstr1 readdata} -{picstr2 readdata} -{picstr3 readdata picstr4 readdata pop} -] def} -{/Decode [0 1] def -/DataSource { -picstr1 readdata pop -picstr2 readdata pop -picstr3 readdata pop -picstr4 readdata -} def} -ifelse -currentdict end -%%BeginBinary: 119731 -beginimage -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR)hhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVM]AhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,G -hVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVR,GhVM]AhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzzs8W-!s8W-!zzzz!!*$!zzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzs8W-!s8W-! -zzzz!!*$!zzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/s8W-!s8W-!K7ef/K7ef/K7ef/K7ef/K7j2VK7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -s8W-!s8W-!%LrsY%LrsY%LrsY%LrsY%M&LK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("#`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!z -zzz!<<'!zzzzzzzzzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!zzzz!<<'!zzzzzzz -zzzzzz!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7egVs+>rVK7ef/K7ef/K7ef/K7ef/KE(t(K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8 -s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%LrsY -%LrsY%LrsY%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!!!*'!s8N'!!!*'!s8W*! -s8W-!rr<$!zzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!!!*'!s8N'!!!*'!s8W*! -s8W-!rr<$!zzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVK7j4(s8R_(K7j4(s8W+Os8W-!s+>rV -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^ -`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%Ls!KrsfMK%M&O=s8NQ=%M&O=s8W*/s8W-!rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PqjuF2c,uF*#=>`Pog8 -`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!!<<'! -!<<'!!<<'!z!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9d -hVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!!<<'!!<<'! -!<<'!z!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j -`Pog8s8W-!s8W-!s8W-!`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(KE(t(KE(t(K7ef/KE(t( -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8s8W-!s8W-!s8W-!`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%Ls!KrsfMK%fcP=%fcP=%fcP=%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`PogrF*%A&F2c,; -`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$! -!<<'!!<<'!!<<*!z!<<'!zzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PhfWzzzzzzzzzzzzz!!!$!rr<$!!<<'! -!<<'!!<<*!z!<<'!zzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9d -hVQ5j`Pog8s2Dsr`Pog8`Pof;`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(KE(t(KE(uOK7ef/ -KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s2Dsr`Pog8`Pof; -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%Ls!KrsfMK%fcP=%fcP=%fcS/%LrsY%fcP=%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8s)W7& -`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`SSSQ`PhfWzzzzzzzzzzzzz!!!$! -rr<$!!<<*!s8W*!!!*'!s8N'!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8 -`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`DX[o`PhfWzzzzzzzzzzzzz!!!$!rr<$! -!<<*!s8W*!!!*'!s8N'!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`Pog8s)W7&`Pog8`Pog8 -`Pl9dhVQ5j`Pog8s)W7&F)uDDF)uDD`=U#-`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(uOs8W+OK7j4( -s8R_(KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`Pog8s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8s)W7&F)uDD -F)uDD`HB/=`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%Ls!KrsfMK%fcS/s8W*/%M&O=s8NQ=%fcP=%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8 -s)W7&`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzz!!!$!rr<$!!<<'!zzs8W*!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A& -F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$! -rr<$!!<<'!zzs8W*!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PogrF*%A&F2c,;`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(K7ef/K7ef/ -s8W+OKE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7h.^`Pog8`PogrF*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%LrsY%LrsYs8W*/%fcP=%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pogr -F*%A&F2c,;`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzz!!!$!rr<$!!<<'!!!*$!z!<<'!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,u -F*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzz!!!$! -rr<$!!<<'!!!*$!z!<<'!!<<'!zzzzzzzzzzzzz!!(!W`Pog8`PqjuF2c,uF*#=> -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7egVs+>rVKE(t(K7j2V -K7ef/KE(t(KE(t(K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7h.^`Pog8`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%fcP=%M&LK%LrsY%fcP=%fcP=%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8 -`PqjuF2c,uF*#=>`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzz -zzzzzzzzz!!!$!rr<$!!!*'!s8N'!!<<*!s8N'!!!*'!rr<$!zzzzzzzzzzzz!!(!W -`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzz!!!$!rr<$!!!*'!s8N'!!<<*!s8N'!!!*'!rr<$!zzzzzzzzzzz -z!!(!W`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7egVs+>rVK7j4(s8R_(KE(uOs8R_(K7j4(s+>rVK7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`W("#`Pog8s)W8# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%Ls!KrsfMK%M&O=s8NQ= -%fcS/s8NQ=%M&O=rsfMK%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%M$Is`Pog8`W("#`Pog8s)W8#`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8# -`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7h.^`Pog8s)W8#`Pog8`W("#`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8s)W8#`Pog8`W("# -`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzz!!(!W`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8 -`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8s)Z/u -`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%M$Is`Pog8s)Z/u`Pog8`Pqju`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8 -`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfW -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%M$Is`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzz!!(!W`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`PhfWzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!(!W`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`PmI^K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/ -K7ef/K7ef/K7ef/K7ef/K7ef/K7ef/K7h.^`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pi;s%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY%LrsY -%LrsY%M$Is`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX" -zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzz -!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4# -e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^XX"!!(R" -eH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".M -e^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4#e^`4# -e^XZMe^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^XX"!!(R"eH".Me^`4#e^`4#e^`4#e^`4#e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec5[Ls8W-!s8N)L -e^`4#eH".Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-!s8N)Le^`4# -eH".Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMec5[Ls8W-!s8N)Le^`4#eH".Me^XZMeH".Me^`4# -e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-!s8N)Le^`4#eH".Me^XZMeH".Me^`4#e^`4# -e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -ec5[Ls8W-!s8N)Le^`4#eH".Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[L -s8W-!s8N)Le^`4#eH".Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec5[Ls8W-!s8N)Le^`4#eH".M -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec5[Ls8W-!s8N)Le^`4#eH".Me^XZM -eH".Me^`4#e^`4#e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4# -!!!#Le^XZMeH".Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4#!!!#L -e^XZMeH".Me^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4# -e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4#!!!#Le^XZMeH".Me^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^XZM -e^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4#!!!#Le^XZMeH".Me^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH"," -!7fWMeGoRLe^`4#!!!#Le^XZMeH".Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWM -eGoRLe^`4#!!!#Le^XZMeH".Me^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4#!!!#Le^XZM -eH".Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^XZMe^`4#!7fWMe^`4#eH","!7fWMeGoRLe^`4#!!!#Le^XZMeH".M -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4# -!7fWMe^`4#eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWM -e^`4#eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eGoU"eH".M!7fWM -!7fU"e^`1Me^XZM!7fWMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eGoU"eH".M!7fWM!7fU" -e^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41M -e^`4#eW^'ae^`4#!7fWMe^`4#eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -eW^'ae^`4#!7fWMe^`4#eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4# -eGoU"eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eGoU" -eH".M!7fWM!7fU"e^`1Me^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4# -e^XX"e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX" -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'a -e^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX"e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4# -!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M -!7fWM!7fU"e^`4#e^XX"e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM -!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX"e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM!7fU"e^`4#e^XX"e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWM -e^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".M -eH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4# -eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M -z!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -eW^'ae^`4#!7fWMe^`4#eH".MeH".Mz!7fU"e^`4#e^XX"e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".M -eH".M!7fWMe^`1Me^`4#e^XZM!7fWMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M -!7fWMe^`1Me^`4#e^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWMe^`1Me^`4#e^XZM -!7fWMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWMe^`1Me^`4#e^XZM!7fWM -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4# -!7fWMe^`4#eH".MeH".M!7fWMe^`1Me^`4#e^XZM!7fWMe^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWM -e^`4#eH".MeH".M!7fWMe^`1Me^`4#e^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWM -e^`1Me^`4#e^XZM!7fWMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#!7fWMe^`4#eH".MeH".M!7fWMe^`1M -e^`4#e^XZM!7fWMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41M -e^`4#eW^'ae^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4# -eW^'ae^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#eH".Me^XZM -eH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#eH".Me^XZMeH".M -eH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMec41Me^`4#eW^'ae^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1M -e^XZMeH".Me^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#ec41Me^`4#eW^'ae^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZM -eH".Me^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'a -e^`4#eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4# -eH".Me^XZMeH".MeH".M!7fWM!7fU"e^`1Me^XZMeH".Me^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".M -eGoRLe^`4#!!!#Le^XZMe^XZMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".MeGoRL -e^`4#!!!#Le^XZMe^XZMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -ec41Me^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZM -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41M -e^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZMe^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#e^XX" -!!(R"eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZMe^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#eW^'ae^`4#e^XX"!!(R" -eH".MeH".MeGoRLe^`4#!!!#Le^XZMe^XZMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMec41Me^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".MeGoRLe^`4# -!!!#Le^XZMe^XZMe^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#eW^'ae^`4#e^XX"!!(R"eH".MeH".MeGoRLe^`4#!!!#L -e^XZMe^XZMe^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec40aPa%Ds -P`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec40aPa%DsP`u0u -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec40aPa%DsP`u0ue^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMec40aPa%DsP`u0ue^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec40aPa%DsP`u0ue^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMeGoRLz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eGoRLz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMeGoRLz!!!#Le^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLz!!!#Le^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMeGoRLz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eGoRLz!!!#Le^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMeGoRLz!!!#Le^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eGoRLz!!!#Le^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZM -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XZMe^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#eH".Me^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XZMe^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#eH".M -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^XX"zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX" -zzzzzzzzzzzzzz!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^XX"zzzzzzzzzzzzzz -!!(R"e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]nKPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Dse^`4#e^`4# -e^`4#e^`4#e^`4#Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa'_Ke^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]nKPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%Dse^`4#e^`4#e^`4#e^`4#e^`4#Pa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa'_Ke^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]nKPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%Dse^`4#e^`4#e^`4#e^`4#e^`4#Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa'_Ke^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]nK -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Dse^`4#e^`4#e^`4#e^`4# -e^`4#Pa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%DsPa%Ds -Pa'_Ke^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lazzzzzzzzzzzzzzzzzzzzz!!!$! -e^`4#e^`4#e^`4#e^`4#e^`4#PQ1[`zzzzzzzzzzz!<:U"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]lazzzzzzzzzzzzzzzzzzzzz!!!$!e^`4#e^`4#e^`4#e^`4#e^`4# -PQ1[`zzzzzzzzzzz!<:U"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lazzzzzzzz -zzzzzzzzzzzzz!!!$!e^`4#e^`4#e^`4#e^`4#e^`4#PQ1[`zzzzzzzzzzz!<:U" -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lazzzzzzzzzzzzzzzzzzzzz!!!$!e^`4# -e^`4#e^`4#e^`4#e^`4#PQ1[`zzzzzzzzzzz!<:U"e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]larr<$!zs8W-!s8W-!s8W-!s8N*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:^`z!!*'!s8W-!s8W-!s8W-!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -rr<$!zs8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:^`z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]larr<$!zs8W-!s8W-!s8W-!s8N*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:^`z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]larr<$! -zs8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:^` -z!!*'!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!s8W-!s8W-!s8W-!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8N*!s8W-!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!s8W-!s8W-!s8W-! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!s8W-! -s8W-!s8W-!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!!<<*!s8W-!s8W-!s8W-!s8N*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!s8W-!s8W-!s8W-!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*! -s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*! -s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N'!!!*'!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W-!!!!$!rrE*!s8N'!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-!zs8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N'!!!*'! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!!<<*!rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8N*!s8W*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*!!<<'! -s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*! -s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*! -rrE*!rrE*!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W*!s8W*!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8W*!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*! -rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*! -s8W*!s8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE*!rr<'!s8N*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!s8W*!!<<*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -!<<*!rr<$!!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8N*!s8W*!zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rr<$!!!*'!rr<'!s8N*!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!zs8W*!!<<*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!!<<*!rr<$!!!*'!rr<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8N*!s8W*!zs8W*!!<<*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rr<$!!!*'!rr<'!s8N*! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!zs8W*!!<<*! -!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!s8W-! -!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*! -s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -!<<*!rrE*!s8W-!!<<'!s8N*!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8N*!s8W*!s8W-!s8N*!rrE*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE'!s8W-!!<3'! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!rrE*! -s8N*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!!<<*!rrE*!rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!rrE*!s8N*!!<<*!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*! -rrE'!s8W-!!<3'!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*! -s8W*!s8W*!rrE*!s8N*!!<<*!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!rrE*!rrE'!s8W-!!<3'!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W*!s8W*!rrE*!s8N*!!<<*! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-! -!<3$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$! -rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!!<<*!s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!!<<*! -s8N'!!<<'!s8W-!!<3$!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8N*!s8W-!!!!$!rrE*!s8N*!!!*'!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4# -e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4# -e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4# -e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4# -e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXL -e^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4# -PQ:a`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41M -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]las8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8UXLe^`4#e^`4#e^`4#e^`4#e^`4#PQ:a`s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!ec41Me^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^]lae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4# -e^`4#e^`4#e^`4#PQ97ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]lae^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#PQ97ae^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^]lae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4Me^`4#e^`4#e^`4#e^`4#e^`4#PQ97ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]la -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4Me^`4#e^`4#e^`4#e^`4# -e^`4#PQ97ae^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -ec41Me^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!e^`4#e^`4#e^`4#e^`4#e^`4#PlLd`s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!e^`4# -e^`4#e^`4#e^`4#e^`4#PlLd`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^]oas8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!e^`4#e^`4#e^`4#e^`4#e^`4#PlLd` -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^]oas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!e^`4#e^`4#e^`4#e^`4#e^`4#PlLd`s8W-!s8W-!s8W-!s8W-!s8W-! -s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UX"e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9d -hVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#`Pl9dhVQ5je^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5je^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4#e^`4# -e^`4#e^`4#e^`4#e^`4#`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9d -hVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pl9dhVQ5j`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pl9dhVQ5j`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8`Pog8 -`Pog8`Pog8`Pog8`Pl9dhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r' -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`dHhI9r'@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU -@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`eU@U`dHzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz -zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz~> -%%EndBinary -grestore end % Image Trailer grestore -grestore % EPS grestore -[{nextImage} 1 dict begin /Metadata {photoshop_metadata_stream} def currentdict end /PUT pdfmark -[/NamespacePop pdfmark diff --git a/docs/latex/wx/sizer11.gif b/docs/latex/wx/sizer11.gif deleted file mode 100644 index 40dec1c00a50875c3ab9a864a7a4c54351a2d155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1662 zcmV-^27&oUNk%v~VY~o@0J8u9-rn8-003fQV#US9004vk|NnDybKX)A)z#IMl#~Df z00000000000000000000EC2ui0K5Q%06+x)5XecZy*TU5yZ>M)f`K%gXsWI#;l6Mz z&vacEc#hk2!T-QuY*jEAh{lzm1YkLz!l?A-gXvznsw+3`Mp?xpD$H7%28gtJ&2GEj z@VI<VuiNkVJp5#CqV<4*f`f#Gg?vmWaRG*nY>bYPl7fh5i)jUJ36N`?2#}nhYNBbR zo}-g<nQfbGo}{0psIjuNr*xHmm#KxfyuZL{xr)KX#>bJve{Y*v&d<=%($mz{SqQ6n z&DPxA*m25n+c*I_<>UqD=<40=?$O_R<LTx(<?Q$GI`MDeaP#^C3Vg>855R%$3bygb zj2*&<5T7Zub1-7HiE9{Ya%iz5LX33(Dtd&M&5cG@97n2b2Xc<cmDfrx9MFdtvYR+_ z&QbQHr_Y~2g9;r=w5ZXePHG}O;iak5r%<C3SjuxuPcbQ^YPF(;zz(lfxNzO7wPzTt zWfD;(%eJlCAXI6p)k(K5-II^(%JHSQ?@Xn;WTt7==}iDrvqH(@%NLkn1cYa~LR?F6 ztj6HvT7rXFZ)d-K@q!*rI*({I2~w+G&APSg*RW&Do;@27?c2CtX9oNaUp;j6f~SNj zu%(=NzJZ@xKG68-!NZA5m-skj^y$tu>*_td`!wU?u1n9(yP@~<)NP9=PJS+T^zd<j ze;+?nbz$0VZY<5~{_)R_?dBf;e*_jN;2CixsNjMOHb|9HOT8uGgc8ODAyO1J^%WLk zZE-~w8GZpq5(AKt7J?XtIK_rwQ4v;GD*o_97$%<RM}#rvsH2Q36yb!ADqQH`kVF<~ z<Wc1rsN|B*E$O6RO&%uYlvGw}<&{`wS>=;@MQI>_T>j!EHqhMiN-cR{24*DDm{}Mt zX$CUpW09emS7lS$SxRGTIzs0uj3t&QoTK!aQGUy~0ZAsV85)VBg)rJ0q{fU%Af;g% z(qyKb9<ynupo)oTsHEQ1<V*FfG@p5?wznCpz;Ux)s?Mys(QmRg=ijNxku#+|>dZ>( zKK_M=YdXLBYLBi5ZU^iCu;Ud=Uwp1Qdn>fqN&75()#`^5w%MvjYqyDh3od)wURxiz z#-0n4t>&(~>!{PZ>k+(cpc-wn-sUT;y#%EjFSYX~IWWK$;k$;u=<-{xzX*?{Flzrw zT=0OUW-O|~8h7l-ryhrlM<oK3Z1Tw{r>yeIEVu0P%P_|*^UO5YEHe`$<gD|~JooJL z&lCuG<j_PHU8K-O?Wpw9Fj%M-j!Z|LBN9KNRn<{aQ{e@RS-UVIS~aF1G&L)9Jp+qh zr43_?X1_3_5n%`U^cY6eZFdp}WYzXq9A4q!hFo`TR^2@zP1N3edx(V$Y9l_?*C)h{ zg5g6sZh2HlSY0CjiDJ)<_2r;@;WUb$hi<wMqu*%s>a4eJ6vraRt_R4n*WM4kw&!jK z?YisEd+)Ye${(h{9}2r<!xvA8@TC#2JOa$uF({#TsJZ0ylwvxkVRyRn$t#C-5`JZh z=2RV^+>gH}_?9`kJxbko4+|`Xa%TR1Z+cJu{^A4jzQ6IyAN}-n8SdfaPXUz70I63% z)8MXr7^zdC)MuIRu}^{ey9oj(LqP?q&w?1d!<e#E7v}+jganG-XiQi<6@rF^z>AWW zW=O*tV(EF5cpwgy_q!c-tcO0#7!ZR<sv!~)RJ^jG5|_xtCLTs${&J!et8}qfsVia; znHY4&RYhz6ealMLsMxTy2$_3Ou^M8mRTulUuwMC!Ily`%7KtUUWtl^c_>fX@*7&eC z9xGVDvf~_cKt|-?Dp-Krqr=)2tKj?wj)RmB6#XbjN7@mR`e4_z9HK`{nlX}+tYagQ zg~?9_M3dVBWhN&{F)l8$UaAb3C<*q;RK}7etlVO&_{hjx%2FO_Oc*a==}T@DGMHH$ zrY(zkkzAJ1m3z=3#F&{7XEN+v%Df^qt#M3f-tKt1+@>+DiA;!~Qk&xZ4mrJP5@}L0 zoz0vjx3YOKc#=e(=s9OS?U^26vhyz(+b2I`g3t5lbD9Iar$2XDOLQibjtiAnLk0R! z`xMkOI|p4@MZY5tY)$lt!E+}_V`s#XhN+|`eG*Dj$|OX&?xiq|Y3HU$)0*1!rZ~+h I4I=;mJ4H)A)Bpeg diff --git a/docs/latex/wx/sizeritem.tex b/docs/latex/wx/sizeritem.tex deleted file mode 100644 index 6573448b8c..0000000000 --- a/docs/latex/wx/sizeritem.tex +++ /dev/null @@ -1,272 +0,0 @@ - -\section{\class{wxSizerItem}}\label{wxsizeritem} - -The wxSizerItem class is used to track the position, size and other -attributes of each item managed by a \helpref{wxSizer}{wxsizer}. It is not -usually necessary to use this class because the sizer elements can also be -identified by their positions or window or sizer pointers but sometimes it may -be more convenient to use it directly. - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSizerItem::wxSizerItem}\label{wxsizeritemwxsizeritem} - -\func{}{wxSizerItem}{\param{int }{width}, \param{int }{height}, \param{int }{proportion}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a spacer. - - -\func{}{wxSizerItem}{\param{wxWindow* }{window}, \param{const wxSizerFlags\& }{flags}} - -\func{}{wxSizerItem}{\param{wxWindow* }{window}, \param{int }{proportion}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a window. - - -\func{}{wxSizerItem}{\param{wxSizer* }{window}, \param{const wxSizerFlags\& }{flags}} - -\func{}{wxSizerItem}{\param{wxSizer* }{sizer}, \param{int }{proportion}, \param{int }{flag}, \param{int }{border}, \param{wxObject* }{userData}} - -Construct a sizer item for tracking a subsizer. - - - -\membersection{wxSizerItem::\destruct{wxSizerItem}}\label{wxsizeritemdtor} - -\func{}{\destruct{wxSizerItem}}{\void} - -Deletes the user data and subsizer, if any. - - -\membersection{wxSizerItem::CalcMin}\label{wxsizeritemcalcmin} - -\func{wxSize}{CalcMin}{\void} - -Calculates the minimum desired size for the item, including any space -needed by borders. - - -\membersection{wxSizerItem::DeleteWindows}\label{wxsizeritemdeletewindows} - -\func{void}{DeleteWindows}{\void} - -Destroy the window or the windows in a subsizer, depending on the type -of item. - - -\membersection{wxSizerItem::DetachSizer}\label{wxsizeritemdetachsizer} - -\func{void}{DetachSizer}{\void} - -Enable deleting the SizerItem without destroying the contained sizer. - - -\membersection{wxSizerItem::GetBorder}\label{wxsizeritemgetborder} - -\constfunc{int}{GetBorder}{\void} - -Return the border attribute. - -\membersection{wxSizerItem::GetFlag}\label{wxsizeritemgetflag} - -\constfunc{int}{GetFlag}{\void} - -Return the flags attribute. - -\membersection{wxSizerItem::GetId}\label{wxsizeritemgetid} - -\constfunc{int}{GetId}{\void} - -Return the numeric id of wxSizerItem, or \texttt{wxID\_NONE} if the id has -not been set. - - -\membersection{wxSizerItem::GetMinSize}\label{wxsizeritemgetminsize} - -\constfunc{wxSize}{GetMinSize}{\void} - -Get the minimum size needed for the item. - -\membersection{wxSizerItem::GetPosition}\label{wxsizeritemgetposition} - -\constfunc{wxPoint}{GetPosition}{\void} - -What is the current position of the item, as set in the last Layout. - -\membersection{wxSizerItem::GetProportion}\label{wxsizeritemgetproportion} - -\constfunc{int}{GetProportion}{\void} - -Get the proportion item attribute. - -\membersection{wxSizerItem::GetRatio}\label{wxsizeritemgetratio} - -\constfunc{float}{GetRatio}{\void} - -Get the ration item attribute. - -\membersection{wxSizerItem::GetRect}\label{wxsizeritemgetrect} - -\func{wxRect}{GetRect}{\void} - -Get the rectangle of the item on the parent window, excluding borders. - -\membersection{wxSizerItem::GetSize}\label{wxsizeritemgetsize} - -\constfunc{wxSize}{GetSize}{\void} - -Get the current size of the item, as set in the last Layout. - -\membersection{wxSizerItem::GetSizer}\label{wxsizeritemgetsizer} - -\constfunc{wxSizer*}{GetSizer}{\void} - -If this item is tracking a sizer, return it. NULL otherwise. - - -\membersection{wxSizerItem::GetSpacer}\label{wxsizeritemgetspacer} - -\constfunc{const wxSize\&}{GetSpacer}{\void} - -If this item is tracking a spacer, return its size. - - -\membersection{wxSizerItem::GetUserData}\label{wxsizeritemgetuserdata} - -\constfunc{wxObject*}{GetUserData}{\void} - -Get the userData item attribute. - - -\membersection{wxSizerItem::GetWindow}\label{wxsizeritemgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - -If this item is tracking a window then return it. NULL otherwise. - - -\membersection{wxSizerItem::IsSizer}\label{wxsizeritemissizer} - -\constfunc{bool}{IsSizer}{\void} - -Is this item a sizer? - - -\membersection{wxSizerItem::IsShown}\label{wxsizeritemisshown} - -\constfunc{bool}{IsShown}{\void} - -Returns \true if this item is a window or a spacer and it is shown or if this -item is a sizer and not all its elements are hidden. In other words, for sizer -items, all of the child elements must be hidden for the sizer itself to be -considered hidden. - - -\membersection{wxSizerItem::IsSpacer}\label{wxsizeritemisspacer} - -\constfunc{bool}{IsSpacer}{\void} - -Is this item a spacer? - - -\membersection{wxSizerItem::IsWindow}\label{wxsizeritemiswindow} - -\constfunc{bool}{IsWindow}{\void} - -Is this item a window? - - -\membersection{wxSizerItem::SetBorder}\label{wxsizeritemsetborder} - -\func{void}{SetBorder}{\param{int }{border}} - -Set the border item attribute. - -\membersection{wxSizerItem::SetDimension}\label{wxsizeritemsetdimension} - -\func{void}{SetDimension}{\param{const wxPoint\& }{pos}, \param{const wxSize\& }{size}} - -Set the position and size of the space allocated to the sizer, and -adjust the position and size of the item to be within that space -taking alignment and borders into account. - - -\membersection{wxSizerItem::SetFlag}\label{wxsizeritemsetflag} - -\func{void}{SetFlag}{\param{int }{flag}} - -Set the flag item attribute. - -\membersection{wxSizerItem::SetId}\label{wxsizeritemSetId} - -\func{void}{SetId}{\param{int}{id}} - -Sets the numeric id of the wxSizerItem to \arg{id}. - - -\membersection{wxSizerItem::SetInitSize}\label{wxsizeritemsetinitsize} - -\func{void}{SetInitSize}{\param{int }{x}, \param{int }{y}} - - -\membersection{wxSizerItem::SetProportion}\label{wxsizeritemsetproportion} - -\func{void}{SetProportion}{\param{int }{proportion}} - -Set the proportion item attribute. - -\membersection{wxSizerItem::SetRatio}\label{wxsizeritemsetratio} - -\func{void}{SetRatio}{\param{int }{width}, \param{int }{height}} - -\func{void}{SetRatio}{\param{wxSize }{size}} - -\func{void}{SetRatio}{\param{float }{ratio}} - -Set the ratio item attribute. - - -\membersection{wxSizerItem::SetSizer}\label{wxsizeritemsetsizer} - -\func{void}{SetSizer}{\param{wxSizer* }{sizer}} - -Set the sizer tracked by this item. - - -\membersection{wxSizerItem::SetSpacer}\label{wxsizeritemsetspacer} - -\func{void}{SetSpacer}{\param{const wxSize\& }{size}} - -Set the size of the spacer tracked by this item. - - -\membersection{wxSizerItem::SetWindow}\label{wxsizeritemsetwindow} - -\func{void}{SetWindow}{\param{wxWindow* }{window}} - -Set the window to be tracked by thsi item. - - -\membersection{wxSizerItem::Show}\label{wxsizeritemshow} - -\func{void}{Show}{\param{bool }{show}} - -Set the show item attribute, which sizers use to determine if the item -is to be made part of the layout or not. If the item is tracking a -window then it is shown or hidden as needed. - diff --git a/docs/latex/wx/slider.tex b/docs/latex/wx/slider.tex deleted file mode 100644 index e785d3a28e..0000000000 --- a/docs/latex/wx/slider.tex +++ /dev/null @@ -1,363 +0,0 @@ -\section{\class{wxSlider}}\label{wxslider} - -A slider is a control with a handle which can be pulled -back and forth to change the value. - -On Windows, the track bar control is used. - -Slider events are handled in the same way as a scrollbar. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/slider.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSL\_HORIZONTAL}}{Displays the slider horizontally (this is the default).} -\twocolitem{\windowstyle{wxSL\_VERTICAL}}{Displays the slider vertically.} -\twocolitem{\windowstyle{wxSL\_AUTOTICKS}}{Displays tick marks.} -\twocolitem{\windowstyle{wxSL\_LABELS}}{Displays minimum, maximum and value labels.} -\twocolitem{\windowstyle{wxSL\_LEFT}}{Displays ticks on the left and forces the slider to be vertical.} -\twocolitem{\windowstyle{wxSL\_RIGHT}}{Displays ticks on the right and forces the slider to be vertical.} -\twocolitem{\windowstyle{wxSL\_TOP}}{Displays ticks on the top.} -\twocolitem{\windowstyle{wxSL\_BOTTOM}}{Displays ticks on the bottom (this is the default).} -\twocolitem{\windowstyle{wxSL\_SELRANGE}}{Allows the user to select a range on the slider. Windows only.} -\twocolitem{\windowstyle{wxSL\_INVERSE}}{Inverses the mininum and maximum endpoints on the slider. Not compatible with wxSL\_SELRANGE.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\input scrolevt.inc - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, \helpref{wxScrollBar}{wxscrollbar} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSlider::wxSlider}\label{wxsliderctor} - -\func{}{wxSlider}{\void} - -Default slider. - -\func{}{wxSlider}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{int }{value },\rtfsp -\param{int}{ minValue}, \param{int}{ maxValue},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSL\_HORIZONTAL},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``slider"}} - -Constructor, creating and showing a slider. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{value}{Initial position for the slider.} - -\docparam{minValue}{Minimum slider position.} - -\docparam{maxValue}{Maximum slider position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxSlider}{wxslider}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSlider::Create}{wxslidercreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxSlider::\destruct{wxSlider}}\label{wxsliderdtor} - -\func{void}{\destruct{wxSlider}}{\void} - -Destructor, destroying the slider. - -\membersection{wxSlider::ClearSel}\label{wxsliderclearsel} - -\func{void}{ClearSel}{\void} - -Clears the selection, for a slider with the {\bf wxSL\_SELRANGE} style. - -\wxheading{Remarks} - -Windows 95 only. - -\membersection{wxSlider::ClearTicks}\label{wxsliderclearticks} - -\func{void}{ClearTicks}{\void} - -Clears the ticks. - -\wxheading{Remarks} - -Windows 95 only. - -\membersection{wxSlider::Create}\label{wxslidercreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{int }{value },\rtfsp -\param{int}{ minValue}, \param{int}{ maxValue},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSL\_HORIZONTAL},\rtfsp -\param{const wxValidator\& }{validator = wxDefaultValidator},\rtfsp -\param{const wxString\& }{name = ``slider"}} - -Used for two-step slider construction. See \helpref{wxSlider::wxSlider}{wxsliderctor}\rtfsp -for further details. - -\membersection{wxSlider::GetLineSize}\label{wxslidergetlinesize} - -\constfunc{int}{GetLineSize}{\void} - -Returns the line size. - -\wxheading{See also} - -\helpref{wxSlider::SetLineSize}{wxslidersetlinesize} - -\membersection{wxSlider::GetMax}\label{wxslidergetmax} - -\constfunc{int}{GetMax}{\void} - -Gets the maximum slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::SetRange}{wxslidersetrange} - -\membersection{wxSlider::GetMin}\label{wxslidergetmin} - -\constfunc{int}{GetMin}{\void} - -Gets the minimum slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::SetRange}{wxslidersetrange} - -\membersection{wxSlider::GetPageSize}\label{wxslidergetpagesize} - -\constfunc{int}{GetPageSize}{\void} - -Returns the page size. - -\wxheading{See also} - -\helpref{wxSlider::SetPageSize}{wxslidersetpagesize} - -\membersection{wxSlider::GetSelEnd}\label{wxslidergetselend} - -\constfunc{int}{GetSelEnd}{\void} - -Returns the selection end point. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelStart}{wxslidergetselstart}, \helpref{wxSlider::SetSelection}{wxslidersetselection} - -\membersection{wxSlider::GetSelStart}\label{wxslidergetselstart} - -\constfunc{int}{GetSelStart}{\void} - -Returns the selection start point. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelEnd}{wxslidergetselend}, \helpref{wxSlider::SetSelection}{wxslidersetselection} - -\membersection{wxSlider::GetThumbLength}\label{wxslidergetthumblength} - -\constfunc{int}{GetThumbLength}{\void} - -Returns the thumb length. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetThumbLength}{wxslidersetthumblength} - -\membersection{wxSlider::GetTickFreq}\label{wxslidergettickfreq} - -\constfunc{int}{GetTickFreq}{\void} - -Returns the tick frequency. - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetTickFreq}{wxslidersettickfreq} - -\membersection{wxSlider::GetValue}\label{wxslidergetvalue} - -\constfunc{int}{GetValue}{\void} - -Gets the current slider value. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::GetMax}{wxslidergetmax},\rtfsp -\helpref{wxSlider::SetValue}{wxslidersetvalue} - -\membersection{wxSlider::SetLineSize}\label{wxslidersetlinesize} - -\func{void}{SetLineSize}{\param{int }{lineSize}} - -Sets the line size for the slider. - -\wxheading{Parameters} - -\docparam{lineSize}{The number of steps the slider moves when the user moves it up or down a line.} - -\wxheading{See also} - -\helpref{wxSlider::GetLineSize}{wxslidergetlinesize} - -\membersection{wxSlider::SetPageSize}\label{wxslidersetpagesize} - -\func{void}{SetPageSize}{\param{int }{pageSize}} - -Sets the page size for the slider. - -\wxheading{Parameters} - -\docparam{pageSize}{The number of steps the slider moves when the user pages up or down.} - -\wxheading{See also} - -\helpref{wxSlider::GetPageSize}{wxslidergetpagesize} - -\membersection{wxSlider::SetRange}\label{wxslidersetrange} - -\func{void}{SetRange}{\param{int}{ minValue}, \param{int}{ maxValue}} - -Sets the minimum and maximum slider values. - -\wxheading{See also} - -\helpref{wxSlider::GetMin}{wxslidergetmin}, \helpref{wxSlider::GetMax}{wxslidergetmax} - -\membersection{wxSlider::SetSelection}\label{wxslidersetselection} - -\func{void}{SetSelection}{\param{int }{startPos}, \param{int }{endPos}} - -Sets the selection. - -\wxheading{Parameters} - -\docparam{startPos}{The selection start position.} - -\docparam{endPos}{The selection end position.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetSelStart}{wxslidergetselstart}, \helpref{wxSlider::GetSelEnd}{wxslidergetselend} - -\membersection{wxSlider::SetThumbLength}\label{wxslidersetthumblength} - -\func{void}{SetThumbLength}{\param{int }{len}} - -Sets the slider thumb length. - -\wxheading{Parameters} - -\docparam{len}{The thumb length.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetThumbLength}{wxslidergetthumblength} - -\membersection{wxSlider::SetTick}\label{wxslidersettick} - -\func{void}{SetTick}{\param{int}{ tickPos}} - -Sets a tick position. - -\wxheading{Parameters} - -\docparam{tickPos}{The tick position.} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::SetTickFreq}{wxslidersettickfreq} - -\membersection{wxSlider::SetTickFreq}\label{wxslidersettickfreq} - -\func{void}{SetTickFreq}{\param{int }{n}, \param{int }{pos}} - -Sets the tick mark frequency and position. - -\wxheading{Parameters} - -\docparam{n}{Frequency. For example, if the frequency is set to two, a tick mark is displayed for -every other increment in the slider's range.} - -\docparam{pos}{Position. Must be greater than zero. TODO: what is this for?} - -\wxheading{Remarks} - -Windows 95 only. - -\wxheading{See also} - -\helpref{wxSlider::GetTickFreq}{wxslidergettickfreq} - -\membersection{wxSlider::SetValue}\label{wxslidersetvalue} - -\func{void}{SetValue}{\param{int}{ value}} - -Sets the slider position. - -\wxheading{Parameters} - -\docparam{value}{The slider position.} - -\wxheading{See also} - -\helpref{wxSlider::GetValue}{wxslidergetvalue} - diff --git a/docs/latex/wx/sngchdlg.tex b/docs/latex/wx/sngchdlg.tex deleted file mode 100644 index 3b0e3a5928..0000000000 --- a/docs/latex/wx/sngchdlg.tex +++ /dev/null @@ -1,110 +0,0 @@ -\section{\class{wxSingleChoiceDialog}}\label{wxsinglechoicedialog} - -This class represents a dialog that shows a list of strings, and allows the -user to select one. Double-clicking on a list item is equivalent to -single-clicking and then pressing OK. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/choicdlg.h> - -\wxheading{See also} - -\helpref{wxSingleChoiceDialog overview}{wxsinglechoicedialogoverview}, -\helpref{wxMultiChoiceDialog}{wxmultichoicedialog} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSingleChoiceDialog::wxSingleChoiceDialog}\label{wxsinglechoicedialogctor} - -\func{}{wxSingleChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{int }{n}, \param{const wxString* }{choices},\rtfsp -\param{void**}{ clientData = NULL}, \param{long }{style = wxCHOICEDLG\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -\func{}{wxSingleChoiceDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption}, \param{const wxArrayString\& }{choices},\rtfsp -\param{void**}{ clientData = NULL}, \param{long }{style = wxCHOICEDLG\_STYLE},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor, taking an array of wxString choices and optional client data. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{caption}{The dialog caption.} - -\docparam{n}{The number of choices.} - -\docparam{choices}{An array of strings, or a string list, containing the choices.} - -\docparam{clientData}{An array of client data to be associated with the items. -See \helpref{GetSelectionClientData}{wxsinglechoicedialoggetselectionclientdata}.} - -\docparam{style}{A dialog style (bitlist) containing flags chosen from standard -dialog styles and the following: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxOK}}{Show an OK button.} -\twocolitem{{\bf wxCANCEL}}{Show a Cancel button.} -\twocolitem{{\bf wxCENTRE}}{Centre the message. Not Windows.} -\end{twocollist} -The default value is equivalent to {\bf wxDEFAULT\_DIALOG\_STYLE \pipe wxRESIZE\_BORDER \pipe wxOK \pipe wxCANCEL \pipe wxCENTRE}. -} - -\docparam{pos}{Dialog position. Not Windows.} - -\wxheading{Remarks} - -Use \helpref{wxSingleChoiceDialog::ShowModal}{wxsinglechoicedialogshowmodal} to show the dialog. - -\pythonnote{For Python the two parameters {\tt n} and {\tt choices} are collapsed -into a single parameter {\tt choices} which is expected to be a Python -list of strings.} - -\perlnote{In wxPerl there is just an array reference in place of {\tt n} -and {\tt choices}, and the client data array, if present, must have the -same length as the choices array.} - -\membersection{wxSingleChoiceDialog::GetSelection}\label{wxsinglechoicedialoggetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the index of selected item. - -\membersection{wxSingleChoiceDialog::GetSelectionClientData}\label{wxsinglechoicedialoggetselectionclientdata} - -\constfunc{char*}{GetSelectionClientData}{\void} - -Returns the client data associated with the selection. - -\membersection{wxSingleChoiceDialog::GetStringSelection}\label{wxsinglechoicedialoggetstringselection} - -\constfunc{wxString}{GetStringSelection}{\void} - -Returns the selected string. - -\membersection{wxSingleChoiceDialog::SetSelection}\label{wxsinglechoicedialogsetselection} - -\constfunc{void}{SetSelection}{\param{int}{ selection}} - -Sets the index of the initially selected item. - -\membersection{wxSingleChoiceDialog::ShowModal}\label{wxsinglechoicedialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning either wxID\_OK or wxID\_CANCEL. - diff --git a/docs/latex/wx/snglinst.tex b/docs/latex/wx/snglinst.tex deleted file mode 100644 index 3cae29f168..0000000000 --- a/docs/latex/wx/snglinst.tex +++ /dev/null @@ -1,137 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: snglinst.tex -%% Purpose: wxSingleInstanceChecker documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 08.06.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSingleInstanceChecker}}\label{wxsingleinstancechecker} - -wxSingleInstanceChecker class allows to check that only a single instance of a -program is running. To do it, you should create an object of this class. As -long as this object is alive, calls to -\helpref{IsAnotherRunning()}{wxsingleinstancecheckerisanotherrunning} from -other processes will return {\tt true}. - -As the object should have the life span as big as possible, it makes sense to -create it either as a global or in \helpref{wxApp::OnInit}{wxapponinit}. For -example: - -\begin{verbatim} -bool MyApp::OnInit() -{ - const wxString name = wxString::Format("MyApp-%s", wxGetUserId().c_str()); - m_checker = new wxSingleInstanceChecker(name); - if ( m_checker->IsAnotherRunning() ) - { - wxLogError(_("Another program instance is already running, aborting.")); - - delete m_checker; // OnExit() won't be called if we return false - m_checker = NULL; - - return false; - } - - ... more initializations ... - - return true; -} - -int MyApp::OnExit() -{ - delete m_checker; - - return 0; -} -\end{verbatim} - -Note using \helpref{wxGetUserId()}{wxgetuserid} to construct the name: this -allows different user to run the application concurrently which is usually the -intended goal. If you don't use the user name in the wxSingleInstanceChecker -name, only one user would be able to run the application at a time. - -This class is implemented for Win32 and Unix platforms (supporting {\tt fcntl()} -system call, but almost all of modern Unix systems do) only. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/snglinst.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSingleInstanceChecker::wxSingleInstanceChecker}\label{wxsingleinstancecheckerctor} - -\func{}{wxSingleInstanceChecker}{\void} - -Default ctor, use \helpref{Create()}{wxsingleinstancecheckercreate} after it. - -\membersection{wxSingleInstanceChecker::wxSingleInstanceChecker}\label{wxsingleinstancecheckerwxsingleinstancechecker} - -\func{}{wxSingleInstanceChecker}{\param{const wxString\& }{name}, \param{const wxString\& }{path = wxEmptyString}} - -Like \helpref{Create()}{wxsingleinstancecheckercreate} but without -error checking. - -\membersection{wxSingleInstanceChecker::Create}\label{wxsingleinstancecheckercreate} - -\func{bool}{Create}{\param{const wxString\& }{name}, \param{const wxString\& }{path = wxEmptyString}} - -Initialize the object if it had been created using the default constructor. -Note that you can't call Create() more than once, so calling it if the -\helpref{non default ctor}{wxsingleinstancecheckerwxsingleinstancechecker} -had been used is an error. - -\wxheading{Parameters} - -\docparam{name}{must be given and be as unique as possible. It is used as the -mutex name under Win32 and the lock file name under Unix. -\helpref{GetAppName()}{wxappgetappname} and \helpref{wxGetUserId()}{wxgetuserid} -are commonly used to construct this parameter.} - -\docparam{path}{is optional and is ignored under Win32 and used as the directory to -create the lock file in under Unix (default is -\helpref{wxGetHomeDir()}{wxgethomedir})} - -\wxheading{Return value} - -Returns {\tt false} if initialization failed, it doesn't mean that another -instance is running - use -\helpref{IsAnotherRunning()}{wxsingleinstancecheckerisanotherrunning} to check -for it. - -\wxheading{Note} - -One of possible reasons while Create may fail on Unix is that the lock file -used for checking already exists but was not created by the user. -Therefore applications shouldn't treat failure of this function as fatal -condition, because doing so would open them to the possibility of a Denial of -Service attack. Instead, they should alert the user about the problem and -offer to continue execution without checking if another instance is running. - -\membersection{wxSingleInstanceChecker::IsAnotherRunning}\label{wxsingleinstancecheckerisanotherrunning} - -\constfunc{bool}{IsAnotherRunning}{\void} - -Returns {\tt true} if another copy of this program is already running, {\tt -false} otherwise. - -\membersection{wxSingleInstanceChecker::\destruct{wxSingleInstanceChecker}}\label{wxsingleinstancecheckerdtor} - -\func{}{\destruct{wxSingleInstanceChecker}}{\void} - -Destructor frees the associated resources. - -Note that it is not virtual, this class is not meant to be used polymorphically - diff --git a/docs/latex/wx/socket.tex b/docs/latex/wx/socket.tex deleted file mode 100644 index 52685b58cf..0000000000 --- a/docs/latex/wx/socket.tex +++ /dev/null @@ -1,1211 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: socket.tex -%% Purpose: wxSocket docs -%% Author: Guillermo Rodriguez Garcia <guille@iies.es> -%% Modified by: -%% Created: 1999 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSocketBase}}\label{wxsocketbase} - -wxSocketBase is the base class for all socket-related objects, and it -defines all basic IO functionality. - -Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) -If you want to use sockets or derived classes such as wxFTP in a secondary thread, -call wxSocketBase::Initialize() (undocumented) from the main thread before creating -any sockets - in wxApp::OnInit for example. -See http://wiki.wxwidgets.org/wiki.pl?WxSocket or -http://www.litwindow.com/knowhow/knowhow.html for more details. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{wxSocket errors} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOCKET\_NOERROR}}{No error happened.} -\twocolitem{{\bf wxSOCKET\_INVOP}}{Invalid operation.} -\twocolitem{{\bf wxSOCKET\_IOERR}}{Input/Output error.} -\twocolitem{{\bf wxSOCKET\_INVADDR}}{Invalid address passed to wxSocket.} -\twocolitem{{\bf wxSOCKET\_INVSOCK}}{Invalid socket (uninitialized).} -\twocolitem{{\bf wxSOCKET\_NOHOST}}{No corresponding host.} -\twocolitem{{\bf wxSOCKET\_INVPORT}}{Invalid port.} -\twocolitem{{\bf wxSOCKET\_WOULDBLOCK}}{The socket is non-blocking and the operation would block.} -\twocolitem{{\bf wxSOCKET\_TIMEDOUT}}{The timeout for this operation expired.} -\twocolitem{{\bf wxSOCKET\_MEMERR}}{Memory exhausted.} -\end{twocollist} - -\wxheading{wxSocket events} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOCKET\_INPUT}}{There is data available for reading.} -\twocolitem{{\bf wxSOCKET\_OUTPUT}}{The socket is ready to be written to.} -\twocolitem{{\bf wxSOCKET\_CONNECTION}}{Incoming connection request (server), or successful connection establishment (client).} -\twocolitem{{\bf wxSOCKET\_LOST}}{The connection has been closed.} -\end{twocollist} - -A brief note on how to use these events: - -The {\bf wxSOCKET\_INPUT} event will be issued whenever there is data -available for reading. This will be the case if the input queue was -empty and new data arrives, or if the application has read some data -yet there is still more data available. This means that the application -does not need to read all available data in response to a -{\bf wxSOCKET\_INPUT} event, as more events will be produced as -necessary. - -The {\bf wxSOCKET\_OUTPUT} event is issued when a socket is first -connected with \helpref{Connect}{wxsocketclientconnect} or accepted -with \helpref{Accept}{wxsocketserveraccept}. After that, new -events will be generated only after an output operation fails -with {\bf wxSOCKET\_WOULDBLOCK} and buffer space becomes available -again. This means that the application should assume that it -can write data to the socket until an {\bf wxSOCKET\_WOULDBLOCK} -error occurs; after this, whenever the socket becomes writable -again the application will be notified with another -{\bf wxSOCKET\_OUTPUT} event. - -The {\bf wxSOCKET\_CONNECTION} event is issued when a delayed connection -request completes successfully (client) or when a new connection arrives -at the incoming queue (server). - -The {\bf wxSOCKET\_LOST} event is issued when a close indication is -received for the socket. This means that the connection broke down or -that it was closed by the peer. Also, this event will be issued if -a connection request fails. - -\wxheading{Event handling} - -To process events coming from a socket object, use the following event -handler macro to direct events to member functions that take -a \helpref{wxSocketEvent}{wxsocketevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a wxEVT\_SOCKET event.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxSocketEvent}{wxsocketevent}, -\helpref{wxSocketClient}{wxsocketclient}, -\helpref{wxSocketServer}{wxsocketserver}, -\helpref{Sockets sample}{samplesockets} - -% --------------------------------------------------------------------------- -% Function groups -% --------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Function groups}}} - -\membersection{Construction and destruction}\label{socketconstruction} - -\helpref{wxSocketBase}{wxsocketbaseconstruct}\\ -\helpref{\destruct{wxSocketBase}}{wxsocketbasedestruct}\\ -\helpref{Destroy}{wxsocketbasedestroy} - -\membersection{Socket state}\label{socketstate} - -Functions to retrieve current state and miscellaneous info. - -\helpref{Error}{wxsocketbaseerror}\\ -\helpref{GetLocal}{wxsocketbasegetlocal}\\ -\helpref{GetPeer}{wxsocketbasegetpeer} -\helpref{IsConnected}{wxsocketbaseisconnected}\\ -\helpref{IsData}{wxsocketbaseisdata}\\ -\helpref{IsDisconnected}{wxsocketbaseisdisconnected}\\ -\helpref{LastCount}{wxsocketbaselastcount}\\ -\helpref{LastError}{wxsocketbaselasterror}\\ -\helpref{IsOk}{wxsocketbaseisok}\\ -\helpref{SaveState}{wxsocketbasesavestate}\\ -\helpref{RestoreState}{wxsocketbaserestorestate} - -\membersection{Basic IO}\label{socketbasicio} - -Functions that perform basic IO functionality. - -\helpref{Close}{wxsocketbaseclose}\\ -\helpref{Discard}{wxsocketbasediscard}\\ -\helpref{Peek}{wxsocketbasepeek}\\ -\helpref{Read}{wxsocketbaseread}\\ -\helpref{ReadMsg}{wxsocketbasereadmsg}\\ -\helpref{Unread}{wxsocketbaseunread}\\ -\helpref{Write}{wxsocketbasewrite}\\ -\helpref{WriteMsg}{wxsocketbasewritemsg} - -Functions that perform a timed wait on a certain IO condition. - -\helpref{InterruptWait}{wxsocketbaseinterruptwait}\\ -\helpref{Wait}{wxsocketbasewait}\\ -\helpref{WaitForLost}{wxsocketbasewaitforlost}\\ -\helpref{WaitForRead}{wxsocketbasewaitforread}\\ -\helpref{WaitForWrite}{wxsocketbasewaitforwrite}\\ - -and also: - -\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}\\ -\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect} - -Functions that allow applications to customize socket IO as needed. - -\helpref{GetFlags}{wxsocketbasegetflags}\\ -\helpref{SetFlags}{wxsocketbasesetflags}\\ -\helpref{SetTimeout}{wxsocketbasesettimeout}\\ -\helpref{SetLocal}{wxsocketbasesetlocal}\\ - -\membersection{Handling socket events}\label{socketevents} - -Functions that allow applications to receive socket events. - -\helpref{Notify}{wxsocketbasenotify}\\ -\helpref{SetNotify}{wxsocketbasesetnotify}\\ -\helpref{GetClientData}{wxsocketbasegetclientdata}\\ -\helpref{SetClientData}{wxsocketbasesetclientdata}\\ -\helpref{SetEventHandler}{wxsocketbaseseteventhandler} - - -% --------------------------------------------------------------------------- -% Members here -% --------------------------------------------------------------------------- - -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - -\membersection{wxSocketBase::wxSocketBase}\label{wxsocketbaseconstruct} - -\func{}{wxSocketBase}{\void} - -Default constructor. Don't use it directly; instead, use -\helpref{wxSocketClient}{wxsocketclient} to construct a socket client, or -\helpref{wxSocketServer}{wxsocketserver} to construct a socket server. - -\membersection{wxSocketBase::\destruct{wxSocketBase}}\label{wxsocketbasedestruct} - -\func{}{\destruct{wxSocketBase}}{\void} - -Destructor. Do not destroy a socket using the delete operator directly; -use \helpref{Destroy}{wxsocketbasedestroy} instead. Also, do not create -socket objects in the stack. - - -% -% Close -% -\membersection{wxSocketBase::Close}\label{wxsocketbaseclose} - -\func{void}{Close}{\void} - -This function shuts down the socket, disabling further transmission and -reception of data; it also disables events for the socket and frees the -associated system resources. Upon socket destruction, Close is automatically -called, so in most cases you won't need to do it yourself, unless you -explicitly want to shut down the socket, typically to notify the peer -that you are closing the connection. - -\wxheading{Remark/Warning} - -Although Close immediately disables events for the socket, it is possible -that event messages may be waiting in the application's event queue. The -application must therefore be prepared to handle socket event messages -even after calling Close. - -% -% Destroy -% -\membersection{wxSocketBase::Destroy}\label{wxsocketbasedestroy} - -\func{bool}{Destroy}{\void} - -Destroys the socket safely. Use this function instead of the delete operator, -since otherwise socket events could reach the application even after the -socket has been destroyed. To prevent this problem, this function appends -the wxSocket to a list of object to be deleted on idle time, after all -events have been processed. For the same reason, you should avoid creating -socket objects in the stack. - -Destroy calls \helpref{Close}{wxsocketbaseclose} automatically. - -\wxheading{Return value} - -Always true. - -% -% Discard -% -\membersection{wxSocketBase::Discard}\label{wxsocketbasediscard} - -\func{wxSocketBase\&}{Discard}{\void} - -This function simply deletes all bytes in the incoming queue. This function -always returns immediately and its operation is not affected by IO flags. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually discarded. - -If you use \helpref{Error}{wxsocketbaseerror}, it will always return false. - -% -% Error -% -\membersection{wxSocketBase::Error}\label{wxsocketbaseerror} - -\constfunc{bool}{Error}{\void} - -Returns true if an error occurred in the last IO operation. - -Use this function to check for an error condition after one of the -following calls: Discard, Peek, Read, ReadMsg, Unread, Write, WriteMsg. - -% -% GetClientData -% -\membersection{wxSocketBase::GetClientData}\label{wxsocketbasegetclientdata} - -\constfunc{void *}{GetClientData}{\void} - -Returns a pointer of the client data for this socket, as set with -\helpref{SetClientData}{wxsocketbasesetclientdata} - -% -% GetLocal -% -\membersection{wxSocketBase::GetLocal}\label{wxsocketbasegetlocal} - -\constfunc{bool}{GetLocal}{\param{wxSockAddress\& }{addr}} - -This function returns the local address field of the socket. The local -address field contains the complete local address of the socket (local -address, local port, ...). - -\wxheading{Return value} - -true if no error happened, false otherwise. - -% -% GetFlags -% -\membersection{wxSocketBase::GetFlags}\label{wxsocketbasegetflags} - -\constfunc{wxSocketFlags}{GetFlags}{\void} - -Returns current IO flags, as set with \helpref{SetFlags}{wxsocketbasesetflags} - -% -% GetPeer -% -\membersection{wxSocketBase::GetPeer}\label{wxsocketbasegetpeer} - -\constfunc{bool}{GetPeer}{\param{wxSockAddress\& }{addr}} - -This function returns the peer address field of the socket. The peer -address field contains the complete peer host address of the socket -(address, port, ...). - -\wxheading{Return value} - -true if no error happened, false otherwise. - -% -% InterruptWait -% -\membersection{wxSocketBase::InterruptWait}\label{wxsocketbaseinterruptwait} - -\func{void}{InterruptWait}{\void} - -Use this function to interrupt any wait operation currently in progress. -Note that this is not intended as a regular way to interrupt a Wait call, -but only as an escape mechanism for exceptional situations where it is -absolutely necessary to use it, for example to abort an operation due to -some exception or abnormal problem. InterruptWait is automatically called -when you \helpref{Close}{wxsocketbaseclose} a socket (and thus also upon -socket destruction), so you don't need to use it in these cases. - -\helpref{wxSocketBase::Wait}{wxsocketbasewait}, -\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}, -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}, -\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}, -\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}, -\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect} - -% -% IsConnected -% -\membersection{wxSocketBase::IsConnected}\label{wxsocketbaseisconnected} - -\constfunc{bool}{IsConnected}{\void} - -Returns true if the socket is connected. - -% -% IsData -% -\membersection{wxSocketBase::IsData}\label{wxsocketbaseisdata} - -\constfunc{bool}{IsData}{\void} - -This function waits until the socket is readable. This might mean that -queued data is available for reading or, for streamed sockets, that -the connection has been closed, so that a read operation will complete -immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag -is set, in which case the operation might still block). - -\membersection{wxSocketBase::IsDisconnected}\label{wxsocketbaseisdisconnected} - -% -% IsDisconnected -% -\constfunc{bool}{IsDisconnected}{\void} - -Returns true if the socket is not connected. - -\membersection{wxSocketBase::LastCount}\label{wxsocketbaselastcount} - -% -% LastCount -% -\constfunc{wxUint32}{LastCount}{\void} - -Returns the number of bytes read or written by the last IO call. - -Use this function to get the number of bytes actually transferred -after using one of the following IO calls: Discard, Peek, Read, -ReadMsg, Unread, Write, WriteMsg. - -% -% LastError -% -\membersection{wxSocketBase::LastError}\label{wxsocketbaselasterror} - -\constfunc{wxSocketError}{LastError}{\void} - -Returns the last wxSocket error. See \helpref{wxSocket errors}{wxsocketbase}. - -Please note that this function merely returns the last error code, -but it should not be used to determine if an error has occurred (this -is because successful operations do not change the LastError value). -Use \helpref{Error}{wxsocketbaseerror} first, in order to determine -if the last IO call failed. If this returns true, use LastError -to discover the cause of the error. - -% -% Notify -% -\membersection{wxSocketBase::Notify}\label{wxsocketbasenotify} - -\func{void}{Notify}{\param{bool}{ notify}} - -According to the {\it notify} value, this function enables -or disables socket events. If {\it notify} is true, the events -configured with \helpref{SetNotify}{wxsocketbasesetnotify} will -be sent to the application. If {\it notify} is false; no events -will be sent. - -% -% IsOk -% -\membersection{wxSocketBase::IsOk}\label{wxsocketbaseisok} - -\constfunc{bool}{IsOk}{\void} - -Returns true if the socket is initialized and ready and false in other -cases. - -\wxheading{Remark/Warning} - -For \helpref{wxSocketClient}{wxsocketclient}, Ok won't return true unless -the client is connected to a server. - -For \helpref{wxSocketServer}{wxsocketserver}, Ok will return true if the -server could bind to the specified address and is already listening for -new connections. - -Ok does not check for IO errors; -use \helpref{Error}{wxsocketbaseerror} instead for that purpose. - -% -% RestoreState -% -\membersection{wxSocketBase::RestoreState}\label{wxsocketbaserestorestate} - -\func{void}{RestoreState}{\void} - -This function restores the previous state of the socket, as saved -with \helpref{SaveState}{wxsocketbasesavestate} - -Calls to SaveState and RestoreState can be nested. - -\wxheading{See also} - -\helpref{wxSocketBase::SaveState}{wxsocketbasesavestate} - -% -% SaveState -% -\membersection{wxSocketBase::SaveState}\label{wxsocketbasesavestate} - -\func{void}{SaveState}{\void} - -This function saves the current state of the socket in a stack. Socket -state includes flags, as set with \helpref{SetFlags}{wxsocketbasesetflags}, -event mask, as set with \helpref{SetNotify}{wxsocketbasesetnotify} and -\helpref{Notify}{wxsocketbasenotify}, user data, as set with -\helpref{SetClientData}{wxsocketbasesetclientdata}. - -Calls to SaveState and RestoreState can be nested. - -\wxheading{See also} - -\helpref{wxSocketBase::RestoreState}{wxsocketbaserestorestate} - -% -% SetClientData -% -\membersection{wxSocketBase::SetClientData}\label{wxsocketbasesetclientdata} - -\func{void}{SetClientData}{\param{void *}{data}} - -Sets user-supplied client data for this socket. All socket events will -contain a pointer to this data, which can be retrieved with -the \helpref{wxSocketEvent::GetClientData}{wxsocketeventgetclientdata} function. - -% -% SetEventHandler -% -\membersection{wxSocketBase::SetEventHandler}\label{wxsocketbaseseteventhandler} - -\func{void}{SetEventHandler}{\param{wxEvtHandler\&}{ handler}, \param{int}{ id = -1}} - -Sets an event handler to be called when a socket event occurs. The -handler will be called for those events for which notification is -enabled with \helpref{SetNotify}{wxsocketbasesetnotify} and -\helpref{Notify}{wxsocketbasenotify}. - -\wxheading{Parameters} - -\docparam{handler}{Specifies the event handler you want to use.} - -\docparam{id}{The id of socket event.} - -\wxheading{See also} - -\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}, -\helpref{wxSocketBase::Notify}{wxsocketbasenotify}, -\helpref{wxSocketEvent}{wxsocketevent}, -\helpref{wxEvtHandler}{wxevthandler} - -% -% SetFlags -% -\membersection{wxSocketBase::SetFlags}\label{wxsocketbasesetflags} - -\func{void}{SetFlags}{\param{wxSocketFlags}{ flags}} - -Use SetFlags to customize IO operation for this socket. -The {\it flags} parameter may be a combination of flags ORed together. -The following flags can be used: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOCKET\_NONE}}{Normal functionality.} -\twocolitem{{\bf wxSOCKET\_NOWAIT}}{Read/write as much data as possible and return immediately.} -\twocolitem{{\bf wxSOCKET\_WAITALL}}{Wait for all required data to be read/written unless an error occurs.} -\twocolitem{{\bf wxSOCKET\_BLOCK}}{Block the GUI (do not yield) while reading/writing data.} -\twocolitem{{\bf wxSOCKET\_REUSEADDR}}{Allows the use of an in-use port (wxServerSocket only)} -\twocolitem{{\bf wxSOCKET\_BROADCAST}}{Switches the socket to broadcast mode} -\twocolitem{{\bf wxSOCKET\_NOBIND}}{Stops the socket from being bound to a specific adapter (normally used in conjunction with {\bf wxSOCKET\_BROADCAST})} -\end{twocollist} - -A brief overview on how to use these flags follows. - -If no flag is specified (this is the same as {\bf wxSOCKET\_NONE}), -IO calls will return after some data has been read or written, even -when the transfer might not be complete. This is the same as issuing -exactly one blocking low-level call to recv() or send(). Note -that {\it blocking} here refers to when the function returns, not -to whether the GUI blocks during this time. - -If {\bf wxSOCKET\_NOWAIT} is specified, IO calls will return immediately. -Read operations will retrieve only available data. Write operations will -write as much data as possible, depending on how much space is available -in the output buffer. This is the same as issuing exactly one nonblocking -low-level call to recv() or send(). Note that {\it nonblocking} here -refers to when the function returns, not to whether the GUI blocks during -this time. - -If {\bf wxSOCKET\_WAITALL} is specified, IO calls won't return until ALL -the data has been read or written (or until an error occurs), blocking if -necessary, and issuing several low level calls if necessary. This is the -same as having a loop which makes as many blocking low-level calls to -recv() or send() as needed so as to transfer all the data. Note -that {\it blocking} here refers to when the function returns, not -to whether the GUI blocks during this time. - -The {\bf wxSOCKET\_BLOCK} flag controls whether the GUI blocks during -IO operations. If this flag is specified, the socket will not yield -during IO calls, so the GUI will remain blocked until the operation -completes. If it is not used, then the application must take extra -care to avoid unwanted reentrance. - -The {\bf wxSOCKET\_REUSEADDR} flag controls the use of the SO\_REUSEADDR standard -setsockopt() flag. This flag allows the socket to bind to a port that is already in use. -This is mostly used on UNIX-based systems to allow rapid starting and stopping of a server - -otherwise you may have to wait several minutes for the port to become available. -wxSOCKET\_REUSEADDR can also be used with socket clients to (re)bind to a particular local port -for an outgoing connection. -This option can have surprising platform dependent behavior, so check the documentation for -your platform's implementation of setsockopt(). Note that on BSD-based systems (e.g. Mac OS X), -use of wxSOCKET\_REUSEADDR implies SO\_REUSEPORT in addition to SO\_REUSEADDR to be consistent -with Windows. - -The {\bf wxSOCKET\_BROADCAST} flag controls the use of the SO\_BROADCAST standard -setsockopt() flag. This flag allows the socket to use the broadcast address, and is generally -used in conjunction with {\bf wxSOCKET\_NOBIND} and \helpref{wxIPaddress::BroadcastAddress}{wxipaddressbroadcastaddress}. - -So: - -{\bf wxSOCKET\_NONE} will try to read at least SOME data, no matter how much. - -{\bf wxSOCKET\_NOWAIT} will always return immediately, even if it cannot -read or write ANY data. - -{\bf wxSOCKET\_WAITALL} will only return when it has read or written ALL -the data. - -{\bf wxSOCKET\_BLOCK} has nothing to do with the previous flags and -it controls whether the GUI blocks. - -{\bf wxSOCKET\_REUSEADDR} controls special platform-specific behavior for -reusing local addresses/ports. - -% -% SetLocal -% -\membersection{wxSocketBase::SetLocal}\label{wxsocketbasesetlocal} - -\func{bool}{SetLocal}{\param{wxIPV4address\&}{ local}} - -This function allows you to set the local address and port, -useful when an application needs to reuse a particular port. When -a local port is set for a \helpref{wxSocketClient}{wxsocketclient}, -{\bf bind} will be called before {\bf connect}. - -% -% SetNotify -% -\membersection{wxSocketBase::SetNotify}\label{wxsocketbasesetnotify} - -\func{void}{SetNotify}{\param{wxSocketEventFlags}{ flags}} - -SetNotify specifies which socket events are to be sent to the event handler. -The {\it flags} parameter may be combination of flags ORed together. The -following flags can be used: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSOCKET\_INPUT\_FLAG}}{to receive wxSOCKET\_INPUT} -\twocolitem{{\bf wxSOCKET\_OUTPUT\_FLAG}}{to receive wxSOCKET\_OUTPUT} -\twocolitem{{\bf wxSOCKET\_CONNECTION\_FLAG}}{to receive wxSOCKET\_CONNECTION} -\twocolitem{{\bf wxSOCKET\_LOST\_FLAG}}{to receive wxSOCKET\_LOST} -\end{twocollist} - -For example: - -\begin{verbatim} - sock.SetNotify(wxSOCKET_INPUT_FLAG | wxSOCKET_LOST_FLAG); - sock.Notify(true); -\end{verbatim} - -In this example, the user will be notified about incoming socket data and -whenever the connection is closed. - -For more information on socket events see \helpref{wxSocket events}{wxsocketbase}. - -% -% SetTimeout -% -\membersection{wxSocketBase::SetTimeout}\label{wxsocketbasesettimeout} - -\func{void}{SetTimeout}{\param{int }{seconds}} - -This function sets the default socket timeout in seconds. This timeout -applies to all IO calls, and also to the \helpref{Wait}{wxsocketbasewait} family -of functions if you don't specify a wait interval. Initially, the default -timeout is 10 minutes. - -% -% Peek -% -\membersection{wxSocketBase::Peek}\label{wxsocketbasepeek} - -\func{wxSocketBase\&}{Peek}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function peeks a buffer of {\it nbytes} bytes from the socket. -Peeking a buffer doesn't delete it from the socket input queue. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually peeked. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put peeked data.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -The exact behaviour of wxSocketBase::Peek depends on the combination -of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags} - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags} - -% -% Read -% -\membersection{wxSocketBase::Read}\label{wxsocketbaseread} - -\func{wxSocketBase\&}{Read}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function reads a buffer of {\it nbytes} bytes from the socket. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put read data.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -The exact behaviour of wxSocketBase::Read depends on the combination -of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags} - -% -% ReadMsg -% -\membersection{wxSocketBase::ReadMsg}\label{wxsocketbasereadmsg} - -\func{wxSocketBase\&}{ReadMsg}{\param{void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function reads a buffer sent by \helpref{WriteMsg}{wxsocketbasewritemsg} -on a socket. If the buffer passed to the function isn't big enough, the -remaining bytes will be discarded. This function always waits for the -buffer to be entirely filled, unless an error occurs. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually read. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer where to put read data.} - -\docparam{nbytes}{Size of the buffer.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -wxSocketBase::ReadMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag -was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag. -The exact behaviour of ReadMsg depends on the {\bf wxSOCKET\_BLOCK} flag. -For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}, -\helpref{wxSocketBase::WriteMsg}{wxsocketbasewritemsg} - -% -% Unread -% -\membersection{wxSocketBase::Unread}\label{wxsocketbaseunread} - -\func{wxSocketBase\&}{Unread}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function unreads a buffer. That is, the data in the buffer is put back -in the incoming queue. This function is not affected by wxSocket flags. - -If you use \helpref{LastCount}{wxsocketbaselastcount}, it will always return {\it nbytes}. - -If you use \helpref{Error}{wxsocketbaseerror}, it will always return false. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer to be unread.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror} - -% -% Wait -% -\membersection{wxSocketBase::Wait}\label{wxsocketbasewait} - -\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}} - -This function waits until any of the following conditions is true: - -\begin{itemize} -\item The socket becomes readable. -\item The socket becomes writable. -\item An ongoing connection request has completed (\helpref{wxSocketClient}{wxsocketclient} only) -\item An incoming connection request has arrived (\helpref{wxSocketServer}{wxsocketserver} only) -\item The connection has been closed. -\end{itemize} - -Note that it is recommended to use the individual Wait functions -to wait for the required condition, instead of this one. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -Returns true when any of the above conditions is satisfied, -false if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}, -\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}, -\helpref{wxSocketBase::WaitForLost}{wxsocketbasewaitforlost}, -\helpref{wxSocketBase::WaitForRead}{wxsocketbasewaitforread}, -\helpref{wxSocketBase::WaitForWrite}{wxsocketbasewaitforwrite}, -\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect} - -% -% WaitForLost -% -\membersection{wxSocketBase::WaitForLost}\label{wxsocketbasewaitforlost} - -\func{bool}{Wait}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}} - -This function waits until the connection is lost. This may happen if -the peer gracefully closes the connection or if the connection breaks. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -Returns true if the connection was lost, false if the timeout was reached. - -\wxheading{See also} - -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}, -\helpref{wxSocketBase::Wait}{wxsocketbasewait} - -% -% WaitForRead -% -\membersection{wxSocketBase::WaitForRead}\label{wxsocketbasewaitforread} - -\func{bool}{WaitForRead}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}} - -This function waits until the socket is readable. This might mean that -queued data is available for reading or, for streamed sockets, that -the connection has been closed, so that a read operation will complete -immediately without blocking (unless the {\bf wxSOCKET\_WAITALL} flag -is set, in which case the operation might still block). - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -Returns true if the socket becomes readable, false on timeout. - -\wxheading{See also} - -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}, -\helpref{wxSocketBase::Wait}{wxsocketbasewait} - -% -% WaitForWrite -% -\membersection{wxSocketBase::WaitForWrite}\label{wxsocketbasewaitforwrite} - -\func{bool}{WaitForWrite}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}} - -This function waits until the socket becomes writable. This might mean that -the socket is ready to send new data, or for streamed sockets, that the -connection has been closed, so that a write operation is guaranteed to -complete immediately (unless the {\bf wxSOCKET\_WAITALL} flag is set, -in which case the operation might still block). - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -Returns true if the socket becomes writable, false on timeout. - -\wxheading{See also} - -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}, -\helpref{wxSocketBase::Wait}{wxsocketbasewait} - -% -% Write -% -\membersection{wxSocketBase::Write}\label{wxsocketbasewrite} - -\func{wxSocketBase\&}{Write}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function writes a buffer of {\it nbytes} bytes to the socket. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer with the data to be sent.} - -\docparam{nbytes}{Number of bytes.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -The exact behaviour of wxSocketBase::Write depends on the combination -of flags being used. For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags} - -% -% WriteMsg -% -\membersection{wxSocketBase::WriteMsg}\label{wxsocketbasewritemsg} - -\func{wxSocketBase\&}{WriteMsg}{\param{const void *}{ buffer}, \param{wxUint32}{ nbytes}} - -This function writes a buffer of {\it nbytes} bytes from the socket, but it -writes a short header before so that \helpref{ReadMsg}{wxsocketbasereadmsg} -knows how much data should it actually read. So, a buffer sent with WriteMsg -{\bf must} be read with ReadMsg. This function always waits for the entire -buffer to be sent, unless an error occurs. - -Use \helpref{LastCount}{wxsocketbaselastcount} to verify the number of bytes actually written. - -Use \helpref{Error}{wxsocketbaseerror} to determine if the operation succeeded. - -\wxheading{Parameters} - -\docparam{buffer}{Buffer with the data to be sent.} - -\docparam{nbytes}{Number of bytes to send.} - -\wxheading{Return value} - -Returns a reference to the current object. - -\wxheading{Remark/Warning} - -wxSocketBase::WriteMsg will behave as if the {\bf wxSOCKET\_WAITALL} flag -was always set and it will always ignore the {\bf wxSOCKET\_NOWAIT} flag. -The exact behaviour of WriteMsg depends on the {\bf wxSOCKET\_BLOCK} flag. -For a detailed explanation, see \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}. - -\wxheading{See also} - -\helpref{wxSocketBase::Error}{wxsocketbaseerror}, -\helpref{wxSocketBase::LastError}{wxsocketbaselasterror}, -\helpref{wxSocketBase::LastCount}{wxsocketbaselastcount}, -\helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags}, -\helpref{wxSocketBase::ReadMsg}{wxsocketbasereadmsg} - - -% --------------------------------------------------------------------------- -% CLASS wxSocketClient -% --------------------------------------------------------------------------- - -\section{\class{wxSocketClient}}\label{wxsocketclient} - -\wxheading{Derived from} - -\helpref{wxSocketBase}{wxsocketbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -% -% wxSocketClient -% -\membersection{wxSocketClient::wxSocketClient}\label{wxsocketclientctor} - -\func{}{wxSocketClient}{\param{wxSocketFlags}{ flags = wxSOCKET\_NONE}} - -Constructor. - -\wxheading{Parameters} - -\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} - -% -% ~wxSocketClient -% -\membersection{wxSocketClient::\destruct{wxSocketClient}}\label{wxsocketclientdtor} - -\func{}{\destruct{wxSocketClient}}{\void} - -Destructor. Please see \helpref{wxSocketBase::Destroy}{wxsocketbasedestroy}. - -% -% Connect -% -\membersection{wxSocketClient::Connect}\label{wxsocketclientconnect} - -\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{bool}{ wait = true}} - -\func{bool}{Connect}{\param{wxSockAddress\&}{ address}, \param{wxSockAddress\&}{ local}, -\param{bool}{ wait = true}} - -Connects to a server using the specified address. - -If {\it wait} is true, Connect will wait until the connection -completes. {\bf Warning:} This will block the GUI. - -If {\it wait} is false, Connect will try to establish the connection and -return immediately, without blocking the GUI. When used this way, even if -Connect returns false, the connection request can be completed later. -To detect this, use \helpref{WaitOnConnect}{wxsocketclientwaitonconnect}, -or catch {\bf wxSOCKET\_CONNECTION} events (for successful establishment) -and {\bf wxSOCKET\_LOST} events (for connection failure). - -\wxheading{Parameters} - -\docparam{address}{Address of the server.} - -\docparam{local}{Bind to the specified local address and port before connecting. -The local address and port can also be set using \helpref{SetLocal}{wxsocketbasesetlocal}, -and then using the 2-parameter Connect method.} - -\docparam{wait}{If true, waits for the connection to complete.} - -\wxheading{Return value} - -Returns true if the connection is established and no error occurs. - -If {\it wait} was true, and Connect returns false, an error occurred -and the connection failed. - -If {\it wait} was false, and Connect returns false, you should still -be prepared to handle the completion of this connection request, either -with \helpref{WaitOnConnect}{wxsocketclientwaitonconnect} or by -watching {\bf wxSOCKET\_CONNECTION} and {\bf wxSOCKET\_LOST} events. - -\wxheading{See also} - -\helpref{wxSocketClient::WaitOnConnect}{wxsocketclientwaitonconnect}, -\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}, -\helpref{wxSocketBase::Notify}{wxsocketbasenotify} - -% -% WaitOnConnect -% -\membersection{wxSocketClient::WaitOnConnect}\label{wxsocketclientwaitonconnect} - -\func{bool}{WaitOnConnect}{\param{long}{ seconds = -1}, \param{long}{ milliseconds = 0}} - -Wait until a connection request completes, or until the specified timeout -elapses. Use this function after issuing a call -to \helpref{Connect}{wxsocketclientconnect} with {\it wait} set to false. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -WaitOnConnect returns true if the connection request completes. This -does not necessarily mean that the connection was successfully established; -it might also happen that the connection was refused by the peer. Use -\helpref{IsConnected}{wxsocketbaseisconnected} to distinguish between -these two situations. - -If the timeout elapses, WaitOnConnect returns false. - -These semantics allow code like this: - -\begin{verbatim} -// Issue the connection request -client->Connect(addr, false); - -// Wait until the request completes or until we decide to give up -bool waitmore = true; -while ( !client->WaitOnConnect(seconds, millis) && waitmore ) -{ - // possibly give some feedback to the user, - // and update waitmore as needed. -} -bool success = client->IsConnected(); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxSocketClient::Connect}{wxsocketclientconnect}, -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait}, -\helpref{wxSocketBase::IsConnected}{wxsocketbaseisconnected} - -% --------------------------------------------------------------------------- -% CLASS: wxSocketEvent -% --------------------------------------------------------------------------- -\section{\class{wxSocketEvent}}\label{wxsocketevent} - -This event class contains information about socket events. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{Event table macros} - -To process a socket event, use these event handler macros to direct input -to member functions that take a wxSocketEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SOCKET(id, func)}}{Process a socket event, supplying the member function.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, -\helpref{wxSocketClient}{wxsocketclient}, -\helpref{wxSocketServer}{wxsocketserver} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketEvent::wxSocketEvent}\label{wxsocketeventctor} - -\func{}{wxSocketEvent}{\param{int}{ id = 0}} - -Constructor. - -\membersection{wxSocketEvent::GetClientData}\label{wxsocketeventgetclientdata} - -\func{void *}{GetClientData}{\void} - -Gets the client data of the socket which generated this event, as -set with \helpref{wxSocketBase::SetClientData}{wxsocketbasesetclientdata}. - -\membersection{wxSocketEvent::GetSocket}\label{wxsocketeventgetsocket} - -\constfunc{wxSocketBase *}{GetSocket}{\void} - -Returns the socket object to which this event refers to. This makes -it possible to use the same event handler for different sockets. - -\membersection{wxSocketEvent::GetSocketEvent}\label{wxsocketeventgetsocketevent} - -\constfunc{wxSocketNotify}{GetSocketEvent}{\void} - -Returns the socket event type. - diff --git a/docs/latex/wx/socksrv.tex b/docs/latex/wx/socksrv.tex deleted file mode 100644 index 06dd9ec98d..0000000000 --- a/docs/latex/wx/socksrv.tex +++ /dev/null @@ -1,150 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: socket.tex -%% Purpose: wxSocket docs -%% Author: Guillermo Rodriguez Garcia <guille@iies.es> -%% Modified by: -%% Created: 14.01.02 (extracted from socket.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% --------------------------------------------------------------------------- -% CLASS: wxSocketServer -% --------------------------------------------------------------------------- -\section{\class{wxSocketServer}}\label{wxsocketserver} - -\wxheading{Derived from} - -\helpref{wxSocketBase}{wxsocketbase}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/socket.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -% --------------------------------------------------------------------------- -% Members -% --------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% -% wxSocketServer -% -\membersection{wxSocketServer::wxSocketServer}\label{wxsocketserverctor} - -\func{}{wxSocketServer}{\param{const wxSockAddress\&}{ address}, \param{wxSocketFlags}{ flags = wxSOCKET\_NONE}} - -Constructs a new server and tries to bind to the specified {\it address}. -Before trying to accept new connections, test whether it succeeded with -\helpref{wxSocketBase:IsOk}{wxsocketbaseisok}. - -\wxheading{Parameters} - -\docparam{address}{Specifies the local address for the server (e.g. port number).} - -\docparam{flags}{Socket flags (See \helpref{wxSocketBase::SetFlags}{wxsocketbasesetflags})} - -% -% ~wxSocketServer -% -\membersection{wxSocketServer::\destruct{wxSocketServer}}\label{wxsocketserverdtor} - -\func{}{\destruct{wxSocketServer}}{\void} - -Destructor (it doesn't close the accepted connections). - -% -% Accept -% -\membersection{wxSocketServer::Accept}\label{wxsocketserveraccept} - -\func{wxSocketBase *}{Accept}{\param{bool}{ wait = true}} - -Accepts an incoming connection request, and creates a new -\helpref{wxSocketBase}{wxsocketbase} object which represents -the server-side of the connection. - -If {\it wait} is true and there are no pending connections to be -accepted, it will wait for the next incoming connection to -arrive. {\bf Warning:} This will block the GUI. - -If {\it wait} is false, it will try to accept a pending connection -if there is one, but it will always return immediately without blocking -the GUI. If you want to use Accept in this way, you can either check for -incoming connections with \helpref{WaitForAccept}{wxsocketserverwaitforaccept} -or catch {\bf wxSOCKET\_CONNECTION} events, then call Accept once you know -that there is an incoming connection waiting to be accepted. - -\wxheading{Return value} - -Returns an opened socket connection, or NULL if an error occurred or -if the {\it wait} parameter was false and there were no pending -connections. - -\wxheading{See also} - -\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}, -\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}, -\helpref{wxSocketBase::Notify}{wxsocketbasenotify}, -\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith} - -% -% AcceptWith -% -\membersection{wxSocketServer::AcceptWith}\label{wxsocketserveracceptwith} - -\func{bool}{AcceptWith}{\param{wxSocketBase\&}{ socket}, \param{bool}{ wait = true}} - -Accept an incoming connection using the specified socket object. - -\wxheading{Parameters} - -\docparam{socket}{Socket to be initialized} - -\wxheading{Return value} - -Returns true on success, or false if an error occurred or if the -{\it wait} parameter was false and there were no pending -connections. - -\helpref{wxSocketServer::WaitForAccept}{wxsocketserverwaitforaccept}, -\helpref{wxSocketBase::SetNotify}{wxsocketbasesetnotify}, -\helpref{wxSocketBase::Notify}{wxsocketbasenotify}, -\helpref{wxSocketServer::Accept}{wxsocketserveraccept} - -% -% WaitForAccept -% -\membersection{wxSocketServer::WaitForAccept}\label{wxsocketserverwaitforaccept} - -\func{bool}{WaitForAccept}{\param{long}{ seconds = -1}, \param{long}{ millisecond = 0}} - -This function waits for an incoming connection. Use it if you want to call -\helpref{Accept}{wxsocketserveraccept} or \helpref{AcceptWith}{wxsocketserveracceptwith} -with {\it wait} set to false, to detect when an incoming connection is waiting -to be accepted. - -\wxheading{Parameters} - -\docparam{seconds}{Number of seconds to wait. -If -1, it will wait for the default timeout, -as set with \helpref{SetTimeout}{wxsocketbasesettimeout}.} - -\docparam{millisecond}{Number of milliseconds to wait.} - -\wxheading{Return value} - -Returns true if an incoming connection arrived, false if the timeout elapsed. - -\wxheading{See also} - -\helpref{wxSocketServer::Accept}{wxsocketserveraccept}, -\helpref{wxSocketServer::AcceptWith}{wxsocketserveracceptwith}, -\helpref{wxSocketBase::InterruptWait}{wxsocketbaseinterruptwait} - - diff --git a/docs/latex/wx/sostream.tex b/docs/latex/wx/sostream.tex deleted file mode 100644 index b0068051ba..0000000000 --- a/docs/latex/wx/sostream.tex +++ /dev/null @@ -1,54 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: sostream.tex -%% Purpose: wxStringOutputStream docs -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2004-09-19 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin -%% License: wxWindows licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStringOutputStream}}\label{wxstringoutputstream} - -This class implements an output stream which writes data either to a -user-provided or internally allocated string. Note that currently this stream -does not support seeking but can tell its current position. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/sstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStringOutputStream::wxStringOutputStream}\label{wxstringoutputstreamctor} - -\func{}{wxStringOutputStream}{\param{wxString}{ *str = \texttt{NULL}}} - -If the provided pointer is non-\texttt{NULL}, data will be written to it. -Otherwise, an internal string is used for the data written to this stream, use -\helpref{GetString()}{wxstringoutputstreamgetstring} to get access to it. - -If \arg{str} is used, data written to the stream is appended to the current -contents of it, i.e. the string is not cleared here. However if it is not -empty, the positions returned by \helpref{TellO}{wxoutputstreamtello} will be -offset by the initial string length, i.e. initial stream position will be the -initial length of the string and not $0$. - - -\membersection{wxStringOutputStream::GetString}\label{wxstringoutputstreamgetstring} - -\constfunc{const wxString\&}{GetString}{\void} - -Returns the string containing all the data written to the stream so far. - diff --git a/docs/latex/wx/sound.tex b/docs/latex/wx/sound.tex deleted file mode 100644 index 6f4e0ee238..0000000000 --- a/docs/latex/wx/sound.tex +++ /dev/null @@ -1,119 +0,0 @@ -\section{\class{wxSound}}\label{wxsound} - -This class represents a short sound (loaded from Windows WAV file), that -can be stored in memory and played. Currently this class is implemented -on Windows and Unix (and uses either -\urlref{Open Sound System}{http://www.opensound.com/oss.html} or -\urlref{Simple DirectMedia Layer}{http://www.libsdl.org/}). - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sound.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSound::wxSound}\label{wxsoundctor} - -\func{}{wxSound}{\void} - -Default constructor. - -\func{}{wxSound}{\param{const wxString\&}{ fileName}, \param{bool}{ isResource = false}} - -Constructs a wave object from a file or, under Windows, from a Windows -resource. Call \helpref{wxSound::IsOk}{wxsoundisok} to determine whether this -succeeded. - -\wxheading{Parameters} - -\docparam{fileName}{The filename or Windows resource.} - -\docparam{isResource}{\true if {\it fileName} is a resource, \false if it is a filename.} - - -\membersection{wxSound::\destruct{wxSound}}\label{wxsounddtor} - -\func{}{\destruct{wxSound}}{\void} - -Destroys the wxSound object. - - -\membersection{wxSound::Create}\label{wxsoundcreate} - -\func{bool}{Create}{\param{const wxString\&}{ fileName}, \param{bool}{ isResource = \false}} - -Constructs a wave object from a file or resource. - -\wxheading{Parameters} - -\docparam{fileName}{The filename or Windows resource.} - -\docparam{isResource}{\true if {\it fileName} is a resource, \false if it is a filename.} - -\wxheading{Return value} - -\true if the call was successful, \false otherwise. - - -\membersection{wxSound::IsOk}\label{wxsoundisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if the object contains a successfully loaded file or resource, \false otherwise. - - -\membersection{wxSound::IsPlaying}\label{wxsoundisplaying} - -\constfunc{static bool}{IsPlaying}{\void} - -Returns \true if a sound is played at the moment. - -This method is currently not implemented under Windows. - - -\membersection{wxSound::Play}\label{wxsoundplay} - -\constfunc{bool}{Play}{\param{unsigned }{ flags = wxSOUND\_ASYNC}} - -\func{static bool}{Play}{\param{const wxString\& }{filename}, \param{unsigned}{ flags = wxSOUND\_ASYNC}} - -Plays the sound file. If another sound is playing, it will be interrupted. -Returns \true on success, \false otherwise. Note that in general it is possible -to delete the object which is being asynchronously played any time after -calling this function and the sound would continue playing, however this -currently doesn't work under Windows for sound objects loaded from memory data. - -The possible values for \arg{flags} are: - -\begin{twocollist} -\twocolitem{wxSOUND\_SYNC}{{\tt Play} will block and wait until the sound is -replayed.} -\twocolitem{wxSOUND\_ASYNC}{Sound is played asynchronously, -{\tt Play} returns immediately} -\twocolitem{wxSOUND\_ASYNC | wxSOUND\_LOOP}{Sound is played asynchronously -and loops until another sound is played, -\helpref{wxSound::Stop}{wxsoundstop} is called or the program terminates.} -\end{twocollist} - -The static form is shorthand for this code: - -\begin{verbatim} -wxSound(filename).Play(flags); -\end{verbatim} - - -\membersection{wxSound::Stop}\label{wxsoundstop} - -\func{static void}{Stop}{\void} - -If a sound is played, this function stops it. - diff --git a/docs/latex/wx/spinbutt.tex b/docs/latex/wx/spinbutt.tex deleted file mode 100644 index 046b7f3ca0..0000000000 --- a/docs/latex/wx/spinbutt.tex +++ /dev/null @@ -1,159 +0,0 @@ -\section{\class{wxSpinButton}}\label{wxspinbutton} - -A wxSpinButton has two small up and down (or left and right) arrow buttons. It -is often used next to a text control for increment and decrementing a value. -Portable programs should try to use \helpref{wxSpinCtrl}{wxspinctrl} instead -as wxSpinButton is not implemented for all platforms but wxSpinCtrl is as it -degenerates to a simple \helpref{wxTextCtrl}{wxtextctrl} on such platforms. - -{\bf NB:} the range supported by this control (and wxSpinCtrl) depends on the -platform but is at least {\tt -0x8000} to {\tt 0x7fff}. Under GTK and -Win32 with sufficiently new version of {\tt comctrl32.dll} (at least 4.71 is -required, 5.80 is recommended) the full 32 bit range is supported. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\helpref{wxSpinCtrl}{wxspinctrl} - -\wxheading{Include files} - -<wx/spinbutt.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSP\_HORIZONTAL}}{Specifies a horizontal spin button (note that this style is not supported in wxGTK).} -\twocolitem{\windowstyle{wxSP\_VERTICAL}}{Specifies a vertical spin button.} -\twocolitem{\windowstyle{wxSP\_ARROW\_KEYS}}{The user can use arrow keys to change the value.} -\twocolitem{\windowstyle{wxSP\_WRAP}}{The value wraps at the minimum and maximum.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\input spinevt.inc - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSpinButton::wxSpinButton}\label{wxspinbuttonctor} - -\func{}{wxSpinButton}{\void} - -Default constructor. - -\func{}{wxSpinButton}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSP\_HORIZONTAL},\rtfsp -\param{const wxString\& }{name = ``spinButton"}} - -Constructor, creating and showing a spin button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxSpinButton}{wxspinbutton}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSpinButton::Create}{wxspinbuttoncreate} - -\membersection{wxSpinButton::\destruct{wxSpinButton}}\label{wxspinbuttondtor} - -\func{void}{\destruct{wxSpinButton}}{\void} - -Destructor, destroys the spin button control. - -\membersection{wxSpinButton::Create}\label{wxspinbuttoncreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},\rtfsp -\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxSP\_HORIZONTAL},\rtfsp -\param{const wxString\& }{name = ``spinButton"}} - -Scrollbar creation function called by the spin button constructor. -See \helpref{wxSpinButton::wxSpinButton}{wxspinbuttonctor} for details. - -\membersection{wxSpinButton::GetMax}\label{wxspinbuttongetmax} - -\constfunc{int}{GetMax}{\void} - -Returns the maximum permissible value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetRange}{wxspinbuttonsetrange} - -\membersection{wxSpinButton::GetMin}\label{wxspinbuttongetmin} - -\constfunc{int}{GetMin}{\void} - -Returns the minimum permissible value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetRange}{wxspinbuttonsetrange} - -\membersection{wxSpinButton::GetValue}\label{wxspinbuttongetvalue} - -\constfunc{int}{GetValue}{\void} - -Returns the current spin button value. - -\wxheading{See also} - -\helpref{wxSpinButton::SetValue}{wxspinbuttonsetvalue} - -\membersection{wxSpinButton::SetRange}\label{wxspinbuttonsetrange} - -\func{void}{SetRange}{\param{int}{ min}, \param{int}{ max}} - -Sets the range of the spin button. - -\wxheading{Parameters} - -\docparam{min}{The minimum value for the spin button.} - -\docparam{max}{The maximum value for the spin button.} - -\wxheading{See also} - -\helpref{wxSpinButton::GetMin}{wxspinbuttongetmin}, \helpref{wxSpinButton::GetMax}{wxspinbuttongetmax} - -\membersection{wxSpinButton::SetValue}\label{wxspinbuttonsetvalue} - -\func{void}{SetValue}{\param{int}{ value}} - -Sets the value of the spin button. - -\wxheading{Parameters} - -\docparam{value}{The value for the spin button.} - -\wxheading{See also} - -\helpref{wxSpinButton::GetValue}{wxspinbuttongetvalue} - diff --git a/docs/latex/wx/spinctrl.tex b/docs/latex/wx/spinctrl.tex deleted file mode 100644 index 0bd728d8c7..0000000000 --- a/docs/latex/wx/spinctrl.tex +++ /dev/null @@ -1,150 +0,0 @@ -% -% automatically generated by HelpGen from -% spinctrl.h at 11/Mar/00 00:22:05 -% - -\section{\class{wxSpinCtrl}}\label{wxspinctrl} - -wxSpinCtrl combines \helpref{wxTextCtrl}{wxtextctrl} and -\helpref{wxSpinButton}{wxspinbutton} in one control. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/spinctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSP\_ARROW\_KEYS}}{The user can use arrow keys to change the value.} -\twocolitem{\windowstyle{wxSP\_WRAP}}{The value wraps at the minimum and maximum.} -\end{twocollist} - -\wxheading{Event handling} - -To process input from a spin button, use one of these event handler macros to direct input to member -functions that take a \helpref{wxSpinEvent}{wxspinevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SPINCTRL(id, func)}}{Generated whenever the numeric value -of the spinctrl is updated} -\end{twocollist}% - -You may also use the \helpref{wxSpinButton}{wxspinbutton} event macros, however -the corresponding events will not be generated under all platforms. Finally, if -the user modifies the text in the edit part of the spin control directly, the -{\tt EVT\_TEXT} is generated, like for the \helpref{wxTextCtrl}{wxtextctrl}. - -When the use enters text into the text area, the text is not -validated until the control loses focus (e.g. by using the TAB -key). The value is then adjusted to the range and a -\helpref{wxSpinEvent}{wxspinevent} sent then if the value -is different from the last value sent. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}, -\helpref{wxSpinButton}{wxspinbutton}, -\helpref{wxControl}{wxcontrol} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSpinCtrl::wxSpinCtrl}\label{wxspinctrlwxspinctrl} - -\func{}{wxSpinCtrl}{\void} - -Default constructor. - -\func{}{wxSpinCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = -1}, \param{const wxString\& }{value = wxEmptyString}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxSP\_ARROW\_KEYS}, \param{int }{min = 0}, \param{int }{max = 100}, \param{int }{initial = 0}, \param{const wxString\& }{name = \_T("wxSpinCtrl")}} - -Constructor, creating and showing a spin control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{value}{Default value.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxSpinButton}{wxspinbutton}.} - -\docparam{min}{Minimal value.} - -\docparam{max}{Maximal value.} - -\docparam{initial}{Initial value.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxSpinCtrl::Create}{wxspinctrlcreate} - -\membersection{wxSpinCtrl::Create}\label{wxspinctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = -1}, \param{const wxString\& }{value = wxEmptyString}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxSP\_ARROW\_KEYS}, \param{int }{min = 0}, \param{int }{max = 100}, \param{int }{initial = 0}, \param{const wxString\& }{name = \_T("wxSpinCtrl")}} - -Creation function called by the spin control constructor. - -See \helpref{wxSpinCtrl::wxSpinCtrl}{wxspinctrlwxspinctrl} for details. - -\membersection{wxSpinCtrl::SetValue}\label{wxspinctrlsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{text}} - -\func{void}{SetValue}{\param{int }{value}} - -Sets the value of the spin control. - -\membersection{wxSpinCtrl::GetValue}\label{wxspinctrlgetvalue} - -\constfunc{int}{GetValue}{\void} - -Gets the value of the spin control. - -\membersection{wxSpinCtrl::SetRange}\label{wxspinctrlsetrange} - -\func{void}{SetRange}{\param{int }{minVal}, \param{int }{maxVal}} - -Sets range of allowable values. - -\membersection{wxSpinCtrl::SetSelection}\label{wxspinctrlsetselection} - -\func{void}{SetSelection}{\param{long }{from}, \param{long }{to}} - -Select the text in the text part of the control between positions -{\it from} (inclusive) and {\it to} (exclusive). This is similar to -\helpref{wxTextCtrl::SetSelection}{wxtextctrlsetselection}. - -{\bf NB:} this is currently only implemented for Windows and generic versions -of the control. - -\membersection{wxSpinCtrl::GetMin}\label{wxspinctrlgetmin} - -\constfunc{int}{GetMin}{\void} - -Gets minimal allowable value. - -\membersection{wxSpinCtrl::GetMax}\label{wxspinctrlgetmax} - -\constfunc{int}{GetMax}{\void} - -Gets maximal allowable value. - diff --git a/docs/latex/wx/spinevt.inc b/docs/latex/wx/spinevt.inc deleted file mode 100644 index 8f88fea536..0000000000 --- a/docs/latex/wx/spinevt.inc +++ /dev/null @@ -1,28 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: spinevt.inc -%% Purpose: wxSpinEvent documentation shared between spinevt.tex and -%% spinbutt.tex -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 26.05.02 (extracted from spinbutt.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) wxWindows team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\wxheading{Event handling} - -To process input from a spin button, use one of these event handler macros to -direct input to member functions that take a -\helpref{wxSpinEvent}{wxspinevent} argument: - -\twocolwidtha{7cm} -\begin{twocollist} -\twocolitem{{\bf EVT\_SPIN(id, func)}}{Generated whenever an arrow is pressed.} -\twocolitem{{\bf EVT\_SPIN\_UP(id, func)}}{Generated when left/up arrow is pressed.} -\twocolitem{{\bf EVT\_SPIN\_DOWN(id, func)}}{Generated when right/down arrow is pressed.} -\end{twocollist}% - -Note that if you handle both SPIN and UP or DOWN events, you will be notified -about each of them twice: first the UP/DOWN event will be received and then, -if it wasn't vetoed, the SPIN event will be sent. diff --git a/docs/latex/wx/spinevt.tex b/docs/latex/wx/spinevt.tex deleted file mode 100644 index 0d4b6bb14b..0000000000 --- a/docs/latex/wx/spinevt.tex +++ /dev/null @@ -1,57 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: spinevt.tex -%% Purpose: wxSpinEvent documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 29.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSpinEvent}}\label{wxspinevent} - -This event class is used for the events generated by -\helpref{wxSpinButton}{wxspinbutton} and \helpref{wxSpinCtrl}{wxspinctrl}. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/spinbutt.h> or <wx/spinctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\input spinevt.inc - -\wxheading{See also} - -\helpref{wxSpinButton}{wxspinbutton} and \helpref{wxSpinCtrl}{wxspinctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSpinEvent::wxSpinEvent}\label{wxspineventctor} - -\func{}{wxSpinEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{id = 0}} - -The constructor is not normally used by the user code. - -\membersection{wxSpinEvent::GetPosition}\label{wxspineventgetposition} - -\constfunc{int}{GetPosition}{\void} - -Retrieve the current spin button or control value. - -\membersection{wxSpinEvent::SetPosition}\label{wxspineventsetposition} - -\func{void}{SetPosition}{\param{int }{pos}} - -Set the value associated with the event. - diff --git a/docs/latex/wx/splash.tex b/docs/latex/wx/splash.tex deleted file mode 100644 index 5c9907b3b5..0000000000 --- a/docs/latex/wx/splash.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxSplashScreen}}\label{wxsplashscreen} - -wxSplashScreen shows a window with a thin border, displaying a bitmap describing your -application. Show it in application initialisation, and then either explicitly destroy -it or let it time-out. - -Example usage: - -\begin{verbatim} - wxBitmap bitmap; - if (bitmap.LoadFile("splash16.png", wxBITMAP_TYPE_PNG)) - { - wxSplashScreen* splash = new wxSplashScreen(bitmap, - wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, - 6000, NULL, -1, wxDefaultPosition, wxDefaultSize, - wxBORDER_SIMPLE|wxSTAY_ON_TOP); - } - wxYield(); -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxFrame}{wxframe}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/splash.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSplashScreen::wxSplashScreen}\label{wxsplashscreenwxsplashscreen} - -\func{}{wxSplashScreen}{\param{const wxBitmap\& }{bitmap}, \param{long }{splashStyle}, \param{int }{milliseconds}, \param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxBORDER\_SIMPLE|wxFRAME\_NO\_TASKBAR|wxSTAY\_ON\_TOP}} - -Construct the splash screen passing a bitmap, a style, a timeout, a window id, optional position -and size, and a window style. - -{\it splashStyle} is a bitlist of some of the following: - -\begin{itemize}\itemsep=0pt -\item wxSPLASH\_CENTRE\_ON\_PARENT -\item wxSPLASH\_CENTRE\_ON\_SCREEN -\item wxSPLASH\_NO\_CENTRE -\item wxSPLASH\_TIMEOUT -\item wxSPLASH\_NO\_TIMEOUT -\end{itemize} - -{\it milliseconds} is the timeout in milliseconds. - -\membersection{wxSplashScreen::\destruct{wxSplashScreen}}\label{wxsplashscreendtor} - -\func{}{\destruct{wxSplashScreen}}{\void} - -Destroys the splash screen. - -\membersection{wxSplashScreen::OnCloseWindow}\label{wxsplashscreenonclosewindow} - -\func{void}{OnCloseWindow}{\param{wxCloseEvent\& }{event}} - -Reimplement this event handler if you want to set an application variable on window destruction, for example. - -\membersection{wxSplashScreen::GetSplashStyle}\label{wxsplashscreengetsplashstyle} - -\constfunc{long}{GetSplashStyle}{\void} - -Returns the splash style (see \helpref{wxSplashScreen::wxSplashScreen}{wxsplashscreenwxsplashscreen} for -details). - -\membersection{wxSplashScreen::GetSplashWindow}\label{wxsplashscreengetsplashwindow} - -\constfunc{wxSplashScreenWindow*}{GetSplashWindow}{\void} - -Returns the window used to display the bitmap. - -\membersection{wxSplashScreen::GetTimeout}\label{wxsplashscreengettimeout} - -\constfunc{int}{GetTimeout}{\void} - -Returns the timeout in milliseconds. - diff --git a/docs/latex/wx/splitevt.tex b/docs/latex/wx/splitevt.tex deleted file mode 100644 index 368c2df85f..0000000000 --- a/docs/latex/wx/splitevt.tex +++ /dev/null @@ -1,128 +0,0 @@ -\section{\class{wxSplitterEvent}}\label{wxsplitterevent} - -This class represents the events generated by a splitter control. Also there is -only one event class, the data associated to the different events is not the -same and so not all accessor functions may be called for each event. The -documentation mentions the kind of event(s) for which the given accessor -function makes sense: calling it for other types of events will result -in assert failure (in debug mode) and will return meaningless results. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/splitter.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a splitter event, use these event handler macros to direct input to member -functions that take a wxSplitterEvent argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGING(id, func)}}{The sash -position is in the process of being changed. You may prevent this change -from happening by calling \helpref{Veto}{wxnotifyeventveto} or you may also -modify the position of the tracking bar to properly reflect the position that -would be set if the drag were to be completed at this point. Processes a -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING event.} -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGED(id, func)}}{The sash -position was changed. This event is generated after the user releases the mouse -after dragging the splitter. -Processes a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED event.} -\twocolitem{{\bf EVT\_SPLITTER\_UNSPLIT(id, func)}}{The splitter has been just -unsplit. Processes a wxEVT\_COMMAND\_SPLITTER\_UNSPLIT event. This event can't -be vetoed.} -\twocolitem{{\bf EVT\_SPLITTER\_DCLICK(id, func)}}{The sash was double -clicked. The default behaviour is to unsplit the window when this happens -(unless the minimum pane size has been set to a value greater than zero). This -won't happen if you veto this event. Processes a -wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSplitterWindow}{wxsplitterwindow},\rtfsp -\helpref{Event handling overview}{eventhandlingoverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSplitterEvent::wxSplitterEvent}\label{wxsplittereventconstr} - -\func{}{wxSplitterEvent}{\param{wxEventType}{ eventType = wxEVT\_NULL}, - \param{wxSplitterWindow *}{ splitter = NULL}} - -Constructor. Used internally by wxWidgets only. - - -\membersection{wxSplitterEvent::GetSashPosition}\label{wxsplittereventgetsashposition} - -\constfunc{int}{GetSashPosition}{\void} - -Returns the new sash position. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING and -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events. - - -\membersection{wxSplitterEvent::GetX}\label{wxsplittereventgetx} - -\constfunc{int}{GetX}{\void} - -Returns the x coordinate of the double-click point. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED events. - - -\membersection{wxSplitterEvent::GetY}\label{wxsplittereventgety} - -\constfunc{int}{GetY}{\void} - -Returns the y coordinate of the double-click point. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED events. - -\membersection{wxSplitterEvent::GetWindowBeingRemoved}\label{wxsplittereventgetwindowbeingremoved} - -\constfunc{wxWindow*}{GetWindowBeingRemoved}{\void} - -Returns a pointer to the window being removed when a splitter window -is unsplit. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_UNSPLIT events. - - -\membersection{wxSplitterEvent::SetSashPosition}\label{wxsplittereventsetsashposition} - -\func{void}{SetSashPosition}{\param{int}{ pos}} - -In the case of wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events, -sets the new sash position. In the case of -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING events, sets the new -tracking bar position so visual feedback during dragging will -represent that change that will actually take place. Set to -1 from -the event handler code to prevent repositioning. - -May only be called while processing -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING and -wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED events. - -\wxheading{Parameters} - -\docparam{pos}{New sash position.} - diff --git a/docs/latex/wx/splitpar.tex b/docs/latex/wx/splitpar.tex deleted file mode 100644 index af5a93ae96..0000000000 --- a/docs/latex/wx/splitpar.tex +++ /dev/null @@ -1,47 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: splitpar.tex -%% Purpose: wxSplitterRenderParams documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 11.08.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\section{\class{wxSplitterRenderParams}}\label{wxsplitterrenderparams} - -This is just a simple {\tt struct} used as a return value of -\helpref{wxRendererNative::GetSplitterParams}{wxrenderernativegetsplitterparams}. - -It doesn't have any methods and all of its fields are constant and so can be -only examined but not modified. - -\wxheading{Include files} - -<wx/renderer.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEvent::widthSash}\label{wxeventwidthsash} - -\member{const wxCoord}{widthSash} - -The width of the splitter sash. - - -\membersection{wxSplitterRenderParams::border}\label{wxsplitterrenderparamsborder} - -\member{const wxCoord}{border} - -The width of the border drawn by the splitter inside it, may be $0$. - - -\membersection{wxSplitterRenderParams::isHotSensitive}\label{wxsplitterrenderparamsishotsensitive} - -\member{const bool}{isHotSensitive} - -\true if the sash changes appearance when the mouse passes over it, \false -otherwise. - diff --git a/docs/latex/wx/splitter.bmp b/docs/latex/wx/splitter.bmp deleted file mode 100644 index d5d50d0096510307296f451934df3ff7207fb4b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56958 zcmeI5y>1*g5XWgikmA@7f;>X1JcbY)(gk{jRB3%x)>X8f-T4YP*QHLCK8*^Od4@nw zaBv|&?k@islDo^j{UG;)o;irRyZt8T&)*D}yLU_d^vfUr8BV|B^GCejzcA(pykD3L zUjGfYfB(w9zrz}O+f*8Zmnlm-!6#<T{rx?rwBg7vb3D=<-uR<c^l=91?R)j9yerhF zGtq#kSTz-E<^JS62prz6>rCqvaQB}6isDqmc40}OhN~rW|MHIhbZcM`PQ%s|g)xOG zuJE@tR|UO_tL+vu+ropv6fbN_OT+=kP;PX%p#o42l}UwAxjxHkCbk5^@MJkqmIcb7 zyipL9Mhjdlm&|#xhI%o!9M*vBtOk@&y-*Yip#p7Q)l6*GMGy~M-N>@i!1-G-Tzjah zr8U4(l4cbcFi6)>G~)rjV?D`pAUO+ia8Th=<VA#njOIGSGPxBiazN~2%qKuJ;(^_V zbf7l)<$Vb?1%aMJ?YuEX&_3)-oEharq#=MkiZGx&uKtM}0HTTqj#Y{<@P)nf!UD(i z7KL(};Y$c)K&6~Grm38cn4aKEhzNIn@K#bCHBz`leoLibl9Y%8X&65!J#Xac&kqck z$_NVzmr!x^nxp|ag_(5<O3xeF1o3d9fkLC1n8U<)fQB$LpK&0KqAoePct}1j<pA=f zHPc;3Ut{U=o;8fuD05i(TJ%G)ZUG<2m(-^-(XiH~Vy=8Mv`cHdD#vuW#9gwxjLF&S zD#vQDx5>&mcgxDBjLF#>Xs}JwtmrN?Vz_hmF0LUXhNrbO2;hKD<vd@?%mE$Tvh7Q_ zew(KuGY7J_rGYLC=V{2y0aqGr4Y*jGsp0E$per_29J=BGzBNxnW)5U;D;{WZo`%fv zaH@fOnC0D!j%METw6!<jU>CaYJGdRkCfl4GLVInW?+~4?qxa0PqwBsVYIw+CS$q+$ z`<kfXI=+Amdsf|Tv_@rYd9pAZCTWm`fi%#mF3FdKVSonL%}eklVHlu+zIaLEAPvKm zc#wu+f(CIICTI|cAzgz!4Cxx=VK~@+c6_@e5W~TBU!%`)0x=x?r6Zpr4x>pThJ(9g ziRB;>Lm~%}7!o;%#E`}z#9+*5_~h9kDINk057!UDavpoTN=a##LJWt46b+Fa$XxOr zeiH$#Fh&;#nEYU@?aj|FviaA=b08GtKh3}V_I8yR84twa8pp$z<Y|cKfV*j65R&Ms zmHg|XIXpD$-_Pf_x2wcx4%7~@FByt$JAd7kWBzrq9O`qjjqUuF_LmsVp~`~%s9F#) z6UTw>j@RZ&(-6r)Sk2e<Npo==9>Rl!EyZ!T7G`y5P80{(7~-zuWMhbm2jLi^I0(lO z!$CTR7!J}gL~sy~A%cT=4C5T+V;JWkAHygI1sFy-D8MkrK?8;{4jM3wa8Q9^go6qU z!yI&A80Me@!ypGG7zQ~g!7#)@3x**MS}+W7P=jHBgBlF|9Q0u5=b#5eF9$^!dO0Y< z(8oa&hCU9OFyM<qPOaZyslssRe*QrfhVI{n>cY^iK^KNj4azWd{zg|BhOXb}YQxag zwra!B(YC6?&=J$>Fq~@8hv8I%J`5)s6k<5hpb!Hz1kcB5!~hM!bBY=<kS{f!7gdR& z6%Q&ggc@{W2>Y!%F@*hAcX6$B!uJH$9RhIm+@Hr792+<!*LFNIsy;!(jA3R(97@lN zzS9lD-m6@qQFT9D&N6ZKx~jJt+>J{+nbsC&9lOZc8)&EoJ(=!QS;u;G_Aai$|A0Kp zl&wF*vAp<y3d}lFWQ_-R@zeID+2iwNX^^U?Hh4V2mWKJ`BxZ>NUkLw)fs=SR0}k`Y zN%U2eWomB*w0wyc=f!m9cp!Th*N~<DeIaapOM@ME(2n0Stt*=MJZ<d_IM{`G<0Sej z$}tV?wSB(5&g8nUsx<_^6G+CeOFm+a1FG&eTGTSRfS1WftZ~3B4Kgt7UDt0~JjlQR z4UO*~5<v^W01b`rff6+c!9c!*L;;-~(^4?Z(I5rG3=Lv1%+MeP!*mUDFzjtVdqPah z!LWDT*W`9d5Qcqqmm{%l6@+2$FI5uH50WrU<sb>eL=K`bOynR6!!!=EFihhh3&SK1 z!Z1wYAPmD44$?48;UEpe1P<abOyD36Lpld}7}7b&!;s8DAckZP0x_g=kcc6bgG3C8 z97JMB<RB758ix>rF^Tt>*V;YlzD9sy_i`63uVvwQzA5)LLJa%86b+Fa$XxOreiH$# zFh&;#n7lLA_U7j}=Nx;)bFiM%RAATSuyVMJ$ao+Q<T>!Ari$Ubb8U_1fL|1FOC(Q2 zG>2W&c0Zr1riaUk=0NQb`;wv9w)4u`rTUyKC6a44(HyEn$d9T85i@b|K)(>G&6TDh zl7q0Cuj`ZM;yAQ>N?{&fdnt~CXbf>2WMhcCj+2ccii2<rQ5=M0h~Xd|LktJ$7$P`` z#}L6mJce-&@-d8akdI-Mg8~er928&}<Ddb<7zYg)MmVUzFv39vhG7mmFbs3hfnkt? z5)6YJlwcU*pasJa2Q3%|IH<uez(Ea$ehzvt^mEXIp_hXq480r_Vd&$a2}2(TO&IV+ zA*a^!K&mk8yPpA9g`xZTI9(XJHR!_7sX-Zr&gT@BVd#2JQ5%M?wpAO3j<!`DhK`t4 zhv8I%J`ATC^kF#Bpb*1}289@)As8b>BL-*)#%j@sfqbbRD}JvMLn|IsVhA<p#1Qsd zbz%tnt?uGl>4fhIOdG*i%u&x{#oGa2zWyi1YEhrgM+2H9#Wc=`1I9hwZVQ7hl*VK^ zu!b#-YOFB@8Z-)k%}otj1KVjZS6c*xeqYib(^?@k<3Ya$V-OBnlZ|Pu)?2%uHOS!i z%s~u?&5G$~q~BIf)L&Xr0<vCN0J87ZaQiq-+A%zAK@Pu$_rEUvveRG;O1=q7Ur57( z9NySFTIClzz4Xgg!^H(e+(5_eBmEsW$K&P}@1tG5Jz^zq!w1%4^CQ;L3}oYfV(^Yf z>`gD)nYP-rAcr^Zg!aVKx0im|X@CHvN`o_<O=3%7TSJ4>={1lJ)@C)h1*c(24*1Fh zSIgxSCg!TGVe{|(Yx4>k=>Lpts1B_PYZ}!yH1IZOtDRsCb|n_KgoO5X+v}iMl!Mm* z5Uc_BVoXt54xc{VzrO#cUjw<xm<IS>Lj$V9r^VVO?>kS_Ib{vot1Y-V4e+J=ze$5P z1MxtC!PRQ3xbiPr%j<bNv4cKntPi$FSq+PF;6Q*cc@6kZ5f{@|!v+K6a6C8-WRZ*M z<0HrKEgR0plgV}+sj<F9TWKA6Vi?nl#>0sQVDK6~e%!q@--3fnWEv$n1UWh<%fZf5 zcvPwO8o#Q!H5-SIo12%rznU7X8BGmrs<*dkrC;Y2a05^;EO(x+<H5H}&3M>g<?hc~ z0~~^lU|(_OSPjnjKtm&b?Y_;et8nldn(Y#u<BYj*)-F6*zFp$5XrCWo{SBSsR!B>7 zpfl9*_}Na5mv8LMXV)&RV0@M3VjOxi>g~5yHq4t@ki(z`_AkvJ=W#vlVnp$z)a*pg G_U-=;J1YqQ diff --git a/docs/latex/wx/splitter.eps b/docs/latex/wx/splitter.eps deleted file mode 100644 index 43c72b63ba..0000000000 --- a/docs/latex/wx/splitter.eps +++ /dev/null @@ -1,301 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 400 282 -%%Creator: JASC, Inc. -%%Title: D:\wx2\docs\latex\wx\splitter.eps -%%CreationDate: 0 -%%EndComments -/width 400 def -/height 282 def -/pixwidth 400 def -/pixheight 282 def -/picstr width string def -/psppic { -gsave width height 8 -[width 0 0 height 0 height neg] -{currentfile picstr readhexstring pop} -false 3 colorimage grestore } def -0 height neg translate pixwidth pixheight scale -psppic -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000000000000000000000000000000000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00000000000000000000000000000000000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000000000FF0000FF0000FF0000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000FF0000FF0000000000000000000000000000FF0000000000000000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00000000FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000FFFF00FFFF00000000000000000000000000FFFF00000000000000FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000000000000000000000000000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFFFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0808080808080808080808080808080808080808080808080808080808080808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0000000000000000000000000000000C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000FF0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000FFFF00000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C080808000000000000000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0808080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0C0C0FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0C0C0C0808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080FFFFFFC0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000000000C0C0C0000000C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000808080808080000000808000808000808000808000808000808000000000008000008000000000808080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00008000008000008000808080FFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00008000008000008000808080FFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000000080000080FFFFFF808080808080808080808080808080808080808080808080808080808080808080808080808080808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080808000808000808000808000808000808000000000008000008000808080FFFFFF808080000080000080000080FFFFFF000080000080000080FFFFFF000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFF000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFF808080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000808080000000000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000800000FF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000000000000000000000C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080808080FFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000800000FF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000808080808080000000808080808080808080808080808080808080808080808080808080000000000080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFF000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0C0C0C0C0C0C0000000000000C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0000000000000000000000000000000000000000000000000000000C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080800000FF0000FF0000800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000080000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000000800000800000000000808080808080808080808080808080808080808080808080808080808080808080000000000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080000080C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0808080000000 -C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080000000 -C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0000000 -%%Trailer diff --git a/docs/latex/wx/splitter.gif b/docs/latex/wx/splitter.gif deleted file mode 100644 index 0aa12d72b02913b2bb594c99482ed40b4a0de95a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5272 zcmeHK={FRN!==sMQ#}%*64@d>CB{T3g+WRS29*~3mMx5ZUuMQ`7Go?kW<^LDyRyuT z8B5uQC@PJyBug2C>3x3h`(M20ckicrKi+fhIrmyx-vAi7<3)8uH%0yr5D}3-|5D`7 z9|#1}*4Fmv)2IJc{~G_re-rrsoPf@M8t|Vkh=>bC{t{QRsx5n)B>uOyE2Fl&EA5af z2xC=O(UT>A(PxTLrxL$c@@l4%bv>S$uX%^!%B-(sA<jSP!&tu}^cMp{7N*GcotFC# zBuXlS8c6SPR{7d)eGTMc;w>Dg1oWCRN_BeWGmRe6u&Q~~m8op=rfTAq*Dyt9;V3CV zB<O2jiA`h8bW6ng!ZfS#<>!w0y;3J^X|=Om>3^Rkuzq_E_2j79U~QY~=UB*#PXcy+ z={^uC6ZJY_*WADxCfT*@t5pnG6v0e?lCg6MUHC`~S^N|OHosQdt{@2A{TRMP7xkmd zz(h9UhY~Em$SA}EA1#KGpLDeB1~M7bk;1H#9h^;v88PV*!ZeZ}`Srl$>0@@Kks%^` zv1eC&O`@lkceTn8aibE9V+jzIbY$YUOY^7Vcv>mgsKtb_2VsZ7ngyv{Z{<p#VBfwz zv1fBmY%=V?_x)uF(#^eJvSME|+%of+{23TPc+B0gs!}ZewrTAAgIkI|n)tM}$ka~P zvT5#A#yL67%J4m@mJS7X?<>p{IfN@bN;ti%p^QB5V1y_HH`C^jj!_C8@St9AY_bVO z>|0965rxTH$|s0VMQrk%R6?By-s-5wa=<gt0D}duqAYDiUiss81+uG$2iODc*2^O& zMV`Loo@23p!kr|0WR#m$!n|HlCM=T>0q;r9W2&QX-|XX|3$O+Ah|U0kGC}`7m`p(U z0KXI2nQ4^UxKEK!NlOy1ee!}NI@Lt>FeJ_PG-z|rA}9XITtbw5_n}s%y=kEqb*Y1E zno`H8Bv}7<o5@$#ue%hG-^@9yk;fB}{vwm%$El4oS5dyT*#T&sHeSV9a?4@rS-rZy z7bi7)1*w=x%;KuE2Kkz(F+P`kf=6_n)@JMa&j#<TW^rCitf3WMrs}GF2=gIBhxW$& zs5Z~43Jp{k^QezZqCjUML2a0+H%aH5mOkXnvVM&tR;fNEp$C~yMyvY5!(v{mbA#L; zBq@I#3m&gV?b-jWdQ<ob@~U_9bCj4gVCJWLi;{o%vghU(s9}xcNRH*f%5Uka-nCzm zo;8u}_XB@yam!Y|bHR8-fPhCL)(93V5*dQUTKc)|r3M7{=`xL5v;CuWJQlLjDW<pc zv)ld`WR;=ua%Zi*MW_cctzhqLj5r3y+@TY7mVZsXSTR|j2&C<9enSMtu9v_9J#!$~ z72)<z+|hRI^%}j{9X|J^>Am%j<d}`o$x;z9E3^E{m4}t}4@HkLI(L8BN4;M!-FMvT ztz_^@g2dC4EFH$%gX%BiPDq!F>&>?o82Kk_+PeQVBfXPr4tk*zT`uj(Z<hb?GZo;P zB@@EvI+1$DT9_nNaVX8I`?TU}x|MCk5d@=K9k`lt3tAydwCd6R(XVTU$H+A@dd@|y zW<8R|$<wWRFQ8YUUbZ;J9u7)p&&<6bC{BrMMF&o<!XwzY6PpbB6~StDyfprlm^I_7 z;#y90w0L?wN67-XmYV~`t7%v>LEyE#w0%raJ*U^u;7ER%bfu=Hb)N%ztw0<wa~qIx z-9Gk6VJ);$$J3ex209cDf$`^N=Rq!lHAJU0;ru@ttXN)s{_~}|^9Ux}1GtVNhe~Aw zGuThBuA@0@f`K_1#H;MLzk<SDXtW*(Mz3SSj2~@Rg|Y8{c#fHe5{<b`_D0DeOp7pD z!(@{=7&}mZ@#tfXOViGl5rXwHaXZb^Sw?RX48Fq;+#^|NfNo#DFcM!~MNn1+zlTTZ zmmfRobwfh(eKvXnFD|2X<r3JTpn0Q`YaD<0<JK*cU|9m7pQqO}KlIn?Dgh`%xn)OY zU{lwL*X$?`_GBh@XoMKEZ^3~G8of%{D0VXOxl8REt?_U`S6`&u?ct5qqhDt`K6_^O z2Qc=kxsd7|L%Ba87;B!qN4Q?#>+;KcyuGN9sOsi>YI9-y9d<;-%v$I1F{;z&eR7l} zwJLWFoA<pJe%G5FrmCE=nHV@B`>M>Y%ENGR;zPwqJ;`m!%i4Ex?7n_Oxtmbe*UiQy znPBj`zQo`Eg^fL@!l1Evt~#hc(q(9mA+5{qoIy<1#Mje~O+(K-p6f17ac^ukcRUSv zLiKf9igGL(Zqs?uvOT?4<j?|D){E?CJ+Mu6tXpskgmBMVZ)E<i3#nA|<gp%_wL8A% zPwSo9KlOPJ_kDXhOz*UW-^_u*)ee+Qt){}#jHIf_TX+vwQ_IhN?=_ByWUN}+W%fhq zG^cL0o6k>}Mn9IN@_Rz`>yqt^9?L&L^jsv=!CvS*k-^pXUcPw_9<%fH6qQDI-XHuF zX8T1&BeDqO5$v1GwsJb?Q+vCp{$`2mGiQU0YV1yZk%`S*bd)pOw0}*AOzL}fkzQ|I zgO|};R^{rAdkp+`4!Or-JDg41x>75tUnb_yJ%1cL6h-hU-ro5N$o3ivkqa$9Q~ljy zC4W#YCPeT3j<(Sq!Eka-LnXIq-gevQ!+w)cl6gPxw$#z#M3XS$Y}JDGOTk!m_^+bF zQ(r*Alf$)FFIJl`<6RdOiM6R!=U@3PJ?Ur|sXO>R-G6zhO#N~P>ysar+P3)TcQa!O zdm*_)=0^}jZn7_cK<ba-Jm>OJiyn=Z?_vI7tdF(h@W$AcWyh#R$mg9J-*)EKO8n;V z=Q$nPTgYO->A*X)QrQ~s`XyG=i$i9(RkWT)qg7~NG)3N$*ef(W*bmRbe7hzSX>18! zdxnml(;X!D%`w-If9gpqSkHd{2P^`?qMA2mG-$8r7~BP!KdBovu-O!Xzj(BYI^uh^ z_(!ON_Vla}A2oVSVkobAWW@P1(5f<WQ0*dc>G38JXehoBg)>>+ULyPh69&=f$_q_+ z$n^5LL8@sJ4$R%Yx_V`^(nkMhVx#u#aUXt{Mmr|rOvQ*@CZGOSMAl<nA4`M5t${nq zm*fxbrdjF<KI98G2=*omZOexO)z7T!cuU!P*l$nLyEQ0-y9;51+tb_ao1Gmi>TcPx zoDMGKiXVFgadPMT#XnmEVzI8JkE4MqrdzbM_TM;R$L^1iKidj~zklt8+VGZ#(mF*u z1Z{)DUo9saABCCxC~?@8L3JcEvjy9mpM}Ep&s)BpwqG~H)I;OO(_+iGagzKvDNcM- zWB8_FyoY7@qCRkI94L)UI7mxS<hZUnCajOk{<2g#K#MrWxT%CpR3;@Vi6=Z!O)&F} zgT6>Ku1_>zBpQmxpVW-su#AmxOw{K90f1y9t7JCuX4AeT`%8A}R!I|%$+x_cZ<E}H z$CLJX#n?q8@-$Lh0V!_caVzD?COygKq_~IkDPH`Pdzy*g4DaN6UJsH_3r0G6I;DAw zrvz$Rbia^&{Q5>LKP{eg<AqmRGA+?nEmi3BEi#jq4&|i7`RO_G8F{qy>}Qaohzuk$ z15L}oa5AvS3^}LN3P9#lt4u;frhG~!#VgZHKdpwJSu3Aa56Eh8%6cPzT~sc;nU>Yc z$!h0kb;?8ESsBGxiS$N58Axa!4a(*~2l&t-dDsU4Y{UsR76IcRVUsl26bJT+4||^; z!ngQ$h{C@|z~_<h1sZ&b1OLH?f1VG~d>=k%1^*e5%|~VnXxTfQY@ru47IB^Kl>Nsk z=RjnRI4Vcd8!k$=VOZrzDdZk8%9VA_{mIEGDS#gG&Q+SoJ+YO0%34Hz0@O##Rf){g zMCEBS;lYMU)^DKdO~SkjM)~^A`Rw^bGC%LUcfRpN{*{cp-?C<ZbL9Kw^GzcQtWX6z zoUl!c>;bO=kV2t@QQ;~w<=U3Ypm^ckrb5?=!hS%W1*-6YQPET9qSM}mHzi<T?;^j6 zqKgtmP6{wzUQwtsLK&52j&~deAi^gQu^Bn>m*9{sM6xqdQVR|=LZ&t$q2%nfh$G(C zu;>Y7fir4C9C772EZ-Z2nLrJsql(G7SR*uE3s#1Ll{=#;Oe8S_P2ECMG7w2P#3T}3 z8(AEnfXv{bX%odzRN%B%ak~-bE-&ztCZ-#Ov68^h$(RA}qTVeSV+%9Vl*iU88AX*i z2o*|Z040-KC32A^(-PQk-uYAB@K4Uz1@D|M8Q8@wtV$%7i^TqPF8#^Du6vgXv~t%n z;2TY)B9d@EuT&IVCghaz_@xJ$%SHiZ5`ATd7U1F(xTIpa90ht1RDP_v{4=0@(WzWX zv0On=t^%$YpD$k$uTWPkQ$<&t6;uqSS1gk%&P$f+0&$nnIJze8hZPPei8Y+WnM&e} z1@J3C{D=bnMkf9Y82>W@ZwtbJfViWH=v#`Fp**~OCZ^0C>Xuo_G^)HIs2sH-JfdL0 zK*I0&%JS75e-PYXQ2Bb65Ew-$&?1<Cv*$F4QIkYJ0WnCD6zxM47NQ7|z??-<Qh+uo zR*?h;kvb-VTAXt{d<f|vLec^W<wMQ^AyYw>S>OU#GZ`0ES>lr)AxS|{$d!Gh8Ucy8 zKyH<LB;ieNFee_GsKiH+F^bf16lG@~*S0`)22vB5xsqsd_X47GGMfn|vL+Fwf^33f zb-+ZG(5ZS%vZNPCRwh?}1Qu~X)w2u5!%;ai;F`NeH3gKK+Q^!CUJaF5a{yJd7FF;Q zOx*;cH!^FsCsA9JoZo_%`WeVQ&iQ+7YR_&V)eoceQMHm%1zy(01`>6LrShto`EroD z7e;lDf8`%%)g49EnJCnsKAUT+V0O@@Uc*L+FqcS_m8#eMSOm~=php#`Uw(C9BF`wY z)*AH+xR|Y$RbY0!VH?n3;oIPv(O^w&xWjC)TWkPn6(_IPxi~jC6jvZEW2+4_9&Eps zT2)N}yh&ojWhSTB{Sz&{o#FTKjY?h0Gn+TT+cCa2M^qTHs`6oCoNM-g#@OSHZyQr1 z7L(|ng<E2camBRw7D!@?Y~*Egr?AYJ7Fq$7MomjLW~4f5CK+ipNjNo?`8Jgwi`Vl? zakMr)$7?EYY5w;!kbEzA9dEj-&{V~5s%ACQY}`&VF1%QzCHuyirDx_tTDpr{E`5}* zgBbgz#Z{!!nzmaTZJKL+oBxS0H4vU{eJs^B`LP-4(u{^QyFa6GJX=1xw1<48fmUfL z#LO<=_8&Is^V?A!E}2-D*5BK$t1i+0NXNU7Ea76u1f*k+Ytt^v5aJ~p1At1lcDn0# z9<*&rvuexQ_eR$Btz7h5dCXhIr9*}DZ%*vIJ*D*SwDCK&r6c9EOwDK-yZD_B^jbB) z<GfPW1y>6v{Vs#(t_#qIx|qvO4P6bmt}8oTeuum3_jX$-T{emCe)*(ZjUy|zB&)gJ zZ7*ux*<yaQpgV_k1+Us;dpkk<X*d2|kLyymOWn-}wrVQLJ$GG=-IuO@*k>_j)9d_C z?;VU;_>#GgQg5j7W&fR?{XuQQIB4%6j_%cJF8Z_=?5Cnwz<{*&PUiPstJ1(6H&2B! zpwg{_cNohdy_WCkn#qO<n0xypG!Vw-{?UCYOQwhM%tTw$`%8>!C_UHDlqzjjx5TWf zG9zI6z9g}prLnv*h9)g0qhFY}r&yawea)?XImNQIQ*1eWZv&gvqQe*(X1(%d*XZ;< zhtl8e^k%8)PU@J`ZTn+fS>G@N_m=ExTj_h$`YC<`*{y6|bSJoKAc=jUlWkrGbt;#p zS4R&@cC+Vf2Q!og`=t9zqUn+`J+Gn%#bQ_toxyfY-~RsoI`-ga9rlcV-#r~B-!?JI zmLa~|ybYCI-hng!@~7`}i&vfgVCSk0H9jB8X3CBX?n*Nr%?^NUWu1(V8drA%cKd<- zN6n{)%~yvVo{yLtkHkR@ufs;DxDf|kxtq&_f0PF9RRiy~jk-J^HCom<V?6eBI>Xv+ z%&TNfZ&sGe9S!im;=el<JZ<tIp({LQJfdVgs%_k%yEAroJYJcTXu?TWz9cFtB69hE E0AsX84gdfE diff --git a/docs/latex/wx/splitter.tex b/docs/latex/wx/splitter.tex deleted file mode 100644 index d96e85ddb2..0000000000 --- a/docs/latex/wx/splitter.tex +++ /dev/null @@ -1,492 +0,0 @@ -\section{\class{wxSplitterWindow}}\label{wxsplitterwindow} - -\overview{wxSplitterWindow overview}{wxsplitterwindowoverview} - -This class manages up to two subwindows. The current view can be -split into two programmatically (perhaps from a menu command), and unsplit -either programmatically or via the wxSplitterWindow user interface. - -\wxheading{Window styles} - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSP\_3D}}{Draws a 3D effect border and sash.} -\twocolitem{\windowstyle{wxSP\_3DSASH}}{Draws a 3D effect sash.} -\twocolitem{\windowstyle{wxSP\_3DBORDER}}{Synonym for wxSP\_BORDER.} -\twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a standard border.} -\twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border (default).} -\twocolitem{\windowstyle{wxSP\_NO\_XP\_THEME}}{Under Windows XP, switches off the attempt to draw the -splitter using Windows XP theming, so the borders and sash will take on the pre-XP look.} -\twocolitem{\windowstyle{wxSP\_PERMIT\_UNSPLIT}}{Always allow to -unsplit, even with the minimum pane size other than zero.} -\twocolitem{\windowstyle{wxSP\_LIVE\_UPDATE}}{Don't draw XOR line but resize the child windows immediately.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/splitter.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event handling} - -To process input from a splitter control, use the following event handler -macros to direct input to member functions that take a -\helpref{wxSplitterEvent}{wxsplitterevent} argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGING(id, func)}}{The sash -position is in the process of being changed. May be used to modify the -position of the tracking bar to properly reflect the position that -would be set if the drag were to be completed at this point. Processes -a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGING event.} -\twocolitem{{\bf EVT\_SPLITTER\_SASH\_POS\_CHANGED(id, func)}}{The sash -position was changed. May be used to modify the sash position before -it is set, or to prevent the change from taking place. -Processes a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED event.} -\twocolitem{{\bf EVT\_SPLITTER\_UNSPLIT(id, func)}}{The splitter has been just -unsplit. Processes a wxEVT\_COMMAND\_SPLITTER\_UNSPLIT event.} -\twocolitem{{\bf EVT\_SPLITTER\_DCLICK(id, func)}}{The sash was double -clicked. The default behaviour is to unsplit the window when this happens -(unless the minimum pane size has been set to a value greater than zero). -Processes a wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} -\end{twocollist}% - -\wxheading{See also} - -\helpref{wxSplitterEvent}{wxsplitterevent} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSplitterWindow::wxSplitterWindow}\label{wxsplitterwindowctor} - -\func{}{wxSplitterWindow}{\void} - -Default constructor. - -\func{}{wxSplitterWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}} - -Constructor for creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The parent of the splitter window.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. See \helpref{wxSplitterWindow}{wxsplitterwindow}.} - -\docparam{name}{The window name.} - -\wxheading{Remarks} - -After using this constructor, you must create either one or two subwindows -with the splitter window as parent, and then call one of \helpref{wxSplitterWindow::Initialize}{wxsplitterwindowinitialize},\rtfsp -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically} and \helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} in -order to set the pane(s). - -You can create two windows, with one hidden when not being shown; or you can -create and delete the second pane on demand. - -\wxheading{See also} - -\helpref{wxSplitterWindow::Initialize}{wxsplitterwindowinitialize}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally},\rtfsp -\helpref{wxSplitterWindow::Create}{wxsplitterwindowcreate} - -\membersection{wxSplitterWindow::\destruct{wxSplitterWindow}}\label{wxsplitterwindowdtor} - -\func{}{\destruct{wxSplitterWindow}}{\void} - -Destroys the wxSplitterWindow and its children. - -\membersection{wxSplitterWindow::Create}\label{wxsplitterwindowcreate} - -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \rtfsp -\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}} - -Creation function, for two-step construction. See \helpref{wxSplitterWindow::wxSplitterWindow}{wxsplitterwindowctor} for -details. - -\membersection{wxSplitterWindow::GetMinimumPaneSize}\label{wxsplitterwindowgetminimumpanesize} - -\constfunc{int}{GetMinimumPaneSize}{\void} - -Returns the current minimum pane size (defaults to zero). - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetMinimumPaneSize}{wxsplitterwindowsetminimumpanesize} - -\membersection{wxSplitterWindow::GetSashGravity}\label{wxsplitterwindowgetsashgravity} - -\func{double}{GetSashGravity}{\void} - -Returns the current sash gravity. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetSashGravity}{wxsplitterwindowsetsashgravity} - -\membersection{wxSplitterWindow::GetSashPosition}\label{wxsplitterwindowgetsashposition} - -\func{int}{GetSashPosition}{\void} - -Returns the current sash position. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetSashPosition}{wxsplitterwindowsetsashposition} - -\membersection{wxSplitterWindow::GetSplitMode}\label{wxsplitterwindowgetsplitmode} - -\constfunc{int}{GetSplitMode}{\void} - -Gets the split mode. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SetSplitMode}{wxsplitterwindowsetsplitmode}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}. - -\membersection{wxSplitterWindow::GetWindow1}\label{wxsplitterwindowgetwindow1} - -\constfunc{wxWindow*}{GetWindow1}{\void} - -Returns the left/top or only pane. - -\membersection{wxSplitterWindow::GetWindow2}\label{wxsplitterwindowgetwindow2} - -\constfunc{wxWindow*}{GetWindow2}{\void} - -Returns the right/bottom pane. - -\membersection{wxSplitterWindow::Initialize}\label{wxsplitterwindowinitialize} - -\func{void}{Initialize}{\param{wxWindow* }{window}} - -Initializes the splitter window to have one pane. The child window is -shown if it is currently hidden. - -\wxheading{Parameters} - -\docparam{window}{The pane for the unsplit window.} - -\wxheading{Remarks} - -This should be called if you wish to initially view only a single pane in the splitter window. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} - -\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit} - -\constfunc{bool}{IsSplit}{\void} - -Returns true if the window is split, false otherwise. - -\membersection{wxSplitterWindow::OnDoubleClickSash}\label{wxsplitterwindowondoubleclicksash} - -\func{virtual void}{OnDoubleClickSash}{\param{int }{x}, \param{int }{y}} - -Application-overridable function called when the sash is double-clicked with -the left mouse button. - -\wxheading{Parameters} - -\docparam{x}{The x position of the mouse cursor.} - -\docparam{y}{The y position of the mouse cursor.} - -\wxheading{Remarks} - -The default implementation of this function calls \helpref{Unsplit}{wxsplitterwindowunsplit} if -the minimum pane size is zero. - -\wxheading{See also} - -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit} - -\membersection{wxSplitterWindow::OnUnsplit}\label{wxsplitterwindowonunsplit} - -\func{virtual void}{OnUnsplit}{\param{wxWindow* }{removed}} - -Application-overridable function called when the window is unsplit, either -programmatically or using the wxSplitterWindow user interface. - -\wxheading{Parameters} - -\docparam{removed}{The window being removed.} - -\wxheading{Remarks} - -The default implementation of this function simply hides {\it removed}. You -may wish to delete the window. - -\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange} - -\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}} - -Application-overridable function called when the sash position is changed by -user. It may return false to prevent the change or true to allow it. - -\wxheading{Parameters} - -\docparam{newSashPosition}{The new sash position (always positive or zero)} - -\wxheading{Remarks} - -The default implementation of this function verifies that the sizes of both -panes of the splitter are greater than minimum pane size. - -\membersection{wxSplitterWindow::ReplaceWindow}\label{wxsplitterwindowreplacewindow} - -\func{bool}{ReplaceWindow}{\param{wxWindow * }{winOld}, \param{wxWindow * }{winNew}} - -This function replaces one of the windows managed by the wxSplitterWindow with -another one. It is in general better to use it instead of calling Unsplit() -and then resplitting the window back because it will provoke much less flicker -(if any). It is valid to call this function whether the splitter has two -windows or only one. - -Both parameters should be non-NULL and {\it winOld} must specify one of the -windows managed by the splitter. If the parameters are incorrect or the window -couldn't be replaced, false is returned. Otherwise the function will return -true, but please notice that it will not delete the replaced window and you -may wish to do it yourself. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize} - -\wxheading{See also} - -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}\\ -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}\\ -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} - -\membersection{wxSplitterWindow::SetSashGravity}\label{wxsplitterwindowsetsashgravity} - -\func{void}{SetSashGravity}{\param{double }{gravity}} - -Sets the sash gravity. - -\wxheading{Parameters} - -\docparam{gravity}{The sash gravity. Value between 0.0 and 1.0.} - - -\wxheading{Remarks} -Gravity is real factor which controls position of sash while resizing wxSplitterWindow. -Gravity tells wxSplitterWindow how much will left/top window grow while resizing. - -Example values: -\begin{itemize}\itemsep=0pt -\item{ 0.0 - only the bottom/right window is automatically resized} -\item{ 0.5 - both windows grow by equal size} -\item{ 1.0 - only left/top window grows} -\end{itemize} - -Gravity should be a real value between 0.0 and 1.0. - -Default value of sash gravity is 0.0. That value is compatible with previous -(before gravity was introduced) behaviour of wxSplitterWindow. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetSashGravity}{wxsplitterwindowgetsashgravity} - -\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition} - -\func{void}{SetSashPosition}{\param{int }{position}, \param{const bool}{ redraw = true}} - -Sets the sash position. - -\wxheading{Parameters} - -\docparam{position}{The sash position in pixels.} - -\docparam{redraw}{If true, resizes the panes and redraws the sash and border.} - -\wxheading{Remarks} - -Does not currently check for an out-of-range value. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetSashPosition}{wxsplitterwindowgetsashposition} - -\membersection{wxSplitterWindow::SetSashSize}\label{wxsplitterwindowsetsashsize} - -\func{void}{SetSashSize}{\param{int }{size}} - -Sets the sash size. Normally, the sash size is determined according to the metrics -of each platform, but the application can override this, for example to show -a thin sash that the user is not expected to drag. If {\it size} is more -1, -the custom sash size will be used. - -\membersection{wxSplitterWindow::SetMinimumPaneSize}\label{wxsplitterwindowsetminimumpanesize} - -\func{void}{SetMinimumPaneSize}{\param{int }{paneSize}} - -Sets the minimum pane size. - -\wxheading{Parameters} - -\docparam{paneSize}{Minimum pane size in pixels.} - -\wxheading{Remarks} - -The default minimum pane size is zero, which means that either pane can be reduced to zero by dragging -the sash, thus removing one of the panes. To prevent this behaviour (and veto out-of-range sash dragging), -set a minimum size, for example 20 pixels. If the wxSP\_PERMIT\_UNSPLIT style -is used when a splitter window is created, the window may be unsplit even -if minimum size is non-zero. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize} - -\membersection{wxSplitterWindow::SetSplitMode}\label{wxsplitterwindowsetsplitmode} - -\func{void}{SetSplitMode}{\param{int }{mode}} - -Sets the split mode. - -\wxheading{Parameters} - -\docparam{mode}{Can be wxSPLIT\_VERTICAL or wxSPLIT\_HORIZONTAL.} - -\wxheading{Remarks} - -Only sets the internal variable; does not update the display. - -\wxheading{See also} - -\helpref{wxSplitterWindow::GetSplitMode}{wxsplitterwindowgetsplitmode}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}. - -\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally} - -\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, - \param{int}{ sashPosition = 0}} - -Initializes the top and bottom panes of the splitter window. The -child windows are shown if they are currently hidden. - -\wxheading{Parameters} - -\docparam{window1}{The top pane.} - -\docparam{window2}{The bottom pane.} - -\docparam{sashPosition}{The initial position of the sash. If this value is -positive, it specifies the size of the upper pane. If it is negative, its -absolute value gives the size of the lower pane. Finally, specify 0 (default) -to choose the default position (half of the total window height).} - -\wxheading{Return value} - -true if successful, false otherwise (the window was already split). - -\wxheading{Remarks} - -This should be called if you wish to initially view two panes. It can also be -called at any subsequent time, but the application should check that the -window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit} - -\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically} - -\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, - \param{int}{ sashPosition = 0}} - -Initializes the left and right panes of the splitter window. The -child windows are shown if they are currently hidden. - -\wxheading{Parameters} - -\docparam{window1}{The left pane.} - -\docparam{window2}{The right pane.} - -\docparam{sashPosition}{The initial position of the sash. If this value is -positive, it specifies the size of the left pane. If it is negative, it is -absolute value gives the size of the right pane. Finally, specify 0 (default) -to choose the default position (half of the total window width).} - -\wxheading{Return value} - -true if successful, false otherwise (the window was already split). - -\wxheading{Remarks} - -This should be called if you wish to initially view two panes. It can also be called at any subsequent time, -but the application should check that the window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp -\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}. - -\membersection{wxSplitterWindow::Unsplit}\label{wxsplitterwindowunsplit} - -\func{bool}{Unsplit}{\param{wxWindow* }{toRemove = NULL}} - -Unsplits the window. - -\wxheading{Parameters} - -\docparam{toRemove}{The pane to remove, or NULL to remove the right or bottom pane.} - -\wxheading{Return value} - -true if successful, false otherwise (the window was not split). - -\wxheading{Remarks} - -This call will not actually delete the pane being removed; it calls \helpref{OnUnsplit}{wxsplitterwindowonunsplit}\rtfsp -which can be overridden for the desired behaviour. By default, the pane being removed is hidden. - -\wxheading{See also} - -\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp -\helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit}, \helpref{wxSplitterWindow::OnUnsplit}{wxsplitterwindowonunsplit} - -\membersection{wxSplitterWindow::UpdateSize}\label{wxsplitterwindowupdatesize} - -\func{void}{UpdateSize}{\void} - -Causes any pending sizing of the sash and child panes to take place -immediately. - -Such resizing normally takes place in idle time, in order -to wait for layout to be completed. However, this can cause -unacceptable flicker as the panes are resized after the window has been -shown. To work around this, you can perform window layout (for -example by sending a size event to the parent window), and then -call this function, before showing the top-level window. - diff --git a/docs/latex/wx/srchctrl.tex b/docs/latex/wx/srchctrl.tex deleted file mode 100644 index a43e76a982..0000000000 --- a/docs/latex/wx/srchctrl.tex +++ /dev/null @@ -1,161 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxSearchCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxSearchCtrl}}\label{wxsearchctrl} - -A search control is a composite control with a search button, a text -control, and a cancel button. - -\wxheading{Derived from} - -\helpref{wxTextCtrl}{wxtextctrl}\\ -streambuf\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/srchctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the event wxEVT\_COMMAND\_TEXT\_ENTER (otherwise pressing Enter key -is either processed internally by the control or used for navigation between -dialog controls).} -\twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receive -wxEVT\_CHAR events for TAB pressed - normally, TAB is used for passing to the -next control in a dialog instead. For the control created with this style, -you can still use Ctrl-Enter to pass to the next control from the keyboard.} -\twocolitem{\windowstyle{wxTE\_NOHIDESEL}}{By default, the Windows text control -doesn't show the selection when it doesn't have focus - use this style to force -it to always show it. It doesn't do anything under other platforms.} -\twocolitem{\windowstyle{wxTE\_LEFT}}{The text in the control will be left-justified (default).} -\twocolitem{\windowstyle{wxTE\_CENTRE}}{The text in the control will be centered (currently wxMSW and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_RIGHT}}{The text in the control will be right-justified (currently wxMSW and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_CAPITALIZE}}{On PocketPC and Smartphone, causes the first letter to be capitalized.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles} and \helpref{wxSearchCtrl::wxSearchCtrl}{wxsearchctrlctor}. - -\wxheading{Event handling} - -To process input from a search control, use these event handler macros to direct input to member -functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument. To retrieve actual search -queries, use EVT\_TEXT and EVT\_TEXT\_ENTER events, just as you would with \helpref{wxTextCtrl}{wxtextctrl}. - -\twocolwidtha{9cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SEARCHCTRL\_SEARCH\_BTN(id, func)}}{Respond to a wxEVT\_SEARCHCTRL\_SEARCH\_BTN event, -generated when the search button is clicked. Note that this does not initiate a search.} -\twocolitem{{\bf EVT\_SEARCHCTRL\_CANCEL\_BTN(id, func)}}{Respond to a wxEVT\_SEARCHCTRL\_CANCEL\_BTN event, -generated when the cancel button is clicked.} -\end{twocollist}% - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSearchCtrl::wxSearchCtrl}\label{wxsearchctrlctor} - -\func{}{wxSearchCtrl}{\void} - -Default constructor. - -\func{}{wxSearchCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxSearchCtrlNameStr}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{value}{Default text value.} - -\docparam{pos}{Text control position.} - -\docparam{size}{Text control size.} - -\docparam{style}{Window style. See \helpref{wxSearchCtrl}{wxsearchctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxTextCtrl::Create}{wxtextctrlcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxSearchCtrl::\destruct{wxSearchCtrl}}\label{wxsearchctrldtor} - -\func{}{\destruct{wxSearchCtrl}}{\void} - -Destructor, destroying the search control. - - -\membersection{wxSearchCtrl::SetMenu}\label{wxsearchctrlsetmenu} - -\func{virtual void}{SetMenu}{\param{wxMenu* }{ menu}} - -Sets the search control's menu object. If there is already a menu associated with -the search control it is deleted. - - -\wxheading{Parameters} - -\docparam{menu}{Menu to attach to the search control.} - -\membersection{wxSearchCtrl::GetMenu}\label{wxsearchctrlgetmenu} - -\func{virtual wxMenu*}{GetMenu}{\void} - -Returns a pointer to the search control's menu object or NULL if there is no -menu attached. - - -\membersection{wxSearchCtrl::ShowSearchButton}\label{wxsearchctrlshowsearchbutton} - -\func{virtual void}{ShowSearchButton}{\param{bool }{ show}} - -Sets the search button visibility value on the search control. -If there is a menu attached, the search button will be visible regardless of the search -button visibility value. - -This has no effect in Mac OS X v10.3 - - -\membersection{wxSearchCtrl::IsSearchButtonVisible}\label{wxsearchctrlissearchbuttonvisible} - -\func{virtual bool}{IsSearchButtonVisible}{\void} - -Returns the search button visibility value. -If there is a menu attached, the search button will be visible regardless of the search -button visibility value. - -This always returns false in Mac OS X v10.3 - - -\membersection{wxSearchCtrl::ShowCancelButton}\label{wxsearchctrlshowcancelbutton} - -\func{virtual void}{ShowCancelButton}{\param{bool }{ show}} - -Shows or hides the cancel button. - - -\membersection{wxSearchCtrl::IsCancelButtonVisible}\label{wxsearchctrliscancelbuttonvisible} - -\func{virtual bool}{IsCancelButtonVisible}{\void} - -Indicates whether the cancel button is visible. diff --git a/docs/latex/wx/stackframe.tex b/docs/latex/wx/stackframe.tex deleted file mode 100644 index 5472a6fddb..0000000000 --- a/docs/latex/wx/stackframe.tex +++ /dev/null @@ -1,130 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: stackframe.tex -%% Purpose: wxStackFrame documentation -%% Author: Vadim Zeitlin -%% Created: 2005-01-19 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStackFrame}}\label{wxstackframe} - - -wxStackFrame represents a single stack frame, or a single function in the call -stack, and is used exclusively together with -\helpref{wxStackWalker}{wxstackwalker}, see there for a more detailed -discussion. - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/stackwalk.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -Only available if \texttt{wxUSE\_STACKWALKER} is $1$, currently only -implemented for Win32 and Unix versions using recent version of GNU libc. - -\wxheading{See also} - -\helpref{wxStackWalker}{wxstackwalker} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStackFrame::GetAddress}\label{wxstackframegetaddress} - -\constfunc{void*}{GetAddress}{\void} - -Return the address of this frame. - - -\membersection{wxStackFrame::GetFileName}\label{wxstackframegetfilename} - -\constfunc{wxString}{GetFileName}{\void} - -Return the name of the file containing this frame, empty if -unavailable (typically because debug info is missing). - -Use \helpref{HasSourceLocation}{wxstackframehassourcelocation} to check whether -the file name is available. - - -\membersection{wxStackFrame::GetLevel}\label{wxstackframegetlevel} - -\constfunc{size\_t}{GetLevel}{\void} - -Get the level of this frame (deepest/innermost one is $0$). - - -\membersection{wxStackFrame::GetLine}\label{wxstackframegetline} - -\constfunc{size\_t}{GetLine}{\void} - -Return the line number of this frame, $0$ if unavailable. - -\wxheading{See also} - -\helpref{GetFileName}{wxstackframegetfilename} - - -\membersection{wxStackFrame::GetModule}\label{wxstackframegetmodule} - -\constfunc{wxString}{GetModule}{\void} - -Get the module this function belongs to (empty if not available). - - -\membersection{wxStackFrame::GetName}\label{wxstackframegetname} - -\constfunc{wxString}{GetName}{\void} - -Return the unmangled (if possible) name of the function containing this -frame. - - -\membersection{wxStackFrame::GetOffset}\label{wxstackframegetoffset} - -\constfunc{size\_t}{GetOffset}{\void} - -Return the return address of this frame. - - -\membersection{wxStackFrame::GetParam}\label{wxstackframegetparam} - -\constfunc{bool}{GetParam}{\param{size\_t }{n}, \param{wxString * }{type}, \param{wxString * }{name}, \param{wxString * }{value}} - -Get the name, type and value (in text form) of the given parameter. -Any pointer may be \texttt{NULL} if you're not interested in the corresponding -value. - -Return \true if at least some values could be retrieved. - -This function currently is only implemented under Win32 and requires a PDB -file. - - -\membersection{wxStackFrame::GetParamCount}\label{wxstackframegetparamcount} - -\constfunc{size\_t}{GetParamCount}{\void} - -Return the number of parameters of this function (may return $0$ if we -can't retrieve the parameters info even although the function does have -parameters). - - -\membersection{wxStackFrame::HasSourceLocation}\label{wxstackframehassourcelocation} - -\constfunc{bool}{HasSourceLocation}{\void} - -Return \true if we have the file name and line number for this frame. - - diff --git a/docs/latex/wx/stackwalker.tex b/docs/latex/wx/stackwalker.tex deleted file mode 100644 index 90f7eb5c12..0000000000 --- a/docs/latex/wx/stackwalker.tex +++ /dev/null @@ -1,108 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: stackwalker.tex -%% Purpose: wxStackWalker documentation -%% Author: Vadim Zeitlin -%% Created: 2005-01-19 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStackWalker}}\label{wxstackwalker} - -wxStackWalker allows an application to enumerate, or walk, the stack frames (the function callstack). -It is mostly useful in only two situations: -inside \helpref{wxApp::OnFatalException}{wxapponfatalexception} function to -programmatically get the location of the crash and, in debug builds, in -\helpref{wxApp::OnAssertFailure}{wxapponassertfailure} to report the caller of the failed -assert. - -wxStackWalker works by repeatedly calling -the \helpref{OnStackFrame}{wxstackwalkeronstackframe} method for each frame in the -stack, so to use it you must derive your own class from it and override this -method. - -This class will not return anything except raw stack frame addresses if the -debug information is not available. Under Win32 this means that the PDB file -matching the program being executed should be present. Note that if you use -Microsoft Visual C++ compiler, you can create PDB files even for the programs -built in release mode and it doesn't affect the program size (at least if you -don't forget to add \texttt{/opt:ref} option which is suppressed by using -\texttt{/debug} linker option by default but should be always enabled for -release builds). Under Unix, you need to compile your program with debugging -information (usually using \texttt{-g} compiler and linker options) to get the -file and line numbers information, however function names should be available -even without it. Of course, all this is only true if you build using a recent -enough version of GNU libc which provides the \texttt{backtrace()} function -needed to walk the stack. - -\helpref{debugging overview}{debuggingoverview} for how to make it available. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/stackwalk.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -Only available if \texttt{wxUSE\_STACKWALKER} is $1$, currently only -implemented for Win32 and Unix versions using recent version of GNU libc. - -\wxheading{See also} - -\helpref{wxStackFrame}{wxstackframe} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStackWalker::wxStackWalker}\label{wxstackwalkerwxstackwalker} - -\func{}{wxStackWalker}{\void} - -Constructor does nothing, use \helpref{Walk()}{wxstackwalkerwalk} to walk the -stack. - - -\membersection{wxStackWalker::\destruct{wxStackWalker}}\label{wxstackwalkerdtor} - -\func{}{\destruct{wxStackWalker}}{\void} - -Destructor does nothing neither but should be virtual as this class is used as -a base one. - - -\membersection{wxStackWalker::OnStackFrame}\label{wxstackwalkeronstackframe} - -\func{void}{OnStackFrame}{\param{const wxStackFrame\& }{frame}} - -This function must be overrided to process the given frame. - - -\membersection{wxStackWalker::Walk}\label{wxstackwalkerwalk} - -\func{void}{Walk}{\param{size\_t }{skip = 1}, \param{size\_t }{maxDepth = 200}} - -Enumerate stack frames from the current location, skipping the initial -number of them (this can be useful when Walk() is called from some known -location and you don't want to see the first few frames anyhow; also -notice that Walk() frame itself is not included if skip $\ge 1$). - -Up to \arg{maxDepth} frames are walked from the innermost to the outermost one. - - -\membersection{wxStackWalker::WalkFromException}\label{wxstackwalkerwalkfromexception} - -\func{void}{WalkFromException}{\param{size\_t }{maxDepth = 200}} - -Enumerate stack frames from the location of uncaught exception. -This method can only be called from -\helpref{wxApp::OnFatalException()}{wxapponfatalexception}. - -Up to \arg{maxDepth} frames are walked from the innermost to the outermost one. - diff --git a/docs/latex/wx/statbmp.tex b/docs/latex/wx/statbmp.tex deleted file mode 100644 index 81ef5abc1f..0000000000 --- a/docs/latex/wx/statbmp.tex +++ /dev/null @@ -1,138 +0,0 @@ -\section{\class{wxStaticBitmap}}\label{wxstaticbitmap} - -A static bitmap control displays a bitmap. It is meant for display of the -small icons in the dialog boxes and is not meant to be a general purpose image -display control. In particular, under Windows 9x the size of bitmap is limited -to $64*64$ pixels and thus you should use your own control if you want to -display larger images portably. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/statbmp.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -There are no special styles for this control. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticBitmap}{wxstaticbitmap}, \helpref{wxStaticBox}{wxstaticbox} - -\wxheading{Remarks} - -The bitmap to be displayed should have a small number of colours, such as 16, to avoid -palette problems. - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStaticBitmap::wxStaticBitmap}\label{wxstaticbitmapconstr} - -\func{}{wxStaticBitmap}{\void} - -Default constructor. - -\func{}{wxStaticBitmap}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}} - -Constructor, creating and showing a static bitmap control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{label}{Bitmap label.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Window style. See \helpref{wxStaticBitmap}{wxstaticbitmap}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticBitmap::Create}{wxstaticbitmapcreate} - - -\membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}} - -Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}. - - -\membersection{wxStaticBitmap::GetBitmap}\label{wxstaticbitmapgetbitmap} - -\constfunc{wxBitmap}{GetBitmap}{\void} - -Returns the bitmap currently used in the control. Notice that this method can -be called even if \helpref{SetIcon}{wxstaticbitmapseticon} had been used. - -\wxheading{See also} - -\helpref{wxStaticBitmap::SetBitmap}{wxstaticbitmapsetbitmap} - - -\membersection{wxStaticBitmap::GetIcon}\label{wxstaticbitmapgeticon} - -\constfunc{wxIcon}{GetIcon}{\void} - -Returns the icon currently used in the control. Notice that this method can -only be called if \helpref{SetIcon}{wxstaticbitmapseticon} had been used: an icon -can't be retrieved from the control if a bitmap had been set (using -\helpref{SetBitmap}{wxstaticbitmapsetbitmap}). - -\wxheading{See also} - -\helpref{wxStaticBitmap::SetIcon}{wxstaticbitmapseticon} - - -\membersection{wxStaticBitmap::SetBitmap}\label{wxstaticbitmapsetbitmap} - -\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{ label}} - -Sets the bitmap label. - -\wxheading{Parameters} - -\docparam{label}{The new bitmap.} - -\wxheading{See also} - -\helpref{wxStaticBitmap::GetBitmap}{wxstaticbitmapgetbitmap} - - -\membersection{wxStaticBitmap::SetIcon}\label{wxstaticbitmapseticon} - -\func{virtual void}{SetIcon}{\param{const wxIcon\& }{ label}} - -Sets the label to the given icon. - -\wxheading{Parameters} - -\docparam{label}{The new icon.} - -\wxheading{See also} - -\helpref{wxStaticBitmap::GetIcon}{wxstaticbitmapgeticon} - diff --git a/docs/latex/wx/statbox.tex b/docs/latex/wx/statbox.tex deleted file mode 100644 index 5ab26f8a5a..0000000000 --- a/docs/latex/wx/statbox.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{\class{wxStaticBox}}\label{wxstaticbox} - -A static box is a rectangle drawn around other panel items to denote -a logical grouping of items. - -Please note that a static box should {\bf not} be used as the parent for the -controls it contains, instead they should be siblings of each other. Although -using a static box as a parent might work in some versions of wxWidgets, it -results in a crash under, for example, wxGTK. - -Also, please note that because of this, the order in which you create new -controls is important. Create your wxStaticBox control {\bf before} any -siblings that are to appear inside the wxStaticBox in order to preserve the -correct Z-Order of controls. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/statbox.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -There are no special styles for this control. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticText}{wxstatictext} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticBox::wxStaticBox}\label{wxstaticboxctor} - -\func{}{wxStaticBox}{\void} - -Default constructor. - -\func{}{wxStaticBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBox"}} - -Constructor, creating and showing a static box. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{label}{Text to be displayed in the static box, the empty string for no label.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Checkbox size. If the size (-1, -1) is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxStaticBox}{wxstaticbox}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticBox::Create}{wxstaticboxcreate} - -\membersection{wxStaticBox::\destruct{wxStaticBox}}\label{wxstaticboxdtor} - -\func{void}{\destruct{wxStaticBox}}{\void} - -Destructor, destroying the group box. - -\membersection{wxStaticBox::Create}\label{wxstaticboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{label},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBox"}} - -Creates the static box for two-step construction. See \helpref{wxStaticBox::wxStaticBox}{wxstaticboxctor}\rtfsp -for further details. - - diff --git a/docs/latex/wx/statline.tex b/docs/latex/wx/statline.tex deleted file mode 100644 index 173bebe55b..0000000000 --- a/docs/latex/wx/statline.tex +++ /dev/null @@ -1,88 +0,0 @@ -\section{\class{wxStaticLine}}\label{wxstaticline} - -A static line is just a line which may be used in a dialog to separate the -groups of controls. The line may be only vertical or horizontal. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/statline.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxLI\_HORIZONTAL}}{Creates a horizontal line.} -\twocolitem{\windowstyle{wxLI\_VERTICAL}}{Creates a vertical line.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxStaticBox}{wxstaticbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStaticLine::wxStaticLine}\label{wxstaticlinector} - -\func{}{wxStaticLine}{\void} - -Default constructor. - -\func{}{wxStaticLine}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = wxLI\_HORIZONTAL}, \param{const wxString\& }{name = ``staticLine"}} - -Constructor, creating and showing a static line. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be NULL.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.} - -\docparam{size}{Size. Note that either the height or the width (depending on -whether the line if horizontal or vertical) is ignored.} - -\docparam{style}{Window style (either wxLI\_HORIZONTAL or wxLI\_VERTICAL).} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticLine::Create}{wxstaticlinecreate} - -\membersection{wxStaticLine::Create}\label{wxstaticlinecreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticLine"}} - -Creates the static line for two-step construction. See \helpref{wxStaticLine::wxStaticLine}{wxstaticlinector}\rtfsp -for further details. - -\membersection{wxStaticLine::IsVertical}\label{wxstaticlineisvertical} - -\constfunc{bool}{IsVertical}{\void} - -Returns true if the line is vertical, false if horizontal. - -\membersection{wxStaticLine::GetDefaultSize}\label{wxstaticlinegetdefaultsize} - -\func{int}{GetDefaultSize}{\void} - -This static function returns the size which will be given to the smaller -dimension of the static line, i.e. its height for a horizontal line or its -width for a vertical one. - diff --git a/docs/latex/wx/stattext.tex b/docs/latex/wx/stattext.tex deleted file mode 100644 index 00be03aa2c..0000000000 --- a/docs/latex/wx/stattext.tex +++ /dev/null @@ -1,200 +0,0 @@ -\section{\class{wxStaticText}}\label{wxstatictext} - -A static text control displays one or more lines of read-only text. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/stattext.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxALIGN\_LEFT}}{Align the text to the left} -\twocolitem{\windowstyle{wxALIGN\_RIGHT}}{Align the text to the right} -\twocolitem{\windowstyle{wxALIGN\_CENTRE}}{Center the text (horizontally)} -\twocolitem{\windowstyle{wxST\_NO\_AUTORESIZE}}{By default, the control will -adjust its size to exactly fit to the size of the text when -\helpref{SetLabel}{wxstatictextsetlabel} is called. If this style flag is -given, the control will not change its size (this style is especially useful -with controls which also have wxALIGN\_RIGHT or CENTER style because otherwise -they won't make sense any longer after a call to SetLabel)} -\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_START}}{If the text width exceeds the -control width, replace the beginning of the text with an ellipsis} -\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_MIDDLE}}{Same as above, but replace -the text in the middle of the control with an ellipsis} -\twocolitem{\windowstyle{wxST\_ELLIPSIZE\_END}}{Same as above, but replace the -end of the text with an ellipsis} -\twocolitem{\windowstyle{wxST\_MARKUP}}{Support markup in the label; see -\helpref{SetLabel}{wxstatictextsetlabel} for more information} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{See also} - -\helpref{wxStaticBitmap}{wxstaticbitmap}, \helpref{wxStaticBox}{wxstaticbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStaticText::wxStaticText}\label{wxstatictextconstr} - -\func{}{wxStaticText}{\void} - -Default constructor. - -\func{}{wxStaticText}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{label}{Text label.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size.} - -\docparam{style}{Window style. See \helpref{wxStaticText}{wxstatictext}.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxStaticText::Create}{wxstatictextcreate} - - -\membersection{wxStaticText::Create}\label{wxstatictextcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxString\& }{name = ``staticText"}} - -Creation function, for two-step construction. For details see \helpref{wxStaticText::wxStaticText}{wxstatictextconstr}. - - -\membersection{wxStaticText::GetLabel}\label{wxstatictextgetlabel} - -\constfunc{wxString}{GetLabel}{\void} - -Returns the contents of the control. - -Note that the returned string contains both the mnemonics (\texttt{\&} characters), -if any, and markup tags, if any. - -Use \helpref{wxStaticText::GetLabelText}{wxstatictextgetlabeltext} if only the -label text is needed. - - -\membersection{wxStaticText::GetLabelText}\label{wxstatictextgetlabeltext} - -\constfunc{wxString}{GetLabelText}{\void} - -\func{static wxString}{GetLabelText}{\param{const wxString\& }{label}} - -The first form returns the control's label without the mnemonics characters (if any) -and without the markup (if the control has \texttt{wxST\_MARKUP} style). - -The second (static) version returns the given \arg{label} string without the mnemonics -characters (if any) and without the markup. - - -\membersection{wxStaticText::SetLabel}\label{wxstatictextsetlabel} - -\func{virtual void}{SetLabel}{\param{const wxString\& }{ label}} - -Sets the static text label and updates the controls size to exactly fit the -label unless the control has wxST\_NO\_AUTORESIZE flag. - -This function allows to set decorated static label text on platforms which -support it (currently only GTK+ 2). For the other platforms, the markup is -ignored. - -The supported tags are: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{<b>}{bold text} -\twocolitem{<big>}{bigger text} -\twocolitem{<i>}{italic text} -\twocolitem{<s>}{strike-through text} -\twocolitem{<sub>}{subscript text} -\twocolitem{<sup>}{superscript text} -\twocolitem{<small>}{smaller text} -\twocolitem{<tt>}{monospaced text} -\twocolitem{<u>}{underlined text} -\twocolitem{<span>}{generic formatter tag; see \urlref{Pango Markup}{http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html} for more information.} -\end{twocollist} - -Note that the string must be well-formed (e.g. all tags must be correctly closed) -otherwise it can be not shown correctly or at all. - -Also note that you need to escape the following special characters: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\textbf{Special character}}{\textbf{Escape as}} -\twocolitem{\texttt{&}}{\texttt{&} or as \texttt{&&}} -\twocolitem{\texttt{'}}{\texttt{'}} -\twocolitem{\texttt{"}}{\texttt{"}} -\twocolitem{\texttt{<}}{\texttt{<}} -\twocolitem{\texttt{>}}{\texttt{>}} -\end{twocollist} - -The non-escaped ampersand \texttt{&} characters are interpreted as -mnemonics; see \helpref{wxControl::SetLabel}{wxcontrolsetlabel}. - - -Example: - -%% TEX NOTE: in the following block we need to write the (ugly) &&amp; -%% string in order to force Tex2rtf to show the && string -\begin{verbatim} - // this will set the wxStaticText to show the "Hello world!" string - // with the "Hello" world in bold on platforms which support markup - pStaticText->SetLabelWithMarkup(wxT("<b>Hello</b> world!")); - - // this will make wxStaticText show the string: - // - // Specials: & ' " < >" - // - // with "Specials" in smaller size font if markup is supported - pStaticText->SetLabelWithMarkup( - wxT("<small>Specials</small>: &amp; &apos; &quot;; &lt; &gt;")); -\end{verbatim} - -\wxheading{Parameters} - -\docparam{label}{The new label to set. It may contain newline characters and the markup tags described above.} - - - -\membersection{wxStaticText::Wrap}\label{wxstatictextwrap} - -\func{void}{Wrap}{\param{int }{width}} - -This functions wraps the controls label so that each of its lines becomes at -most \arg{width} pixels wide if possible (the lines are broken at words -boundaries so it might not be the case if words are too long). If \arg{width} -is negative, no wrapping is done. - -\newsince{2.6.2} - diff --git a/docs/latex/wx/statusbr.tex b/docs/latex/wx/statusbr.tex deleted file mode 100644 index f191f0d251..0000000000 --- a/docs/latex/wx/statusbr.tex +++ /dev/null @@ -1,263 +0,0 @@ -\section{\class{wxStatusBar}}\label{wxstatusbar} - -A status bar is a narrow window that can be placed along the bottom of a frame to give -small amounts of status information. It can contain one or more fields, one or more of which can -be variable length according to the size of the window. - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/statusbr.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxST\_SIZEGRIP}}{On Windows 95, displays a gripper at right-hand side of -the status bar.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Remarks} - -It is possible to create controls and other windows on the status bar. Position these windows -from an {\bf OnSize} event handler. - -\wxheading{See also} - -\helpref{wxFrame}{wxframe}, \helpref{Status bar sample}{samplestatbar} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStatusBar::wxStatusBar}\label{wxstatusbarctor} - -\func{}{wxStatusBar}{\void} - -Default constructor. - -\func{}{wxStatusBar}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY},\rtfsp -\param{long}{ style = wxST\_SIZEGRIP},\rtfsp -\param{const wxString\& }{name = ``statusBar"}} - -Constructor, creating the window. - -\wxheading{Parameters} - -\docparam{parent}{The window parent, usually a frame.} - -\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.} - -\docparam{style}{The window style. See \helpref{wxStatusBar}{wxstatusbar}.} - -\docparam{name}{The name of the window. This parameter is used to associate a name with the item, -allowing the application user to set Motif resource values for -individual windows.} - -\wxheading{See also} - -\helpref{wxStatusBar::Create}{wxstatusbarcreate} - -\membersection{wxStatusBar::\destruct{wxStatusBar}}\label{wxstatusbardtor} - -\func{void}{\destruct{wxStatusBar}}{\void} - -Destructor. - -\membersection{wxStatusBar::Create}\label{wxstatusbarcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY},\rtfsp -\param{long}{ style = wxST\_SIZEGRIP},\rtfsp -\param{const wxString\& }{name = ``statusBar"}} - -Creates the window, for two-step construction. - -See \helpref{wxStatusBar::wxStatusBar}{wxstatusbarctor} for details. - -\membersection{wxStatusBar::GetFieldRect}\label{wxstatusbargetfieldrect} - -\constfunc{virtual bool}{GetFieldRect}{\param{int}{ i}, \param{wxRect\&}{ rect}} - -Returns the size and position of a field's internal bounding rectangle. - -\wxheading{Parameters} - -\docparam{i}{The field in question.} - -\docparam{rect}{The rectangle values are placed in this variable.} - -\wxheading{Return value} - -true if the field index is valid, false otherwise. - -\wxheading{See also} - -\helpref{wxRect}{wxrect} - -\perlnote{In wxPerl this function returns a {\tt Wx::Rect} if the field - index is valid, {\tt undef} otherwise.} - -\membersection{wxStatusBar::GetFieldsCount}\label{wxstatusbargetfieldscount} - -\constfunc{int}{GetFieldsCount}{\void} - -Returns the number of fields in the status bar. - -\membersection{wxStatusBar::GetStatusText}\label{wxstatusbargetstatustext} - -\constfunc{virtual wxString}{GetStatusText}{\param{int}{ i = 0}} - -Returns the string associated with a status bar field. - -\wxheading{Parameters} - -\docparam{i}{The number of the status field to retrieve, starting from zero.} - -\wxheading{Return value} - -The status field string if the field is valid, otherwise the empty string. - -\wxheading{See also} - -\helpref{wxStatusBar::SetStatusText}{wxstatusbarsetstatustext} - -\membersection{wxStatusBar::PopStatusText}\label{wxstatusbarpopstatustext} - -\func{void}{PopStatusText}{\param{int}{ field = 0}} - -Sets the field text to the top of the stack, and pops the stack of saved -strings. - -\wxheading{See also} - -\helpref{wxStatusBar::PushStatusText}{wxstatusbarpushstatustext} - -\membersection{wxStatusBar::PushStatusText}\label{wxstatusbarpushstatustext} - -\func{void}{PushStatusText}{\param{const wxString\&}{ string}, \param{int}{ field = 0}} - -Saves the current field text in a per field stack, and sets the field text -to the string passed as argument. - -\membersection{wxStatusBar::SetFieldsCount}\label{wxstatusbarsetfieldscount} - -\func{virtual void}{SetFieldsCount}{\param{int}{ number = 1}, \param{int* }{widths = NULL}} - -Sets the number of fields, and optionally the field widths. - -\pythonnote{Only the first parameter is accepted. Use SetStatusWidths -to set the widths of the fields.} - -\perlnote{In wxPerl this function accepts only the {\tt n} parameter. -Use SetStatusWidths to set the field widths.} - -\wxheading{Parameters} - -\docparam{number}{The number of fields.} - -\docparam{widths}{An array of {\it n} integers interpreted in the same way as -in \helpref{SetStatusWidths}{wxstatusbarsetstatuswidths}} - -\membersection{wxStatusBar::SetMinHeight}\label{wxstatusbarsetminheight} - -\func{void}{SetMinHeight}{\param{int}{ height}} - -Sets the minimal possible height for the status bar. The real height may be -bigger than the height specified here depending on the size of the font used by -the status bar. - -\membersection{wxStatusBar::SetStatusText}\label{wxstatusbarsetstatustext} - -\func{virtual void}{SetStatusText}{\param{const wxString\& }{text}, \param{int}{ i = 0}} - -Sets the text for one field. - -\wxheading{Parameters} - -\docparam{text}{The text to be set. Use an empty string (``") to clear the field.} - -\docparam{i}{The field to set, starting from zero.} - -\wxheading{See also} - -\helpref{wxStatusBar::GetStatusText}{wxstatusbargetstatustext}, \helpref{wxFrame::SetStatusText}{wxframesetstatustext} - -\membersection{wxStatusBar::SetStatusWidths}\label{wxstatusbarsetstatuswidths} - -\func{virtual void}{SetStatusWidths}{\param{int}{ n}, \param{int *}{widths}} - -Sets the widths of the fields in the status line. There are two types of -fields: fixed widths one and variable width fields. For the fixed width fields -you should specify their (constant) width in pixels. For the variable width -fields, specify a negative number which indicates how the field should expand: -the space left for all variable width fields is divided between them according -to the absolute value of this number. A variable width field with width of $-2$ -gets twice as much of it as a field with width $-1$ and so on. - -For example, to create one fixed width field of width $100$ in the right part of -the status bar and two more fields which get $66$\% and $33$\% of the remaining -space correspondingly, you should use an array containing $-2$, $-1$ and $100$. - -\wxheading{Parameters} - -\docparam{n}{The number of fields in the status bar. Must be equal to the -number passed to \helpref{SetFieldsCount}{wxstatusbarsetfieldscount} the last -time it was called.} - -\docparam{widths}{Contains an array of {\it n} integers, each of which is -either an absolute status field width in pixels if positive or indicates a -variable width field if negative.} - -\wxheading{Remarks} - -The widths of the variable fields are calculated from the total width of all fields, -minus the sum of widths of the non-variable fields, divided by the number of -variable fields. - -\wxheading{See also} - -\helpref{wxStatusBar::SetFieldsCount}{wxstatusbarsetfieldscount}, \helpref{wxFrame::SetStatusWidths}{wxframesetstatuswidths} - -\pythonnote{Only a single parameter is required, a Python list of -integers.} - -\perlnote{In wxPerl this method takes as parameters the field widths.} - -\membersection{wxStatusBar::SetStatusStyles}\label{wxstatusbarsetstatusstyles} - -\func{virtual void}{SetStatusStyles}{\param{int}{ n}, \param{int *}{styles}} - -Sets the styles of the fields in the status line which can make fields appear flat -or raised instead of the standard sunken 3D border. - -\wxheading{Parameters} - -\docparam{n}{The number of fields in the status bar. Must be equal to the -number passed to \helpref{SetFieldsCount}{wxstatusbarsetfieldscount} the last -time it was called.} - -\docparam{styles}{Contains an array of {\it n} integers with the styles for each field. There -are three possible styles: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxSB\_NORMAL}}{(default) The field appears sunken with a standard 3D border.} -\twocolitem{\windowstyle{wxSB\_FLAT}}{No border is painted around the field so that it appears flat.} -\twocolitem{\windowstyle{wxSB\_RAISED}}{A raised 3D border is painted around the field.} -\end{twocollist} -} - - diff --git a/docs/latex/wx/stdbtnsz.tex b/docs/latex/wx/stdbtnsz.tex deleted file mode 100644 index f663a0594d..0000000000 --- a/docs/latex/wx/stdbtnsz.tex +++ /dev/null @@ -1,86 +0,0 @@ -\section{\class{wxStdDialogButtonSizer}}\label{wxstddialogbuttonsizer} - -This class creates button layouts which conform to the standard button spacing and ordering defined by the platform -or toolkit's user interface guidelines (if such things exist). By using this class, you can ensure that all your -standard dialogs look correct on all major platforms. Currently it conforms to the Windows, GTK+ and Mac OS X -human interface guidelines. - -When there aren't interface guidelines defined for a particular platform or toolkit, wxStdDialogButtonSizer reverts -to the Windows implementation. - -To use this class, first add buttons to the sizer by calling AddButton (or SetAffirmativeButton, SetNegativeButton, -or SetCancelButton) and then call Realize in order to create the actual button layout used. Other than these special -operations, this sizer works like any other sizer. - -If you add a button with wxID\_SAVE, on Mac OS X the button will be renamed to "Save" and -the wxID\_NO button will be renamed to "Don't Save" in accordance with the Mac OS X Human Interface Guidelines. - -\wxheading{Derived from} - -\helpref{wxBoxSizer}{wxboxsizer}\\ -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sizer.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview}, \helpref{wxDialog::CreateButtonSizer}{wxdialogcreatebuttonsizer} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStdDialogButtonSizer::wxStdDialogButtonSizer}\label{wxstddialogbuttonsizerctor} - -\func{}{wxStdDialogButtonSizer}{\void} - -Constructor for a wxStdDialogButtonSizer. - -\membersection{wxStdDialogButtonSizer::AddButton}\label{wxstddialogbuttonsizeraddbutton} - -\func{void}{AddButton}{\param{wxButton* }{button}} - -Adds a button to the wxStdDialogButtonSizer. The button must have one of the following identifiers: - -\begin{itemize}\itemsep=0pt -\item wxID\_OK -\item wxID\_YES -\item wxID\_SAVE -\item wxID\_APPLY -\item wxID\_CLOSE -\item wxID\_NO -\item wxID\_CANCEL -\item wxID\_HELP -\item wxID\_CONTEXT\_HELP -\end{itemize} - -\membersection{wxStdDialogButtonSizer::Realize}\label{wxstddialogbuttonsizerrealize} - -\func{void}{Realize}{\void} - -Rearranges the buttons and applies proper spacing between buttons to make them match the platform or toolkit's interface guidelines. - -\membersection{wxStdDialogButtonSizer::SetAffirmativeButton}\label{wxstddialogbuttonsizersetaffirmativebutton} - -\func{void}{SetAffirmativeButton}{\param{wxButton* }{button}} - -Sets the affirmative button for the sizer. This allows you to use identifiers other than the standard identifiers outlined above. - -\membersection{wxStdDialogButtonSizer::SetCancelButton}\label{wxstddialogbuttonsizersetcancelbutton} - -\func{void}{SetCancelButton}{\param{wxButton* }{button}} - -Sets the cancel button for the sizer. This allows you to use identifiers other than the standard identifiers outlined above. - -\membersection{wxStdDialogButtonSizer::SetNegativeButton}\label{wxstddialogbuttonsizersetnegativebutton} - -\func{void}{SetNegativeButton}{\param{wxButton* }{button}} - -Sets the negative button for the sizer. This allows you to use identifiers other than the standard identifiers outlined above. - diff --git a/docs/latex/wx/stdevtid.tex b/docs/latex/wx/stdevtid.tex deleted file mode 100644 index 5e288682df..0000000000 --- a/docs/latex/wx/stdevtid.tex +++ /dev/null @@ -1,140 +0,0 @@ -\section{Standard event identifiers}\label{stdevtid} - -wxWidgets defines a special identifier value {\tt wxID\_ANY} which is used in -the following two situations: - -\begin{itemize} -\item when creating a new window you may specify {\tt wxID\_ANY} to let -wxWidgets assign an unused identifier to it automatically -\item when installing an event handler using either the event table -macros or \helpref{wxEvtHandler::Connect}{wxevthandlerconnect}, -you may use it to indicate that you want to handle the events -coming from any control, regardless of its identifier -\end{itemize} - -Another standard special identifier value is {\tt wxID\_NONE}: this is a value -which is not matched by any other id. - -wxWidgets also defines a few standard command identifiers which may be used by -the user code and also are sometimes used by wxWidgets itself. These reserved -identifiers are all in the range between {\tt wxID\_LOWEST} and -{\tt wxID\_HIGHEST} and, accordingly, the user code should avoid defining its -own constants in this range. - -\begin{verbatim} - wxID_LOWEST = 4999, - - wxID_OPEN, - wxID_CLOSE, - wxID_NEW, - wxID_SAVE, - wxID_SAVEAS, - wxID_REVERT, - wxID_EXIT, - wxID_UNDO, - wxID_REDO, - wxID_HELP, - wxID_PRINT, - wxID_PRINT_SETUP, - wxID_PAGE_SETUP, - wxID_PREVIEW, - wxID_ABOUT, - wxID_HELP_CONTENTS, - wxID_HELP_INDEX, - wxID_HELP_SEARCH, - wxID_HELP_COMMANDS, - wxID_HELP_PROCEDURES, - wxID_HELP_CONTEXT, - wxID_CLOSE_ALL, - - wxID_EDIT = 5030, - wxID_CUT, - wxID_COPY, - wxID_PASTE, - wxID_CLEAR, - wxID_FIND, - wxID_DUPLICATE, - wxID_SELECTALL, - wxID_DELETE, - wxID_REPLACE, - wxID_REPLACE_ALL, - wxID_PROPERTIES, - - wxID_VIEW_DETAILS, - wxID_VIEW_LARGEICONS, - wxID_VIEW_SMALLICONS, - wxID_VIEW_LIST, - wxID_VIEW_SORTDATE, - wxID_VIEW_SORTNAME, - wxID_VIEW_SORTSIZE, - wxID_VIEW_SORTTYPE, - - wxID_FILE = 5050, - wxID_FILE1, - wxID_FILE2, - wxID_FILE3, - wxID_FILE4, - wxID_FILE5, - wxID_FILE6, - wxID_FILE7, - wxID_FILE8, - wxID_FILE9, - - // Standard button IDs - wxID_OK = 5100, - wxID_CANCEL, - wxID_APPLY, - wxID_YES, - wxID_NO, - wxID_STATIC, - wxID_FORWARD, - wxID_BACKWARD, - wxID_DEFAULT, - wxID_MORE, - wxID_SETUP, - wxID_RESET, - wxID_CONTEXT_HELP, - wxID_YESTOALL, - wxID_NOTOALL, - wxID_ABORT, - wxID_RETRY, - wxID_IGNORE, - - wxID_UP, - wxID_DOWN, - wxID_HOME, - wxID_REFRESH, - wxID_STOP, - wxID_INDEX, - - wxID_BOLD, - wxID_ITALIC, - wxID_JUSTIFY_CENTER, - wxID_JUSTIFY_FILL, - wxID_JUSTIFY_RIGHT, - wxID_JUSTIFY_LEFT, - wxID_UNDERLINE, - wxID_INDENT, - wxID_UNINDENT, - wxID_ZOOM_100, - wxID_ZOOM_FIT, - wxID_ZOOM_IN, - wxID_ZOOM_OUT, - wxID_UNDELETE, - wxID_REVERT_TO_SAVED, - - // System menu IDs (used by wxUniv): - wxID_SYSTEM_MENU = 5200, - wxID_CLOSE_FRAME, - wxID_MOVE_FRAME, - wxID_RESIZE_FRAME, - wxID_MAXIMIZE_FRAME, - wxID_ICONIZE_FRAME, - wxID_RESTORE_FRAME, - - // IDs used by generic file dialog (13 consecutive starting from this value) - wxID_FILEDLGG = 5900, - - wxID_HIGHEST = 5999 -\end{verbatim} - diff --git a/docs/latex/wx/stdpaths.tex b/docs/latex/wx/stdpaths.tex deleted file mode 100644 index bd469503f2..0000000000 --- a/docs/latex/wx/stdpaths.tex +++ /dev/null @@ -1,303 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: stdpaths.tex -%% Purpose: wxStandardPaths documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2004-10-17 -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStandardPaths}}\label{wxstandardpaths} - -wxStandardPaths returns the standard locations in the file system and should be -used by applications to find their data files in a portable way. - -In the description of the methods below, the example return values are given -for the Unix, Windows and Mac OS X systems, however please note that these are -just the examples and the actual values may differ. For example, under Windows: -the system administrator may change the standard directories locations, i.e. -the Windows directory may be named \texttt{W:$\backslash$Win2003} instead of -the default \texttt{C:$\backslash$Windows}. - -The strings \texttt{\textit{appname}} and \texttt{\textit{username}} should be -replaced with the value returned by \helpref{wxApp::GetAppName}{wxappgetappname} -and the name of the currently logged in user, respectively. The string -\texttt{\textit{prefix}} is only used under Unix and is \texttt{/usr/local} by -default but may be changed using \helpref{SetInstallPrefix}{wxstandardpathssetinstallprefix}. - -The directories returned by the methods of this class may or may not exist. If -they don't exist, it's up to the caller to create them, wxStandardPaths doesn't -do it. - -Finally note that these functions only work with standardly packaged -applications. I.e. under Unix you should follow the standard installation -conventions and under Mac you should create your application bundle according -to the Apple guidelines. Again, this class doesn't help you to do it. - -This class is MT-safe: its methods may be called concurrently from different -threads without additional locking. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/stdpaths.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStandardPaths::Get}\label{wxstandardpathsget} - -\func{static wxStandardPathsBase\&}{Get}{\void} - -Returns reference to the unique global standard paths object. - - -\membersection{wxStandardPaths::GetConfigDir}\label{wxstandardpathsgetconfigdir} - -\constfunc{wxString}{GetConfigDir}{\void} - -Return the directory containing the system config files. - -Example return values: -\begin{itemize} - \item Unix: \texttt{/etc} - \item Windows: \texttt{C:$\backslash$Documents and Settings$\backslash$All Users$\backslash$Application Data} - \item Mac: \texttt{/Library/Preferences} -\end{itemize} - -\wxheading{See also} - -\helpref{wxFileConfig}{wxfileconfig} - - -\membersection{wxStandardPaths::GetDataDir}\label{wxstandardpathsgetdatadir} - -\constfunc{wxString}{GetDataDir}{\void} - -Return the location of the applications global, i.e. not user-specific, -data files. - -Example return values: -\begin{itemize} - \item Unix: \texttt{\textit{prefix}/share/\textit{appname}} - \item Windows: the directory where the executable file is located - \item Mac: \texttt{\textit{appname}.app/Contents/SharedSupport} bundle subdirectory -\end{itemize} - -\wxheading{See also} - -\helpref{GetLocalDataDir}{wxstandardpathsgetlocaldatadir} - - -\membersection{wxStandardPaths::GetDocumentsDir}\label{wxstandardpathsgetdocumentsdir} - -\constfunc{wxString}{GetDocumentsDir}{\void} - -Return the directory containing the current user's documents. - -Example return values: -\begin{itemize} - \item Unix: \tt{~} (the home directory) - \item Windows: \texttt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Documents} - \item Mac: \texttt{~/Documents} -\end{itemize} - -\newsince{2.7.0} - - -\membersection{wxStandardPaths::GetExecutablePath}\label{wxstandardpathsgetexecutablepath} - -\constfunc{wxString}{GetExecutablePath}{\void} - -Return the directory and the filename for the current executable. - -Example return values: -\begin{itemize} - \item Unix: \texttt{/usr/local/bin/exename} - \item Windows: \texttt{C:$\backslash$Programs$\backslash$AppFolder$\backslash$exename.exe} - \item Mac: \texttt{/Programs/exename} -\end{itemize} - - - -\membersection{wxStandardPaths::GetInstallPrefix}\label{wxstandardpathsgetinstallprefix} - -\constfunc{wxString}{GetInstallPrefix}{\void} - -\textbf{Note: } This function is only available under Unix. - -Return the program installation prefix, e.g. \texttt{/usr}, \texttt{/opt} or -\texttt{/home/zeitlin}. - -If the prefix had been previously by -\helpref{SetInstallPrefix}{wxstandardpathssetinstallprefix}, returns that -value, otherwise tries to determine it automatically (Linux only right -now) and finally returns the default \texttt{/usr/local} value if it failed. - - -\membersection{wxStandardPaths::GetLocalDataDir}\label{wxstandardpathsgetlocaldatadir} - -\constfunc{wxString}{GetLocalDataDir}{\void} - -Return the location for application data files which are host-specific and -can't, or shouldn't, be shared with the other machines. - -This is the same as \helpref{GetDataDir()}{wxstandardpathsgetdatadir} except -under Unix where it returns \texttt{/etc/\textit{appname}}. - - -\membersection{wxStandardPaths::GetLocalizedResourcesDir}\label{wxstandardpathsgetlocalizedresourcesdir} - -\constfunc{wxString}{GetLocalizedResourcesDir}{\param{const wxString\&}{ lang}, \param{ResourceCat}{ category = ResourceCat\_None}} - -Return the localized resources directory containing the resource files of the -specified category for the given language. - -In general this is just the same as \arg{lang} subdirectory of -\helpref{GetResourcesDir()}{wxstandardpathsgetresourcesdir} (or -\texttt{\arg{lang}.lproj} under Mac OS X) but is something quite -different for message catalog category under Unix where it returns the standard -\texttt{\textit{prefix}/share/locale/\arg{lang}/LC\_MESSAGES} directory. - -\newsince{2.7.0} - - -\membersection{wxStandardPaths::GetPluginsDir}\label{wxstandardpathsgetpluginsdir} - -\constfunc{wxString}{GetPluginsDir}{\void} - -Return the directory where the loadable modules (plugins) live. - -Example return values: -\begin{itemize} - \item Unix: \texttt{\textit{prefix}/lib/\textit{appname}} - \item Windows: the directory of the executable file - \item Mac: \texttt{\textit{appname}.app/Contents/PlugIns} bundle subdirectory -\end{itemize} - -\wxheading{See also} - -\helpref{wxDynamicLibrary}{wxdynamiclibrary} - - -\membersection{wxStandardPaths::GetResourcesDir}\label{wxstandardpathsgetresourcesdir} - -\constfunc{wxString}{GetResourcesDir}{\void} - -Return the directory where the application resource files are located. The -resources are the auxiliary data files needed for the application to run and -include, for example, image and sound files it might use. - -This function is the same as \helpref{GetDataDir}{wxstandardpathsgetdatadir} for -all platforms except Mac OS X. - -Example return values: -\begin{itemize} - \item Unix: \texttt{\textit{prefix}/share/\textit{appname}} - \item Windows: the directory where the executable file is located - \item Mac: \texttt{\textit{appname}.app/Contents/Resources} bundle subdirectory -\end{itemize} - -\newsince{2.7.0} - - -\wxheading{See also} - -\helpref{GetLocalizedResourcesDir}{wxstandardpathsgetlocalizedresourcesdir} - -\membersection{wxStandardPaths::GetTempDir}\label{wxstandardpathsgettempdir} - -\constfunc{wxString}{GetTempDir}{\void} - -Return the directory for storing temporary files. To create unique temporary files, -it is best to use \helpref{wxFileName::CreateTempFileName}{wxfilenamecreatetempfilename} for correct behaviour when -multiple processes are attempting to create temporary files. - -\newsince{2.7.2} - -\membersection{wxStandardPaths::GetUserConfigDir}\label{wxstandardpathsgetuserconfigdir} - -\constfunc{wxString}{GetUserConfigDir}{\void} - -Return the directory for the user config files: -\begin{itemize} - \item Unix: \tt{~} (the home directory) - \item Windows: \tt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Application Data} - \item Mac: \tt{~/Library/Preferences} -\end{itemize} - -Only use this method if you have a single configuration file to put in this -directory, otherwise \helpref{GetUserDataDir()}{wxstandardpathsgetuserdatadir} is -more appropriate. - - -\membersection{wxStandardPaths::GetUserDataDir}\label{wxstandardpathsgetuserdatadir} - -\constfunc{wxString}{GetUserDataDir}{\void} - -Return the directory for the user-dependent application data files: -\begin{itemize} - \item Unix: \tt{~/.\textit{appname}} - \item Windows: \tt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Application Data$\backslash$\textit{appname}} - \item Mac: \tt{~/Library/Application Support/\textit{appname}} -\end{itemize} - - -\membersection{wxStandardPaths::GetUserLocalDataDir}\label{wxstandardpathsgetuserlocaldatadir} - -\constfunc{wxString}{GetUserLocalDataDir}{\void} - -Return the directory for user data files which shouldn't be shared with -the other machines. - -This is the same as \helpref{GetUserDataDir()}{wxstandardpathsgetuserdatadir} for -all platforms except Windows where it returns -\texttt{C:$\backslash$Documents and Settings$\backslash$\textit{username}$\backslash$Local Settings$\backslash$Application Data$\backslash$\textit{appname}} - - -\membersection{wxStandardPaths::SetInstallPrefix}\label{wxstandardpathssetinstallprefix} - -\func{void}{SetInstallPrefix}{\param{const wxString\& }{prefix}} - -\textbf{Note:} This function is only available under Unix. - -Lets wxStandardPaths know about the real program installation prefix on a Unix -system. By default, the value returned by -\helpref{GetInstallPrefix}{wxstandardpathsgetinstallprefix} is used. - -Although under Linux systems the program prefix may usually be determined -automatically, portable programs should call this function. Usually the prefix -is set during program configuration if using GNU autotools and so it is enough -to pass its value defined in \texttt{config.h} to this function. - - -\membersection{wxStandardPaths::UseAppInfo}\label{wxstandardpathsuseappinfo} - -\func{void}{UseAppInfo}{\param{int }{info}} - -Controls what application information is used when constructing paths that -should be unique to this program, such as the application data directory, the -plugins directory on Unix, etc. - -Valid values for \arg{info} are \texttt{AppInfo\_None} and either one or -combination of \texttt{AppInfo\_AppName} and \texttt{AppInfo\_VendorName}. The -first one tells this class to not use neither application nor vendor name in -the paths. - -By default, only the application name is used under Unix systems but both -application and vendor names are used under Windows and Mac. - -\wxheading{See also} - -\helpref{wxApp::SetAppName}{wxappsetappname}, \helpref{wxApp::SetVendorName}{wxappsetvendorname} - diff --git a/docs/latex/wx/stockitems.tex b/docs/latex/wx/stockitems.tex deleted file mode 100644 index 6257e7df34..0000000000 --- a/docs/latex/wx/stockitems.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{Stock items}\label{stockitems} - -Window IDs for which stock buttons and menu items are created -(see \helpref{wxButton constructor}{wxbuttonctor} and -\helpref{wxMenuItem constructor}{wxmenuitemctor}): - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Stock ID}}{{\bf Stock label}} -\twocolitem{wxID\_ABOUT}{"\&About"} -\twocolitem{wxID\_ADD}{"Add"} -\twocolitem{wxID\_APPLY}{"\&Apply"} -\twocolitem{wxID\_BOLD}{"\&Bold"} -\twocolitem{wxID\_CANCEL}{"\&Cancel"} -\twocolitem{wxID\_CLEAR}{"\&Clear"} -\twocolitem{wxID\_CLOSE}{"\&Close"} -\twocolitem{wxID\_COPY}{"\&Copy"} -\twocolitem{wxID\_CUT}{"Cu\&t"} -\twocolitem{wxID\_DELETE}{"\&Delete"} -\twocolitem{wxID\_EDIT}{"\&Edit"} -\twocolitem{wxID\_FIND}{"\&Find"} -\twocolitem{wxID\_FILE}{"\&File"} -\twocolitem{wxID\_REPLACE}{"Find and rep\&lace"} -\twocolitem{wxID\_BACKWARD}{"\&Back"} -\twocolitem{wxID\_DOWN}{"\&Down"} -\twocolitem{wxID\_FORWARD}{"\&Forward"} -\twocolitem{wxID\_UP}{"\&Up"} -\twocolitem{wxID\_HELP}{"\&Help"} -\twocolitem{wxID\_HOME}{"\&Home"} -\twocolitem{wxID\_INDENT}{"Indent"} -\twocolitem{wxID\_INDEX}{"\&Index"} -\twocolitem{wxID\_ITALIC}{"\&Italic"} -\twocolitem{wxID\_JUSTIFY\_CENTER}{"Centered"} -\twocolitem{wxID\_JUSTIFY\_FILL}{"Justified"} -\twocolitem{wxID\_JUSTIFY\_LEFT}{"Align Left"} -\twocolitem{wxID\_JUSTIFY\_RIGHT}{"Align Right"} -\twocolitem{wxID\_NEW}{"\&New"} -\twocolitem{wxID\_NO}{"\&No"} -\twocolitem{wxID\_OK}{"\&OK"} -\twocolitem{wxID\_OPEN}{"\&Open"} -\twocolitem{wxID\_PASTE}{"\&Paste"} -\twocolitem{wxID\_PREFERENCES}{"\&Preferences"} -\twocolitem{wxID\_PRINT}{"\&Print"} -\twocolitem{wxID\_PREVIEW}{"Print previe\&w"} -\twocolitem{wxID\_PROPERTIES}{"\&Properties"} -\twocolitem{wxID\_EXIT}{"\&Quit"} -\twocolitem{wxID\_REDO}{"\&Redo"} -\twocolitem{wxID\_REFRESH}{"Refresh"} -\twocolitem{wxID\_REMOVE}{"Remove"} -\twocolitem{wxID\_REVERT\_TO\_SAVED}{"Revert to Saved"} -\twocolitem{wxID\_SAVE}{"\&Save"} -\twocolitem{wxID\_SAVEAS}{"Save \&As..."} -\twocolitem{wxID\_SELECTALL}{"Select all"} -\twocolitem{wxID\_STOP}{"\&Stop"} -\twocolitem{wxID\_UNDELETE}{"Undelete"} -\twocolitem{wxID\_UNDERLINE}{"\&Underline"} -\twocolitem{wxID\_UNDO}{"\&Undo"} -\twocolitem{wxID\_UNINDENT}{"\&Unindent"} -\twocolitem{wxID\_YES}{"\&Yes"} -\twocolitem{wxID\_ZOOM\_100}{"\&Actual Size"} -\twocolitem{wxID\_ZOOM\_FIT}{"Zoom to \&Fit"} -\twocolitem{wxID\_ZOOM\_IN}{"Zoom \&In"} -\twocolitem{wxID\_ZOOM\_OUT}{"Zoom \&Out"} -\end{twocollist} - - -Note that some of the IDs listed above have also a stock accelerator -and an help string associated. diff --git a/docs/latex/wx/stopwtch.tex b/docs/latex/wx/stopwtch.tex deleted file mode 100644 index 1f756a493f..0000000000 --- a/docs/latex/wx/stopwtch.tex +++ /dev/null @@ -1,68 +0,0 @@ -\section{\class{wxStopWatch}}\label{wxstopwatch} - -The wxStopWatch class allow you to measure time intervals. For example, you may -use it to measure the time elapsed by some function: - -\begin{verbatim} - wxStopWatch sw; - CallLongRunningFunction(); - wxLogMessage("The long running function took %ldms to execute", - sw.Time()); - sw.Pause(); - ... stopwatch is stopped now ... - sw.Resume(); - CallLongRunningFunction(); - wxLogMessage("And calling it twice took $ldms in all", sw.Time()); -\end{verbatim} - -\wxheading{Include files} - -<wx/stopwatch.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxTimer}{wxtimer} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStopWatch::wxStopWatch}\label{wxstopwatchctor} - -\func{}{wxStopWatch}{\void} - -Constructor. This starts the stop watch. - -\membersection{wxStopWatch::Pause}\label{wxstopwatchpause} - -\func{void}{Pause}{\void} - -Pauses the stop watch. Call \helpref{wxStopWatch::Resume}{wxstopwatchresume} to resume -time measuring again. - -If this method is called several times, {\tt Resume()} must be called the same -number of times to really resume the stop watch. You may, however, call -\helpref{Start}{wxstopwatchstart} to resume it unconditionally. - -\membersection{wxStopWatch::Resume}\label{wxstopwatchresume} - -\func{void}{Resume}{\void} - -Resumes the stop watch which had been paused with -\helpref{wxStopWatch::Pause}{wxstopwatchpause}. - -\membersection{wxStopWatch::Start}\label{wxstopwatchstart} - -\func{void}{Start}{\param{long}{ milliseconds = 0}} - -(Re)starts the stop watch with a given initial value. - -\membersection{wxStopWatch::Time}\label{wxstopwatchtime} - -\constfunc{long}{Time}{\void}\label{wxstopwatchtime} - -Returns the time in milliseconds since the start (or restart) or the last call of -\helpref{wxStopWatch::Pause}{wxstopwatchpause}. - diff --git a/docs/latex/wx/strcldat.tex b/docs/latex/wx/strcldat.tex deleted file mode 100644 index 9c8137aace..0000000000 --- a/docs/latex/wx/strcldat.tex +++ /dev/null @@ -1,43 +0,0 @@ -\section{\class{wxStringClientData}}\label{wxstringclientdata} - -Predefined client data class for holding a string. - -\wxheading{Derived from} - -\helpref{wxClientData}{wxclientdata} - -\wxheading{Include files} - -<wx/clntdata.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStringClientData::wxStringClientData}\label{wxstringclientdatawxstringclientdata} - -\func{}{wxStringClientData}{\void} - -Empty constructor. - -\func{}{wxStringClientData}{\param{const wxString\& }{data}} - -Create client data with string. - -\membersection{wxStringClientData::GetData}\label{wxstringclientdatagetdata} - -\constfunc{const wxString\&}{GetData}{\void} - -Get string client data. - -\membersection{wxStringClientData::SetData}\label{wxstringclientdatasetdata} - -\func{void}{SetData}{\param{const wxString\& }{data}} - -Set string client data. - diff --git a/docs/latex/wx/stream.tex b/docs/latex/wx/stream.tex deleted file mode 100644 index 420a2c04db..0000000000 --- a/docs/latex/wx/stream.tex +++ /dev/null @@ -1,341 +0,0 @@ -\section{\class{wxStreamBuffer}}\label{wxstreambuffer} - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBase}{wxstreambase} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStreamBuffer::wxStreamBuffer}\label{wxstreambufferctor} - -\func{}{wxStreamBuffer}{\param{wxStreamBase\&}{ stream}, \param{BufMode}{ mode}} - -Constructor, creates a new stream buffer using {\it stream} as a parent stream -and {\it mode} as the IO mode. {\it mode} can be: wxStreamBuffer::read, -wxStreamBuffer::write, wxStreamBuffer::read\_write. - -One stream can have many stream buffers but only one is used internally to -pass IO call (e.g. wxInputStream::Read() -> wxStreamBuffer::Read()), but you -can call directly wxStreamBuffer::Read without any problems. Note that -all errors and messages linked to the stream are stored in the stream, not -the stream buffers: - -\begin{verbatim} - streambuffer.Read(...); - streambuffer2.Read(...); /* This call erases previous error messages set by - ``streambuffer'' */ -\end{verbatim} - -\func{}{wxStreamBuffer}{\param{BufMode}{ mode}} - -Constructor, creates a new empty stream buffer which won't flush any data -to a stream. {\it mode} specifies the type of the buffer (read, write, read\_write). -This stream buffer has the advantage to be stream independent and to -work only on memory buffers but it is still compatible with the rest of the -wxStream classes. You can write, read to this special stream and it will -grow (if it is allowed by the user) its internal buffer. Briefly, it has all -functionality of a ``normal'' stream. - -\wxheading{Warning} - -The "read\_write" mode doesn't currently work for standalone stream buffers. - -\func{}{wxStreamBuffer}{\param{const wxStreamBuffer\&}{buffer}} - -Constructor. It initializes the stream buffer with the data of the specified -stream buffer. The new stream buffer has the same attributes, size, position -and they share the same buffer. This will cause problems if the stream to -which the stream buffer belong is destroyed and the newly cloned stream -buffer continues to be used, trying to call functions in the (destroyed) -stream. It is advised to use this feature only in very local area of the -program. - -\wxheading{See also} - -\helpref{wxStreamBuffer:SetBufferIO}{wxstreambuffersetbufferio} - - -\membersection{wxStreamBuffer::\destruct{wxStreamBuffer}}\label{wxstreambufferdtor} - -\func{}{wxStreamBuffer}{\destruct{wxStreamBuffer}} - -Destructor. It finalizes all IO calls and frees all internal buffers if -necessary. - - -\membersection{wxStreamBuffer::FillBuffer}\label{wxstreambufferfillbuffer} - -\func{bool}{FillBuffer}{\void} - -Fill the IO buffer. - - -\membersection{wxStreamBuffer::Fixed}\label{wxstreambufferfixed} - -\func{void}{Fixed}{\param{bool}{ fixed}} - -Toggles the fixed flag. Usually this flag is toggled at the same time as -{\it flushable}. This flag allows (when it has the false value) or forbids -(when it has the true value) the stream buffer to resize dynamically the IO buffer. - -\wxheading{See also} - -\helpref{wxStreamBuffer::SetBufferIO}{wxstreambuffersetbufferio} - - -\membersection{wxStreamBuffer::Flushable}\label{wxstreambufferflushable} - -\func{void}{Flushable}{\param{bool}{ flushable}} - -Toggles the flushable flag. If {\it flushable} is disabled, no data are sent -to the parent stream. - - -\membersection{wxStreamBuffer::FlushBuffer}\label{wxstreambufferflushbuffer} - -\func{bool}{FlushBuffer}{\void} - -Flushes the IO buffer. - - -\membersection{wxStreamBuffer::GetBufferEnd}\label{wxstreambuffergetbufferend} - -\constfunc{void *}{GetBufferEnd}{\void} - -Returns a pointer on the end of the stream buffer. - - -\membersection{wxStreamBuffer::GetBufferPos}\label{wxstreambuffergetbufferpos} - -\constfunc{void *}{GetBufferPos}{\void} - -Returns a pointer on the current position of the stream buffer. - - -\membersection{wxStreamBuffer::GetBufferSize}\label{wxstreambuffergetbuffersize} - -\constfunc{size\_t}{GetBufferSize}{\void} - -Returns the size of the buffer. - - -\membersection{wxStreamBuffer::GetBufferStart}\label{wxstreambuffergetbufferstart} - -\constfunc{void *}{GetBufferStart}{\void} - -Returns a pointer on the start of the stream buffer. - - -\membersection{wxStreamBuffer::GetChar}\label{wxstreambuffergetchar} - -\func{char}{GetChar}{\void} - -Gets a single char from the stream buffer. It acts like the Read call. - -\wxheading{Problem} - -You aren't directly notified if an error occurred during the IO call. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Read}{wxstreambufferread} - - -\membersection{wxStreamBuffer::GetDataLeft}\label{wxstreambuffergetdataleft} - -\func{size\_t}{GetDataLeft}{\void} - -Returns the amount of available data in the buffer. - - -\membersection{wxStreamBuffer::GetIntPosition}\label{wxstreambuffergetintposition} - -\constfunc{off\_t}{GetIntPosition}{\void} - -Returns the current position (counted in bytes) in the stream buffer. - - -\membersection{wxStreamBuffer::GetLastAccess}\label{wxstreambuffergetlastaccess} - -\constfunc{size\_t}{GetLastAccess}{\void} - -Returns the amount of bytes read during the last IO call to the parent stream. - - -\membersection{wxStreamBuffer::PutChar}\label{wxstreambufferputchar} - -\func{void}{PutChar}{\param{char }{c}} - -Puts a single char to the stream buffer. - -\wxheading{Problem} - -You aren't directly notified if an error occurred during the IO call. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Read}{wxstreambufferwrite} - - -\membersection{wxStreamBuffer::Read}\label{wxstreambufferread} - -\func{size\_t}{Read}{\param{void *}{buffer}, \param{size\_t }{size}} - -Reads a block of the specified {\it size} and stores the data in {\it buffer}. -This function tries to read from the buffer first and if more data has been -requested, reads more data from the associated stream and updates the buffer -accordingly until all requested data is read. - -\wxheading{Return value} - -It returns the size of the data read. If the returned size is different of the specified -{\it size}, an error has occurred and should be tested using -\helpref{GetLastError}{wxstreambasegetlasterror}. - -\func{size\_t}{Read}{\param{wxStreamBuffer *}{buffer}} - -Copies data to {\it buffer}. The function returns when {\it buffer} is full or when there isn't -any more data in the current buffer. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Write}{wxstreambufferwrite} - - -\membersection{wxStreamBuffer::ResetBuffer}\label{wxstreambufferresetbuffer} - -\func{void}{ResetBuffer}{\void} - -Resets to the initial state variables concerning the buffer. - - -\membersection{wxStreamBuffer::Seek}\label{wxstreambufferseek} - -\func{off\_t}{Seek}{\param{off\_t }{pos}, \param{wxSeekMode }{mode}} - -Changes the current position. - -{\it mode} may be one of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxFromStart}}{The position is counted from the start of the stream.} -\twocolitem{{\bf wxFromCurrent}}{The position is counted from the current position of the stream.} -\twocolitem{{\bf wxFromEnd}}{The position is counted from the end of the stream.} -\end{twocollist} - -\wxheading{Return value} - -Upon successful completion, it returns the new offset as measured in bytes from -the beginning of the stream. Otherwise, it returns wxInvalidOffset. - - -\membersection{wxStreamBuffer::SetBufferIO}\label{wxstreambuffersetbufferio} - -\func{void}{SetBufferIO}{\param{char*}{ buffer\_start}, \param{char*}{ buffer\_end}} - -Specifies which pointers to use for stream buffering. You need to pass a pointer on the -start of the buffer end and another on the end. The object will use this buffer -to cache stream data. It may be used also as a source/destination buffer when -you create an empty stream buffer (See \helpref{wxStreamBuffer::wxStreamBuffer}{wxstreambufferctor}). - -\wxheading{Remarks} - -When you use this function, you will have to destroy the IO buffers yourself -after the stream buffer is destroyed or don't use it anymore. -In the case you use it with an empty buffer, the stream buffer will not resize -it when it is full. - -\wxheading{See also} - -\helpref{wxStreamBuffer constructor}{wxstreambufferctor}\\ -\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\ -\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable} - -\func{void}{SetBufferIO}{\param{size\_t}{ bufsize}} - -Destroys or invalidates the previous IO buffer and allocates a new one of the -specified size. - -\wxheading{Warning} - -All previous pointers aren't valid anymore. - -\wxheading{Remark} - -The created IO buffer is growable by the object. - -\wxheading{See also} - -\helpref{wxStreamBuffer::Fixed}{wxstreambufferfixed}\\ -\helpref{wxStreamBuffer::Flushable}{wxstreambufferflushable} - - -\membersection{wxStreamBuffer::SetIntPosition}\label{wxstreambuffersetintposition} - -\func{void}{SetIntPosition}{\param{size\_t}{ pos}} - -Sets the current position (in bytes) in the stream buffer. - -\wxheading{Warning} - -Since it is a very low-level function, there is no check on the position: -specifying an invalid position can induce unexpected results. - - -\membersection{wxStreamBuffer::Stream}\label{wxstreambufferstream} - -\func{wxStreamBase*}{Stream}{\void} - -Returns the parent stream of the stream buffer. - - -\membersection{wxStreamBuffer::Tell}\label{wxstreambuffertell} - -\constfunc{off\_t}{Tell}{\void} - -Gets the current position in the stream. This position is calculated from -the {\it real} position in the stream and from the internal buffer position: so -it gives you the position in the {\it real} stream counted from the start of -the stream. - -\wxheading{Return value} - -Returns the current position in the stream if possible, wxInvalidOffset in the -other case. - - -\membersection{wxStreamBuffer::Truncate}\label{wxstreambuffertruncate} - -\func{void}{Truncate}{\void} - -Truncates the buffer to the current position. - -Note: Truncate() cannot be used to enlarge the buffer. This is -usually not needed since the buffer expands automatically. - - -\membersection{wxStreamBuffer::Write}\label{wxstreambufferwrite} - -\func{size\_t}{Write}{\param{const void *}{buffer}, \param{size\_t }{size}} - -Writes a block of the specified {\it size} using data of {\it buffer}. The data -are cached in a buffer before being sent in one block to the stream. - -\func{size\_t}{Write}{\param{wxStreamBuffer *}{buffer}} - -See \helpref{Read}{wxstreambufferread}. - diff --git a/docs/latex/wx/strmbase.tex b/docs/latex/wx/strmbase.tex deleted file mode 100644 index 57f20bf291..0000000000 --- a/docs/latex/wx/strmbase.tex +++ /dev/null @@ -1,137 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxStreamBase -% ----------------------------------------------------------------------------- -\section{\class{wxStreamBase}}\label{wxstreambase} - -This class is the base class of most stream related classes in wxWidgets. It must -not be used directly. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer} - -% ----------------------------------------------------------------------------- -% Members -% ----------------------------------------------------------------------------- -\latexignore{\rtfignore{\wxheading{Members}}} - -% ----------- -% ctor & dtor -% ----------- - - -\membersection{wxStreamBase::wxStreamBase}\label{wxstreambasector} - -\func{}{wxStreamBase}{\void} - -Creates a dummy stream object. It doesn't do anything. - - -\membersection{wxStreamBase::\destruct{wxStreamBase}}\label{wxstreambasedtor} - -\func{}{\destruct{wxStreamBase}}{\void} - -Destructor. - - -\membersection{wxStreamBase::GetLength}\label{wxstreambasegetlength} - -\constfunc{wxFileOffset}{GetLength}{\void} - -Returns the length of the stream in bytes. If the length cannot be determined -(this is always the case for socket streams for example), returns -\texttt{wxInvalidOffset}. - -\newsince{2.5.4} - - -\membersection{wxStreamBase::GetLastError}\label{wxstreambasegetlasterror} - -\constfunc{wxStreamError}{GetLastError}{\void} - -This function returns the last error. - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxSTREAM\_NO\_ERROR}}{No error occurred.} -\twocolitem{{\bf wxSTREAM\_EOF}}{An End-Of-File occurred.} -\twocolitem{{\bf wxSTREAM\_WRITE\_ERROR}}{A generic error occurred on the last write call.} -\twocolitem{{\bf wxSTREAM\_READ\_ERROR}}{A generic error occurred on the last read call.} -\end{twocollist} - - -\membersection{wxStreamBase::GetSize}\label{wxstreambasegetsize} - -\constfunc{size\_t}{GetSize}{\void} - -\helpref{GetLength}{wxstreambasegetlength} - -This function returns the size of the stream. For example, for a file it is the -size of the file. - -\wxheading{Warning} - -There are streams which do not have size by definition, such as socket streams. -In that cases, GetSize returns $0$ so you should always test its return value. - - -\membersection{wxStreamBase::IsOk}\label{wxstreambaseisok} - -\constfunc{virtual bool}{IsOk}{\void} - -Returns true if no error occurred on the stream. - -\wxheading{See also} - -\helpref{GetLastError}{wxstreambasegetlasterror} - - -\membersection{wxStreamBase::IsSeekable}\label{wxstreambaseisseekable} - -\constfunc{bool}{IsSeekable}{\void} - -Returns true if the streams supports seeking to arbitrary offsets. - - -\membersection{wxStreamBase::OnSysRead}\label{wxstreambaseonsysread} - -\func{size\_t}{OnSysRead}{\param{void*}{ buffer}, \param{size\_t}{ bufsize}} - -Internal function. It is called when the stream wants to read data of the -specified size. It should return the size that was actually read. - - -\membersection{wxStreamBase::OnSysSeek}\label{wxstreambaseonsysseek} - -\func{off\_t}{OnSysSeek}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode}} - -Internal function. It is called when the stream needs to change the -current position. - - -\membersection{wxStreamBase::OnSysTell}\label{wxstreambaseonsystell} - -\constfunc{off\_t}{OnSysTell}{\void} - -Internal function. Is is called when the stream needs to know the -real position. - - -\membersection{wxStreamBase::OnSysWrite}\label{wxstreambaseonsyswrite} - -\func{size\_t}{OnSysWrite}{\param{const void *}{buffer}, \param{size\_t}{ bufsize}} - -See \helpref{OnSysRead}{wxstreambaseonsysread}. - diff --git a/docs/latex/wx/strmbfrd.tex b/docs/latex/wx/strmbfrd.tex deleted file mode 100644 index 3cf7705b93..0000000000 --- a/docs/latex/wx/strmbfrd.tex +++ /dev/null @@ -1,93 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxBufferedInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxBufferedInputStream}}\label{wxbufferedinputstream} - -This stream acts as a cache. It caches the bytes read from the specified -input stream (See \helpref{wxFilterInputStream}{wxfilterinputstream}). -It uses wxStreamBuffer and sets the default in-buffer size to 1024 bytes. -This class may not be used without some other stream to read the data -from (such as a file stream or a memory stream). - -\wxheading{Derived from} - -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer}, \helpref{wxInputStream}{wxinputstream}, -\helpref{wxBufferedOutputStream}{wxbufferedoutputstream} - -% ----------------------------------------------------------------------------- -% wxBufferedOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxBufferedOutputStream}}\label{wxbufferedoutputstream} - -This stream acts as a cache. It caches the bytes to be written to the specified -output stream (See \helpref{wxFilterOutputStream}{wxfilteroutputstream}). The -data is only written when the cache is full, when the buffered stream is -destroyed or when calling SeekO(). - -This class may not be used without some other stream to write the data -to (such as a file stream or a memory stream). - -\wxheading{Derived from} - -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/stream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer}, \helpref{wxOutputStream}{wxoutputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBufferedOutputStream::wxBufferedOutputStream}\label{wxbufferedoutputstreamctor} - -\func{}{wxBufferedOutputStream}{\param{const wxOutputStream\&}{ parent}} - -Creates a buffered stream using a buffer of a default size of 1024 bytes for cashing -the stream {\it parent}. - -\membersection{wxBufferedOutputStream::\destruct{wxBufferedOutputStream}}\label{wxbufferedoutputstreamdtor} - -\func{}{\destruct{wxBufferedOutputStream}}{\void} - -Destructor. Calls Sync() and destroys the internal buffer. - -\membersection{wxBufferedOutputStream::SeekO}\label{wxbufferedoutputstreamseeko} - -\func{off\_t}{SeekO}{\param{off\_t}{ pos}, \param{wxSeekMode}{ mode}} - -Calls Sync() and changes the stream position. - -\membersection{wxBufferedOutputStream::Sync}\label{wxbufferedoutputstreamsync} - -\func{void}{Sync}{\void} - -Flushes the buffer and calls Sync() on the parent stream. - - - diff --git a/docs/latex/wx/strmmem.tex b/docs/latex/wx/strmmem.tex deleted file mode 100644 index ec70a884fb..0000000000 --- a/docs/latex/wx/strmmem.tex +++ /dev/null @@ -1,128 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxMemoryInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxMemoryInputStream}}\label{wxmeminputstream} - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/mstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer}, \helpref{wxMemoryOutputStream}{wxmemoutputstream} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryInputStream::wxMemoryInputStream}\label{wxmemoryinputstreamctor} - -\func{}{wxMemoryInputStream}{\param{const char *}{ data}, \param{size\_t}{ len}} - -Initializes a new read-only memory stream which will use the specified buffer -{\it data} of length {\it len}. The stream does not take ownership of the -buffer, i.e. the buffer will not be deleted in its destructor. - -\func{}{wxMemoryInputStream}{\param{const wxMemoryOutputStream&}{ stream}} - -Creates a new read-only memory stream, initializing it with the -data from the given output stream \arg{stream}. - -\func{}{wxMemoryInputStream}{\param{wxInputStream\&}{ stream}, \param{wxFileOffset}{ len = wxInvalidOffset}} - -Creates a new read-only memory stream, initializing it with the -data from the given input stream \arg{stream}. - -The \arg{len} argument specifies the amount of data to read from -the \arg{stream}. Setting it to {\it wxInvalidOffset} means that -the \arg{stream} is to be read entirely (i.e. till the EOF is reached). - - -\membersection{wxMemoryInputStream::\destruct{wxMemoryInputStream}}\label{wxmemoryinputstreamdtor} - -\func{}{\destruct{wxMemoryInputStream}}{\void} - -Destructor. - -\membersection{wxMemoryInputStream::GetInputStreamBuffer}\label{wxmemoryinputstreamgetistrmbuf} - -\constfunc{wxStreamBuffer *}{GetInputStreamBuffer}{\void} - -Returns the pointer to the stream object used as an internal buffer -for that stream. - -% ----------------------------------------------------------------------------- -% wxMemoryOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxMemoryOutputStream}}\label{wxmemoutputstream} - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/mstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStreamBuffer}{wxstreambuffer} - -% ---------- -% Members -% ---------- -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxMemoryOutputStream::wxMemoryOutputStream}\label{wxmemoryoutputstreamctor} - -\func{}{wxMemoryOutputStream}{\param{char *}{ data = NULL}, \param{size\_t}{ length = 0}} - -If {\it data} is NULL, then it will initialize a new empty buffer which will -grow if required. - -\wxheading{Warning} - -If the buffer is created, it will be destroyed at the destruction of the -stream. - -\membersection{wxMemoryOutputStream::\destruct{wxMemoryOutputStream}}\label{wxmemoryoutputstreamdtor} - -\func{}{\destruct{wxMemoryOutputStream}}{\void} - -Destructor. - -\membersection{wxMemoryOutputStream::CopyTo}\label{wxmemoryoutputstreamcopyto} - -\constfunc{size\_t}{CopyTo}{\param{char *}{buffer}, \param{size\_t }{len}} - -CopyTo allowed you to transfer data from the internal buffer of -wxMemoryOutputStream to an external buffer. {\it len} specifies the size of -the buffer. - -\wxheading{Returned value} - -CopyTo returns the number of bytes copied to the buffer. Generally it is either -len or the size of the stream buffer. - -\membersection{wxMemoryOutputStream::GetOutputStreamBuffer}\label{wxmemoryoutputstreamgetostrmbuf} - -\constfunc{wxStreamBuffer *}{GetOutputStreamBuffer}{\void} - -Returns the pointer to the stream object used as an internal buffer -for that stream. - diff --git a/docs/latex/wx/strmsock.tex b/docs/latex/wx/strmsock.tex deleted file mode 100644 index e2bf61f987..0000000000 --- a/docs/latex/wx/strmsock.tex +++ /dev/null @@ -1,81 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: socket.tex -%% Purpose: wxSocket docs -%% Author: Guillermo Rodriguez Garcia <guille@iies.es> -%% Modified by: -%% Created: 1999 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ----------------------------------------------------------------------------- -% wxSocketInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxSocketInputStream}}\label{wxsocketinputstream} - -This class implements an input stream which reads data from -a connected socket. Note that this stream is purely sequential -and it does not support seeking. - -\wxheading{Derived from} - -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/sckstrm.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketInputStream::wxSocketInputStream}\label{wxsocketinputstreamctor} - -\func{}{wxSocketInputStream}{\param{wxSocketBase\&}{ s}} - -Creates a new read-only socket stream using the specified initialized -socket connection. - -% ----------------------------------------------------------------------------- -% wxSocketOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxSocketOutputStream}}\label{wxsocketoutputstream} - -This class implements an output stream which writes data from -a connected socket. Note that this stream is purely sequential -and it does not support seeking. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/sckstrm.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSocketOutputStream::wxSocketOutputStream}\label{wxsocketoutputstreamctor} - -\func{}{wxSocketOutputStream}{\param{wxSocketBase\&}{ s}} - -Creates a new write-only socket stream using the specified initialized -socket connection. - diff --git a/docs/latex/wx/strmzlib.tex b/docs/latex/wx/strmzlib.tex deleted file mode 100644 index 0cddc65c1f..0000000000 --- a/docs/latex/wx/strmzlib.tex +++ /dev/null @@ -1,163 +0,0 @@ -% ----------------------------------------------------------------------------- -% wxZlibInputStream -% ----------------------------------------------------------------------------- -\section{\class{wxZlibInputStream}}\label{wxzlibinputstream} - -This filter stream decompresses a stream that is in zlib or gzip format. -Note that reading the gzip format requires zlib version 1.2.1 or greater, -(the builtin version does support gzip format). - -The stream is not seekable, \helpref{SeekI()}{wxinputstreamseeki} returns - {\it wxInvalidOffset}. Also \helpref{GetSize()}{wxstreambasegetsize} is -not supported, it always returns $0$. - -\wxheading{Derived from} - -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/zstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream}, - \helpref{wxZlibOutputStream}{wxzliboutputstream}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxZlibInputStream::wxZlibInputStream}\label{wxzlibinputstreamwxzlibinputstream} - -\func{}{wxZlibInputStream}{\param{wxInputStream\&}{ stream}, \param{int}{ flags = wxZLIB\_AUTO}} - -\func{}{wxZlibInputStream}{\param{wxInputStream*}{ stream}, \param{int}{ flags = wxZLIB\_AUTO}} - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - -The {\it flags} wxZLIB\_ZLIB and wxZLIB\_GZIP specify whether the input data -is in zlib or gzip format. If wxZLIB\_AUTO is used, then zlib will -autodetect the stream type, this is the default. - -If {\it flags} is wxZLIB\_NO\_HEADER, then the data is assumed to be a raw -deflate stream without either zlib or gzip headers. This is a lower level -mode, which is not usually used directly. It can be used to read a raw -deflate stream embedded in a higher level protocol. - -%if WXWIN_COMPATIBILITY_2_4 -This version is not by default compatible with the output produced by -the version of {\it wxZlibOutputStream} in wxWidgets 2.4.x. However, -there is a compatibility mode, which is switched on by passing -wxZLIB\_24COMPATIBLE for flags. Note that in when operating in compatibility -mode error checking is very much reduced. -%endif - -The following symbols can be use for the flags: - -\begin{verbatim} -// Flags -enum { -#if WXWIN_COMPATIBILITY_2_4 - wxZLIB_24COMPATIBLE = 4, // read v2.4.x data without error -#endif - wxZLIB_NO_HEADER = 0, // raw deflate stream, no header or checksum - wxZLIB_ZLIB = 1, // zlib header and checksum - wxZLIB_GZIP = 2, // gzip header and checksum, requires zlib 1.2.1+ - wxZLIB_AUTO = 3 // autodetect header zlib or gzip -}; -\end{verbatim} - -\membersection{wxZlibInputStream::CanHandleGZip}\label{wxzlibinputstreamcanhandlegzip} - -\func{static bool}{CanHandleGZip}{\void} - -Returns true if zlib library in use can handle gzip compressed data. - -% ----------------------------------------------------------------------------- -% wxZlibOutputStream -% ----------------------------------------------------------------------------- -\section{\class{wxZlibOutputStream}}\label{wxzliboutputstream} - -This stream compresses all data written to it. The compressed output can be -in zlib or gzip format. -Note that writing the gzip format requires zlib version 1.2.1 or greater -(the builtin version does support gzip format). - -The stream is not seekable, \helpref{SeekO()}{wxoutputstreamseeko} returns - {\it wxInvalidOffset}. - -\wxheading{Derived from} - -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/zstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxOutputStream}{wxoutputstream}, - \helpref{wxZlibInputStream}{wxzlibinputstream} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxZlibOutputStream::wxZlibOutputStream}\label{wxzliboutputstreamwxzliboutputstream} - -\func{}{wxZlibOutputStream}{\param{wxOutputStream\&}{ stream}, \param{int}{ level = -1}, \param{int}{ flags = wxZLIB\_ZLIB}} - -\func{}{wxZlibOutputStream}{\param{wxOutputStream*}{ stream}, \param{int}{ level = -1}, \param{int}{ flags = wxZLIB\_ZLIB}} - -Creates a new write-only compressed stream. {\it level} means level of -compression. It is number between 0 and 9 (including these values) where -0 means no compression and 9 best but slowest compression. -1 is default -value (currently equivalent to 6). - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - -The {\it flags} wxZLIB\_ZLIB and wxZLIB\_GZIP specify whether the output data -will be in zlib or gzip format. wxZLIB\_ZLIB is the default. - -If {\it flags} is wxZLIB\_NO\_HEADER, then a raw deflate stream is output -without either zlib or gzip headers. This is a lower level -mode, which is not usually used directly. It can be used to embed a raw -deflate stream in a higher level protocol. - -The following symbols can be use for the compression level and flags: - -\begin{verbatim} -// Compression level -enum { - wxZ_DEFAULT_COMPRESSION = -1, - wxZ_NO_COMPRESSION = 0, - wxZ_BEST_SPEED = 1, - wxZ_BEST_COMPRESSION = 9 -}; - -// Flags -enum { - wxZLIB_NO_HEADER = 0, // raw deflate stream, no header or checksum - wxZLIB_ZLIB = 1, // zlib header and checksum - wxZLIB_GZIP = 2 // gzip header and checksum, requires zlib 1.2.1+ -}; -\end{verbatim} - -\membersection{wxZlibOutputStream::CanHandleGZip}\label{wxoutputstreamcanhandlegzip} - -\func{static bool}{CanHandleGZip}{\void} - -Returns true if zlib library in use can handle gzip compressed data. - diff --git a/docs/latex/wx/strtotxt.tex b/docs/latex/wx/strtotxt.tex deleted file mode 100644 index b133a26071..0000000000 --- a/docs/latex/wx/strtotxt.tex +++ /dev/null @@ -1,80 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: strtotxt.tex -%% Purpose: wxStreamToTextRedirector documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 19.10.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStreamToTextRedirector}}\label{wxstreamtotextredirector} - -This class can be used to (temporarily) redirect all output sent to a C++ -ostream object to a \helpref{wxTextCtrl}{wxtextctrl} instead. - -{\bf NB:} Some compilers and/or build configurations don't support multiply -inheriting \helpref{wxTextCtrl}{wxtextctrl} from {\tt std::streambuf} in which -case this class is not compiled in. You also must have {\tt wxUSE\_STD\_IOSTREAM} -option on (i.e. set to $1$) in your setup.h to be able to use it. Under Unix, -specify {\tt --enable-std\_iostreams} switch when running configure for this. - -Example of usage: -{\small% -\begin{verbatim} - using namespace std; - - wxTextCtrl *text = new wxTextCtrl(...); - - { - wxStreamToTextRedirector redirect(text); - - // this goes to the text control - cout << "Hello, text!" << endl; - } - - // this goes somewhere else, presumably to stdout - cout << "Hello, console!" << endl; -\end{verbatim} -}% - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/textctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxTextCtrl}{wxtextctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStreamToTextRedirector::wxStreamToTextRedirector}\label{wxstreamtotextredirectorctor} - -\func{}{wxStreamToTextRedirector}{\param{wxTextCtrl }{*text}, \param{ostream *}{ostr = NULL}} - -The constructor starts redirecting output sent to {\it ostr} or {\it cout} for -the default parameter value to the text control {\it text}. - -\wxheading{Parameters} - -\docparam{text}{The text control to append output too, must be non-NULL} - -\docparam{ostr}{The C++ stream to redirect, {\it cout} is used if it is NULL} - -\membersection{wxStreamToTextRedirector::\destruct{wxStreamToTextRedirector}}\label{wxstreamtotextredirectordtor} - -\func{}{\destruct{wxStreamToTextRedirector}}{\void} - -When a wxStreamToTextRedirector object is destroyed, the redirection is ended -and any output sent to the C++ ostream which had been specified at the time of -the object construction will go to its original destination. - diff --git a/docs/latex/wx/styledtextctrl.tex b/docs/latex/wx/styledtextctrl.tex deleted file mode 100644 index a966ab9af0..0000000000 --- a/docs/latex/wx/styledtextctrl.tex +++ /dev/null @@ -1,3373 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: styledtextctrl.tex -%% Purpose: wxStyledTextCtrl documentation -%% Author: Francesco Montorsi -%% Created: 2007-08-07 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStyledTextCtrl}}\label{wxstyledtextctrl} - -A wxWidgets implementation of the Scintilla source code editing component. - -As well as features found in standard text editing components, Scintilla includes -features especially useful when editing and debugging source code. These include -support for syntax styling, error indicators, code completion and call tips. The -selection margin can contain markers like those used in debuggers to indicate -breakpoints and the current line. Styling choices are more open than with many -editors, allowing the use of proportional fonts, bold and italics, multiple -foreground and background colours and multiple fonts. - -wxStyledTextCtrl is a 1 to 1 mapping of "raw" scintilla interface, whose documentation -can be found in the \urlref{Scintilla website}{http://www.scintilla.org/}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol} - -\wxheading{Include files} - -<wx/stc/stc.h> - -\wxheading{See also} - -\helpref{wxStyledTextEvent}{wxstyledtextevent} - -\wxheading{Event handling} - -To process input from a wxStyledTextCtrl, use these event handler macros to direct input to member -functions that take a \helpref{wxStyledTextEvent}{wxstyledtextevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_STC\_CHANGE(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_STYLENEEDED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_CHARADDED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_SAVEPOINTREACHED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_SAVEPOINTLEFT(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_ROMODIFYATTEMPT(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_KEY(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_DOUBLECLICK(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_UPDATEUI(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_MODIFIED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_MACRORECORD(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_MARGINCLICK(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_NEEDSHOWN(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_PAINTED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_USERLISTSELECTION(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_URIDROPPED(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_DWELLSTART(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_DWELLEND(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_START\_DRAG(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_DRAG\_OVER(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_DO\_DROP(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_ZOOM(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_HOTSPOT\_CLICK(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_HOTSPOT\_DCLICK(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_CALLTIP\_CLICK(id, fn)}}{TOWRITE} -\twocolitem{{\bf EVT\_STC\_AUTOCOMP\_SELECTION(id, fn)}}{TOWRITE} -\end{twocollist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStyledTextCtrl::wxStyledTextCtrl}\label{wxstyledtextctrlwxstyledtextctrl} - -\func{}{wxStyledTextCtrl::wxStyledTextCtrl}{\param{wxWindow *}{parent}, \param{wxWindowID}{id = wxID\_ANY}, \param{const wxPoint&}{pos = wxDefaultPosition}, \param{const wxSize&}{size = wxDefaultSize}, \param{long}{style = 0}, \param{const wxString&}{name = "stcwindow"}} - -Ctor. - -\membersection{wxStyledTextCtrl::AddRefDocument}\label{wxstyledtextctrladdrefdocument} - -\func{void}{AddRefDocument}{\param{void* }{docPointer}} - -Extend life of document. - - -\membersection{wxStyledTextCtrl::AddStyledText}\label{wxstyledtextctrladdstyledtext} - -\func{void}{AddStyledText}{\param{const wxMemoryBuffer\& }{data}} - -Add array of cells to document. - - -\membersection{wxStyledTextCtrl::AddText}\label{wxstyledtextctrladdtext} - -\func{void}{AddText}{\param{const wxString\& }{text}} - - -BEGIN generated section. The following code is automatically generated -by gen\_iface.py. Do not edit this file. Edit stc.h.in instead -and regenerate -Add text to the document at current position. - - -\membersection{wxStyledTextCtrl::AddTextRaw}\label{wxstyledtextctrladdtextraw} - -\func{void}{AddTextRaw}{\param{const char* }{text}} - -The following methods are nearly equivallent to their similarly named -cousins above. The difference is that these methods bypass wxString -and always use a char* even if used in a unicode build of wxWidgets. -In that case the character data will be utf-8 encoded since that is -what is used internally by Scintilla in unicode builds. -Add text to the document at current position. - - -\membersection{wxStyledTextCtrl::Allocate}\label{wxstyledtextctrlallocate} - -\func{void}{Allocate}{\param{int }{bytes}} - -Enlarge the document to a particular size of text bytes. - - -\membersection{wxStyledTextCtrl::AppendText}\label{wxstyledtextctrlappendtext} - -\func{void}{AppendText}{\param{const wxString\& }{text}} - -Append a string to the end of the document without changing the selection. - - -\membersection{wxStyledTextCtrl::AppendTextRaw}\label{wxstyledtextctrlappendtextraw} - -\func{void}{AppendTextRaw}{\param{const char* }{text}} - -Append a string to the end of the document without changing the selection. - - -\membersection{wxStyledTextCtrl::AutoCompActive}\label{wxstyledtextctrlautocompactive} - -\func{bool}{AutoCompActive}{\void} - -Is there an auto-completion list visible? - - -\membersection{wxStyledTextCtrl::AutoCompCancel}\label{wxstyledtextctrlautocompcancel} - -\func{void}{AutoCompCancel}{\void} - -Remove the auto-completion list from the screen. - - -\membersection{wxStyledTextCtrl::AutoCompComplete}\label{wxstyledtextctrlautocompcomplete} - -\func{void}{AutoCompComplete}{\void} - -User has selected an item so remove the list and insert the selection. - - -\membersection{wxStyledTextCtrl::AutoCompGetAutoHide}\label{wxstyledtextctrlautocompgetautohide} - -\func{bool}{AutoCompGetAutoHide}{\void} - -Retrieve whether or not autocompletion is hidden automatically when nothing matches. - - -\membersection{wxStyledTextCtrl::AutoCompGetCancelAtStart}\label{wxstyledtextctrlautocompgetcancelatstart} - -\func{bool}{AutoCompGetCancelAtStart}{\void} - -Retrieve whether auto-completion cancelled by backspacing before start. - - -\membersection{wxStyledTextCtrl::AutoCompGetChooseSingle}\label{wxstyledtextctrlautocompgetchoosesingle} - -\func{bool}{AutoCompGetChooseSingle}{\void} - -Retrieve whether a single item auto-completion list automatically choose the item. - - -\membersection{wxStyledTextCtrl::AutoCompGetCurrent}\label{wxstyledtextctrlautocompgetcurrent} - -\func{int}{AutoCompGetCurrent}{\void} - -Get currently selected item position in the auto-completion list - - -\membersection{wxStyledTextCtrl::AutoCompGetDropRestOfWord}\label{wxstyledtextctrlautocompgetdroprestofword} - -\func{bool}{AutoCompGetDropRestOfWord}{\void} - -Retrieve whether or not autocompletion deletes any word characters -after the inserted text upon completion. - - -\membersection{wxStyledTextCtrl::AutoCompGetIgnoreCase}\label{wxstyledtextctrlautocompgetignorecase} - -\func{bool}{AutoCompGetIgnoreCase}{\void} - -Retrieve state of ignore case flag. - - -\membersection{wxStyledTextCtrl::AutoCompGetMaxHeight}\label{wxstyledtextctrlautocompgetmaxheight} - -\func{int}{AutoCompGetMaxHeight}{\void} - -Set the maximum height, in rows, of auto-completion and user lists. - - -\membersection{wxStyledTextCtrl::AutoCompGetMaxWidth}\label{wxstyledtextctrlautocompgetmaxwidth} - -\func{int}{AutoCompGetMaxWidth}{\void} - -Get the maximum width, in characters, of auto-completion and user lists. - - -\membersection{wxStyledTextCtrl::AutoCompGetSeparator}\label{wxstyledtextctrlautocompgetseparator} - -\func{int}{AutoCompGetSeparator}{\void} - -Retrieve the auto-completion list separator character. - - -\membersection{wxStyledTextCtrl::AutoCompGetTypeSeparator}\label{wxstyledtextctrlautocompgettypeseparator} - -\func{int}{AutoCompGetTypeSeparator}{\void} - -Retrieve the auto-completion list type-separator character. - - -\membersection{wxStyledTextCtrl::AutoCompPosStart}\label{wxstyledtextctrlautocompposstart} - -\func{int}{AutoCompPosStart}{\void} - -Retrieve the position of the caret when the auto-completion list was displayed. - - -\membersection{wxStyledTextCtrl::AutoCompSelect}\label{wxstyledtextctrlautocompselect} - -\func{void}{AutoCompSelect}{\param{const wxString\& }{text}} - -Select the item in the auto-completion list that starts with a string. - - -\membersection{wxStyledTextCtrl::AutoCompSetAutoHide}\label{wxstyledtextctrlautocompsetautohide} - -\func{void}{AutoCompSetAutoHide}{\param{bool }{autoHide}} - -Set whether or not autocompletion is hidden automatically when nothing matches. - - -\membersection{wxStyledTextCtrl::AutoCompSetCancelAtStart}\label{wxstyledtextctrlautocompsetcancelatstart} - -\func{void}{AutoCompSetCancelAtStart}{\param{bool }{cancel}} - -Should the auto-completion list be cancelled if the user backspaces to a -position before where the box was created. - - -\membersection{wxStyledTextCtrl::AutoCompSetChooseSingle}\label{wxstyledtextctrlautocompsetchoosesingle} - -\func{void}{AutoCompSetChooseSingle}{\param{bool }{chooseSingle}} - -Should a single item auto-completion list automatically choose the item. - - -\membersection{wxStyledTextCtrl::AutoCompSetDropRestOfWord}\label{wxstyledtextctrlautocompsetdroprestofword} - -\func{void}{AutoCompSetDropRestOfWord}{\param{bool }{dropRestOfWord}} - -Set whether or not autocompletion deletes any word characters -after the inserted text upon completion. - - -\membersection{wxStyledTextCtrl::AutoCompSetFillUps}\label{wxstyledtextctrlautocompsetfillups} - -\func{void}{AutoCompSetFillUps}{\param{const wxString\& }{characterSet}} - -Define a set of characters that when typed will cause the autocompletion to -choose the selected item. - - -\membersection{wxStyledTextCtrl::AutoCompSetIgnoreCase}\label{wxstyledtextctrlautocompsetignorecase} - -\func{void}{AutoCompSetIgnoreCase}{\param{bool }{ignoreCase}} - -Set whether case is significant when performing auto-completion searches. - - -\membersection{wxStyledTextCtrl::AutoCompSetMaxHeight}\label{wxstyledtextctrlautocompsetmaxheight} - -\func{void}{AutoCompSetMaxHeight}{\param{int }{rowCount}} - -Set the maximum height, in rows, of auto-completion and user lists. -The default is 5 rows. - - -\membersection{wxStyledTextCtrl::AutoCompSetMaxWidth}\label{wxstyledtextctrlautocompsetmaxwidth} - -\func{void}{AutoCompSetMaxWidth}{\param{int }{characterCount}} - -Set the maximum width, in characters, of auto-completion and user lists. -Set to 0 to autosize to fit longest item, which is the default. - - -\membersection{wxStyledTextCtrl::AutoCompSetSeparator}\label{wxstyledtextctrlautocompsetseparator} - -\func{void}{AutoCompSetSeparator}{\param{int }{separatorCharacter}} - -Change the separator character in the string setting up an auto-completion list. -Default is space but can be changed if items contain space. - - -\membersection{wxStyledTextCtrl::AutoCompSetTypeSeparator}\label{wxstyledtextctrlautocompsettypeseparator} - -\func{void}{AutoCompSetTypeSeparator}{\param{int }{separatorCharacter}} - -Change the type-separator character in the string setting up an auto-completion list. -Default is '?' but can be changed if items contain '?'. - - -\membersection{wxStyledTextCtrl::AutoCompShow}\label{wxstyledtextctrlautocompshow} - -\func{void}{AutoCompShow}{\param{int }{lenEntered}, \param{const wxString\& }{itemList}} - -Display a auto-completion list. -The lenEntered parameter indicates how many characters before -the caret should be used to provide context. - - -\membersection{wxStyledTextCtrl::AutoCompStops}\label{wxstyledtextctrlautocompstops} - -\func{void}{AutoCompStops}{\param{const wxString\& }{characterSet}} - -Define a set of character that when typed cancel the auto-completion list. - - -\membersection{wxStyledTextCtrl::BackTab}\label{wxstyledtextctrlbacktab} - -\func{void}{BackTab}{\void} - -Dedent the selected lines. - - -\membersection{wxStyledTextCtrl::BeginUndoAction}\label{wxstyledtextctrlbeginundoaction} - -\func{void}{BeginUndoAction}{\void} - -Start a sequence of actions that is undone and redone as a unit. -May be nested. - - -\membersection{wxStyledTextCtrl::BraceBadLight}\label{wxstyledtextctrlbracebadlight} - -\func{void}{BraceBadLight}{\param{int }{pos}} - -Highlight the character at a position indicating there is no matching brace. - - -\membersection{wxStyledTextCtrl::BraceHighlight}\label{wxstyledtextctrlbracehighlight} - -\func{void}{BraceHighlight}{\param{int }{pos1}, \param{int }{pos2}} - -Highlight the characters at two positions. - - -\membersection{wxStyledTextCtrl::BraceMatch}\label{wxstyledtextctrlbracematch} - -\func{int}{BraceMatch}{\param{int }{pos}} - -Find the position of a matching brace or INVALID\_POSITION if no match. - - -\membersection{wxStyledTextCtrl::CallTipActive}\label{wxstyledtextctrlcalltipactive} - -\func{bool}{CallTipActive}{\void} - -Is there an active call tip? - - -\membersection{wxStyledTextCtrl::CallTipCancel}\label{wxstyledtextctrlcalltipcancel} - -\func{void}{CallTipCancel}{\void} - -Remove the call tip from the screen. - - -\membersection{wxStyledTextCtrl::CallTipPosAtStart}\label{wxstyledtextctrlcalltipposatstart} - -\func{int}{CallTipPosAtStart}{\void} - -Retrieve the position where the caret was before displaying the call tip. - - -\membersection{wxStyledTextCtrl::CallTipSetBackground}\label{wxstyledtextctrlcalltipsetbackground} - -\func{void}{CallTipSetBackground}{\param{const wxColour\& }{back}} - -Set the background colour for the call tip. - - -\membersection{wxStyledTextCtrl::CallTipSetForeground}\label{wxstyledtextctrlcalltipsetforeground} - -\func{void}{CallTipSetForeground}{\param{const wxColour\& }{fore}} - -Set the foreground colour for the call tip. - - -\membersection{wxStyledTextCtrl::CallTipSetForegroundHighlight}\label{wxstyledtextctrlcalltipsetforegroundhighlight} - -\func{void}{CallTipSetForegroundHighlight}{\param{const wxColour\& }{fore}} - -Set the foreground colour for the highlighted part of the call tip. - - -\membersection{wxStyledTextCtrl::CallTipSetHighlight}\label{wxstyledtextctrlcalltipsethighlight} - -\func{void}{CallTipSetHighlight}{\param{int }{start}, \param{int }{end}} - -Highlight a segment of the definition. - - -\membersection{wxStyledTextCtrl::CallTipShow}\label{wxstyledtextctrlcalltipshow} - -\func{void}{CallTipShow}{\param{int }{pos}, \param{const wxString\& }{definition}} - -Show a call tip containing a definition near position pos. - - -\membersection{wxStyledTextCtrl::CallTipUseStyle}\label{wxstyledtextctrlcalltipusestyle} - -\func{void}{CallTipUseStyle}{\param{int }{tabSize}} - -Enable use of STYLE\_CALLTIP and set call tip tab size in pixels. - - -\membersection{wxStyledTextCtrl::CanPaste}\label{wxstyledtextctrlcanpaste} - -\func{bool}{CanPaste}{\void} - -Will a paste succeed? - - -\membersection{wxStyledTextCtrl::CanRedo}\label{wxstyledtextctrlcanredo} - -\func{bool}{CanRedo}{\void} - -Are there any redoable actions in the undo history? - - -\membersection{wxStyledTextCtrl::CanUndo}\label{wxstyledtextctrlcanundo} - -\func{bool}{CanUndo}{\void} - -Are there any undoable actions in the undo history? - - -\membersection{wxStyledTextCtrl::Cancel}\label{wxstyledtextctrlcancel} - -\func{void}{Cancel}{\void} - -Cancel any modes such as call tip or auto-completion list display. - - -\membersection{wxStyledTextCtrl::CharLeft}\label{wxstyledtextctrlcharleft} - -\func{void}{CharLeft}{\void} - -Move caret left one character. - - -\membersection{wxStyledTextCtrl::CharLeftExtend}\label{wxstyledtextctrlcharleftextend} - -\func{void}{CharLeftExtend}{\void} - -Move caret left one character extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::CharLeftRectExtend}\label{wxstyledtextctrlcharleftrectextend} - -\func{void}{CharLeftRectExtend}{\void} - -Move caret left one character, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::CharRight}\label{wxstyledtextctrlcharright} - -\func{void}{CharRight}{\void} - -Move caret right one character. - - -\membersection{wxStyledTextCtrl::CharRightExtend}\label{wxstyledtextctrlcharrightextend} - -\func{void}{CharRightExtend}{\void} - -Move caret right one character extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::CharRightRectExtend}\label{wxstyledtextctrlcharrightrectextend} - -\func{void}{CharRightRectExtend}{\void} - -Move caret right one character, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::ChooseCaretX}\label{wxstyledtextctrlchoosecaretx} - -\func{void}{ChooseCaretX}{\void} - -Set the last x chosen value to be the caret x position. - - -\membersection{wxStyledTextCtrl::Clear}\label{wxstyledtextctrlclear} - -\func{void}{Clear}{\void} - -Clear the selection. - - -\membersection{wxStyledTextCtrl::ClearAll}\label{wxstyledtextctrlclearall} - -\func{void}{ClearAll}{\void} - -Delete all text in the document. - - -\membersection{wxStyledTextCtrl::ClearDocumentStyle}\label{wxstyledtextctrlcleardocumentstyle} - -\func{void}{ClearDocumentStyle}{\void} - -Set all style bytes to 0, remove all folding information. - - -\membersection{wxStyledTextCtrl::ClearRegisteredImages}\label{wxstyledtextctrlclearregisteredimages} - -\func{void}{ClearRegisteredImages}{\void} - -Clear all the registered images. - - -\membersection{wxStyledTextCtrl::CmdKeyAssign}\label{wxstyledtextctrlcmdkeyassign} - -\func{void}{CmdKeyAssign}{\param{int }{key}, \param{int }{modifiers}, \param{int }{cmd}} - -When key+modifier combination km is pressed perform msg. - - -\membersection{wxStyledTextCtrl::CmdKeyClear}\label{wxstyledtextctrlcmdkeyclear} - -\func{void}{CmdKeyClear}{\param{int }{key}, \param{int }{modifiers}} - -When key+modifier combination km is pressed do nothing. - - -\membersection{wxStyledTextCtrl::CmdKeyClearAll}\label{wxstyledtextctrlcmdkeyclearall} - -\func{void}{CmdKeyClearAll}{\void} - -Drop all key mappings. - - -\membersection{wxStyledTextCtrl::CmdKeyExecute}\label{wxstyledtextctrlcmdkeyexecute} - -\func{void}{CmdKeyExecute}{\param{int }{cmd}} - -Perform one of the operations defined by the wxSTC\_CMD\_* constants. - - -\membersection{wxStyledTextCtrl::Colourise}\label{wxstyledtextctrlcolourise} - -\func{void}{Colourise}{\param{int }{start}, \param{int }{end}} - -Colourise a segment of the document using the current lexing language. - - -\membersection{wxStyledTextCtrl::ConvertEOLs}\label{wxstyledtextctrlconverteols} - -\func{void}{ConvertEOLs}{\param{int }{eolMode}} - -Convert all line endings in the document to one mode. - - -\membersection{wxStyledTextCtrl::Copy}\label{wxstyledtextctrlcopy} - -\func{void}{Copy}{\void} - -Copy the selection to the clipboard. - - -\membersection{wxStyledTextCtrl::CopyRange}\label{wxstyledtextctrlcopyrange} - -\func{void}{CopyRange}{\param{int }{start}, \param{int }{end}} - -Copy a range of text to the clipboard. Positions are clipped into the document. - - -\membersection{wxStyledTextCtrl::CopyText}\label{wxstyledtextctrlcopytext} - -\func{void}{CopyText}{\param{int }{length}, \param{const wxString\& }{text}} - -Copy argument text to the clipboard. - - -\membersection{wxStyledTextCtrl::Create}\label{wxstyledtextctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxSTCNameStr}} - - -\membersection{wxStyledTextCtrl::CreateDocument}\label{wxstyledtextctrlcreatedocument} - -\func{void*}{CreateDocument}{\void} - -Create a new document object. -Starts with reference count of 1 and not selected into editor. - - -\membersection{wxStyledTextCtrl::Cut}\label{wxstyledtextctrlcut} - -\func{void}{Cut}{\void} - -Cut the selection to the clipboard. - - -\membersection{wxStyledTextCtrl::DelLineLeft}\label{wxstyledtextctrldellineleft} - -\func{void}{DelLineLeft}{\void} - -Delete back from the current position to the start of the line. - - -\membersection{wxStyledTextCtrl::DelLineRight}\label{wxstyledtextctrldellineright} - -\func{void}{DelLineRight}{\void} - -Delete forwards from the current position to the end of the line. - - -\membersection{wxStyledTextCtrl::DelWordLeft}\label{wxstyledtextctrldelwordleft} - -\func{void}{DelWordLeft}{\void} - -Delete the word to the left of the caret. - - -\membersection{wxStyledTextCtrl::DelWordRight}\label{wxstyledtextctrldelwordright} - -\func{void}{DelWordRight}{\void} - -Delete the word to the right of the caret. - - -\membersection{wxStyledTextCtrl::DeleteBack}\label{wxstyledtextctrldeleteback} - -\func{void}{DeleteBack}{\void} - -Delete the selection or if no selection, the character before the caret. - - -\membersection{wxStyledTextCtrl::DeleteBackNotLine}\label{wxstyledtextctrldeletebacknotline} - -\func{void}{DeleteBackNotLine}{\void} - -Delete the selection or if no selection, the character before the caret. -Will not delete the character before at the start of a line. - - -\membersection{wxStyledTextCtrl::DoDragOver}\label{wxstyledtextctrldodragover} - -\func{wxDragResult}{DoDragOver}{\param{wxCoord }{x}, \param{wxCoord }{y}, \param{wxDragResult }{def}} - -Allow for simulating a DnD DragOver - - -\membersection{wxStyledTextCtrl::DoDropText}\label{wxstyledtextctrldodroptext} - -\func{bool}{DoDropText}{\param{long }{x}, \param{long }{y}, \param{const wxString\& }{data}} - -Allow for simulating a DnD DropText - - -\membersection{wxStyledTextCtrl::DocLineFromVisible}\label{wxstyledtextctrldoclinefromvisible} - -\func{int}{DocLineFromVisible}{\param{int }{lineDisplay}} - -Find the document line of a display line taking hidden lines into account. - - -\membersection{wxStyledTextCtrl::DocumentEnd}\label{wxstyledtextctrldocumentend} - -\func{void}{DocumentEnd}{\void} - -Move caret to last position in document. - - -\membersection{wxStyledTextCtrl::DocumentEndExtend}\label{wxstyledtextctrldocumentendextend} - -\func{void}{DocumentEndExtend}{\void} - -Move caret to last position in document extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::DocumentStart}\label{wxstyledtextctrldocumentstart} - -\func{void}{DocumentStart}{\void} - -Move caret to first position in document. - - -\membersection{wxStyledTextCtrl::DocumentStartExtend}\label{wxstyledtextctrldocumentstartextend} - -\func{void}{DocumentStartExtend}{\void} - -Move caret to first position in document extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::EditToggleOvertype}\label{wxstyledtextctrledittoggleovertype} - -\func{void}{EditToggleOvertype}{\void} - -Switch from insert to overtype mode or the reverse. - - -\membersection{wxStyledTextCtrl::EmptyUndoBuffer}\label{wxstyledtextctrlemptyundobuffer} - -\func{void}{EmptyUndoBuffer}{\void} - -Delete the undo history. - - -\membersection{wxStyledTextCtrl::EndUndoAction}\label{wxstyledtextctrlendundoaction} - -\func{void}{EndUndoAction}{\void} - -End a sequence of actions that is undone and redone as a unit. - - -\membersection{wxStyledTextCtrl::EnsureCaretVisible}\label{wxstyledtextctrlensurecaretvisible} - -\func{void}{EnsureCaretVisible}{\void} - -Ensure the caret is visible. - - -\membersection{wxStyledTextCtrl::EnsureVisible}\label{wxstyledtextctrlensurevisible} - -\func{void}{EnsureVisible}{\param{int }{line}} - -Ensure a particular line is visible by expanding any header line hiding it. - - -\membersection{wxStyledTextCtrl::EnsureVisibleEnforcePolicy}\label{wxstyledtextctrlensurevisibleenforcepolicy} - -\func{void}{EnsureVisibleEnforcePolicy}{\param{int }{line}} - -Ensure a particular line is visible by expanding any header line hiding it. -Use the currently set visibility policy to determine which range to display. - - -\membersection{wxStyledTextCtrl::FindColumn}\label{wxstyledtextctrlfindcolumn} - -\func{int}{FindColumn}{\param{int }{line}, \param{int }{column}} - -Find the position of a column on a line taking into account tabs and -multi-byte characters. If beyond end of line, return line end position. - - -\membersection{wxStyledTextCtrl::FindText}\label{wxstyledtextctrlfindtext} - -\func{int}{FindText}{\param{int }{minPos}, \param{int }{maxPos}, \param{const wxString\& }{text}, \param{int }{flags = 0}} - -Find some text in the document. - - -\membersection{wxStyledTextCtrl::FormFeed}\label{wxstyledtextctrlformfeed} - -\func{void}{FormFeed}{\void} - -Insert a Form Feed character. - - -\membersection{wxStyledTextCtrl::FormatRange}\label{wxstyledtextctrlformatrange} - -\func{int}{FormatRange}{\param{bool }{doDraw}, \param{int }{startPos}, \param{int }{endPos}, \param{wxDC* }{draw}, \param{wxDC* }{target}, \param{wxRect }{renderRect}, \param{wxRect }{pageRect}} - -On Windows, will draw the document into a display context such as a printer. - - -\membersection{wxStyledTextCtrl::GetAnchor}\label{wxstyledtextctrlgetanchor} - -\func{int}{GetAnchor}{\void} - -Returns the position of the opposite end of the selection to the caret. - - -\membersection{wxStyledTextCtrl::GetBackSpaceUnIndents}\label{wxstyledtextctrlgetbackspaceunindents} - -\func{bool}{GetBackSpaceUnIndents}{\void} - -Does a backspace pressed when caret is within indentation unindent? - - -\membersection{wxStyledTextCtrl::GetBufferedDraw}\label{wxstyledtextctrlgetbuffereddraw} - -\func{bool}{GetBufferedDraw}{\void} - -Is drawing done first into a buffer or direct to the screen? - - -\membersection{wxStyledTextCtrl::GetCaretForeground}\label{wxstyledtextctrlgetcaretforeground} - -\func{wxColour}{GetCaretForeground}{\void} - -Get the foreground colour of the caret. - - -\membersection{wxStyledTextCtrl::GetCaretLineBackAlpha}\label{wxstyledtextctrlgetcaretlinebackalpha} - -\func{int}{GetCaretLineBackAlpha}{\void} - -Get the background alpha of the caret line. - - -\membersection{wxStyledTextCtrl::GetCaretLineBackground}\label{wxstyledtextctrlgetcaretlinebackground} - -\func{wxColour}{GetCaretLineBackground}{\void} - -Get the colour of the background of the line containing the caret. - - -\membersection{wxStyledTextCtrl::GetCaretLineVisible}\label{wxstyledtextctrlgetcaretlinevisible} - -\func{bool}{GetCaretLineVisible}{\void} - -Is the background of the line containing the caret in a different colour? - - -\membersection{wxStyledTextCtrl::GetCaretPeriod}\label{wxstyledtextctrlgetcaretperiod} - -\func{int}{GetCaretPeriod}{\void} - -Get the time in milliseconds that the caret is on and off. - - -\membersection{wxStyledTextCtrl::GetCaretSticky}\label{wxstyledtextctrlgetcaretsticky} - -\func{bool}{GetCaretSticky}{\void} - -Can the caret preferred x position only be changed by explicit movement commands? - - -\membersection{wxStyledTextCtrl::GetCaretWidth}\label{wxstyledtextctrlgetcaretwidth} - -\func{int}{GetCaretWidth}{\void} - -Returns the width of the insert mode caret. - - -\membersection{wxStyledTextCtrl::GetCharAt}\label{wxstyledtextctrlgetcharat} - -\func{int}{GetCharAt}{\param{int }{pos}} - -Returns the character byte at the position. - - -\membersection{wxStyledTextCtrl::GetCodePage}\label{wxstyledtextctrlgetcodepage} - -\func{int}{GetCodePage}{\void} - -Get the code page used to interpret the bytes of the document as characters. - - -\membersection{wxStyledTextCtrl::GetColumn}\label{wxstyledtextctrlgetcolumn} - -\func{int}{GetColumn}{\param{int }{pos}} - -Retrieve the column number of a position, taking tab width into account. - - -\membersection{wxStyledTextCtrl::GetControlCharSymbol}\label{wxstyledtextctrlgetcontrolcharsymbol} - -\func{int}{GetControlCharSymbol}{\void} - -Get the way control characters are displayed. - - -\membersection{wxStyledTextCtrl::GetCurLine}\label{wxstyledtextctrlgetcurline} - -\func{wxString}{GetCurLine}{\param{int* }{OUTPUT}} - - -\membersection{wxStyledTextCtrl::GetCurLineRaw}\label{wxstyledtextctrlgetcurlineraw} - -\func{wxCharBuffer}{GetCurLineRaw}{\param{int* }{OUTPUT}} - - -\membersection{wxStyledTextCtrl::GetCurrentLine}\label{wxstyledtextctrlgetcurrentline} - -\func{int}{GetCurrentLine}{\void} - -END of generated section - -Others... -Returns the line number of the line with the caret. - - -\membersection{wxStyledTextCtrl::GetCurrentPos}\label{wxstyledtextctrlgetcurrentpos} - -\func{int}{GetCurrentPos}{\void} - -Returns the position of the caret. - - -\membersection{wxStyledTextCtrl::GetDocPointer}\label{wxstyledtextctrlgetdocpointer} - -\func{void*}{GetDocPointer}{\void} - -Retrieve a pointer to the document object. - - -\membersection{wxStyledTextCtrl::GetEOLMode}\label{wxstyledtextctrlgeteolmode} - -\func{int}{GetEOLMode}{\void} - -Retrieve the current end of line mode - one of CRLF, CR, or LF. - - -\membersection{wxStyledTextCtrl::GetEdgeColour}\label{wxstyledtextctrlgetedgecolour} - -\func{wxColour}{GetEdgeColour}{\void} - -Retrieve the colour used in edge indication. - - -\membersection{wxStyledTextCtrl::GetEdgeColumn}\label{wxstyledtextctrlgetedgecolumn} - -\func{int}{GetEdgeColumn}{\void} - -Retrieve the column number which text should be kept within. - - -\membersection{wxStyledTextCtrl::GetEdgeMode}\label{wxstyledtextctrlgetedgemode} - -\func{int}{GetEdgeMode}{\void} - -Retrieve the edge highlight mode. - - -\membersection{wxStyledTextCtrl::GetEndAtLastLine}\label{wxstyledtextctrlgetendatlastline} - -\func{bool}{GetEndAtLastLine}{\void} - -Retrieve whether the maximum scroll position has the last -line at the bottom of the view. - - -\membersection{wxStyledTextCtrl::GetEndStyled}\label{wxstyledtextctrlgetendstyled} - -\func{int}{GetEndStyled}{\void} - -Retrieve the position of the last correctly styled character. - - -\membersection{wxStyledTextCtrl::GetFirstVisibleLine}\label{wxstyledtextctrlgetfirstvisibleline} - -\func{int}{GetFirstVisibleLine}{\void} - -Retrieve the display line at the top of the display. - - -\membersection{wxStyledTextCtrl::GetFoldExpanded}\label{wxstyledtextctrlgetfoldexpanded} - -\func{bool}{GetFoldExpanded}{\param{int }{line}} - -Is a header line expanded? - - -\membersection{wxStyledTextCtrl::GetFoldLevel}\label{wxstyledtextctrlgetfoldlevel} - -\func{int}{GetFoldLevel}{\param{int }{line}} - -Retrieve the fold level of a line. - - -\membersection{wxStyledTextCtrl::GetFoldParent}\label{wxstyledtextctrlgetfoldparent} - -\func{int}{GetFoldParent}{\param{int }{line}} - -Find the parent line of a child line. - - -\membersection{wxStyledTextCtrl::GetHighlightGuide}\label{wxstyledtextctrlgethighlightguide} - -\func{int}{GetHighlightGuide}{\void} - -Get the highlighted indentation guide column. - - -\membersection{wxStyledTextCtrl::GetIndent}\label{wxstyledtextctrlgetindent} - -\func{int}{GetIndent}{\void} - -Retrieve indentation size. - - -\membersection{wxStyledTextCtrl::GetIndentationGuides}\label{wxstyledtextctrlgetindentationguides} - -\func{bool}{GetIndentationGuides}{\void} - -Are the indentation guides visible? - - -\membersection{wxStyledTextCtrl::GetLastChild}\label{wxstyledtextctrlgetlastchild} - -\func{int}{GetLastChild}{\param{int }{line}, \param{int }{level}} - -Find the last child line of a header line. - - -\membersection{wxStyledTextCtrl::GetLastKeydownProcessed}\label{wxstyledtextctrlgetlastkeydownprocessed} - -\func{bool}{GetLastKeydownProcessed}{\void} - -Can be used to prevent the EVT\_CHAR handler from adding the char - - -\membersection{wxStyledTextCtrl::GetLayoutCache}\label{wxstyledtextctrlgetlayoutcache} - -\func{int}{GetLayoutCache}{\void} - -Retrieve the degree of caching of layout information. - - -\membersection{wxStyledTextCtrl::GetLength}\label{wxstyledtextctrlgetlength} - -\func{int}{GetLength}{\void} - -Returns the number of characters in the document. - - -\membersection{wxStyledTextCtrl::GetLexer}\label{wxstyledtextctrlgetlexer} - -\func{int}{GetLexer}{\void} - -Retrieve the lexing language of the document. - - -\membersection{wxStyledTextCtrl::GetLine}\label{wxstyledtextctrlgetline} - -\func{wxString}{GetLine}{\param{int }{line}} - -Retrieve the contents of a line. - - -\membersection{wxStyledTextCtrl::GetLineCount}\label{wxstyledtextctrlgetlinecount} - -\func{int}{GetLineCount}{\void} - -Returns the number of lines in the document. There is always at least one. - - -\membersection{wxStyledTextCtrl::GetLineEndPosition}\label{wxstyledtextctrlgetlineendposition} - -\func{int}{GetLineEndPosition}{\param{int }{line}} - -Get the position after the last visible characters on a line. - - -\membersection{wxStyledTextCtrl::GetLineIndentPosition}\label{wxstyledtextctrlgetlineindentposition} - -\func{int}{GetLineIndentPosition}{\param{int }{line}} - -Retrieve the position before the first non indentation character on a line. - - -\membersection{wxStyledTextCtrl::GetLineIndentation}\label{wxstyledtextctrlgetlineindentation} - -\func{int}{GetLineIndentation}{\param{int }{line}} - -Retrieve the number of columns that a line is indented. - - -\membersection{wxStyledTextCtrl::GetLineRaw}\label{wxstyledtextctrlgetlineraw} - -\func{wxCharBuffer}{GetLineRaw}{\param{int }{line}} - -Retrieve the contents of a line. - - -\membersection{wxStyledTextCtrl::GetLineSelEndPosition}\label{wxstyledtextctrlgetlineselendposition} - -\func{int}{GetLineSelEndPosition}{\param{int }{line}} - -Retrieve the position of the end of the selection at the given line (INVALID\_POSITION if no selection on this line). - - -\membersection{wxStyledTextCtrl::GetLineSelStartPosition}\label{wxstyledtextctrlgetlineselstartposition} - -\func{int}{GetLineSelStartPosition}{\param{int }{line}} - -Retrieve the position of the start of the selection at the given line (INVALID\_POSITION if no selection on this line). - - -\membersection{wxStyledTextCtrl::GetLineState}\label{wxstyledtextctrlgetlinestate} - -\func{int}{GetLineState}{\param{int }{line}} - -Retrieve the extra styling information for a line. - - -\membersection{wxStyledTextCtrl::GetLineVisible}\label{wxstyledtextctrlgetlinevisible} - -\func{bool}{GetLineVisible}{\param{int }{line}} - -Is a line visible? - - -\membersection{wxStyledTextCtrl::GetMarginLeft}\label{wxstyledtextctrlgetmarginleft} - -\func{int}{GetMarginLeft}{\void} - -Returns the size in pixels of the left margin. - - -\membersection{wxStyledTextCtrl::GetMarginMask}\label{wxstyledtextctrlgetmarginmask} - -\func{int}{GetMarginMask}{\param{int }{margin}} - -Retrieve the marker mask of a margin. - - -\membersection{wxStyledTextCtrl::GetMarginRight}\label{wxstyledtextctrlgetmarginright} - -\func{int}{GetMarginRight}{\void} - -Returns the size in pixels of the right margin. - - -\membersection{wxStyledTextCtrl::GetMarginSensitive}\label{wxstyledtextctrlgetmarginsensitive} - -\func{bool}{GetMarginSensitive}{\param{int }{margin}} - -Retrieve the mouse click sensitivity of a margin. - - -\membersection{wxStyledTextCtrl::GetMarginType}\label{wxstyledtextctrlgetmargintype} - -\func{int}{GetMarginType}{\param{int }{margin}} - -Retrieve the type of a margin. - - -\membersection{wxStyledTextCtrl::GetMarginWidth}\label{wxstyledtextctrlgetmarginwidth} - -\func{int}{GetMarginWidth}{\param{int }{margin}} - -Retrieve the width of a margin in pixels. - - -\membersection{wxStyledTextCtrl::GetMaxLineState}\label{wxstyledtextctrlgetmaxlinestate} - -\func{int}{GetMaxLineState}{\void} - -Retrieve the last line number that has line state. - - -\membersection{wxStyledTextCtrl::GetModEventMask}\label{wxstyledtextctrlgetmodeventmask} - -\func{int}{GetModEventMask}{\void} - -Get which document modification events are sent to the container. - - -\membersection{wxStyledTextCtrl::GetModify}\label{wxstyledtextctrlgetmodify} - -\func{bool}{GetModify}{\void} - -Is the document different from when it was last saved? - - -\membersection{wxStyledTextCtrl::GetMouseDownCaptures}\label{wxstyledtextctrlgetmousedowncaptures} - -\func{bool}{GetMouseDownCaptures}{\void} - -Get whether mouse gets captured. - - -\membersection{wxStyledTextCtrl::GetMouseDwellTime}\label{wxstyledtextctrlgetmousedwelltime} - -\func{int}{GetMouseDwellTime}{\void} - -Retrieve the time the mouse must sit still to generate a mouse dwell event. - - -\membersection{wxStyledTextCtrl::GetOvertype}\label{wxstyledtextctrlgetovertype} - -\func{bool}{GetOvertype}{\void} - -Returns true if overtype mode is active otherwise false is returned. - - -\membersection{wxStyledTextCtrl::GetPasteConvertEndings}\label{wxstyledtextctrlgetpasteconvertendings} - -\func{bool}{GetPasteConvertEndings}{\void} - -Get convert-on-paste setting - - -\membersection{wxStyledTextCtrl::GetPrintColourMode}\label{wxstyledtextctrlgetprintcolourmode} - -\func{int}{GetPrintColourMode}{\void} - -Returns the print colour mode. - - -\membersection{wxStyledTextCtrl::GetPrintMagnification}\label{wxstyledtextctrlgetprintmagnification} - -\func{int}{GetPrintMagnification}{\void} - -Returns the print magnification. - - -\membersection{wxStyledTextCtrl::GetPrintWrapMode}\label{wxstyledtextctrlgetprintwrapmode} - -\func{int}{GetPrintWrapMode}{\void} - -Is printing line wrapped? - - -\membersection{wxStyledTextCtrl::GetProperty}\label{wxstyledtextctrlgetproperty} - -\func{wxString}{GetProperty}{\param{const wxString\& }{key}} - -Retrieve a 'property' value previously set with SetProperty. - - -\membersection{wxStyledTextCtrl::GetPropertyExpanded}\label{wxstyledtextctrlgetpropertyexpanded} - -\func{wxString}{GetPropertyExpanded}{\param{const wxString\& }{key}} - -Retrieve a 'property' value previously set with SetProperty, -with '\$()' variable replacement on returned buffer. - - -\membersection{wxStyledTextCtrl::GetPropertyInt}\label{wxstyledtextctrlgetpropertyint} - -\func{int}{GetPropertyInt}{\param{const wxString\& }{key}} - -Retrieve a 'property' value previously set with SetProperty, -interpreted as an int AFTER any '\$()' variable replacement. - - -\membersection{wxStyledTextCtrl::GetReadOnly}\label{wxstyledtextctrlgetreadonly} - -\func{bool}{GetReadOnly}{\void} - -In read-only mode? - - -\membersection{wxStyledTextCtrl::GetSTCCursor}\label{wxstyledtextctrlgetstccursor} - -\func{int}{GetSTCCursor}{\void} - -Get cursor type. - - -\membersection{wxStyledTextCtrl::GetSTCFocus}\label{wxstyledtextctrlgetstcfocus} - -\func{bool}{GetSTCFocus}{\void} - -Get internal focus flag. - - -\membersection{wxStyledTextCtrl::GetScrollWidth}\label{wxstyledtextctrlgetscrollwidth} - -\func{int}{GetScrollWidth}{\void} - -Retrieve the document width assumed for scrolling. - - -\membersection{wxStyledTextCtrl::GetSearchFlags}\label{wxstyledtextctrlgetsearchflags} - -\func{int}{GetSearchFlags}{\void} - -Get the search flags used by SearchInTarget. - - -\membersection{wxStyledTextCtrl::GetSelAlpha}\label{wxstyledtextctrlgetselalpha} - -\func{int}{GetSelAlpha}{\void} - -Get the alpha of the selection. - - -\membersection{wxStyledTextCtrl::GetSelectedText}\label{wxstyledtextctrlgetselectedtext} - -\func{wxString}{GetSelectedText}{\void} - -Retrieve the selected text. - - -\membersection{wxStyledTextCtrl::GetSelectedTextRaw}\label{wxstyledtextctrlgetselectedtextraw} - -\func{wxCharBuffer}{GetSelectedTextRaw}{\void} - -Retrieve the selected text. - - -\membersection{wxStyledTextCtrl::GetSelection}\label{wxstyledtextctrlgetselection} - -\func{void}{GetSelection}{\param{int* }{OUTPUT}, \param{int* }{OUTPUT}} - - -\membersection{wxStyledTextCtrl::GetSelectionEnd}\label{wxstyledtextctrlgetselectionend} - -\func{int}{GetSelectionEnd}{\void} - -Returns the position at the end of the selection. - - -\membersection{wxStyledTextCtrl::GetSelectionMode}\label{wxstyledtextctrlgetselectionmode} - -\func{int}{GetSelectionMode}{\void} - -Get the mode of the current selection. - - -\membersection{wxStyledTextCtrl::GetSelectionStart}\label{wxstyledtextctrlgetselectionstart} - -\func{int}{GetSelectionStart}{\void} - -Returns the position at the start of the selection. - - -\membersection{wxStyledTextCtrl::GetStatus}\label{wxstyledtextctrlgetstatus} - -\func{int}{GetStatus}{\void} - -Get error status. - - -\membersection{wxStyledTextCtrl::GetStyleAt}\label{wxstyledtextctrlgetstyleat} - -\func{int}{GetStyleAt}{\param{int }{pos}} - -Returns the style byte at the position. - - -\membersection{wxStyledTextCtrl::GetStyleBits}\label{wxstyledtextctrlgetstylebits} - -\func{int}{GetStyleBits}{\void} - -Retrieve number of bits in style bytes used to hold the lexical state. - - -\membersection{wxStyledTextCtrl::GetStyleBitsNeeded}\label{wxstyledtextctrlgetstylebitsneeded} - -\func{int}{GetStyleBitsNeeded}{\void} - -Retrieve the number of bits the current lexer needs for styling. - - -\membersection{wxStyledTextCtrl::GetStyledText}\label{wxstyledtextctrlgetstyledtext} - -\func{wxMemoryBuffer}{GetStyledText}{\param{int }{startPos}, \param{int }{endPos}} - -Retrieve a buffer of cells. - - -\membersection{wxStyledTextCtrl::GetTabIndents}\label{wxstyledtextctrlgettabindents} - -\func{bool}{GetTabIndents}{\void} - -Does a tab pressed when caret is within indentation indent? - - -\membersection{wxStyledTextCtrl::GetTabWidth}\label{wxstyledtextctrlgettabwidth} - -\func{int}{GetTabWidth}{\void} - -Retrieve the visible size of a tab. - - -\membersection{wxStyledTextCtrl::GetTargetEnd}\label{wxstyledtextctrlgettargetend} - -\func{int}{GetTargetEnd}{\void} - -Get the position that ends the target. - - -\membersection{wxStyledTextCtrl::GetTargetStart}\label{wxstyledtextctrlgettargetstart} - -\func{int}{GetTargetStart}{\void} - -Get the position that starts the target. - - -\membersection{wxStyledTextCtrl::GetText}\label{wxstyledtextctrlgettext} - -\func{wxString}{GetText}{\void} - -Retrieve all the text in the document. - - -\membersection{wxStyledTextCtrl::GetTextLength}\label{wxstyledtextctrlgettextlength} - -\func{int}{GetTextLength}{\void} - -Retrieve the number of characters in the document. - - -\membersection{wxStyledTextCtrl::GetTextRange}\label{wxstyledtextctrlgettextrange} - -\func{wxString}{GetTextRange}{\param{int }{startPos}, \param{int }{endPos}} - -Retrieve a range of text. - - -\membersection{wxStyledTextCtrl::GetTextRangeRaw}\label{wxstyledtextctrlgettextrangeraw} - -\func{wxCharBuffer}{GetTextRangeRaw}{\param{int }{startPos}, \param{int }{endPos}} - -Retrieve a range of text. - - -\membersection{wxStyledTextCtrl::GetTextRaw}\label{wxstyledtextctrlgettextraw} - -\func{wxCharBuffer}{GetTextRaw}{\void} - -Retrieve all the text in the document. - - -\membersection{wxStyledTextCtrl::GetTwoPhaseDraw}\label{wxstyledtextctrlgettwophasedraw} - -\func{bool}{GetTwoPhaseDraw}{\void} - -Is drawing done in two phases with backgrounds drawn before foregrounds? - - -\membersection{wxStyledTextCtrl::GetUndoCollection}\label{wxstyledtextctrlgetundocollection} - -\func{bool}{GetUndoCollection}{\void} - -Is undo history being collected? - - -\membersection{wxStyledTextCtrl::GetUseAntiAliasing}\label{wxstyledtextctrlgetuseantialiasing} - -\func{bool}{GetUseAntiAliasing}{\void} - -Returns the current UseAntiAliasing setting. - - -\membersection{wxStyledTextCtrl::GetUseHorizontalScrollBar}\label{wxstyledtextctrlgetusehorizontalscrollbar} - -\func{bool}{GetUseHorizontalScrollBar}{\void} - -Is the horizontal scroll bar visible? - - -\membersection{wxStyledTextCtrl::GetUseTabs}\label{wxstyledtextctrlgetusetabs} - -\func{bool}{GetUseTabs}{\void} - -Retrieve whether tabs will be used in indentation. - - -\membersection{wxStyledTextCtrl::GetUseVerticalScrollBar}\label{wxstyledtextctrlgetuseverticalscrollbar} - -\func{bool}{GetUseVerticalScrollBar}{\void} - -Is the vertical scroll bar visible? - - -\membersection{wxStyledTextCtrl::GetViewEOL}\label{wxstyledtextctrlgetvieweol} - -\func{bool}{GetViewEOL}{\void} - -Are the end of line characters visible? - - -\membersection{wxStyledTextCtrl::GetViewWhiteSpace}\label{wxstyledtextctrlgetviewwhitespace} - -\func{int}{GetViewWhiteSpace}{\void} - -Are white space characters currently visible? -Returns one of SCWS\_* constants. - - -\membersection{wxStyledTextCtrl::GetWrapMode}\label{wxstyledtextctrlgetwrapmode} - -\func{int}{GetWrapMode}{\void} - -Retrieve whether text is word wrapped. - - -\membersection{wxStyledTextCtrl::GetWrapStartIndent}\label{wxstyledtextctrlgetwrapstartindent} - -\func{int}{GetWrapStartIndent}{\void} - -Retrive the start indent for wrapped lines. - - -\membersection{wxStyledTextCtrl::GetWrapVisualFlags}\label{wxstyledtextctrlgetwrapvisualflags} - -\func{int}{GetWrapVisualFlags}{\void} - -Retrive the display mode of visual flags for wrapped lines. - - -\membersection{wxStyledTextCtrl::GetWrapVisualFlagsLocation}\label{wxstyledtextctrlgetwrapvisualflagslocation} - -\func{int}{GetWrapVisualFlagsLocation}{\void} - -Retrive the location of visual flags for wrapped lines. - - -\membersection{wxStyledTextCtrl::GetXOffset}\label{wxstyledtextctrlgetxoffset} - -\func{int}{GetXOffset}{\void} - - -\membersection{wxStyledTextCtrl::GetZoom}\label{wxstyledtextctrlgetzoom} - -\func{int}{GetZoom}{\void} - -Retrieve the zoom level. - - -\membersection{wxStyledTextCtrl::GotoLine}\label{wxstyledtextctrlgotoline} - -\func{void}{GotoLine}{\param{int }{line}} - -Set caret to start of a line and ensure it is visible. - - -\membersection{wxStyledTextCtrl::GotoPos}\label{wxstyledtextctrlgotopos} - -\func{void}{GotoPos}{\param{int }{pos}} - -Set caret to a position and ensure it is visible. - - -\membersection{wxStyledTextCtrl::HideLines}\label{wxstyledtextctrlhidelines} - -\func{void}{HideLines}{\param{int }{lineStart}, \param{int }{lineEnd}} - -Make a range of lines invisible. - - -\membersection{wxStyledTextCtrl::HideSelection}\label{wxstyledtextctrlhideselection} - -\func{void}{HideSelection}{\param{bool }{normal}} - -Draw the selection in normal style or with selection highlighted. - - -\membersection{wxStyledTextCtrl::Home}\label{wxstyledtextctrlhome} - -\func{void}{Home}{\void} - -Move caret to first position on line. - - -\membersection{wxStyledTextCtrl::HomeDisplay}\label{wxstyledtextctrlhomedisplay} - -\func{void}{HomeDisplay}{\void} - -Move caret to first position on display line. - - -\membersection{wxStyledTextCtrl::HomeDisplayExtend}\label{wxstyledtextctrlhomedisplayextend} - -\func{void}{HomeDisplayExtend}{\void} - -Move caret to first position on display line extending selection to -new caret position. - - -\membersection{wxStyledTextCtrl::HomeExtend}\label{wxstyledtextctrlhomeextend} - -\func{void}{HomeExtend}{\void} - -Move caret to first position on line extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::HomeRectExtend}\label{wxstyledtextctrlhomerectextend} - -\func{void}{HomeRectExtend}{\void} - -Move caret to first position on line, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::HomeWrap}\label{wxstyledtextctrlhomewrap} - -\func{void}{HomeWrap}{\void} - -These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)? -except they behave differently when word-wrap is enabled: -They go first to the start / end of the display line, like (Home|LineEnd)Display -The difference is that, the cursor is already at the point, it goes on to the start -or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?. - - -\membersection{wxStyledTextCtrl::HomeWrapExtend}\label{wxstyledtextctrlhomewrapextend} - -\func{void}{HomeWrapExtend}{\void} - - -\membersection{wxStyledTextCtrl::IndicatorGetForeground}\label{wxstyledtextctrlindicatorgetforeground} - -\func{wxColour}{IndicatorGetForeground}{\param{int }{indic}} - -Retrieve the foreground colour of an indicator. - - -\membersection{wxStyledTextCtrl::IndicatorGetStyle}\label{wxstyledtextctrlindicatorgetstyle} - -\func{int}{IndicatorGetStyle}{\param{int }{indic}} - -Retrieve the style of an indicator. - - -\membersection{wxStyledTextCtrl::IndicatorSetForeground}\label{wxstyledtextctrlindicatorsetforeground} - -\func{void}{IndicatorSetForeground}{\param{int }{indic}, \param{const wxColour\& }{fore}} - -Set the foreground colour of an indicator. - - -\membersection{wxStyledTextCtrl::IndicatorSetStyle}\label{wxstyledtextctrlindicatorsetstyle} - -\func{void}{IndicatorSetStyle}{\param{int }{indic}, \param{int }{style}} - -Set an indicator to plain, squiggle or TT. - - -\membersection{wxStyledTextCtrl::InsertText}\label{wxstyledtextctrlinserttext} - -\func{void}{InsertText}{\param{int }{pos}, \param{const wxString\& }{text}} - -Insert string at a position. - - -\membersection{wxStyledTextCtrl::InsertTextRaw}\label{wxstyledtextctrlinserttextraw} - -\func{void}{InsertTextRaw}{\param{int }{pos}, \param{const char* }{text}} - -Insert string at a position. - - -\membersection{wxStyledTextCtrl::LineCopy}\label{wxstyledtextctrllinecopy} - -\func{void}{LineCopy}{\void} - -Copy the line containing the caret. - - -\membersection{wxStyledTextCtrl::LineCut}\label{wxstyledtextctrllinecut} - -\func{void}{LineCut}{\void} - -Cut the line containing the caret. - - -\membersection{wxStyledTextCtrl::LineDelete}\label{wxstyledtextctrllinedelete} - -\func{void}{LineDelete}{\void} - -Delete the line containing the caret. - - -\membersection{wxStyledTextCtrl::LineDown}\label{wxstyledtextctrllinedown} - -\func{void}{LineDown}{\void} - -Move caret down one line. - - -\membersection{wxStyledTextCtrl::LineDownExtend}\label{wxstyledtextctrllinedownextend} - -\func{void}{LineDownExtend}{\void} - -Move caret down one line extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::LineDownRectExtend}\label{wxstyledtextctrllinedownrectextend} - -\func{void}{LineDownRectExtend}{\void} - -Move caret down one line, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::LineDuplicate}\label{wxstyledtextctrllineduplicate} - -\func{void}{LineDuplicate}{\void} - -Duplicate the current line. - - -\membersection{wxStyledTextCtrl::LineEnd}\label{wxstyledtextctrllineend} - -\func{void}{LineEnd}{\void} - -Move caret to last position on line. - - -\membersection{wxStyledTextCtrl::LineEndDisplay}\label{wxstyledtextctrllineenddisplay} - -\func{void}{LineEndDisplay}{\void} - -Move caret to last position on display line. - - -\membersection{wxStyledTextCtrl::LineEndDisplayExtend}\label{wxstyledtextctrllineenddisplayextend} - -\func{void}{LineEndDisplayExtend}{\void} - -Move caret to last position on display line extending selection to new -caret position. - - -\membersection{wxStyledTextCtrl::LineEndExtend}\label{wxstyledtextctrllineendextend} - -\func{void}{LineEndExtend}{\void} - -Move caret to last position on line extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::LineEndRectExtend}\label{wxstyledtextctrllineendrectextend} - -\func{void}{LineEndRectExtend}{\void} - -Move caret to last position on line, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::LineEndWrap}\label{wxstyledtextctrllineendwrap} - -\func{void}{LineEndWrap}{\void} - - -\membersection{wxStyledTextCtrl::LineEndWrapExtend}\label{wxstyledtextctrllineendwrapextend} - -\func{void}{LineEndWrapExtend}{\void} - - -\membersection{wxStyledTextCtrl::LineFromPosition}\label{wxstyledtextctrllinefromposition} - -\func{int}{LineFromPosition}{\param{int }{pos}} - -Retrieve the line containing a position. - - -\membersection{wxStyledTextCtrl::LineLength}\label{wxstyledtextctrllinelength} - -\func{int}{LineLength}{\param{int }{line}} - -How many characters are on a line, not including end of line characters? - - -\membersection{wxStyledTextCtrl::LineScroll}\label{wxstyledtextctrllinescroll} - -\func{void}{LineScroll}{\param{int }{columns}, \param{int }{lines}} - -Scroll horizontally and vertically. - - -\membersection{wxStyledTextCtrl::LineScrollDown}\label{wxstyledtextctrllinescrolldown} - -\func{void}{LineScrollDown}{\void} - -Scroll the document down, keeping the caret visible. - - -\membersection{wxStyledTextCtrl::LineScrollUp}\label{wxstyledtextctrllinescrollup} - -\func{void}{LineScrollUp}{\void} - -Scroll the document up, keeping the caret visible. - - -\membersection{wxStyledTextCtrl::LineTranspose}\label{wxstyledtextctrllinetranspose} - -\func{void}{LineTranspose}{\void} - -Switch the current line with the previous. - - -\membersection{wxStyledTextCtrl::LineUp}\label{wxstyledtextctrllineup} - -\func{void}{LineUp}{\void} - -Move caret up one line. - - -\membersection{wxStyledTextCtrl::LineUpExtend}\label{wxstyledtextctrllineupextend} - -\func{void}{LineUpExtend}{\void} - -Move caret up one line extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::LineUpRectExtend}\label{wxstyledtextctrllineuprectextend} - -\func{void}{LineUpRectExtend}{\void} - -Move caret up one line, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::LinesJoin}\label{wxstyledtextctrllinesjoin} - -\func{void}{LinesJoin}{\void} - -Join the lines in the target. - - -\membersection{wxStyledTextCtrl::LinesOnScreen}\label{wxstyledtextctrllinesonscreen} - -\func{int}{LinesOnScreen}{\void} - -Retrieves the number of lines completely visible. - - -\membersection{wxStyledTextCtrl::LinesSplit}\label{wxstyledtextctrllinessplit} - -\func{void}{LinesSplit}{\param{int }{pixelWidth}} - -Split the lines in the target into lines that are less wide than pixelWidth -where possible. - - -\membersection{wxStyledTextCtrl::LoadFile}\label{wxstyledtextctrlloadfile} - -\func{bool}{LoadFile}{\param{const wxString\& }{filename}} - -Load the contents of filename into the editor - - -\membersection{wxStyledTextCtrl::LowerCase}\label{wxstyledtextctrllowercase} - -\func{void}{LowerCase}{\void} - -Transform the selection to lower case. - - -\membersection{wxStyledTextCtrl::MarkerAdd}\label{wxstyledtextctrlmarkeradd} - -\func{int}{MarkerAdd}{\param{int }{line}, \param{int }{markerNumber}} - -Add a marker to a line, returning an ID which can be used to find or delete the marker. - - -\membersection{wxStyledTextCtrl::MarkerAddSet}\label{wxstyledtextctrlmarkeraddset} - -\func{void}{MarkerAddSet}{\param{int }{line}, \param{int }{set}} - -Add a set of markers to a line. - - -\membersection{wxStyledTextCtrl::MarkerDefine}\label{wxstyledtextctrlmarkerdefine} - -\func{void}{MarkerDefine}{\param{int }{markerNumber}, \param{int }{markerSymbol}, \param{const wxColour\& }{foreground = wxNullColour}, \param{const wxColour\& }{background = wxNullColour}} - -Set the symbol used for a particular marker number, -and optionally the fore and background colours. - - -\membersection{wxStyledTextCtrl::MarkerDefineBitmap}\label{wxstyledtextctrlmarkerdefinebitmap} - -\func{void}{MarkerDefineBitmap}{\param{int }{markerNumber}, \param{const wxBitmap\& }{bmp}} - -Define a marker from a bitmap - - -\membersection{wxStyledTextCtrl::MarkerDelete}\label{wxstyledtextctrlmarkerdelete} - -\func{void}{MarkerDelete}{\param{int }{line}, \param{int }{markerNumber}} - -Delete a marker from a line. - - -\membersection{wxStyledTextCtrl::MarkerDeleteAll}\label{wxstyledtextctrlmarkerdeleteall} - -\func{void}{MarkerDeleteAll}{\param{int }{markerNumber}} - -Delete all markers with a particular number from all lines. - - -\membersection{wxStyledTextCtrl::MarkerDeleteHandle}\label{wxstyledtextctrlmarkerdeletehandle} - -\func{void}{MarkerDeleteHandle}{\param{int }{handle}} - -Delete a marker. - - -\membersection{wxStyledTextCtrl::MarkerGet}\label{wxstyledtextctrlmarkerget} - -\func{int}{MarkerGet}{\param{int }{line}} - -Get a bit mask of all the markers set on a line. - - -\membersection{wxStyledTextCtrl::MarkerLineFromHandle}\label{wxstyledtextctrlmarkerlinefromhandle} - -\func{int}{MarkerLineFromHandle}{\param{int }{handle}} - -Retrieve the line number at which a particular marker is located. - - -\membersection{wxStyledTextCtrl::MarkerNext}\label{wxstyledtextctrlmarkernext} - -\func{int}{MarkerNext}{\param{int }{lineStart}, \param{int }{markerMask}} - -Find the next line after lineStart that includes a marker in mask. - - -\membersection{wxStyledTextCtrl::MarkerPrevious}\label{wxstyledtextctrlmarkerprevious} - -\func{int}{MarkerPrevious}{\param{int }{lineStart}, \param{int }{markerMask}} - -Find the previous line before lineStart that includes a marker in mask. - - -\membersection{wxStyledTextCtrl::MarkerSetAlpha}\label{wxstyledtextctrlmarkersetalpha} - -\func{void}{MarkerSetAlpha}{\param{int }{markerNumber}, \param{int }{alpha}} - -Set the alpha used for a marker that is drawn in the text area, not the margin. - - -\membersection{wxStyledTextCtrl::MarkerSetBackground}\label{wxstyledtextctrlmarkersetbackground} - -\func{void}{MarkerSetBackground}{\param{int }{markerNumber}, \param{const wxColour\& }{back}} - -Set the background colour used for a particular marker number. - - -\membersection{wxStyledTextCtrl::MarkerSetForeground}\label{wxstyledtextctrlmarkersetforeground} - -\func{void}{MarkerSetForeground}{\param{int }{markerNumber}, \param{const wxColour\& }{fore}} - -Set the foreground colour used for a particular marker number. - - -\membersection{wxStyledTextCtrl::MoveCaretInsideView}\label{wxstyledtextctrlmovecaretinsideview} - -\func{void}{MoveCaretInsideView}{\void} - -Move the caret inside current view if it's not there already. - - -\membersection{wxStyledTextCtrl::NewLine}\label{wxstyledtextctrlnewline} - -\func{void}{NewLine}{\void} - -Insert a new line, may use a CRLF, CR or LF depending on EOL mode. - - -\membersection{wxStyledTextCtrl::PageDown}\label{wxstyledtextctrlpagedown} - -\func{void}{PageDown}{\void} - -Move caret one page down. - - -\membersection{wxStyledTextCtrl::PageDownExtend}\label{wxstyledtextctrlpagedownextend} - -\func{void}{PageDownExtend}{\void} - -Move caret one page down extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::PageDownRectExtend}\label{wxstyledtextctrlpagedownrectextend} - -\func{void}{PageDownRectExtend}{\void} - -Move caret one page down, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::PageUp}\label{wxstyledtextctrlpageup} - -\func{void}{PageUp}{\void} - -Move caret one page up. - - -\membersection{wxStyledTextCtrl::PageUpExtend}\label{wxstyledtextctrlpageupextend} - -\func{void}{PageUpExtend}{\void} - -Move caret one page up extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::PageUpRectExtend}\label{wxstyledtextctrlpageuprectextend} - -\func{void}{PageUpRectExtend}{\void} - -Move caret one page up, extending rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::ParaDown}\label{wxstyledtextctrlparadown} - -\func{void}{ParaDown}{\void} - -Move caret between paragraphs (delimited by empty lines). - - -\membersection{wxStyledTextCtrl::ParaDownExtend}\label{wxstyledtextctrlparadownextend} - -\func{void}{ParaDownExtend}{\void} - - -\membersection{wxStyledTextCtrl::ParaUp}\label{wxstyledtextctrlparaup} - -\func{void}{ParaUp}{\void} - - -\membersection{wxStyledTextCtrl::ParaUpExtend}\label{wxstyledtextctrlparaupextend} - -\func{void}{ParaUpExtend}{\void} - - -\membersection{wxStyledTextCtrl::Paste}\label{wxstyledtextctrlpaste} - -\func{void}{Paste}{\void} - -Paste the contents of the clipboard into the document replacing the selection. - - -\membersection{wxStyledTextCtrl::PointFromPosition}\label{wxstyledtextctrlpointfromposition} - -\func{wxPoint}{PointFromPosition}{\param{int }{pos}} - -Retrieve the point in the window where a position is displayed. - - -\membersection{wxStyledTextCtrl::PositionAfter}\label{wxstyledtextctrlpositionafter} - -\func{int}{PositionAfter}{\param{int }{pos}} - -Given a valid document position, return the next position taking code -page into account. Maximum value returned is the last position in the document. - - -\membersection{wxStyledTextCtrl::PositionBefore}\label{wxstyledtextctrlpositionbefore} - -\func{int}{PositionBefore}{\param{int }{pos}} - -Given a valid document position, return the previous position taking code -page into account. Returns 0 if passed 0. - - -\membersection{wxStyledTextCtrl::PositionFromLine}\label{wxstyledtextctrlpositionfromline} - -\func{int}{PositionFromLine}{\param{int }{line}} - -Retrieve the position at the start of a line. - - -\membersection{wxStyledTextCtrl::PositionFromPoint}\label{wxstyledtextctrlpositionfrompoint} - -\func{int}{PositionFromPoint}{\param{wxPoint }{pt}} - -Find the position from a point within the window. - - -\membersection{wxStyledTextCtrl::PositionFromPointClose}\label{wxstyledtextctrlpositionfrompointclose} - -\func{int}{PositionFromPointClose}{\param{int }{x}, \param{int }{y}} - -Find the position from a point within the window but return -INVALID\_POSITION if not close to text. - - -\membersection{wxStyledTextCtrl::Redo}\label{wxstyledtextctrlredo} - -\func{void}{Redo}{\void} - -Redoes the next action on the undo history. - - -\membersection{wxStyledTextCtrl::RegisterImage}\label{wxstyledtextctrlregisterimage} - -\func{void}{RegisterImage}{\param{int }{type}, \param{const wxBitmap\& }{bmp}} - -Register an image for use in autocompletion lists. - - -\membersection{wxStyledTextCtrl::ReleaseDocument}\label{wxstyledtextctrlreleasedocument} - -\func{void}{ReleaseDocument}{\param{void* }{docPointer}} - -Release a reference to the document, deleting document if it fades to black. - - -\membersection{wxStyledTextCtrl::ReplaceSelection}\label{wxstyledtextctrlreplaceselection} - -\func{void}{ReplaceSelection}{\param{const wxString\& }{text}} - -Replace the selected text with the argument text. - - -\membersection{wxStyledTextCtrl::ReplaceTarget}\label{wxstyledtextctrlreplacetarget} - -\func{int}{ReplaceTarget}{\param{const wxString\& }{text}} - -Replace the target text with the argument text. -Text is counted so it can contain NULs. -Returns the length of the replacement text. - - -\membersection{wxStyledTextCtrl::ReplaceTargetRE}\label{wxstyledtextctrlreplacetargetre} - -\func{int}{ReplaceTargetRE}{\param{const wxString\& }{text}} - -Replace the target text with the argument text after \\d processing. -Text is counted so it can contain NULs. -Looks for \\d where d is between 1 and 9 and replaces these with the strings -matched in the last search operation which were surrounded by \\( and \\). -Returns the length of the replacement text including any change -caused by processing the \\d patterns. - - -\membersection{wxStyledTextCtrl::SaveFile}\label{wxstyledtextctrlsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{filename}} - -Write the contents of the editor to filename - - -\membersection{wxStyledTextCtrl::ScrollToColumn}\label{wxstyledtextctrlscrolltocolumn} - -\func{void}{ScrollToColumn}{\param{int }{column}} - -Scroll enough to make the given column visible - - -\membersection{wxStyledTextCtrl::ScrollToLine}\label{wxstyledtextctrlscrolltoline} - -\func{void}{ScrollToLine}{\param{int }{line}} - -Scroll enough to make the given line visible - - -\membersection{wxStyledTextCtrl::SearchAnchor}\label{wxstyledtextctrlsearchanchor} - -\func{void}{SearchAnchor}{\void} - -Sets the current caret position to be the search anchor. - - -\membersection{wxStyledTextCtrl::SearchInTarget}\label{wxstyledtextctrlsearchintarget} - -\func{int}{SearchInTarget}{\param{const wxString\& }{text}} - -Search for a counted string in the target and set the target to the found -range. Text is counted so it can contain NULs. -Returns length of range or -1 for failure in which case target is not moved. - - -\membersection{wxStyledTextCtrl::SearchNext}\label{wxstyledtextctrlsearchnext} - -\func{int}{SearchNext}{\param{int }{flags}, \param{const wxString\& }{text}} - -Find some text starting at the search anchor. -Does not ensure the selection is visible. - - -\membersection{wxStyledTextCtrl::SearchPrev}\label{wxstyledtextctrlsearchprev} - -\func{int}{SearchPrev}{\param{int }{flags}, \param{const wxString\& }{text}} - -Find some text starting at the search anchor and moving backwards. -Does not ensure the selection is visible. - - -\membersection{wxStyledTextCtrl::SelectAll}\label{wxstyledtextctrlselectall} - -\func{void}{SelectAll}{\void} - -Select all the text in the document. - - -\membersection{wxStyledTextCtrl::SelectionDuplicate}\label{wxstyledtextctrlselectionduplicate} - -\func{void}{SelectionDuplicate}{\void} - -Duplicate the selection. If selection empty duplicate the line containing the caret. - - -\membersection{wxStyledTextCtrl::SelectionIsRectangle}\label{wxstyledtextctrlselectionisrectangle} - -\func{bool}{SelectionIsRectangle}{\void} - -Is the selection rectangular? The alternative is the more common stream selection. - - -\membersection{wxStyledTextCtrl::SendMsg}\label{wxstyledtextctrlsendmsg} - -\func{long}{SendMsg}{\param{int }{msg}, \param{long }{wp = 0}, \param{long }{lp = 0}} - -Send a message to Scintilla - - -\membersection{wxStyledTextCtrl::SetAnchor}\label{wxstyledtextctrlsetanchor} - -\func{void}{SetAnchor}{\param{int }{posAnchor}} - -Set the selection anchor to a position. The anchor is the opposite -end of the selection from the caret. - - -\membersection{wxStyledTextCtrl::SetBackSpaceUnIndents}\label{wxstyledtextctrlsetbackspaceunindents} - -\func{void}{SetBackSpaceUnIndents}{\param{bool }{bsUnIndents}} - -Sets whether a backspace pressed when caret is within indentation unindents. - - -\membersection{wxStyledTextCtrl::SetBufferedDraw}\label{wxstyledtextctrlsetbuffereddraw} - -\func{void}{SetBufferedDraw}{\param{bool }{buffered}} - -If drawing is buffered then each line of text is drawn into a bitmap buffer -before drawing it to the screen to avoid flicker. - - -\membersection{wxStyledTextCtrl::SetCaretForeground}\label{wxstyledtextctrlsetcaretforeground} - -\func{void}{SetCaretForeground}{\param{const wxColour\& }{fore}} - -Set the foreground colour of the caret. - - -\membersection{wxStyledTextCtrl::SetCaretLineBackAlpha}\label{wxstyledtextctrlsetcaretlinebackalpha} - -\func{void}{SetCaretLineBackAlpha}{\param{int }{alpha}} - -Set background alpha of the caret line. - - -\membersection{wxStyledTextCtrl::SetCaretLineBackground}\label{wxstyledtextctrlsetcaretlinebackground} - -\func{void}{SetCaretLineBackground}{\param{const wxColour\& }{back}} - -Set the colour of the background of the line containing the caret. - - -\membersection{wxStyledTextCtrl::SetCaretLineVisible}\label{wxstyledtextctrlsetcaretlinevisible} - -\func{void}{SetCaretLineVisible}{\param{bool }{show}} - -Display the background of the line containing the caret in a different colour. - - -\membersection{wxStyledTextCtrl::SetCaretPeriod}\label{wxstyledtextctrlsetcaretperiod} - -\func{void}{SetCaretPeriod}{\param{int }{periodMilliseconds}} - -Get the time in milliseconds that the caret is on and off. 0 = steady on. - - -\membersection{wxStyledTextCtrl::SetCaretSticky}\label{wxstyledtextctrlsetcaretsticky} - -\func{void}{SetCaretSticky}{\param{bool }{useCaretStickyBehaviour}} - -Stop the caret preferred x position changing when the user types. - - -\membersection{wxStyledTextCtrl::SetCaretWidth}\label{wxstyledtextctrlsetcaretwidth} - -\func{void}{SetCaretWidth}{\param{int }{pixelWidth}} - -Set the width of the insert mode caret. - - -\membersection{wxStyledTextCtrl::SetCharsDefault}\label{wxstyledtextctrlsetcharsdefault} - -\func{void}{SetCharsDefault}{\void} - -Reset the set of characters for whitespace and word characters to the defaults. - - -\membersection{wxStyledTextCtrl::SetCodePage}\label{wxstyledtextctrlsetcodepage} - -\func{void}{SetCodePage}{\param{int }{codePage}} - -Set the code page used to interpret the bytes of the document as characters. - - -\membersection{wxStyledTextCtrl::SetControlCharSymbol}\label{wxstyledtextctrlsetcontrolcharsymbol} - -\func{void}{SetControlCharSymbol}{\param{int }{symbol}} - -Change the way control characters are displayed: -If symbol is < 32, keep the drawn way, else, use the given character. - - -\membersection{wxStyledTextCtrl::SetCurrentPos}\label{wxstyledtextctrlsetcurrentpos} - -\func{void}{SetCurrentPos}{\param{int }{pos}} - -Sets the position of the caret. - - -\membersection{wxStyledTextCtrl::SetDocPointer}\label{wxstyledtextctrlsetdocpointer} - -\func{void}{SetDocPointer}{\param{void* }{docPointer}} - -Change the document object used. - - -\membersection{wxStyledTextCtrl::SetEOLMode}\label{wxstyledtextctrlseteolmode} - -\func{void}{SetEOLMode}{\param{int }{eolMode}} - -Set the current end of line mode. - - -\membersection{wxStyledTextCtrl::SetEdgeColour}\label{wxstyledtextctrlsetedgecolour} - -\func{void}{SetEdgeColour}{\param{const wxColour\& }{edgeColour}} - -Change the colour used in edge indication. - - -\membersection{wxStyledTextCtrl::SetEdgeColumn}\label{wxstyledtextctrlsetedgecolumn} - -\func{void}{SetEdgeColumn}{\param{int }{column}} - -Set the column number of the edge. -If text goes past the edge then it is highlighted. - - -\membersection{wxStyledTextCtrl::SetEdgeMode}\label{wxstyledtextctrlsetedgemode} - -\func{void}{SetEdgeMode}{\param{int }{mode}} - -The edge may be displayed by a line (EDGE\_LINE) or by highlighting text that -goes beyond it (EDGE\_BACKGROUND) or not displayed at all (EDGE\_NONE). - - -\membersection{wxStyledTextCtrl::SetEndAtLastLine}\label{wxstyledtextctrlsetendatlastline} - -\func{void}{SetEndAtLastLine}{\param{bool }{endAtLastLine}} - -Sets the scroll range so that maximum scroll position has -the last line at the bottom of the view (default). -Setting this to false allows scrolling one page below the last line. - - -\membersection{wxStyledTextCtrl::SetFoldExpanded}\label{wxstyledtextctrlsetfoldexpanded} - -\func{void}{SetFoldExpanded}{\param{int }{line}, \param{bool }{expanded}} - -Show the children of a header line. - - -\membersection{wxStyledTextCtrl::SetFoldFlags}\label{wxstyledtextctrlsetfoldflags} - -\func{void}{SetFoldFlags}{\param{int }{flags}} - -Set some style options for folding. - - -\membersection{wxStyledTextCtrl::SetFoldLevel}\label{wxstyledtextctrlsetfoldlevel} - -\func{void}{SetFoldLevel}{\param{int }{line}, \param{int }{level}} - -Set the fold level of a line. -This encodes an integer level along with flags indicating whether the -line is a header and whether it is effectively white space. - - -\membersection{wxStyledTextCtrl::SetFoldMarginColour}\label{wxstyledtextctrlsetfoldmargincolour} - -\func{void}{SetFoldMarginColour}{\param{bool }{useSetting}, \param{const wxColour\& }{back}} - -Set the colours used as a chequerboard pattern in the fold margin - - -\membersection{wxStyledTextCtrl::SetFoldMarginHiColour}\label{wxstyledtextctrlsetfoldmarginhicolour} - -\func{void}{SetFoldMarginHiColour}{\param{bool }{useSetting}, \param{const wxColour\& }{fore}} - - -\membersection{wxStyledTextCtrl::SetHScrollBar}\label{wxstyledtextctrlsethscrollbar} - -\func{void}{SetHScrollBar}{\param{wxScrollBar* }{bar}} - -Set the horizontal scrollbar to use instead of the ont that's built-in. - - -\membersection{wxStyledTextCtrl::SetHighlightGuide}\label{wxstyledtextctrlsethighlightguide} - -\func{void}{SetHighlightGuide}{\param{int }{column}} - -Set the highlighted indentation guide column. -0 = no highlighted guide. - - -\membersection{wxStyledTextCtrl::SetHotspotActiveBackground}\label{wxstyledtextctrlsethotspotactivebackground} - -\func{void}{SetHotspotActiveBackground}{\param{bool }{useSetting}, \param{const wxColour\& }{back}} - -Set a back colour for active hotspots. - - -\membersection{wxStyledTextCtrl::SetHotspotActiveForeground}\label{wxstyledtextctrlsethotspotactiveforeground} - -\func{void}{SetHotspotActiveForeground}{\param{bool }{useSetting}, \param{const wxColour\& }{fore}} - -Set a fore colour for active hotspots. - - -\membersection{wxStyledTextCtrl::SetHotspotActiveUnderline}\label{wxstyledtextctrlsethotspotactiveunderline} - -\func{void}{SetHotspotActiveUnderline}{\param{bool }{underline}} - -Enable / Disable underlining active hotspots. - - -\membersection{wxStyledTextCtrl::SetHotspotSingleLine}\label{wxstyledtextctrlsethotspotsingleline} - -\func{void}{SetHotspotSingleLine}{\param{bool }{singleLine}} - -Limit hotspots to single line so hotspots on two lines don't merge. - - -\membersection{wxStyledTextCtrl::SetIndent}\label{wxstyledtextctrlsetindent} - -\func{void}{SetIndent}{\param{int }{indentSize}} - -Set the number of spaces used for one level of indentation. - - -\membersection{wxStyledTextCtrl::SetIndentationGuides}\label{wxstyledtextctrlsetindentationguides} - -\func{void}{SetIndentationGuides}{\param{bool }{show}} - -Show or hide indentation guides. - - -\membersection{wxStyledTextCtrl::SetKeyWords}\label{wxstyledtextctrlsetkeywords} - -\func{void}{SetKeyWords}{\param{int }{keywordSet}, \param{const wxString\& }{keyWords}} - -Set up the key words used by the lexer. - - -\membersection{wxStyledTextCtrl::SetLastKeydownProcessed}\label{wxstyledtextctrlsetlastkeydownprocessed} - -\func{void}{SetLastKeydownProcessed}{\param{bool }{val}} - - -\membersection{wxStyledTextCtrl::SetLayoutCache}\label{wxstyledtextctrlsetlayoutcache} - -\func{void}{SetLayoutCache}{\param{int }{mode}} - -Sets the degree of caching of layout information. - - -\membersection{wxStyledTextCtrl::SetLexer}\label{wxstyledtextctrlsetlexer} - -\func{void}{SetLexer}{\param{int }{lexer}} - -Set the lexing language of the document. - - -\membersection{wxStyledTextCtrl::SetLexerLanguage}\label{wxstyledtextctrlsetlexerlanguage} - -\func{void}{SetLexerLanguage}{\param{const wxString\& }{language}} - -Set the lexing language of the document based on string name. - - -\membersection{wxStyledTextCtrl::SetLineIndentation}\label{wxstyledtextctrlsetlineindentation} - -\func{void}{SetLineIndentation}{\param{int }{line}, \param{int }{indentSize}} - -Change the indentation of a line to a number of columns. - - -\membersection{wxStyledTextCtrl::SetLineState}\label{wxstyledtextctrlsetlinestate} - -\func{void}{SetLineState}{\param{int }{line}, \param{int }{state}} - -Used to hold extra styling information for each line. - - -\membersection{wxStyledTextCtrl::SetMarginLeft}\label{wxstyledtextctrlsetmarginleft} - -\func{void}{SetMarginLeft}{\param{int }{pixelWidth}} - -Sets the size in pixels of the left margin. - - -\membersection{wxStyledTextCtrl::SetMarginMask}\label{wxstyledtextctrlsetmarginmask} - -\func{void}{SetMarginMask}{\param{int }{margin}, \param{int }{mask}} - -Set a mask that determines which markers are displayed in a margin. - - -\membersection{wxStyledTextCtrl::SetMarginRight}\label{wxstyledtextctrlsetmarginright} - -\func{void}{SetMarginRight}{\param{int }{pixelWidth}} - -Sets the size in pixels of the right margin. - - -\membersection{wxStyledTextCtrl::SetMarginSensitive}\label{wxstyledtextctrlsetmarginsensitive} - -\func{void}{SetMarginSensitive}{\param{int }{margin}, \param{bool }{sensitive}} - -Make a margin sensitive or insensitive to mouse clicks. - - -\membersection{wxStyledTextCtrl::SetMarginType}\label{wxstyledtextctrlsetmargintype} - -\func{void}{SetMarginType}{\param{int }{margin}, \param{int }{marginType}} - -Set a margin to be either numeric or symbolic. - - -\membersection{wxStyledTextCtrl::SetMarginWidth}\label{wxstyledtextctrlsetmarginwidth} - -\func{void}{SetMarginWidth}{\param{int }{margin}, \param{int }{pixelWidth}} - -Set the width of a margin to a width expressed in pixels. - - -\membersection{wxStyledTextCtrl::SetMargins}\label{wxstyledtextctrlsetmargins} - -\func{void}{SetMargins}{\param{int }{left}, \param{int }{right}} - -Set the left and right margin in the edit area, measured in pixels. - - -\membersection{wxStyledTextCtrl::SetModEventMask}\label{wxstyledtextctrlsetmodeventmask} - -\func{void}{SetModEventMask}{\param{int }{mask}} - -Set which document modification events are sent to the container. - - -\membersection{wxStyledTextCtrl::SetMouseDownCaptures}\label{wxstyledtextctrlsetmousedowncaptures} - -\func{void}{SetMouseDownCaptures}{\param{bool }{captures}} - -Set whether the mouse is captured when its button is pressed. - - -\membersection{wxStyledTextCtrl::SetMouseDwellTime}\label{wxstyledtextctrlsetmousedwelltime} - -\func{void}{SetMouseDwellTime}{\param{int }{periodMilliseconds}} - -Sets the time the mouse must sit still to generate a mouse dwell event. - - -\membersection{wxStyledTextCtrl::SetOvertype}\label{wxstyledtextctrlsetovertype} - -\func{void}{SetOvertype}{\param{bool }{overtype}} - -Set to overtype (true) or insert mode. - - -\membersection{wxStyledTextCtrl::SetPasteConvertEndings}\label{wxstyledtextctrlsetpasteconvertendings} - -\func{void}{SetPasteConvertEndings}{\param{bool }{convert}} - -Enable/Disable convert-on-paste for line endings - - -\membersection{wxStyledTextCtrl::SetPrintColourMode}\label{wxstyledtextctrlsetprintcolourmode} - -\func{void}{SetPrintColourMode}{\param{int }{mode}} - -Modify colours when printing for clearer printed text. - - -\membersection{wxStyledTextCtrl::SetPrintMagnification}\label{wxstyledtextctrlsetprintmagnification} - -\func{void}{SetPrintMagnification}{\param{int }{magnification}} - -Sets the print magnification added to the point size of each style for printing. - - -\membersection{wxStyledTextCtrl::SetPrintWrapMode}\label{wxstyledtextctrlsetprintwrapmode} - -\func{void}{SetPrintWrapMode}{\param{int }{mode}} - -Set printing to line wrapped (SC\_WRAP\_WORD) or not line wrapped (SC\_WRAP\_NONE). - - -\membersection{wxStyledTextCtrl::SetProperty}\label{wxstyledtextctrlsetproperty} - -\func{void}{SetProperty}{\param{const wxString\& }{key}, \param{const wxString\& }{value}} - -Set up a value that may be used by a lexer for some optional feature. - - -\membersection{wxStyledTextCtrl::SetReadOnly}\label{wxstyledtextctrlsetreadonly} - -\func{void}{SetReadOnly}{\param{bool }{readOnly}} - -Set to read only or read write. - - -\membersection{wxStyledTextCtrl::SetSTCCursor}\label{wxstyledtextctrlsetstccursor} - -\func{void}{SetSTCCursor}{\param{int }{cursorType}} - -Sets the cursor to one of the SC\_CURSOR* values. - - -\membersection{wxStyledTextCtrl::SetSTCFocus}\label{wxstyledtextctrlsetstcfocus} - -\func{void}{SetSTCFocus}{\param{bool }{focus}} - -Change internal focus flag. - - -\membersection{wxStyledTextCtrl::SetSavePoint}\label{wxstyledtextctrlsetsavepoint} - -\func{void}{SetSavePoint}{\void} - -Remember the current position in the undo history as the position -at which the document was saved. - - -\membersection{wxStyledTextCtrl::SetScrollWidth}\label{wxstyledtextctrlsetscrollwidth} - -\func{void}{SetScrollWidth}{\param{int }{pixelWidth}} - -Sets the document width assumed for scrolling. - - -\membersection{wxStyledTextCtrl::SetSearchFlags}\label{wxstyledtextctrlsetsearchflags} - -\func{void}{SetSearchFlags}{\param{int }{flags}} - -Set the search flags used by SearchInTarget. - - -\membersection{wxStyledTextCtrl::SetSelAlpha}\label{wxstyledtextctrlsetselalpha} - -\func{void}{SetSelAlpha}{\param{int }{alpha}} - -Set the alpha of the selection. - - -\membersection{wxStyledTextCtrl::SetSelBackground}\label{wxstyledtextctrlsetselbackground} - -\func{void}{SetSelBackground}{\param{bool }{useSetting}, \param{const wxColour\& }{back}} - -Set the background colour of the selection and whether to use this setting. - - -\membersection{wxStyledTextCtrl::SetSelForeground}\label{wxstyledtextctrlsetselforeground} - -\func{void}{SetSelForeground}{\param{bool }{useSetting}, \param{const wxColour\& }{fore}} - -Set the foreground colour of the selection and whether to use this setting. - - -\membersection{wxStyledTextCtrl::SetSelection}\label{wxstyledtextctrlsetselection} - -\func{void}{SetSelection}{\param{int }{start}, \param{int }{end}} - -Select a range of text. - - -\membersection{wxStyledTextCtrl::SetSelectionEnd}\label{wxstyledtextctrlsetselectionend} - -\func{void}{SetSelectionEnd}{\param{int }{pos}} - -Sets the position that ends the selection - this becomes the currentPosition. - - -\membersection{wxStyledTextCtrl::SetSelectionMode}\label{wxstyledtextctrlsetselectionmode} - -\func{void}{SetSelectionMode}{\param{int }{mode}} - -Set the selection mode to stream (SC\_SEL\_STREAM) or rectangular (SC\_SEL\_RECTANGLE) or -by lines (SC\_SEL\_LINES). - - -\membersection{wxStyledTextCtrl::SetSelectionStart}\label{wxstyledtextctrlsetselectionstart} - -\func{void}{SetSelectionStart}{\param{int }{pos}} - -Sets the position that starts the selection - this becomes the anchor. - - -\membersection{wxStyledTextCtrl::SetStatus}\label{wxstyledtextctrlsetstatus} - -\func{void}{SetStatus}{\param{int }{statusCode}} - -Change error status - 0 = OK. - - -\membersection{wxStyledTextCtrl::SetStyleBits}\label{wxstyledtextctrlsetstylebits} - -\func{void}{SetStyleBits}{\param{int }{bits}} - -Divide each styling byte into lexical class bits (default: 5) and indicator -bits (default: 3). If a lexer requires more than 32 lexical states, then this -is used to expand the possible states. - - -\membersection{wxStyledTextCtrl::SetStyleBytes}\label{wxstyledtextctrlsetstylebytes} - -\func{void}{SetStyleBytes}{\param{int }{length}, \param{char* }{styleBytes}} - -Set the styles for a segment of the document. - - -\membersection{wxStyledTextCtrl::SetStyling}\label{wxstyledtextctrlsetstyling} - -\func{void}{SetStyling}{\param{int }{length}, \param{int }{style}} - -Change style from current styling position for length characters to a style -and move the current styling position to after this newly styled segment. - - -\membersection{wxStyledTextCtrl::SetTabIndents}\label{wxstyledtextctrlsettabindents} - -\func{void}{SetTabIndents}{\param{bool }{tabIndents}} - -Sets whether a tab pressed when caret is within indentation indents. - - -\membersection{wxStyledTextCtrl::SetTabWidth}\label{wxstyledtextctrlsettabwidth} - -\func{void}{SetTabWidth}{\param{int }{tabWidth}} - -Change the visible size of a tab to be a multiple of the width of a space character. - - -\membersection{wxStyledTextCtrl::SetTargetEnd}\label{wxstyledtextctrlsettargetend} - -\func{void}{SetTargetEnd}{\param{int }{pos}} - -Sets the position that ends the target which is used for updating the -document without affecting the scroll position. - - -\membersection{wxStyledTextCtrl::SetTargetStart}\label{wxstyledtextctrlsettargetstart} - -\func{void}{SetTargetStart}{\param{int }{pos}} - -Sets the position that starts the target which is used for updating the -document without affecting the scroll position. - - -\membersection{wxStyledTextCtrl::SetText}\label{wxstyledtextctrlsettext} - -\func{void}{SetText}{\param{const wxString\& }{text}} - -Replace the contents of the document with the argument text. - - -\membersection{wxStyledTextCtrl::SetTextRaw}\label{wxstyledtextctrlsettextraw} - -\func{void}{SetTextRaw}{\param{const char* }{text}} - -Replace the contents of the document with the argument text. - - -\membersection{wxStyledTextCtrl::SetTwoPhaseDraw}\label{wxstyledtextctrlsettwophasedraw} - -\func{void}{SetTwoPhaseDraw}{\param{bool }{twoPhase}} - -In twoPhaseDraw mode, drawing is performed in two phases, first the background -and then the foreground. This avoids chopping off characters that overlap the next run. - - -\membersection{wxStyledTextCtrl::SetUndoCollection}\label{wxstyledtextctrlsetundocollection} - -\func{void}{SetUndoCollection}{\param{bool }{collectUndo}} - -Choose between collecting actions into the undo -history and discarding them. - - -\membersection{wxStyledTextCtrl::SetUseAntiAliasing}\label{wxstyledtextctrlsetuseantialiasing} - -\func{void}{SetUseAntiAliasing}{\param{bool }{useAA}} - -Specify whether anti-aliased fonts should be used. Will have no effect -on some platforms, but on some (wxMac for example) can greatly improve -performance. - - -\membersection{wxStyledTextCtrl::SetUseHorizontalScrollBar}\label{wxstyledtextctrlsetusehorizontalscrollbar} - -\func{void}{SetUseHorizontalScrollBar}{\param{bool }{show}} - -Show or hide the horizontal scroll bar. - - -\membersection{wxStyledTextCtrl::SetUseTabs}\label{wxstyledtextctrlsetusetabs} - -\func{void}{SetUseTabs}{\param{bool }{useTabs}} - -Indentation will only use space characters if useTabs is false, otherwise -it will use a combination of tabs and spaces. - - -\membersection{wxStyledTextCtrl::SetUseVerticalScrollBar}\label{wxstyledtextctrlsetuseverticalscrollbar} - -\func{void}{SetUseVerticalScrollBar}{\param{bool }{show}} - -Show or hide the vertical scroll bar. - - -\membersection{wxStyledTextCtrl::SetVScrollBar}\label{wxstyledtextctrlsetvscrollbar} - -\func{void}{SetVScrollBar}{\param{wxScrollBar* }{bar}} - -Set the vertical scrollbar to use instead of the ont that's built-in. - - -\membersection{wxStyledTextCtrl::SetViewEOL}\label{wxstyledtextctrlsetvieweol} - -\func{void}{SetViewEOL}{\param{bool }{visible}} - -Make the end of line characters visible or invisible. - - -\membersection{wxStyledTextCtrl::SetViewWhiteSpace}\label{wxstyledtextctrlsetviewwhitespace} - -\func{void}{SetViewWhiteSpace}{\param{int }{viewWS}} - -Make white space characters invisible, always visible or visible outside indentation. - - -\membersection{wxStyledTextCtrl::SetVisiblePolicy}\label{wxstyledtextctrlsetvisiblepolicy} - -\func{void}{SetVisiblePolicy}{\param{int }{visiblePolicy}, \param{int }{visibleSlop}} - -Set the way the display area is determined when a particular line -is to be moved to by Find, FindNext, GotoLine, etc. - - -\membersection{wxStyledTextCtrl::SetWhitespaceBackground}\label{wxstyledtextctrlsetwhitespacebackground} - -\func{void}{SetWhitespaceBackground}{\param{bool }{useSetting}, \param{const wxColour\& }{back}} - -Set the background colour of all whitespace and whether to use this setting. - - -\membersection{wxStyledTextCtrl::SetWhitespaceChars}\label{wxstyledtextctrlsetwhitespacechars} - -\func{void}{SetWhitespaceChars}{\param{const wxString\& }{characters}} - -Set the set of characters making up whitespace for when moving or selecting by word. -Should be called after SetWordChars. - - -\membersection{wxStyledTextCtrl::SetWhitespaceForeground}\label{wxstyledtextctrlsetwhitespaceforeground} - -\func{void}{SetWhitespaceForeground}{\param{bool }{useSetting}, \param{const wxColour\& }{fore}} - -Set the foreground colour of all whitespace and whether to use this setting. - - -\membersection{wxStyledTextCtrl::SetWordChars}\label{wxstyledtextctrlsetwordchars} - -\func{void}{SetWordChars}{\param{const wxString\& }{characters}} - -Set the set of characters making up words for when moving or selecting by word. -First sets deaults like SetCharsDefault. - - -\membersection{wxStyledTextCtrl::SetWrapMode}\label{wxstyledtextctrlsetwrapmode} - -\func{void}{SetWrapMode}{\param{int }{mode}} - -Sets whether text is word wrapped. - - -\membersection{wxStyledTextCtrl::SetWrapStartIndent}\label{wxstyledtextctrlsetwrapstartindent} - -\func{void}{SetWrapStartIndent}{\param{int }{indent}} - -Set the start indent for wrapped lines. - - -\membersection{wxStyledTextCtrl::SetWrapVisualFlags}\label{wxstyledtextctrlsetwrapvisualflags} - -\func{void}{SetWrapVisualFlags}{\param{int }{wrapVisualFlags}} - -Set the display mode of visual flags for wrapped lines. - - -\membersection{wxStyledTextCtrl::SetWrapVisualFlagsLocation}\label{wxstyledtextctrlsetwrapvisualflagslocation} - -\func{void}{SetWrapVisualFlagsLocation}{\param{int }{wrapVisualFlagsLocation}} - -Set the location of visual flags for wrapped lines. - - -\membersection{wxStyledTextCtrl::SetXCaretPolicy}\label{wxstyledtextctrlsetxcaretpolicy} - -\func{void}{SetXCaretPolicy}{\param{int }{caretPolicy}, \param{int }{caretSlop}} - -Set the way the caret is kept visible when going sideway. -The exclusion zone is given in pixels. - - -\membersection{wxStyledTextCtrl::SetXOffset}\label{wxstyledtextctrlsetxoffset} - -\func{void}{SetXOffset}{\param{int }{newOffset}} - -Get and Set the xOffset (ie, horizonal scroll position). - - -\membersection{wxStyledTextCtrl::SetYCaretPolicy}\label{wxstyledtextctrlsetycaretpolicy} - -\func{void}{SetYCaretPolicy}{\param{int }{caretPolicy}, \param{int }{caretSlop}} - -Set the way the line the caret is on is kept visible. -The exclusion zone is given in lines. - - -\membersection{wxStyledTextCtrl::SetZoom}\label{wxstyledtextctrlsetzoom} - -\func{void}{SetZoom}{\param{int }{zoom}} - -Set the zoom level. This number of points is added to the size of all fonts. -It may be positive to magnify or negative to reduce. - - -\membersection{wxStyledTextCtrl::ShowLines}\label{wxstyledtextctrlshowlines} - -\func{void}{ShowLines}{\param{int }{lineStart}, \param{int }{lineEnd}} - -Make a range of lines visible. - - -\membersection{wxStyledTextCtrl::StartRecord}\label{wxstyledtextctrlstartrecord} - -\func{void}{StartRecord}{\void} - -Start notifying the container of all key presses and commands. - - -\membersection{wxStyledTextCtrl::StartStyling}\label{wxstyledtextctrlstartstyling} - -\func{void}{StartStyling}{\param{int }{pos}, \param{int }{mask}} - -Set the current styling position to pos and the styling mask to mask. -The styling mask can be used to protect some bits in each styling byte from modification. - - -\membersection{wxStyledTextCtrl::StopRecord}\label{wxstyledtextctrlstoprecord} - -\func{void}{StopRecord}{\void} - -Stop notifying the container of all key presses and commands. - - -\membersection{wxStyledTextCtrl::StutteredPageDown}\label{wxstyledtextctrlstutteredpagedown} - -\func{void}{StutteredPageDown}{\void} - -Move caret to bottom of page, or one page down if already at bottom of page. - - -\membersection{wxStyledTextCtrl::StutteredPageDownExtend}\label{wxstyledtextctrlstutteredpagedownextend} - -\func{void}{StutteredPageDownExtend}{\void} - -Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::StutteredPageUp}\label{wxstyledtextctrlstutteredpageup} - -\func{void}{StutteredPageUp}{\void} - -Move caret to top of page, or one page up if already at top of page. - - -\membersection{wxStyledTextCtrl::StutteredPageUpExtend}\label{wxstyledtextctrlstutteredpageupextend} - -\func{void}{StutteredPageUpExtend}{\void} - -Move caret to top of page, or one page up if already at top of page, extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::StyleClearAll}\label{wxstyledtextctrlstyleclearall} - -\func{void}{StyleClearAll}{\void} - -Clear all the styles and make equivalent to the global default style. - - -\membersection{wxStyledTextCtrl::StyleResetDefault}\label{wxstyledtextctrlstyleresetdefault} - -\func{void}{StyleResetDefault}{\void} - -Reset the default style to its state at startup - - -\membersection{wxStyledTextCtrl::StyleSetBackground}\label{wxstyledtextctrlstylesetbackground} - -\func{void}{StyleSetBackground}{\param{int }{style}, \param{const wxColour\& }{back}} - -Set the background colour of a style. - - -\membersection{wxStyledTextCtrl::StyleSetBold}\label{wxstyledtextctrlstylesetbold} - -\func{void}{StyleSetBold}{\param{int }{style}, \param{bool }{bold}} - -Set a style to be bold or not. - - -\membersection{wxStyledTextCtrl::StyleSetCase}\label{wxstyledtextctrlstylesetcase} - -\func{void}{StyleSetCase}{\param{int }{style}, \param{int }{caseForce}} - -Set a style to be mixed case, or to force upper or lower case. - - -\membersection{wxStyledTextCtrl::StyleSetChangeable}\label{wxstyledtextctrlstylesetchangeable} - -\func{void}{StyleSetChangeable}{\param{int }{style}, \param{bool }{changeable}} - -Set a style to be changeable or not (read only). -Experimental feature, currently buggy. - - -\membersection{wxStyledTextCtrl::StyleSetCharacterSet}\label{wxstyledtextctrlstylesetcharacterset} - -\func{void}{StyleSetCharacterSet}{\param{int }{style}, \param{int }{characterSet}} - -Set the character set of the font in a style. Converts the Scintilla -character set values to a wxFontEncoding. - - -\membersection{wxStyledTextCtrl::StyleSetEOLFilled}\label{wxstyledtextctrlstyleseteolfilled} - -\func{void}{StyleSetEOLFilled}{\param{int }{style}, \param{bool }{filled}} - -Set a style to have its end of line filled or not. - - -\membersection{wxStyledTextCtrl::StyleSetFaceName}\label{wxstyledtextctrlstylesetfacename} - -\func{void}{StyleSetFaceName}{\param{int }{style}, \param{const wxString\& }{fontName}} - -Set the font of a style. - - -\membersection{wxStyledTextCtrl::StyleSetFont}\label{wxstyledtextctrlstylesetfont} - -\func{void}{StyleSetFont}{\param{int }{styleNum}, \param{wxFont\& }{font}} - -Set style size, face, bold, italic, and underline attributes from -a wxFont's attributes. - - -\membersection{wxStyledTextCtrl::StyleSetFontAttr}\label{wxstyledtextctrlstylesetfontattr} - -\func{void}{StyleSetFontAttr}{\param{int }{styleNum}, \param{int }{size}, \param{const wxString\& }{faceName}, \param{bool }{bold}, \param{bool }{italic}, \param{bool }{underline}, \param{wxFontEncoding }{encoding = wxFONTENCODING\_DEFAULT}} - -Set all font style attributes at once. - - -\membersection{wxStyledTextCtrl::StyleSetFontEncoding}\label{wxstyledtextctrlstylesetfontencoding} - -\func{void}{StyleSetFontEncoding}{\param{int }{style}, \param{wxFontEncoding }{encoding}} - -Set the font encoding to be used by a style. - - -\membersection{wxStyledTextCtrl::StyleSetForeground}\label{wxstyledtextctrlstylesetforeground} - -\func{void}{StyleSetForeground}{\param{int }{style}, \param{const wxColour\& }{fore}} - -Set the foreground colour of a style. - - -\membersection{wxStyledTextCtrl::StyleSetHotSpot}\label{wxstyledtextctrlstylesethotspot} - -\func{void}{StyleSetHotSpot}{\param{int }{style}, \param{bool }{hotspot}} - -Set a style to be a hotspot or not. - - -\membersection{wxStyledTextCtrl::StyleSetItalic}\label{wxstyledtextctrlstylesetitalic} - -\func{void}{StyleSetItalic}{\param{int }{style}, \param{bool }{italic}} - -Set a style to be italic or not. - - -\membersection{wxStyledTextCtrl::StyleSetSize}\label{wxstyledtextctrlstylesetsize} - -\func{void}{StyleSetSize}{\param{int }{style}, \param{int }{sizePoints}} - -Set the size of characters of a style. - - -\membersection{wxStyledTextCtrl::StyleSetSpec}\label{wxstyledtextctrlstylesetspec} - -\func{void}{StyleSetSpec}{\param{int }{styleNum}, \param{const wxString\& }{spec}} - -Extract style settings from a spec-string which is composed of one or -more of the following comma separated elements: -bold turns on bold -italic turns on italics -fore:[name or \#RRGGBB] sets the foreground colour -back:[name or \#RRGGBB] sets the background colour -face:[facename] sets the font face name to use -size:[num] sets the font size in points -eol turns on eol filling -underline turns on underlining - - -\membersection{wxStyledTextCtrl::StyleSetUnderline}\label{wxstyledtextctrlstylesetunderline} - -\func{void}{StyleSetUnderline}{\param{int }{style}, \param{bool }{underline}} - -Set a style to be underlined or not. - - -\membersection{wxStyledTextCtrl::StyleSetVisible}\label{wxstyledtextctrlstylesetvisible} - -\func{void}{StyleSetVisible}{\param{int }{style}, \param{bool }{visible}} - -Set a style to be visible or not. - - -\membersection{wxStyledTextCtrl::Tab}\label{wxstyledtextctrltab} - -\func{void}{Tab}{\void} - -If selection is empty or all on one line replace the selection with a tab character. -If more than one line selected, indent the lines. - - -\membersection{wxStyledTextCtrl::TargetFromSelection}\label{wxstyledtextctrltargetfromselection} - -\func{void}{TargetFromSelection}{\void} - -Make the target range start and end be the same as the selection range start and end. - - -\membersection{wxStyledTextCtrl::TextHeight}\label{wxstyledtextctrltextheight} - -\func{int}{TextHeight}{\param{int }{line}} - -Retrieve the height of a particular line of text in pixels. - - -\membersection{wxStyledTextCtrl::TextWidth}\label{wxstyledtextctrltextwidth} - -\func{int}{TextWidth}{\param{int }{style}, \param{const wxString\& }{text}} - -Measure the pixel width of some text in a particular style. -NUL terminated text argument. -Does not handle tab or control characters. - - -\membersection{wxStyledTextCtrl::ToggleCaretSticky}\label{wxstyledtextctrltogglecaretsticky} - -\func{void}{ToggleCaretSticky}{\void} - -Switch between sticky and non-sticky: meant to be bound to a key. - - -\membersection{wxStyledTextCtrl::ToggleFold}\label{wxstyledtextctrltogglefold} - -\func{void}{ToggleFold}{\param{int }{line}} - -Switch a header line between expanded and contracted. - - -\membersection{wxStyledTextCtrl::Undo}\label{wxstyledtextctrlundo} - -\func{void}{Undo}{\void} - -Undo one action in the undo history. - - -\membersection{wxStyledTextCtrl::UpperCase}\label{wxstyledtextctrluppercase} - -\func{void}{UpperCase}{\void} - -Transform the selection to upper case. - - -\membersection{wxStyledTextCtrl::UsePopUp}\label{wxstyledtextctrlusepopup} - -\func{void}{UsePopUp}{\param{bool }{allowPopUp}} - -Set whether a pop up menu is displayed automatically when the user presses -the wrong mouse button. - - -\membersection{wxStyledTextCtrl::UserListShow}\label{wxstyledtextctrluserlistshow} - -\func{void}{UserListShow}{\param{int }{listType}, \param{const wxString\& }{itemList}} - -Display a list of strings and send notification when user chooses one. - - -\membersection{wxStyledTextCtrl::VCHome}\label{wxstyledtextctrlvchome} - -\func{void}{VCHome}{\void} - -Move caret to before first visible character on line. -If already there move to first character on line. - - -\membersection{wxStyledTextCtrl::VCHomeExtend}\label{wxstyledtextctrlvchomeextend} - -\func{void}{VCHomeExtend}{\void} - -Like VCHome but extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::VCHomeRectExtend}\label{wxstyledtextctrlvchomerectextend} - -\func{void}{VCHomeRectExtend}{\void} - -Move caret to before first visible character on line. -If already there move to first character on line. -In either case, extend rectangular selection to new caret position. - - -\membersection{wxStyledTextCtrl::VCHomeWrap}\label{wxstyledtextctrlvchomewrap} - -\func{void}{VCHomeWrap}{\void} - - -\membersection{wxStyledTextCtrl::VCHomeWrapExtend}\label{wxstyledtextctrlvchomewrapextend} - -\func{void}{VCHomeWrapExtend}{\void} - - -\membersection{wxStyledTextCtrl::VisibleFromDocLine}\label{wxstyledtextctrlvisiblefromdocline} - -\func{int}{VisibleFromDocLine}{\param{int }{line}} - -Find the display line of a document line taking hidden lines into account. - - -\membersection{wxStyledTextCtrl::WordEndPosition}\label{wxstyledtextctrlwordendposition} - -\func{int}{WordEndPosition}{\param{int }{pos}, \param{bool }{onlyWordCharacters}} - -Get position of end of word. - - -\membersection{wxStyledTextCtrl::WordLeft}\label{wxstyledtextctrlwordleft} - -\func{void}{WordLeft}{\void} - -Move caret left one word. - - -\membersection{wxStyledTextCtrl::WordLeftEnd}\label{wxstyledtextctrlwordleftend} - -\func{void}{WordLeftEnd}{\void} - -Move caret left one word, position cursor at end of word. - - -\membersection{wxStyledTextCtrl::WordLeftEndExtend}\label{wxstyledtextctrlwordleftendextend} - -\func{void}{WordLeftEndExtend}{\void} - -Move caret left one word, position cursor at end of word, extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::WordLeftExtend}\label{wxstyledtextctrlwordleftextend} - -\func{void}{WordLeftExtend}{\void} - -Move caret left one word extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::WordPartLeft}\label{wxstyledtextctrlwordpartleft} - -\func{void}{WordPartLeft}{\void} - -Move to the previous change in capitalisation. - - -\membersection{wxStyledTextCtrl::WordPartLeftExtend}\label{wxstyledtextctrlwordpartleftextend} - -\func{void}{WordPartLeftExtend}{\void} - -Move to the previous change in capitalisation extending selection -to new caret position. - - -\membersection{wxStyledTextCtrl::WordPartRight}\label{wxstyledtextctrlwordpartright} - -\func{void}{WordPartRight}{\void} - -Move to the change next in capitalisation. - - -\membersection{wxStyledTextCtrl::WordPartRightExtend}\label{wxstyledtextctrlwordpartrightextend} - -\func{void}{WordPartRightExtend}{\void} - -Move to the next change in capitalisation extending selection -to new caret position. - - -\membersection{wxStyledTextCtrl::WordRight}\label{wxstyledtextctrlwordright} - -\func{void}{WordRight}{\void} - -Move caret right one word. - - -\membersection{wxStyledTextCtrl::WordRightEnd}\label{wxstyledtextctrlwordrightend} - -\func{void}{WordRightEnd}{\void} - -Move caret right one word, position cursor at end of word. - - -\membersection{wxStyledTextCtrl::WordRightEndExtend}\label{wxstyledtextctrlwordrightendextend} - -\func{void}{WordRightEndExtend}{\void} - -Move caret right one word, position cursor at end of word, extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::WordRightExtend}\label{wxstyledtextctrlwordrightextend} - -\func{void}{WordRightExtend}{\void} - -Move caret right one word extending selection to new caret position. - - -\membersection{wxStyledTextCtrl::WordStartPosition}\label{wxstyledtextctrlwordstartposition} - -\func{int}{WordStartPosition}{\param{int }{pos}, \param{bool }{onlyWordCharacters}} - -Get position of start of word. - - -\membersection{wxStyledTextCtrl::WrapCount}\label{wxstyledtextctrlwrapcount} - -\func{int}{WrapCount}{\param{int }{line}} - -The number of display lines needed to wrap a document line - - -\membersection{wxStyledTextCtrl::ZoomIn}\label{wxstyledtextctrlzoomin} - -\func{void}{ZoomIn}{\void} - -Magnify the displayed text by increasing the sizes by 1 point. - - -\membersection{wxStyledTextCtrl::ZoomOut}\label{wxstyledtextctrlzoomout} - -\func{void}{ZoomOut}{\void} - -Make the displayed text smaller by decreasing the sizes by 1 point. - diff --git a/docs/latex/wx/styledtextevent.tex b/docs/latex/wx/styledtextevent.tex deleted file mode 100644 index 3ced1343bc..0000000000 --- a/docs/latex/wx/styledtextevent.tex +++ /dev/null @@ -1,254 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: styledtextevent.tex -%% Purpose: wxStyledTextEvent documentation -%% Author: Francesco Montorsi -%% Created: 2007-08-07 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxStyledTextEvent}}\label{wxstyledtextevent} - -The type of events sent from \helpref{wxStyledTextCtrl}{wxstyledtextctrl}. - -TODO - -\wxheading{Derived from} - -\helpref{wxCommandEvent}{wxcommandevent} - -\wxheading{Include files} - -<wx/stc/stc.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStyledTextEvent::wxStyledTextEvent}\label{wxstyledtexteventwxstyledtextevent} - -\func{}{wxStyledTextEvent}{\param{wxEventType }{commandType = 0}, \param{int }{id = 0}} - - -\func{}{wxStyledTextEvent}{\param{const wxStyledTextEvent\& }{event}} - - -\membersection{wxStyledTextEvent::Clone}\label{wxstyledtexteventclone} - -\constfunc{wxEvent*}{Clone}{\void} - - -\membersection{wxStyledTextEvent::GetAlt}\label{wxstyledtexteventgetalt} - -\constfunc{bool}{GetAlt}{\void} - - -\membersection{wxStyledTextEvent::GetControl}\label{wxstyledtexteventgetcontrol} - -\constfunc{bool}{GetControl}{\void} - - -\membersection{wxStyledTextEvent::GetDragAllowMove}\label{wxstyledtexteventgetdragallowmove} - -\func{bool}{GetDragAllowMove}{\void} - - -\membersection{wxStyledTextEvent::GetDragResult}\label{wxstyledtexteventgetdragresult} - -\func{wxDragResult}{GetDragResult}{\void} - - -\membersection{wxStyledTextEvent::GetDragText}\label{wxstyledtexteventgetdragtext} - -\func{wxString}{GetDragText}{\void} - - -\membersection{wxStyledTextEvent::GetFoldLevelNow}\label{wxstyledtexteventgetfoldlevelnow} - -\constfunc{int}{GetFoldLevelNow}{\void} - - -\membersection{wxStyledTextEvent::GetFoldLevelPrev}\label{wxstyledtexteventgetfoldlevelprev} - -\constfunc{int}{GetFoldLevelPrev}{\void} - - -\membersection{wxStyledTextEvent::GetKey}\label{wxstyledtexteventgetkey} - -\constfunc{int}{GetKey}{\void} - - -\membersection{wxStyledTextEvent::GetLParam}\label{wxstyledtexteventgetlparam} - -\constfunc{int}{GetLParam}{\void} - - -\membersection{wxStyledTextEvent::GetLength}\label{wxstyledtexteventgetlength} - -\constfunc{int}{GetLength}{\void} - - -\membersection{wxStyledTextEvent::GetLine}\label{wxstyledtexteventgetline} - -\constfunc{int}{GetLine}{\void} - - -\membersection{wxStyledTextEvent::GetLinesAdded}\label{wxstyledtexteventgetlinesadded} - -\constfunc{int}{GetLinesAdded}{\void} - - -\membersection{wxStyledTextEvent::GetListType}\label{wxstyledtexteventgetlisttype} - -\constfunc{int}{GetListType}{\void} - - -\membersection{wxStyledTextEvent::GetMargin}\label{wxstyledtexteventgetmargin} - -\constfunc{int}{GetMargin}{\void} - - -\membersection{wxStyledTextEvent::GetMessage}\label{wxstyledtexteventgetmessage} - -\constfunc{int}{GetMessage}{\void} - - -\membersection{wxStyledTextEvent::GetModificationType}\label{wxstyledtexteventgetmodificationtype} - -\constfunc{int}{GetModificationType}{\void} - - -\membersection{wxStyledTextEvent::GetModifiers}\label{wxstyledtexteventgetmodifiers} - -\constfunc{int}{GetModifiers}{\void} - - -\membersection{wxStyledTextEvent::GetPosition}\label{wxstyledtexteventgetposition} - -\constfunc{int}{GetPosition}{\void} - - -\membersection{wxStyledTextEvent::GetShift}\label{wxstyledtexteventgetshift} - -\constfunc{bool}{GetShift}{\void} - - -\membersection{wxStyledTextEvent::GetText}\label{wxstyledtexteventgettext} - -\constfunc{wxString}{GetText}{\void} - - -\membersection{wxStyledTextEvent::GetWParam}\label{wxstyledtexteventgetwparam} - -\constfunc{int}{GetWParam}{\void} - - -\membersection{wxStyledTextEvent::GetX}\label{wxstyledtexteventgetx} - -\constfunc{int}{GetX}{\void} - - -\membersection{wxStyledTextEvent::GetY}\label{wxstyledtexteventgety} - -\constfunc{int}{GetY}{\void} - - -\membersection{wxStyledTextEvent::SetDragAllowMove}\label{wxstyledtexteventsetdragallowmove} - -\func{void}{SetDragAllowMove}{\param{bool }{val}} - - -\membersection{wxStyledTextEvent::SetDragResult}\label{wxstyledtexteventsetdragresult} - -\func{void}{SetDragResult}{\param{wxDragResult }{val}} - - -\membersection{wxStyledTextEvent::SetDragText}\label{wxstyledtexteventsetdragtext} - -\func{void}{SetDragText}{\param{const wxString\& }{val}} - - -\membersection{wxStyledTextEvent::SetFoldLevelNow}\label{wxstyledtexteventsetfoldlevelnow} - -\func{void}{SetFoldLevelNow}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetFoldLevelPrev}\label{wxstyledtexteventsetfoldlevelprev} - -\func{void}{SetFoldLevelPrev}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetKey}\label{wxstyledtexteventsetkey} - -\func{void}{SetKey}{\param{int }{k}} - - -\membersection{wxStyledTextEvent::SetLParam}\label{wxstyledtexteventsetlparam} - -\func{void}{SetLParam}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetLength}\label{wxstyledtexteventsetlength} - -\func{void}{SetLength}{\param{int }{len}} - - -\membersection{wxStyledTextEvent::SetLine}\label{wxstyledtexteventsetline} - -\func{void}{SetLine}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetLinesAdded}\label{wxstyledtexteventsetlinesadded} - -\func{void}{SetLinesAdded}{\param{int }{num}} - - -\membersection{wxStyledTextEvent::SetListType}\label{wxstyledtexteventsetlisttype} - -\func{void}{SetListType}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetMargin}\label{wxstyledtexteventsetmargin} - -\func{void}{SetMargin}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetMessage}\label{wxstyledtexteventsetmessage} - -\func{void}{SetMessage}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetModificationType}\label{wxstyledtexteventsetmodificationtype} - -\func{void}{SetModificationType}{\param{int }{t}} - - -\membersection{wxStyledTextEvent::SetModifiers}\label{wxstyledtexteventsetmodifiers} - -\func{void}{SetModifiers}{\param{int }{m}} - - -\membersection{wxStyledTextEvent::SetPosition}\label{wxstyledtexteventsetposition} - -\func{void}{SetPosition}{\param{int }{pos}} - - -\membersection{wxStyledTextEvent::SetText}\label{wxstyledtexteventsettext} - -\func{void}{SetText}{\param{const wxString\& }{t}} - - -\membersection{wxStyledTextEvent::SetWParam}\label{wxstyledtexteventsetwparam} - -\func{void}{SetWParam}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetX}\label{wxstyledtexteventsetx} - -\func{void}{SetX}{\param{int }{val}} - - -\membersection{wxStyledTextEvent::SetY}\label{wxstyledtexteventsety} - -\func{void}{SetY}{\param{int }{val}} - diff --git a/docs/latex/wx/symbolpickerdialog.tex b/docs/latex/wx/symbolpickerdialog.tex deleted file mode 100644 index 69189638f3..0000000000 --- a/docs/latex/wx/symbolpickerdialog.tex +++ /dev/null @@ -1,188 +0,0 @@ -\section{\class{wxSymbolPickerDialog}}\label{wxsymbolpickerdialog} - -wxSymbolPickerDialog presents the user with a choice of fonts and a grid -of available characters. This modal dialog provides the application with -a selected symbol and optional font selection. - -Although this dialog is contained in the rich text library, the dialog -is generic and can be used in other contexts. - -To use the dialog, pass a default symbol specified as a string, an initial font name, -and a current font name. The difference between the initial font and -current font is that the initial font determines what the font control will be -set to when the dialog shows - an empty string will show the selection {\it normal text}. -The current font, on the other hand, is used by the dialog to determine what font -to display the characters in, even when no initial font is selected. -This allows the user (and application) to distinguish between inserting a -symbol in the current font, and inserting it with a specified font. - -When the dialog is dismissed, the application can get the selected symbol -with GetSymbol and test whether a font was specified with UseNormalFont, -fetching the specified font with GetFontName. - -Here's a realistic example, inserting the supplied symbol into a -rich text control in either the current font or specified font. - -\begin{verbatim} - wxRichTextCtrl* ctrl = (wxRichTextCtrl*) FindWindow(ID_RICHTEXT_CTRL); - - wxTextAttr attr; - attr.SetFlags(wxTEXT_ATTR_FONT); - ctrl->GetStyle(ctrl->GetInsertionPoint(), attr); - - wxString currentFontName; - if (attr.HasFont() && attr.GetFont().Ok()) - currentFontName = attr.GetFont().GetFaceName(); - - // Don't set the initial font in the dialog (so the user is choosing - // 'normal text', i.e. the current font) but do tell the dialog - // what 'normal text' is. - - wxSymbolPickerDialog dlg(wxT("*"), wxEmptyString, currentFontName, this); - - if (dlg.ShowModal() == wxID_OK) - { - if (dlg.HasSelection()) - { - long insertionPoint = ctrl->GetInsertionPoint(); - - ctrl->WriteText(dlg.GetSymbol()); - - if (!dlg.UseNormalFont()) - { - wxFont font(attr.GetFont()); - font.SetFaceName(dlg.GetFontName()); - attr.SetFont(font); - ctrl->SetStyle(insertionPoint, insertionPoint+1, attr); - } - } - } -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/richtext/richtextsymboldlg.h> - -\wxheading{Library} - -\helpref{wxRichtext}{librarieslist} - -\wxheading{Data structures} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSymbolPickerDialog::wxSymbolPickerDialog}\label{wxsymbolpickerdialogwxsymbolpickerdialog} - -\func{}{wxSymbolPickerDialog}{\param{const wxString\& }{symbol}, \param{const wxString\& }{initialFont}, \param{const wxString\& }{normalTextFont}, \param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{title = \_("Symbols")}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE|wxRESIZE\_BORDER|wxCLOSE\_BOX}} - -\func{}{wxSymbolPickerDialog}{\void} - -Constructors. - -\wxheading{Parameters} - -\docparam{symbol}{The initial symbol to show. Specify a single character in a string, or an empty string.} - -\docparam{initialFont}{The initial font to be displayed in the font list. If empty, the item {\it normal text} will be selected.} - -\docparam{normalTextFont}{The font the dialog will use to display the symbols if the initial font is empty.} - -\docparam{parent}{The dialog's parent.} - -\docparam{id}{The dialog's identifier.} - -\docparam{title}{The dialog's caption.} - -\docparam{pos}{The dialog's position.} - -\docparam{size}{The dialog's size.} - -\docparam{style}{The dialog's window style.} - -\membersection{wxSymbolPickerDialog::Create}\label{wxsymbolpickerdialogcreate} - -\func{bool}{Create}{\param{const wxString\& }{symbol}, \param{const wxString\& }{initialFont}, \param{const wxString\& }{normalTextFont}, \param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxString\& }{title = \_("Symbols")}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE|wxRESIZE\_BORDER|wxCLOSE\_BOX}} - -Creation: see \helpref{the constructor}{wxsymbolpickerdialogwxsymbolpickerdialog} for details about the parameters. - -\membersection{wxSymbolPickerDialog::GetFontName}\label{wxsymbolpickerdialoggetfontname} - -\constfunc{wxString}{GetFontName}{\void} - -Returns the font name (the font reflected in the font list). - -\membersection{wxSymbolPickerDialog::GetFromUnicode}\label{wxsymbolpickerdialoggetfromunicode} - -\constfunc{bool}{GetFromUnicode}{\void} - -Returns \true if the dialog is showing the full range of Unicode characters. - -\membersection{wxSymbolPickerDialog::GetNormalTextFontName}\label{wxsymbolpickerdialoggetnormaltextfontname} - -\constfunc{wxString}{GetNormalTextFontName}{\void} - -Gets the font name used for displaying symbols in the absence of a selected font. - -\membersection{wxSymbolPickerDialog::GetSymbol}\label{wxsymbolpickerdialoggetsymbol} - -\constfunc{wxString}{GetSymbol}{\void} - -Gets the current or initial symbol as a string. - -\membersection{wxSymbolPickerDialog::GetSymbolChar}\label{wxsymbolpickerdialoggetsymbolchar} - -\constfunc{int}{GetSymbolChar}{\void} - -Gets the selected symbol character as an integer. - -\membersection{wxSymbolPickerDialog::HasSelection}\label{wxsymbolpickerdialoghasselection} - -\constfunc{bool}{HasSelection}{\void} - -Returns \true if a symbol is selected. - -\membersection{wxSymbolPickerDialog::SetFontName}\label{wxsymbolpickerdialogsetfontname} - -\func{void}{SetFontName}{\param{const wxString\& }{value}} - -Sets the initial/selected font name. - -\membersection{wxSymbolPickerDialog::SetFromUnicode}\label{wxsymbolpickerdialogsetfromunicode} - -\func{void}{SetFromUnicode}{\param{bool }{value}} - -Sets the internal flag indicating that the full Unicode range should be displayed. - -\membersection{wxSymbolPickerDialog::SetNormalTextFontName}\label{wxsymbolpickerdialogsetnormaltextfontname} - -\func{void}{SetNormalTextFontName}{\param{const wxString\& }{value}} - -Sets the name of the font to be used in the absence of a selected font. - -\membersection{wxSymbolPickerDialog::SetSymbol}\label{wxsymbolpickerdialogsetsymbol} - -\func{void}{SetSymbol}{\param{const wxString\& }{value}} - -Sets the symbol as a one or zero character string. - -\membersection{wxSymbolPickerDialog::SetUnicodeMode}\label{wxsymbolpickerdialogsetunicodemode} - -\func{void}{SetUnicodeMode}{\param{bool }{unicodeMode}} - -Sets Unicode display mode. - -\membersection{wxSymbolPickerDialog::UseNormalFont}\label{wxsymbolpickerdialogusenormalfont} - -\constfunc{bool}{UseNormalFont}{\void} - -Returns true if the has specified normal text - that is, there is no selected font. - diff --git a/docs/latex/wx/sysclevt.tex b/docs/latex/wx/sysclevt.tex deleted file mode 100644 index 9019ac1005..0000000000 --- a/docs/latex/wx/sysclevt.tex +++ /dev/null @@ -1,49 +0,0 @@ -\section{\class{wxSysColourChangedEvent}}\label{wxsyscolourchangedevent} - -This class is used for system colour change events, which are generated -when the user changes the colour settings using the control panel. -This is only appropriate under Windows. - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/event.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process a system colour changed event, use this event handler macro to direct input to a member -function that takes a wxSysColourChanged argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_SYS\_COLOUR\_CHANGED(func)}}{Process a wxEVT\_SYS\_COLOUR\_CHANGED event.} -\end{twocollist}% - -\wxheading{Remarks} - -The default event handler for this event propagates the event to child windows, since -Windows only sends the events to top-level windows. If -intercepting this event for a top-level window, remember to call the base class handler, -or to pass the event on to the window's children explicitly. - -\wxheading{See also} - -%\helpref{wxWindow::OnSysColourChanged}{wxwindowonsyscolourchanged}, -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxSysColourChangedEvent::wxSysColourChangedEvent}\label{wxsyscolourchangedeventctor} - -\func{}{wxSysColourChangedEvent}{\void} - -Constructor. - diff --git a/docs/latex/wx/sysopt.tex b/docs/latex/wx/sysopt.tex deleted file mode 100644 index 08eb57b3a8..0000000000 --- a/docs/latex/wx/sysopt.tex +++ /dev/null @@ -1,179 +0,0 @@ -\section{\class{wxSystemOptions}}\label{wxsystemoptions} - -wxSystemOptions stores option/value pairs that wxWidgets itself or -applications can use to alter behaviour at run-time. It can be -used to optimize behaviour that doesn't deserve a distinct API, -but is still important to be able to configure. - -These options are currently recognised by wxWidgets. - -\wxheading{Windows} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Option}}{{\bf Value}} -\twocolitem{no-maskblt}{1 to never use WIN32's MaskBlt function, 0 to allow it to be used where possible. Default: 0. -In some circumstances the MaskBlt function can be slower than using the fallback code, especially if using -DC cacheing. By default, MaskBlt will be used where it is implemented by the operating system and driver.} -\twocolitem{msw.remap}{If 1 (the default), wxToolBar bitmap colours will be remapped -to the current theme's values. Set this to 0 to disable this functionality, for example if you're using -more than 16 colours in your tool bitmaps.} -\twocolitem{msw.window.no-clip-children}{If 1, windows will not automatically get the WS\_CLIPCHILDREN -style. This restores the way windows are refreshed back to the method used in versions of wxWidgets -earlier than 2.5.4, and for some complex window hierarchies it can reduce apparent refresh delays. You may -still specify wxCLIP\_CHILDREN for individual windows.} -\twocolitem{msw.notebook.themed-background}{If set to 0, globally disables themed backgrounds on notebook -pages. Note that this won't disable the theme on the actual notebook background (noticeable only if there are no -pages).} -\twocolitem{msw.staticbox.optimized-paint}{If set to 0, switches off optimized wxStaticBox painting. -Setting this to 0 causes more flicker, but allows applications to paint graphics on the parent of a static box -(the optimized refresh causes any such drawing to disappear).} -\twocolitem{msw.display.directdraw}{If set to 1, use DirectDraw-based implementation of -\helpref{wxDisplay}{wxdisplay}. By default the standard Win32 functions are -used.} -\twocolitem{msw.font.no-proof-quality}{If set to 1, use default fonts quality -instead of proof quality when creating fonts. With proof quality the fonts -have slightly better appearance but not all fonts are available in this -quality, e.g. the Terminal font in small sizes is not and this option may be -used if wider fonts selection is more important than higher quality.} -\end{twocollist} - -\wxheading{GTK+} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Option}}{{\bf Value}} -\twocolitem{gtk.tlw.can-set-transparent}{\helpref{wxTopLevelWindow::CanSetTransparent()}{wxtoplevelwindowcansettransparent} -method normally tries to detect automatically whether transparency for top -level windows is currently supported, however this may sometimes fail and this -option allows to override the automatic detection. Setting it to $1$ makes the -transparency be always available (setting it can still fail, of course) and -setting it to $0$ makes it always unavailable.} -\twocolitem{gtk.desktop}{This option can be set to override the default desktop -environment determination. Supported values are \texttt{GNOME} and \texttt{KDE}.} -\twocolitem{gtk.window.force-background-colour}{If 1, the backgrounds of windows with the wxBG\_STYLE\_COLOUR background style are cleared forcibly instead -of relying on the underlying GTK+ window colour. This works around a display problem when running applications under KDE with the gtk-qt theme installed (0.6 and below).} -\end{twocollist} - -\wxheading{Mac} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Option}}{{\bf Value}} -\twocolitem{mac.window-plain-transition}{If 1, uses a plainer transition when showing -a window. You can also use the symbol wxMAC\_WINDOW\_PLAIN\_TRANSITION.} -\twocolitem{window-default-variant}{The default variant used by windows (cast to integer from the wxWindowVariant enum). -Also known as wxWINDOW\_DEFAULT\_VARIANT.} -\twocolitem{mac.listctrl.always\_use\_generic}{Tells wxListCtrl to use the generic -control even when it is capable of using the native control instead. -Also knwon as wxMAC\_ALWAYS\_USE\_GENERIC\_LISTCTRL.} -\end{twocollist} - -\wxheading{MGL} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Option}}{{\bf Value}} -\twocolitem{mgl.aa-threshold}{Set this integer option to point -size below which fonts are not antialiased. Default: 10.} -\twocolitem{mgl.screen-refresh}{Screen refresh rate in Hz. -A reasonable default is used if not specified.} -\end{twocollist} - -\wxheading{Motif} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Option}}{{\bf Value}} -\twocolitem{motif.largebuttons}{If 1, uses a bigger default size for wxButtons.} -\end{twocollist} - -The compile-time option to include or exclude this functionality -is wxUSE\_SYSTEM\_OPTIONS. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sysopt.h> - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxSystemOptions::wxSystemOptions}\label{wxsystemoptionsctor} - -\func{}{wxSystemOptions}{\void} - -Default constructor. You don't need to create an instance of wxSystemOptions -since all of its functions are static. - - -\membersection{wxSystemOptions::GetOption}\label{wxsystemoptionsgetoption} - -\constfunc{wxString}{GetOption}{\param{const wxString\&}{ name}} - -Gets an option. The function is case-insensitive to {\it name}. - -Returns empty string if the option hasn't been set. - -\wxheading{See also} - -\helpref{wxSystemOptions::SetOption}{wxsystemoptionssetoption},\rtfsp -\helpref{wxSystemOptions::GetOptionInt}{wxsystemoptionsgetoptionint},\rtfsp -\helpref{wxSystemOptions::HasOption}{wxsystemoptionshasoption} - - -\membersection{wxSystemOptions::GetOptionInt}\label{wxsystemoptionsgetoptionint} - -\constfunc{int}{GetOptionInt}{\param{const wxString\&}{ name}} - -Gets an option as an integer. The function is case-insensitive to {\it name}. - -If the option hasn't been set, this function returns $0$. - -\wxheading{See also} - -\helpref{wxSystemOptions::SetOption}{wxsystemoptionssetoption},\rtfsp -\helpref{wxSystemOptions::GetOption}{wxsystemoptionsgetoption},\rtfsp -\helpref{wxSystemOptions::HasOption}{wxsystemoptionshasoption} - - -\membersection{wxSystemOptions::HasOption}\label{wxsystemoptionshasoption} - -\constfunc{bool}{HasOption}{\param{const wxString\&}{ name}} - -Returns \true if the given option is present. The function is case-insensitive to {\it name}. - -\wxheading{See also} - -\helpref{wxSystemOptions::SetOption}{wxsystemoptionssetoption},\rtfsp -\helpref{wxSystemOptions::GetOption}{wxsystemoptionsgetoption},\rtfsp -\helpref{wxSystemOptions::GetOptionInt}{wxsystemoptionsgetoptionint} - - -\membersection{wxSystemOptions::IsFalse}\label{wxsystemoptionsisfalse} - -\constfunc{bool}{IsFalse}{\param{const wxString\&}{ name}} - -Returns \true if the option with the given \arg{name} had been set to $0$ -value. This is mostly useful for boolean options for which you can't use -\texttt{GetOptionInt(name) == 0} as this would also be true if the option -hadn't been set at all. - - -\membersection{wxSystemOptions::SetOption}\label{wxsystemoptionssetoption} - -\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{const wxString\&}{ value}} - -\func{void}{SetOption}{\param{const wxString\&}{ name}, \param{int}{ value}} - -Sets an option. The function is case-insensitive to {\it name}. - -\wxheading{See also} - -\helpref{wxSystemOptions::GetOption}{wxsystemoptionsgetoption},\rtfsp -\helpref{wxSystemOptions::GetOptionInt}{wxsystemoptionsgetoptionint},\rtfsp -\helpref{wxSystemOptions::HasOption}{wxsystemoptionshasoption} - diff --git a/docs/latex/wx/tab.tex b/docs/latex/wx/tab.tex deleted file mode 100644 index 9c3ff6a080..0000000000 --- a/docs/latex/wx/tab.tex +++ /dev/null @@ -1,245 +0,0 @@ -\section{\class{wxTabbedDialog}}\label{wxtabbeddialog} - -A dialog suitable for handling tabs. - -Please note that the preferred class for programming tabbed windows is \helpref{wxNotebook}{wxnotebook}. -This class is retained for backward compatibility. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tab.h> - -\wxheading{See also} - -\helpref{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabbedDialog::wxTabbedDialog} - -\func{}{wxTabbedDialog}{\param{wxWindow *}{parent}, \param{wxWindowID }{id}, - \param{const wxString\& }{title}, \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}, - \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{const wxString\& }{name="dialogBox"}} - -Constructor. - -\membersection{wxTabbedDialog::\destruct{wxTabbedDialog}} - -\func{}{\destruct{wxTabbedDialog}}{\void} - -Destructor. This destructor deletes the tab view associated with the dialog box. -If you do not wish this to happen, set the tab view to NULL before destruction (for example, -in the OnCloseWindow event handler). - -\membersection{wxTabbedDialog::SetTabView} - -\func{void}{SetTabView}{\param{wxTabView *}{view}} - -Sets the tab view associated with the dialog box. - -\membersection{wxTabbedDialog::GetTabView} - -\func{wxTabView *}{GetTabView}{\void} - -Returns the tab view associated with the dialog box. - -\section{\class{wxTabbedPanel}}\label{wxtabbedpanel} - -A panel suitable for handling tabs. - -Please note that the preferred class for programming tabbed windows is \helpref{wxNotebook}{wxnotebook}. -This class is retained for backward compatibility. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tab.h> - -\wxheading{See also} - -\helpref{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabbedPanel::wxTabbedPanel} - -\func{}{wxTabbedPanel}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id}, - \param{const wxPoint\&}{ pos}, \param{const wxSize\&}{ size}, - \param{long}{ style=0}, \param{const wxString\& }{name="panel"}} - -Constructor. - -\membersection{wxTabbedPanel::SetTabView} - -\func{void}{SetTabView}{\param{wxTabView *}{view}} - -Sets the tab view associated with the panel. - -\membersection{wxTabbedPanel::GetTabView} - -\func{wxTabView *}{GetTabView}{\void} - -Returns the tab view associated with the panel. - -\section{\class{wxTabControl}}\label{wxtabcontrol} - -You will rarely need to use this class directly. - -Please note that the preferred class for programming tabbed windows is \helpref{wxNotebook}{wxnotebook}. -This class is retained for backward compatibility. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tab.h> - -\wxheading{See also} - -\overview{Tab classes overview}{wxtaboverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabControl::wxTabControl} - -\func{void}{wxTabControl}{\param{wxTabView *}{view = NULL}} - -Constructor. - -\membersection{wxTabControl::GetColPosition} - -\func{int}{GetColPosition}{\void} - -Returns the position of the tab in the tab column. - -\membersection{wxTabControl::GetFont} - -\func{wxFont *}{GetFont}{\void} - -Returns the font to be used for this tab. - -\membersection{wxTabControl::GetHeight} - -\func{int}{GetHeight}{\void} - -Returns the tab height. - -\membersection{wxTabControl::GetId} - -\func{int}{GetId}{\void} - -Returns the tab identifier. - -\membersection{wxTabControl::GetLabel} - -\func{wxString}{GetLabel}{\void} - -Returns the tab label. - -\membersection{wxTabControl::GetRowPosition} - -\func{int}{GetRowPosition}{\void} - -Returns the position of the tab in the layer or row. - -\membersection{wxTabControl::GetSelected} - -\func{bool}{GetSelected}{\void} - -Returns the selected flag. - -\membersection{wxTabControl::GetWidth} - -\func{int}{GetWidth}{\void} - -Returns the tab width. - -\membersection{wxTabControl::GetX} - -\func{int}{GetX}{\void} - -Returns the x offset from the top-left of the view area. - -\membersection{wxTabControl::GetY} - -\func{int}{GetY}{\void} - -Returns the y offset from the top-left of the view area. - -\membersection{wxTabControl::HitTest} - -\func{bool}{HitTest}{\param{int}{ x}, \param{int}{ y}} - -Returns true if the point x, y is within the tab area. - -\membersection{wxTabControl::OnDraw} - -\func{void}{OnDraw}{\param{wxDC\& }{dc}, \param{bool}{ lastInRow}} - -Draws the tab control on the given device context. - -\membersection{wxTabControl::SetColPosition} - -\func{void}{SetColPosition}{\param{int}{ pos}} - -Sets the position in the column. - -\membersection{wxTabControl::SetFont} - -\func{void}{SetFont}{\param{wxFont *}{font}} - -Sets the font to be used for this tab. - -\membersection{wxTabControl::SetId} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the tab identifier. - -\membersection{wxTabControl::SetLabel} - -\func{void}{SetLabel}{\param{const wxString\& }{str}} - -Sets the label for the tab. - -\membersection{wxTabControl::SetPosition} - -\func{void}{SetPosition}{\param{int}{ x}, \param{int}{ y}} - -Sets the x and y offsets for this tab, measured from the top-left of the view area. - -\membersection{wxTabControl::SetRowPosition} - -\func{void}{SetRowPosition}{\param{int}{ pos}} - -Sets the position on the layer (row). - -\membersection{wxTabControl::SetSelected} - -\func{void}{SetSelected}{\param{bool }{selected}} - -Sets the selection flag for this tab (does not set the current tab for the view; -use wxTabView::SetSelectedTab for that). - -\membersection{wxTabControl::SetSize} - -\func{void}{SetSize}{\param{int}{ width}, \param{int}{ height}} - -Sets the width and height for this tab. - diff --git a/docs/latex/wx/tabview.tex b/docs/latex/wx/tabview.tex deleted file mode 100644 index 3d07fe7e86..0000000000 --- a/docs/latex/wx/tabview.tex +++ /dev/null @@ -1,355 +0,0 @@ -\section{\class{wxTabView}}\label{wxtabview} - -Responsible for drawing tabs onto a window, and dealing with input. - -Please note that the preferred class for programming tabbed windows is \helpref{wxNotebook}{wxnotebook}. -This class is retained for backward compatibility. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tab.h> - -\wxheading{See also} - -\helpref{wxTabView overview}{wxtabviewoverview}, \helpref{wxPanelTabView}{wxpaneltabview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTabView::wxTabView} - -\func{}{wxTabView}{\param{long }{style = wxTAB\_STYLE\_DRAW\_BOX \pipe wxTAB\_STYLE\_COLOUR\_INTERIOR}} - -Constructor. - -{\it style} may be a bit list of the following: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTAB\_STYLE\_DRAW\_BOX}{Draw a box around the view area. Most commonly used for dialogs.} -\twocolitem{wxTAB\_STYLE\_COLOUR\_INTERIOR}{Draw tab backgrounds in the specified colour. Omitting this style -will ensure that the tab background matches the dialog background.} -\end{twocollist} - -\membersection{wxTabView::AddTab}\label{wxtabviewaddtab} - -\func{wxTabControl *}{AddTab}{\param{int}{ id}, \param{const wxString\& }{label}, \param{wxTabControl *}{existingTab=NULL}} - -Adds a tab to the view. - -{\it id} is the application-chosen identifier for the tab, which will be used in subsequent tab operations. - -{\it label} is the label to give the tab. - -{\it existingTab} maybe NULL to specify a new tab, or non-NULL to indicate that an existing tab should be used. - -A new layer (row) is started when the current layer has been filled up with tabs. - -\membersection{wxTabView::CalculateTabWidth}\label{wxtabviewcalculatetabwidth} - -\func{int}{CalculateTabWidth}{\param{int}{ noTabs}, \param{bool}{ adjustView = false}} - -The application can specify the tab width using this function, in terms -of the number of tabs per layer (row) which will fit the view area, which -should have been set previously with SetViewRect. - -{\it noTabs} is the number of tabs which should take up the full width -of the view area. - -{\it adjustView} can be set to true in order to readjust the view width -to exactly fit the given number of tabs. - -The new tab width is returned. - -\membersection{wxTabView::ClearTabs} - -\func{void}{ClearTabs}{\param{bool }{deleteTabs=true}} - -Clears the tabs, deleting them if {\it deleteTabs} is true. - -\membersection{wxTabView::Draw} - -\func{void}{Draw}{\param{wxDC\& }{dc}} - -Draws the tabs and (optionally) a box around the view area. - -\membersection{wxTabView::FindTabControlForId} - -\func{wxTabControl *}{FindTabControlForId}{\param{int}{ id}} - -Finds the wxTabControl corresponding to {\it id}. - -\membersection{wxTabView::FindTabControlForPosition} - -\func{wxTabControl *}{FindTabControlForPosition}{\param{int}{ layer}, \param{int}{ position}} - -Finds the wxTabControl at layer {\it layer}, position in layer {\it position}, both starting from -zero. Note that tabs change layer as they are selected or deselected. - -\membersection{wxTabView::GetBackgroundBrush} - -\func{wxBrush *}{GetBackgroundBrush}{\void} - -Returns the brush used to draw in the background colour. It is set when -SetBackgroundColour is called. - -\membersection{wxTabView::GetBackgroundColour} - -\func{wxColour}{GetBackgroundColour}{\void} - -Returns the colour used for each tab background. By default, this is -light grey. To ensure a match with the dialog or panel background, omit -the wxTAB\_STYLE\_COLOUR\_INTERIOR flag from the wxTabView constructor. - -\membersection{wxTabView::GetBackgroundPen} - -\func{wxPen *}{GetBackgroundPen}{\void} - -Returns the pen used to draw in the background colour. It is set when -SetBackgroundColour is called. - -\membersection{wxTabView::GetHighlightColour} - -\func{wxColour}{GetHighlightColour}{\void} - -Returns the colour used for bright highlights on the left side of `3D' surfaces. By default, this is white. - -\membersection{wxTabView::GetHighlightPen} - -\func{wxPen *}{GetHighlightPen}{\void} - -Returns the pen used to draw 3D effect highlights. This is set when -SetHighlightColour is called. - -\membersection{wxTabView::GetHorizontalTabOffset} - -\func{int}{GetHorizontalTabOffset}{\void} - -Returns the horizontal spacing by which each tab layer is offset from the one below. - -\membersection{wxTabView::GetNumberOfLayers} - -\func{int}{GetNumberOfLayers}{\void} - -Returns the number of layers (rows of tabs). - -\membersection{wxTabView::GetSelectedTabFont} - -\func{wxFont *}{GetSelectedTabFont}{\void} - -Returns the font to be used for the selected tab label. - -\membersection{wxTabView::GetShadowColour} - -\func{wxColour}{GetShadowColour}{\void} - -Returns the colour used for shadows on the right-hand side of `3D' surfaces. By default, this is dark grey. - -\membersection{wxTabView::GetTabHeight} - -\func{int}{GetTabHeight}{\void} - -Returns the tab default height. - -\membersection{wxTabView::GetTabFont} - -\func{wxFont *}{GetTabFont}{\void} - -Returns the tab label font. - -\membersection{wxTabView::GetTabSelectionHeight} - -\func{int}{GetTabSelectionHeight}{\void} - -Returns the height to be used for the currently selected tab; normally a few pixels -higher than the other tabs. - -\membersection{wxTabView::GetTabStyle} - -\func{long}{GetTabStyle}{\void} - -Returns the tab style. See constructor documentation for details of valid styles. - -\membersection{wxTabView::GetTabWidth} - -\func{int}{GetTabWidth}{\void} - -Returns the tab default width. - -\membersection{wxTabView::GetTextColour} - -\func{wxColour}{GetTextColour}{\void} - -Returns the colour used to draw label text. By default, this is -black. - -\membersection{wxTabView::GetTopMargin} - -\func{int}{GetTopMargin}{\void} - -Returns the height between the top of the view area and the bottom of the first -row of tabs. - -\membersection{wxTabView::GetShadowPen} - -\func{wxPen *}{GetShadowPen}{\void} - -Returns the pen used to draw 3D effect shadows. This is set when -SetShadowColour is called. - -\membersection{wxTabView::GetViewRect} - -\func{wxRectangle}{GetViewRect}{\void} - -Returns the rectangle specifying the view area (above which tabs are -placed). - -\membersection{wxTabView::GetVerticalTabTextSpacing} - -\func{int}{GetVerticalTabTextSpacing}{\void} - -Returns the vertical spacing between the top of an unselected tab, and the tab label. - -\membersection{wxTabView::GetWindow} - -\func{wwxWindow *}{GetWindow}{\void} - -Returns the window for the view. - -\membersection{wxTabView::OnCreateTabControl} - -\func{wxTabControl *}{OnCreateTabControl}{\void} - -Creates a new tab control. By default, this returns a wxTabControl object, but the application may wish -to define a derived class, in which case the tab view should be subclassed and this function overridden. - -\membersection{wxTabView::LayoutTabs} - -\func{void}{LayoutTabs}{\void} - -Recalculates the positions of the tabs, and adjusts the layer of the selected tab if necessary. - -You may want to call this function if the view width has changed (for example, from an OnSize handler). - -\membersection{wxTabView::OnEvent} - -\func{bool}{OnEvent}{\param{wxMouseEvent\& }{event}} - -Processes mouse events sent from the panel or dialog. Returns true if the event was processed, -false otherwise. - -\membersection{wxTabView::OnTabActivate} - -\func{void}{OnTabActivate}{\param{int}{ activateId}, \param{int}{ deactivateId}} - -Called when a tab is activated, with the new active tab id, and the former active tab id. - -\membersection{wxTabView::OnTabPreActivate} - -\func{bool}{OnTabPreActivate}{\param{int}{ activateId}, \param{int}{ deactivateId}} - -Called just before a tab is activated, with the new active tab id, and the former active tab id. - -If the function returns false, the tab is not activated. - -\membersection{wxTabView::SetBackgroundColour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for each tab background. By default, this is -light grey. To ensure a match with the dialog or panel background, omit -the wxTAB\_STYLE\_COLOUR\_INTERIOR flag from the wxTabView constructor. - -\membersection{wxTabView::SetHighlightColour} - -\func{void}{SetHighlightColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for bright highlights on the left side of `3D' surfaces. By default, this is white. - -\membersection{wxTabView::SetHorizontalTabOffset} - -\func{void}{SetHorizontalTabOffset}{\param{int}{ offset}} - -Sets the horizontal spacing by which each tab layer is offset from the one below. - -\membersection{wxTabView::SetSelectedTabFont} - -\func{void}{SetSelectedTabFont}{\param{wxFont *}{font}} - -Sets the font to be used for the selected tab label. - -\membersection{wxTabView::SetShadowColour} - -\func{void}{SetShadowColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used for shadows on the right-hand side of `3D' surfaces. By default, this is dark grey. - -\membersection{wxTabView::SetTabFont} - -\func{void}{SetTabFont}{\param{wxFont *}{font}} - -Sets the tab label font. - -\membersection{wxTabView::SetTabStyle} - -\func{void}{SetTabStyle}{\param{long}{ tabStyle}} - -Sets the tab style. See constructor documentation for details of valid styles. - -\membersection{wxTabView::SetTabSize} - -\func{void}{SetTabSize}{\param{int}{ width}, \param{int}{ height}} - -Sets the tab default width and height. - -\membersection{wxTabView::SetTabSelectionHeight} - -\func{void}{SetTabSelectionHeight}{\param{int}{ height}} - -Sets the height to be used for the currently selected tab; normally a few pixels -higher than the other tabs. - -\membersection{wxTabView::SetTabSelection} - -\func{void}{SetTabSelection}{\param{int}{ sel}, \param{bool}{ activateTool=true}} - -Sets the selected tab, calling the application's OnTabActivate function. - -If {\it activateTool} is false, OnTabActivate will not be called. - -\membersection{wxTabView::SetTextColour} - -\func{void}{SetTextColour}{\param{const wxColour\&}{ col}} - -Sets the colour to be used to draw label text. By default, this is -black. - -\membersection{wxTabView::SetTopMargin} - -\func{void}{SetTopMargin}{\param{int}{ margin}} - -Sets the height between the top of the view area and the bottom of the first -row of tabs. - -\membersection{wxTabView::SetVerticalTabTextSpacing} - -\func{void}{SetVerticalTabTextSpacing}{\param{int}{ spacing}} - -Sets the vertical spacing between the top of an unselected tab, and the tab label. - -\membersection{wxTabView::SetViewRect}\label{wxtabviewsetviewrect} - -\func{void}{SetViewRect}{\param{const wxRectangle\& }{rect}} - -Sets the rectangle specifying the view area (above which tabs are -placed). This must be set by the application. - -\membersection{wxTabView::SetWindow} - -\func{void}{SetWindow}{\param{wxWindow *}{window}} - -Set the window that the tab view will use for drawing onto. - - diff --git a/docs/latex/wx/tapp.tex b/docs/latex/wx/tapp.tex deleted file mode 100644 index f87e1a4c8f..0000000000 --- a/docs/latex/wx/tapp.tex +++ /dev/null @@ -1,119 +0,0 @@ -\section{wxApp overview}\label{wxappoverview} - -Classes: \helpref{wxApp}{wxapp} - -A wxWidgets application does not have a {\it main} procedure; the equivalent is the -\rtfsp\helpref{OnInit}{wxapponinit} member defined for a class derived from wxApp.\rtfsp -\rtfsp{\it OnInit} will usually create a top window as a bare minimum. - -Unlike in earlier versions of wxWidgets, OnInit does not return a frame. Instead it -returns a boolean value which indicates whether processing should continue (true) or not (false). -You call \helpref{wxApp::SetTopWindow}{wxappsettopwindow} to let wxWidgets know -about the top window. - -Note that the program's command line arguments, represented by {\it argc} -and {\it argv}, are available from within wxApp member functions. - -An application closes by destroying all windows. Because all frames must -be destroyed for the application to exit, it is advisable to use parent -frames wherever possible when creating new frames, so that deleting the -top level frame will automatically delete child frames. The alternative -is to explicitly delete child frames in the top-level frame's \helpref{wxCloseEvent}{wxcloseevent}\rtfsp -handler. - -In emergencies the \helpref{wxExit}{wxexit} function can be called to kill the -application however normally the application shuts down automatically, -\helpref{see below}{wxappshutdownoverview}. - -An example of defining an application follows: - -\begin{verbatim} -class DerivedApp : public wxApp -{ -public: - virtual bool OnInit(); -}; - -IMPLEMENT_APP(DerivedApp) - -bool DerivedApp::OnInit() -{ - wxFrame *the_frame = new wxFrame(NULL, ID_MYFRAME, argv[0]); - ... - the_frame->Show(true); - SetTopWindow(the_frame); - - return true; -} -\end{verbatim} - -Note the use of IMPLEMENT\_APP(appClass), which allows wxWidgets to dynamically create an instance of the application object -at the appropriate point in wxWidgets initialization. Previous versions of wxWidgets used -to rely on the creation of a global application object, but this is no longer recommended, -because required global initialization may not have been performed at application object -construction time. - -You can also use DECLARE\_APP(appClass) in a header file to declare the wxGetApp function which returns -a reference to the application object. Otherwise you can only use the global -\texttt{wxTheApp} pointer which is of type \texttt{wxApp *}. - - -\subsection{Application shutdown}\label{wxappshutdownoverview} - -The application normally shuts down when the last of its top level windows is -closed. This is normally the expected behaviour and means that it is enough to -call \helpref{Close()}{wxwindowclose} in response to the {\tt "Exit"} menu -command if your program has a single top level window. If this behaviour is not -desirable \helpref{wxApp::SetExitOnFrameDelete}{wxappsetexitonframedelete} can -be called to change it. Note that starting from wxWidgets 2.3.3 such logic -doesn't apply for the windows shown before the program enters the main loop: in -other words, you can safely show a dialog from -\helpref{wxApp::OnInit}{wxapponinit} and not be afraid that your application -terminates when this dialog -- which is the last top level window for the -moment -- is closed. - - -Another aspect of the application shutdown is \helpref{OnExit}{wxapponexit} -which is called when the application exits but {\it before} wxWidgets cleans up -its internal structures. You should delete all wxWidgets object that you -created by the time OnExit finishes. In particular, do {\bf not} destroy them -from application class' destructor! - -For example, this code may crash: - -\begin{verbatim} -class MyApp : public wxApp -{ - public: - wxCHMHelpController m_helpCtrl; - ... -}; -\end{verbatim} - -The reason for that is that {\tt m\_helpCtrl} is a member object and is -thus destroyed from MyApp destructor. But MyApp object is deleted after -wxWidgets structures that wxCHMHelpController depends on were -uninitialized! The solution is to destroy HelpCtrl in {\it OnExit}: - -\begin{verbatim} -class MyApp : public wxApp -{ - public: - wxCHMHelpController *m_helpCtrl; - ... -}; - -bool MyApp::OnInit() -{ - ... - m_helpCtrl = new wxCHMHelpController; - ... -} - -int MyApp::OnExit() -{ - delete m_helpCtrl; - return 0; -} -\end{verbatim} - diff --git a/docs/latex/wx/tarstrm.tex b/docs/latex/wx/tarstrm.tex deleted file mode 100644 index 76c5f15aae..0000000000 --- a/docs/latex/wx/tarstrm.tex +++ /dev/null @@ -1,537 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% wx/tarstrm.h at 28/Oct/06 18:27:02 -% - -\section{\class{wxTarClassFactory}}\label{wxtarclassfactory} - -Class factory for the tar archive format. See the base class -for details. - -\wxheading{Derived from} - -\helpref{wxArchiveClassFactory}{wxarchiveclassfactory}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tarstrm.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{Generic archive programming}{wxarcgeneric}\\ -\helpref{wxTarEntry}{wxtarentry}\\ -\helpref{wxTarInputStream}{wxtarinputstream}\\ -\helpref{wxTarOutputStream}{wxtaroutputstream} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/tarstrm.h at 28/Oct/06 18:27:02 -% - -\section{\class{wxTarEntry}}\label{wxtarentry} - -Holds the meta-data for an entry in a tar. - -\wxheading{Derived from} - -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tarstrm.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -Constants for \helpref{Get/SetTypeFlag}{wxtarentrytypeflag}: - -\begin{verbatim} -// TypeFlag values -enum { - wxTAR_REGTYPE = '0', // regular file - wxTAR_LNKTYPE = '1', // hard link - wxTAR_SYMTYPE = '2', // symbolic link - wxTAR_CHRTYPE = '3', // character special - wxTAR_BLKTYPE = '4', // block special - wxTAR_DIRTYPE = '5', // directory - wxTAR_FIFOTYPE = '6', // named pipe - wxTAR_CONTTYPE = '7' // contiguous file -}; - -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxTarInputStream}{wxtarinputstream}\\ -\helpref{wxTarOutputStream}{wxtaroutputstream} - -\wxheading{Field availability} - -The tar format stores all the meta-data for an entry ahead of its data, -therefore \helpref{GetNextEntry()}{wxtarinputstreamgetnextentry} always returns -a fully populated wxTarEntry object, both when reading from seekable and -non-seekable streams. - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTarEntry::wxTarEntry}\label{wxtarentrywxtarentry} - -\func{}{wxTarEntry}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{wxFileOffset }{size = wxInvalidOffset}} - -Constructor. The tar archive format stores the entry's size ahead of the -entry's data. Therefore when creating an archive on a non-seekable stream it -is necessary to supply the correct size when each entry is created. - -\func{}{wxTarEntry}{\param{const wxTarEntry\& }{entry}} - -Copy constructor. - - -\membersection{wxTarEntry::Get/SetAccessTime}\label{wxtarentryaccesstime} - -\constfunc{wxDateTime}{GetAccessTime}{\void} - -\func{void}{SetAccessTime}{\param{const wxDateTime\& }{dt}} - -The entry's access time stamp. See also - \helpref{wxArchiveEntry::Get/SetDateTime}{wxarchiveentrydatetime}. - - -\membersection{wxTarEntry::Get/SetCreateTime}\label{wxtarentrycreatetime} - -\constfunc{wxDateTime}{GetCreateTime}{\void} - -\func{void}{SetCreateTime}{\param{const wxDateTime\& }{dt}} - -The entry's creation time stamp. See also - \helpref{wxArchiveEntry::Get/SetDateTime}{wxarchiveentrydatetime}. - - -\membersection{wxTarEntry::Get/SetDevMajor and Get/SetDevMinor}\label{wxtarentrydev} - -\constfunc{int}{GetDevMajor}{\void} - -\constfunc{int}{GetDevMinor}{\void} - -\func{void}{SetDevMajor}{\param{int }{dev}} - -\func{void}{SetDevMinor}{\param{int }{dev}} - -OS specific IDs defining a device, these are only meaningful when - \helpref{TypeFlag}{wxtarentrytypeflag} is set to {\it wxTAR\_CHRTYPE} - or {\it wxTAR\_BLKTYPE}. - - -\membersection{wxTarEntry::Get/SetGroupId and Get/SetUserId}\label{wxtarentryuidgid} - -\constfunc{int}{GetGroupId}{\void} - -\constfunc{int}{GetUserId}{\void} - -\func{void}{SetGroupId}{\param{int }{id}} - -\func{void}{SetUserId}{\param{int }{id}} - -The user ID and group ID that has \helpref{permissions}{wxtarentrymode} over -this entry. These values aren't usually useful unless the file will only be -restored to the same system it originated from. \helpref{Get/SetGroupName and -Get/SetUserName}{wxtarentryunamegname} can be used instead. - - -\membersection{wxTarEntry::Get/SetGroupName and Get/SetUserName}\label{wxtarentryunamegname} - -\constfunc{wxString}{GetGroupName}{\void} - -\constfunc{wxString}{GetUserName}{\void} - -\func{void}{SetGroupName}{\param{const wxString\& }{group}} - -\func{void}{SetUserName}{\param{const wxString\& }{user}} - -The names of the user and group that has \helpref{permissions}{wxtarentrymode} -over this entry. These are not present in very old tars. - - -\membersection{wxTarEntry::GetInternalName}\label{wxtarentrygetinternalname} - -\constfunc{wxString}{GetInternalName}{\void} - -Returns the entry's filename in the internal format used within the -archive. The name can include directory components, i.e. it can be a -full path. - -The names of directory entries are returned without any trailing path -separator. This gives a canonical name that can be used in comparisons. - -\func{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}, \param{bool* }{pIsDir = NULL}} - -A static member that translates a filename into the internal format used -within the archive. If the third parameter is provided, the bool pointed -to is set to indicate whether the name looks like a directory name -(i.e. has a trailing path separator). - - -\membersection{wxTarEntry::Get/SetLinkName}\label{wxtarentrylinkname} - -\constfunc{wxString}{GetLinkName}{\void} - -\func{void}{SetLinkName}{\param{const wxString\& }{link}} - -The filename of a previous entry in the tar that this entry is a link to. -Only meaningful when \helpref{TypeFlag}{wxtarentrytypeflag} is set -to {\it wxTAR\_LNKTYPE} or {\it wxTAR\_SYMTYPE}. - - -\membersection{wxTarEntry::Get/SetMode}\label{wxtarentrymode} - -\constfunc{int}{GetMode}{\void} - -\func{void}{SetMode}{\param{int }{mode}} - -UNIX permission bits for this entry. Giving read, write and execute permissions -to the file's \helpref{User and Group}{wxtarentryunamegname} and to others. -Symbols are defined for them in <wx/file.h>. - -\begin{verbatim} -#define wxS_IRUSR 00400 -#define wxS_IWUSR 00200 -#define wxS_IXUSR 00100 - -#define wxS_IRGRP 00040 -#define wxS_IWGRP 00020 -#define wxS_IXGRP 00010 - -#define wxS_IROTH 00004 -#define wxS_IWOTH 00002 -#define wxS_IXOTH 00001 - -\end{verbatim} - - -\membersection{wxTarEntry::Get/SetSize}\label{wxtarentrysize} - -\func{void}{SetSize}{\param{wxFileOffset }{size}} - -\constfunc{wxFileOffset}{GetSize}{\void} - -The size of the entry's data in bytes. - -The tar archive format stores the entry's size ahead of the entry's data. -Therefore when creating an archive on a non-seekable stream it is necessary to -supply the correct size when each entry is created. For seekable streams this -is not necessary as \helpref{wxTarOutputStream}{wxtaroutputstream} will attempt -to seek back and fix the entry's header when the entry is closed, though it is -still more efficient if the size is given beforehand. - - -\membersection{wxTarEntry::Get/SetTypeFlag}\label{wxtarentrytypeflag} - -\constfunc{int}{GetTypeFlag}{\void} - -\func{void}{SetTypeFlag}{\param{int }{type}} - -Returns the type of the entry. It should be one of the following: - -\begin{verbatim} -// TypeFlag values -enum { - wxTAR_REGTYPE = '0', // regular file - wxTAR_LNKTYPE = '1', // hard link - wxTAR_SYMTYPE = '2', // symbolic link - wxTAR_CHRTYPE = '3', // character special - wxTAR_BLKTYPE = '4', // block special - wxTAR_DIRTYPE = '5', // directory - wxTAR_FIFOTYPE = '6', // named pipe - wxTAR_CONTTYPE = '7' // contiguous file -}; - -\end{verbatim} - -When creating archives use just these values. When reading archives -any other values should be treated as {\it wxTAR\_REGTYPE}. - - -\membersection{wxTarEntry::operator=}\label{wxtarentryoperatorassign} - -\func{wxTarEntry\& operator}{operator=}{\param{const wxTarEntry\& }{entry}} - -Assignment operator. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/tarstrm.h at 28/Oct/06 18:27:02 -% - -\section{\class{wxTarInputStream}}\label{wxtarinputstream} - -Input stream for reading tar files. - -\helpref{GetNextEntry()}{wxtarinputstreamgetnextentry} returns an - \helpref{wxTarEntry}{wxtarentry} object containing the meta-data -for the next entry in the tar (and gives away ownership). Reading from -the wxTarInputStream then returns the entry's data. Eof() becomes true -after an attempt has been made to read past the end of the entry's data. -When there are no more entries, GetNextEntry() returns NULL and sets Eof(). - -Tar entries are seekable if the parent stream is seekable. In practice this -usually means they are only seekable if the tar is stored as a local file and -is not compressed. - -\wxheading{Derived from} - -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/tarstrm.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} -\begin{verbatim} -typedef wxTarEntry entry_type -\end{verbatim} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxTarEntry}{wxtarentry}\\ -\helpref{wxTarOutputStream}{wxtaroutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTarInputStream::wxTarInputStream}\label{wxtarinputstreamwxtarinputstream} - -\func{}{wxTarInputStream}{\param{wxInputStream\& }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} - -\func{}{wxTarInputStream}{\param{wxInputStream* }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} - -Constructor. In a Unicode build the second parameter {\it conv} is -used to translate fields from the standard tar header into Unicode. It has -no effect on the stream's data. {\it conv} is only used for the standard -tar headers, any pax extended headers are always UTF-8 encoded. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - - -\membersection{wxTarInputStream::CloseEntry}\label{wxtarinputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Closes the current entry. On a non-seekable stream reads to the end of -the current entry first. - - -\membersection{wxTarInputStream::GetNextEntry}\label{wxtarinputstreamgetnextentry} - -\func{wxTarEntry*}{GetNextEntry}{\void} - -Closes the current entry if one is open, then reads the meta-data for -the next entry and returns it in a \helpref{wxTarEntry}{wxtarentry} -object, giving away ownership. The stream is then open and can be read. - - -\membersection{wxTarInputStream::OpenEntry}\label{wxtarinputstreamopenentry} - -\func{bool}{OpenEntry}{\param{wxTarEntry\& }{entry}} - -Closes the current entry if one is open, then opens the entry specified -by the {\it entry} object. - -{\it entry} should be from the same tar file, and the tar should -be on a seekable stream. - -\wxheading{See also} - -\helpref{Looking up an archive entry by name}{wxarcbyname} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/tarstrm.h at 28/Oct/06 18:27:02 -% - -\section{\class{wxTarOutputStream}}\label{wxtaroutputstream} - -Output stream for writing tar files. - -\helpref{PutNextEntry()}{wxtaroutputstreamputnextentry} is used to create -a new entry in the output tar, then the entry's data is written to the -wxTarOutputStream. Another call to PutNextEntry() closes the current -entry and begins the next. - -\wxheading{Derived from} - -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}\\ -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/tarstrm.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -Constants for the {\it format} parameter of the - \helpref{constructor}{wxtaroutputstreamwxtaroutputstream}. - -\begin{verbatim} -// Archive Formats (use wxTAR_PAX, it's backward compatible) -enum wxTarFormat -{ - wxTAR_USTAR, // POSIX.1-1990 tar format - wxTAR_PAX // POSIX.1-2001 tar format -}; - -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxTarEntry}{wxtarentry}\\ -\helpref{wxTarInputStream}{wxtarinputstream} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTarOutputStream::wxTarOutputStream}\label{wxtaroutputstreamwxtaroutputstream} - -\func{}{wxTarOutputStream}{\param{wxOutputStream\& }{stream}, \param{wxTarFormat }{format = wxTAR\_PAX}, \param{wxMBConv\& }{conv = wxConvLocal}} - -\func{}{wxTarOutputStream}{\param{wxOutputStream* }{stream}, \param{wxTarFormat }{format = wxTAR\_PAX}, \param{wxMBConv\& }{conv = wxConvLocal}} - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - -In a Unicode build the third parameter {\it conv} is used to translate the -headers fields into an 8-bit encoding. It has no effect on the stream's data. - -When the {\it format} is {\it wxTAR\_PAX}, pax extended headers are generated -when any header field will not fit the standard tar header block or if it -uses any non-ascii characters. - -Extended headers are stored as extra 'files' within the tar, and will be -extracted as such by any other tar program that does not understand them. -The {\it conv} parameter only affect the standard tar headers, the extended -headers are always UTF-8 encoded. - -When the {\it format} is {\it wxTAR\_USTAR}, no extended headers are -generated, and instead a warning message is logged if any header field -overflows. - - -\membersection{wxTarOutputStream::\destruct{wxTarOutputStream}}\label{wxtaroutputstreamdtor} - -\func{}{\destruct{wxTarOutputStream}}{\void} - -The destructor calls \helpref{Close()}{wxtaroutputstreamclose} to finish -writing the tar if it has not been called already. - - -\membersection{wxTarOutputStream::Close}\label{wxtaroutputstreamclose} - -\func{bool}{Close}{\void} - -Finishes writing the tar, returning true if successful. -Called by the destructor if not called explicitly. - - -\membersection{wxTarOutputStream::CloseEntry}\label{wxtaroutputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Close the current entry. It is called implicitly whenever another new -entry is created with \helpref{CopyEntry()}{wxtaroutputstreamcopyentry} -or \helpref{PutNextEntry()}{wxtaroutputstreamputnextentry}, or -when the tar is closed. - - -\membersection{wxTarOutputStream::CopyArchiveMetaData}\label{wxtaroutputstreamcopyarchivemetadata} - -\func{bool}{CopyArchiveMetaData}{\param{wxTarInputStream\& }{s}} - -See \helpref{wxArchiveOutputStream::CopyArchiveMetaData}{wxarchiveoutputstreamcopyarchivemetadata}. -For the tar format this function does nothing. - - -\membersection{wxTarOutputStream::CopyEntry}\label{wxtaroutputstreamcopyentry} - -\func{bool}{CopyEntry}{\param{wxTarEntry* }{entry}, \param{wxTarInputStream\& }{inputStream}} - -Takes ownership of {\it entry} and uses it to create a new entry -in the tar. {\it entry} is then opened in {\it inputStream} and its contents -copied to this stream. - -For some other archive formats CopyEntry() is much more efficient than -transferring the data using Read() and Write() since it will copy them -without decompressing and recompressing them. For tar however it makes -no difference. - -For tars on seekable streams, {\it entry} must be from the same tar file -as {\it stream}. For non-seekable streams, {\it entry} must also be the -last thing read from {\it inputStream}. - - -\membersection{wxTarOutputStream::Get/SetBlockingFactor}\label{wxtaroutputstreamblockingfactor} - -\constfunc{int}{GetBlockingFactor}{\void} - -\func{void}{SetBlockingFactor}{\param{int }{factor}} - -The tar is zero padded to round its size up to {\it BlockingFactor * 512} bytes. - -Defaults to 10 for {\it wxTAR\_PAX} and 20 for {\it wxTAR\_USTAR} -(see the \helpref{constructor}{wxtaroutputstreamwxtaroutputstream}), as -specified in the POSIX standards. - - -\membersection{wxTarOutputStream::PutNextDirEntry}\label{wxtaroutputstreamputnextdirentry} - -\func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}} - -Create a new directory entry -(see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir}) -with the given name and timestamp. - -\helpref{PutNextEntry()}{wxtaroutputstreamputnextentry} can -also be used to create directory entries, by supplying a name with -a trailing path separator. - - -\membersection{wxTarOutputStream::PutNextEntry}\label{wxtaroutputstreamputnextentry} - -\func{bool}{PutNextEntry}{\param{wxTarEntry* }{entry}} - -Takes ownership of {\it entry} and uses it to create a new entry -in the tar. - -\func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{wxFileOffset }{size = wxInvalidOffset}} - -Create a new entry with the given name, timestamp and size. - diff --git a/docs/latex/wx/taskbar.tex b/docs/latex/wx/taskbar.tex deleted file mode 100644 index 073247e548..0000000000 --- a/docs/latex/wx/taskbar.tex +++ /dev/null @@ -1,147 +0,0 @@ -\section{\class{wxTaskBarIcon}}\label{wxtaskbaricon} - -This class represents a taskbar icon. A taskbar icon is an icon that appears in the `system tray' and responds to mouse clicks, optionally with a tooltip above it to help provide information. - -\wxheading{X Window System Note} - -Under X Window System, the window manager must support either -the \urlref{System Tray Protocol by freedesktop.org}{http://freedesktop.org/Standards/systemtray-spec} -(WMs used by modern desktop environments such as GNOME >= 2, KDE ->= 3 and XFCE >= 4 all do) or the older methods used in GNOME 1.2 and -KDE 1 and 2. If it doesn't, the icon will appear as a toplevel window on -user's desktop. - -Because not all window managers have system tray, there's no guarantee that -wxTaskBarIcon will work correctly under X Window System and so the applications -should use it only as an optional component of their user interface. The user -should be required to explicitly enable the taskbar icon on Unix, it shouldn't -be on by default. - - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/taskbar.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event handling} - -To process input from a taskbar icon, use the following event handler macros to direct input to member -functions that take a wxTaskBarIconEvent argument. Note that not all ports are -required to send these events and so it's better to override -\helpref{CreatePopupMenu}{wxtaskbariconcreatepopupmenu} if all that -the application does is that it shows a popup menu in reaction to mouse click. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TASKBAR\_MOVE(func)}}{Process a -wxEVT\_TASKBAR\_MOVE event.} -\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_DOWN(func)}}{Process a -wxEVT\_TASKBAR\_LEFT\_DOWN event.} -\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_UP(func)}}{Process a -wxEVT\_TASKBAR\_LEFT\_UP event.} -\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_DOWN(func)}}{Process a -wxEVT\_TASKBAR\_RIGHT\_DOWN event.} -\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_UP(func)}}{Process a -wxEVT\_TASKBAR\_RIGHT\_UP event.} -\twocolitem{{\bf EVT\_TASKBAR\_LEFT\_DCLICK(func)}}{Process a -wxEVT\_TASKBAR\_LEFT\_DCLICK event.} -\twocolitem{{\bf EVT\_TASKBAR\_RIGHT\_DCLICK(func)}}{Process a -wxEVT\_TASKBAR\_RIGHT\_DCLICK event.} -\twocolitem{{\bf EVT\_TASKBAR\_CLICK(func)}}{This is a synonym for either -EVT\_TASKBAR\_RIGHT\_DOWN or UP depending on the platform, use this event macro -to catch the event which should result in the menu being displayed on the -current platform.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTaskBarIcon::wxTaskBarIcon}\label{wxtaskbariconctor} - -\func{}{wxTaskBarIcon}{\void} - -Default constructor. - - -\membersection{wxTaskBarIcon::\destruct{wxTaskBarIcon}}\label{wxtaskbaricondtor} - -\func{}{\destruct{wxTaskBarIcon}}{\void} - -Destroys the wxTaskBarIcon object, removing the icon if not already removed. - - -\membersection{wxTaskBarIcon::CreatePopupMenu}\label{wxtaskbariconcreatepopupmenu} - -\func{virtual wxMenu*}{CreatePopupMenu}{\void} - -This method is called by the library when the user requests popup menu -(on Windows and Unix platforms, this is when the user right-clicks the icon). -Override this function in order to provide popup menu associated with the icon. - -If CreatePopupMenu returns NULL (this happens by default), -no menu is shown, otherwise the menu is -displayed and then deleted by the library as soon as the user dismisses it. -The events can be handled by a class derived from wxTaskBarIcon. - - -\membersection{wxTaskBarIcon::Destroy}\label{wxtaskbaricondestroy} - -\func{void}{Destroy}{\void} - -This method is similar to \helpref{wxWindow::Destroy}{wxwindowdestroy} and can -be used to schedule the task bar icon object for the delayed destruction: it -will be deleted during the next event loop iteration, which allows the task bar -icon to process any pending events for it before being destroyed. - - -\membersection{wxTaskBarIcon::IsIconInstalled}\label{wxtaskbariconisiconinstalled} - -\func{bool}{IsIconInstalled}{\void} - -Returns true if \helpref{SetIcon}{wxtaskbariconseticon} was called with no subsequent \helpref{RemoveIcon}{wxtaskbariconremoveicon}. - - -\membersection{wxTaskBarIcon::IsOk}\label{wxtaskbariconisok} - -\func{bool}{IsOk}{\void} - -Returns true if the object initialized successfully. - - -\membersection{wxTaskBarIcon::PopupMenu}\label{wxtaskbariconpopupmenu} - -\func{bool}{PopupMenu}{\param{wxMenu*}{ menu}} - -Pops up a menu at the current mouse position. The events can be handled by -a class derived from wxTaskBarIcon. - -\wxheading{Note} - -It is recommended to override -\helpref{CreatePopupMenu}{wxtaskbariconcreatepopupmenu} -callback instead of calling this method from event handler, because some -ports (e.g. wxCocoa) may not implement PopupMenu and mouse click events at all. - - -\membersection{wxTaskBarIcon::RemoveIcon}\label{wxtaskbariconremoveicon} - -\func{bool}{RemoveIcon}{\void} - -Removes the icon previously set with \helpref{SetIcon}{wxtaskbariconseticon}. - - -\membersection{wxTaskBarIcon::SetIcon}\label{wxtaskbariconseticon} - -\func{bool}{SetIcon}{\param{const wxIcon\&}{ icon}, \param{const wxString\& }{tooltip}} - -Sets the icon, and optional tooltip text. - - diff --git a/docs/latex/wx/taui.tex b/docs/latex/wx/taui.tex deleted file mode 100644 index 1b768637fd..0000000000 --- a/docs/latex/wx/taui.tex +++ /dev/null @@ -1,45 +0,0 @@ -\section{wxAUI overview}\label{wxauioverview} - -Class: \helpref{wxAuiManager}{wxauimanager}, \helpref{wxAuiPaneInfo}{wxauipaneinfo} - -wxAUI stands for Advanced User Interface and the wxAUI framework -aims to give its user a cutting edge interface for use with the -wxWidgets based applications. The original wxAUI sources have -kindly been made available under the wxWindows licence -by Kirix Corp. and they have since then been integrated into -wxWidgets CVS and further improved. - -wxAUI attempts to encapsulate the following aspects of the user interface: - -{\bf Frame Management:} -Frame management provides the means to open, move and hide common -controls that are needed to interact with the document, and allow these -configurations to be saved into different perspectives and loaded at a -later time. - -{\bf Toolbars:} -Toolbars are a specialized subset of the frame management system and -should behave similarly to other docked components. However, they also -require additional functionality, such as "spring-loaded" rebar support, -"chevron" buttons and end-user customizability. - -{\bf Modeless Controls:} -Modeless controls expose a tool palette or set of options that float -above the application content while allowing it to be accessed. Usually -accessed by the toolbar, these controls disappear when an option is -selected, but may also be "torn off" the toolbar into a floating frame -of their own. - -{\bf Look and Feel:} -Look and feel encompasses the way controls are drawn, both when shown -statically as well as when they are being moved. This aspect of user -interface design incorporates "special effects" such as transparent -window dragging as well as frame animation. - -wxAUI adheres to the following principles: - -Use native floating frames to obtain a native look and feel for all -platforms. Use existing wxWidgets code where possible, such as sizer -implementation for frame management. Use classes included in wxCore -and wxBase only. Use standard wxWidgets coding conventions. - diff --git a/docs/latex/wx/tbitmap.tex b/docs/latex/wx/tbitmap.tex deleted file mode 100644 index 48db4af4e4..0000000000 --- a/docs/latex/wx/tbitmap.tex +++ /dev/null @@ -1,171 +0,0 @@ -\section{Bitmaps and icons overview}\label{wxbitmapoverview} - -Classes: \helpref{wxBitmap}{wxbitmap}, \helpref{wxBitmapHandler}{wxbitmaphandler}, \helpref{wxIcon}{wxicon}, \helpref{wxCursor}{wxcursor}. - -The wxBitmap class encapsulates the concept of a platform-dependent bitmap, -either monochrome or colour. Platform-specific methods for creating a -wxBitmap object from an existing file are catered for, and -this is an occasion where conditional compilation will sometimes be -required. - -A bitmap created dynamically or loaded from a file can be selected -into a memory device context (instance of \helpref{wxMemoryDC}{wxmemorydc}). This -enables the bitmap to be copied to a window or memory device context -using \helpref{wxDC::Blit}{wxdcblit}, or to be used as a drawing surface. - -See \helpref{wxMemoryDC}{wxmemorydc} for an example of drawing onto a bitmap. - -All wxWidgets platforms support XPMs for small bitmaps and icons. -You may include the XPM inline as below, since it's C code, or you -can load it at run-time. - -\begin{verbatim} -#include "mondrian.xpm" -\end{verbatim} - -Sometimes you wish to use a .ico resource on Windows, and XPMs on -other platforms (for example to take advantage of Windows' support for multiple icon resolutions). -A macro, \helpref{wxICON}{wxiconmacro}, is available which creates an icon using an XPM -on the appropriate platform, or an icon resource on Windows. - -\begin{verbatim} -wxIcon icon(wxICON(mondrian)); - -// Equivalent to: - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -wxIcon icon(mondrian_xpm); -#endif - -#if defined(__WXMSW__) -wxIcon icon("mondrian"); -#endif -\end{verbatim} - -There is also a corresponding \helpref{wxBITMAP}{wxbitmapmacro} macro which allows -to create the bitmaps in much the same way as \helpref{wxICON}{wxiconmacro} creates -icons. It assumes that bitmaps live in resources under Windows or OS2 and XPM -files under all other platforms (for XPMs, the corresponding file must be -included before this macro is used, of course, and the name of the bitmap -should be the same as the resource name under Windows with {\tt \_xpm} -suffix). For example: - -\begin{verbatim} -// an easy and portable way to create a bitmap -wxBitmap bmp(wxBITMAP(bmpname)); - -// which is roughly equivalent to the following -#if defined(__WXMSW__) || defined(__WXPM__) - wxBitmap bmp("bmpname", wxBITMAP_TYPE_RESOURCE); -#else // Unix - wxBitmap bmp(bmpname_xpm, wxBITMAP_TYPE_XPM); -#endif -\end{verbatim} - -You should always use wxICON and wxBITMAP macros because they work for any -platform (unlike the code above which doesn't deal with wxMac, wxX11, ...) and -are more short and clear than versions with {\tt \#ifdef}s. Even better, -use the same XPMs on all platforms. - -\subsection{Supported bitmap file formats}\label{supportedbitmapformats} - -The following lists the formats handled on different platforms. Note -that missing or partially-implemented formats are automatically supplemented -by the \helpref{wxImage}{wximage} to load the data, and then converting -it to wxBitmap form. Note that using wxImage is the preferred way to -load images in wxWidgets, with the exception of resources (XPM-files or -native Windows resources). Writing an image format handler for wxImage -is also far easier than writing one for wxBitmap, because wxImage has -exactly one format on all platforms whereas wxBitmap can store pixel data -very differently, depending on colour depths and platform. - -\wxheading{wxBitmap} - -Under Windows, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows bitmap resource (wxBITMAP\_TYPE\_BMP\_RESOURCE) -\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\item All formats that are supported by the \helpref{wxImage}{wximage} class. -\end{itemize} - -Under wxGTK, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\item All formats that are supported by the \helpref{wxImage}{wximage} class. -\end{itemize} - -Under wxMotif and wxX11, wxBitmap may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\item All formats that are supported by the \helpref{wxImage}{wximage} class. -\end{itemize} - -\wxheading{wxIcon} - -Under Windows, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows icon resource (wxBITMAP\_TYPE\_ICO\_RESOURCE) -\item Windows icon file (wxBITMAP\_TYPE\_ICO) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\end{itemize} - -Under wxGTK, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\item All formats that are supported by the \helpref{wxImage}{wximage} class. -\end{itemize} - -Under wxMotif and wxX11, wxIcon may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\item XPM data and file (wxBITMAP\_TYPE\_XPM) -\item All formats that are supported by the \helpref{wxImage}{wximage} class. -\end{itemize} - -\wxheading{wxCursor} - -Under Windows, wxCursor may load the following formats: - -\begin{itemize}\itemsep=0pt -\item Windows cursor resource (wxBITMAP\_TYPE\_CUR\_RESOURCE) -\item Windows cursor file (wxBITMAP\_TYPE\_CUR) -\item Windows icon file (wxBITMAP\_TYPE\_ICO) -\item Windows bitmap file (wxBITMAP\_TYPE\_BMP) -\end{itemize} - -Under wxGTK, wxCursor may load the following formats (in additional -to stock cursors): - -\begin{itemize}\itemsep=0pt -\item None (stock cursors only). -\end{itemize} - -Under wxMotif and wxX11, wxCursor may load the following formats: - -\begin{itemize}\itemsep=0pt -\item XBM data and file (wxBITMAP\_TYPE\_XBM) -\end{itemize} - -\subsection{Bitmap format handlers}\label{bitmaphandlers} - -To provide extensibility, the functionality for loading and saving bitmap formats -is not implemented in the wxBitmap class, but in a number of handler classes, -derived from wxBitmapHandler. There is a static list of handlers which wxBitmap -examines when a file load/save operation is requested. Some handlers are provided as standard, but if you -have special requirements, you may wish to initialise the wxBitmap class with -some extra handlers which you write yourself or receive from a third party. - -To add a handler object to wxBitmap, your application needs to include the header which implements it, and -then call the static function \helpref{wxBitmap::AddHandler}{wxbitmapaddhandler}. - -{\bf Note:} bitmap handlers are not implemented on all platforms, and new ones rarely need -to be implemented since wxImage can be used for loading most formats, as noted earlier. - diff --git a/docs/latex/wx/tbook.tex b/docs/latex/wx/tbook.tex deleted file mode 100644 index a3acd20b4d..0000000000 --- a/docs/latex/wx/tbook.tex +++ /dev/null @@ -1,56 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tbook.tex -%% Purpose: wxBookCtrl overview -%% Author: Wlodzimierz ABX Skiba -%% Modified by: -%% Created: 11/18/2004 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{wxBookCtrl overview}\label{wxbookctrloverview} - -Classes: \helpref{wxNotebook}{wxnotebook}, \helpref{wxListbook}{wxlistbook}, \helpref{wxChoicebook}{wxchoicebook}, -\helpref{wxTreebook}{wxtreebook}, \helpref{wxToolbook}{wxtoolbook} - -\subsection{Introduction}\label{wxbookctrlintro} - -A book control is a convenient way of displaying multiple pages of information, -displayed one page at a time. wxWidgets has five variants of this control: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxNotebook}{wxnotebook}: uses a row of tabs -\item \helpref{wxListbook}{wxlistbook}: controlled by a \helpref{wxListCtrl}{wxlistctrl} -\item \helpref{wxChoicebook}{wxchoicebook}: controlled by a \helpref{wxChoice}{wxchoice} -\item \helpref{wxTreebook}{wxtreebook}: controlled by a \helpref{wxTreeCtrl}{wxtreectrl} -\item \helpref{wxToolbook}{wxtoolbook}: controlled by a \helpref{wxToolBar}{wxtoolbar} -\end{itemize} - -See \helpref{Notebook sample}{samplenotebook} for an example of wxBookCtrl usage. - -\subsection{Best book}\label{wxbestbookctrl} - -wxBookCtrl is mapped to the class best suited for a given platform. -Currently it provides \helpref{wxChoicebook}{wxchoicebook} for smartphones equipped with -WinCE, and \helpref{wxNotebook}{wxnotebook} for all other platforms. The mapping consists of: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxBookCtrl}{wxChoicebook or wxNotebook} -\twocolitem{wxBookCtrlEvent}{wxChoicebookEvent or wxNotebookEvent} -\twocolitem{wxEVT\_COMMAND\_BOOKCTRL\_PAGE\_CHANGED}{wxEVT\_COMMAND\_CHOICEBOOK\_PAGE\_CHANGED or wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGED} -\twocolitem{wxEVT\_COMMAND\_BOOKCTRL\_PAGE\_CHANGING}{wxEVT\_COMMAND\_CHOICEBOOK\_PAGE\_CHANGING or wxEVT\_COMMAND\_NOTEBOOK\_PAGE\_CHANGING} -\twocolitem{EVT\_BOOKCTRL\_PAGE\_CHANGED(id, fn)}{EVT\_CHOICEBOOK\_PAGE\_CHANGED(id, fn) or EVT\_NOTEBOOK\_PAGE\_CHANGED(id, fn)} -\twocolitem{EVT\_BOOKCTRL\_PAGE\_CHANGING(id, fn)}{EVT\_CHOICEBOOK\_PAGE\_CHANGING(id, fn) or EVT\_NOTEBOOK\_PAGE\_CHANGING(id, fn)} -\end{twocollist} - -For orientation of the book controller, use following flags in style: -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBK\_TOP}}{controller above pages} -\twocolitem{\windowstyle{wxBK\_BOTTOM}}{controller below pages} -\twocolitem{\windowstyle{wxBK\_LEFT}}{controller on the left} -\twocolitem{\windowstyle{wxBK\_RIGHT}}{controller on the right} -\twocolitem{\windowstyle{wxBK\_DEFAULT}}{native controller placement} -\end{twocollist} diff --git a/docs/latex/wx/tbuffer.tex b/docs/latex/wx/tbuffer.tex deleted file mode 100644 index 577a746e87..0000000000 --- a/docs/latex/wx/tbuffer.tex +++ /dev/null @@ -1,31 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tbuffer.tex -%% Purpose: wxXXXBuffer classes overview -%% Author: Ryan Norton <wxprojects@comcast.net> -%% Modified by: All wxWidgets Developers -%% Created: 04/08/2005 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Buffer classes overview}\label{bufferclasses} - -wxWidgets uses two classes of classes for dealing with buffers in memory. - -The first is one for dealing with character buffers, namely wxCharBuffer for char pointer or multi-byte c strings and wxWCharBuffer for wchar\_t pointer or wide character c strings. - -Secondly, wxWidgets uses, although only rarely currently, wxMemoryBuffer for dealing with raw buffers in memory. - -\subsection{wxXCharBuffer Overview}\label{wxcbov} - -\wxheading{General Usage} - -As mentioned, wxCharBuffer and its wide character variant wxWCharBuffer deal with c strings in memory. They have two constructors, one in which you pass the c string you want them to have a copy of, and another where you specify the size of the buffer in memory in characters you want. - -wxCharBuffer and its variant only contain the c string as a member, so they can be used safely to c functions with variable arguments such as printf. They also contain standard assignment, character access operators and a copy constructor. - -\wxheading{Destruction} - -It should be noted that on destruction wxCharBuffer and its wide character variant delete the c string that hold onto. If you want to get the pointer to the buffer and don't want wxCharBuffer to delete it on destruction, use the member function release to do so. - diff --git a/docs/latex/wx/tchanges.tex b/docs/latex/wx/tchanges.tex deleted file mode 100644 index 9765de4a3e..0000000000 --- a/docs/latex/wx/tchanges.tex +++ /dev/null @@ -1,145 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tchanges.tex -%% Purpose: Changes & Explanation of changes -%% Author: Ryan Norton <wxprojects@comcast.net> (special thanks to ABX) -%% Modified by: All wxWidgets Developers -%% Created: 11/18/2004 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% NOTE: Explanations of changes are no longer put in changes.txt - -%% instead they are put here -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Changes since 2.4.x}\label{changes} - -Listed here are the deprecated and incompatible changes made to wxWidgets. - -For other changes (such as additional features, bug fixes, etc.) see the changes.txt file located in the docs directory of your wxWidgets directory. - -\subsection{Incompatible changes since 2.4.x}\label{incompatiblesince24} - -\wxheading{wxEvent and its derivatives losing public variable members} - -\helpref{wxEvent}{wxevent} and its \helpref{derivatives}{eventhandlingoverview} do not have their public variable members public any more. -Please use Get/Set accessors. - -\wxheading{New window repainting behaviour} - -Windows are no longer fully repainted when resized; use the new style \windowstyle{wxFULL\_REPAINT\_ON\_RESIZE} to force this (\windowstyle{wxNO\_FULL\_REPAINT\_ON\_RESIZE} still exists but doesn't do anything any more, this behaviour is default now). - -\wxheading{Window class member changes} - -wxWindow::m\_font and m\_backgroundColour/m\_foregroundColour are no longer always set, use \helpref{GetFont()}{wxwindowgetfont}, \helpref{GetBack}{wxwindowgetbackgroundcolour}/\helpref{ForegroundColour()}{wxwindowgetforegroundcolour} to access them, and they will be dynamically determined if necessary. - -\wxheading{Sizers Internal Overhaul} - -\helpref{The sizers}{sizeroverview} have had some fundamental internal changes in the 2.5.2 and 2.5.3 releases intended to make them do more of the "Right Thing" but also be as backwards compatible as possible. First a bit about how things used to work: - -\begin{itemize}\itemsep=0pt -\item The size that a window had when \helpref{Add()}{wxsizeradd}ed to the sizer was assumed to be its minimal size, and that size would always be used by default when calculating layout size and positions, and the sizer itself would keep track of that minimal size. -\item If the window item was \helpref{Add()}{wxsizeradd}ed with the \windowstyle{wxADJUST\_MINSIZE} flag then when layout was calculated the item's \helpref{GetBestSize}{wxwindowgetbestsize} would be used to reset the minimal size that the sizer used. -\end{itemize} - -The main thrust of the new sizer changes was to make behaviour like \windowstyle{wxADJUST\_MINSIZE} be the default, and also to push the tracking of the minimal size to the window itself (since it knows its own needs) instead of having the sizer take care of it. Consequently these changes were made: - -\begin{itemize}\itemsep=0pt -\item The \windowstyle{wxFIXED\_MINSIZE} flag was added to allow for the old behaviour. When this flag is used the size a window has when \helpref{Add()}{wxsizeradd}ed to the sizer will be treated as its minimal size and it will not be readjusted on each layout. -\item The minimum size stored in wxWindow and settable with \helpref{SetSizeHints}{wxwindowsetsizehints} or \helpref{SetMinSize}{wxwindowsetminsize} will by default be used by the sizer (if it was set) as the minimal size of the sizer item. If the minsize was not set (or was only partially set) then the window's best size is fetched and it is used instead of (or blended with) the minsize. \helpref{wxWindow::GetBestFittingSize}{wxwindowgetbestfittingsize} was added to facilitate getting the size to be used by the sizers. -\item The best size of a window is cached so it doesn't need to be recalculated on every layout. \helpref{wxWindow::InvalidateBestSize}{wxwindowinvalidatebestsize} was added and should be called (usually just internally in control methods) whenever something is done that would make the best size change. -\item All \helpref{wxControls}{wxcontrol} were changed to set the minsize to what is passed to the constructor or their Create method, and also to set the real size of the control to the blending of the minsize and bestsize. \helpref{wxWindow::SetBestFittingSize}{wxwindowsetbestfittingsize} was added to help with this, although most controls don't need to call it directly because it is called indirectly via the \helpref{SetInitialBestSize}{wxwindowsetinitialbestsize} called in the base classes. -\end{itemize} - -At this time, the only situation known not to work the same as before is the following: - -\begin{verbatim} -win = new SomeWidget(parent); -win->SetSize(SomeNonDefaultSize); -sizer->Add(win); -\end{verbatim} - -In this case the old code would have used the new size as the minimum, but now the sizer will use the default size as the minimum rather than the size set later. It is an easy fix though, just move the specification of the size to the constructor (assuming that SomeWidget will set its minsize there like the rest of the controls do) or call \helpref{SetMinSize}{wxwindowsetminsize} instead of \helpref{SetSize}{wxwindowsetsize}. - -In order to fit well with this new scheme of things, all \helpref{wxControls}{wxcontrol} or custom controls should do the following things. (Depending on how they are used you may also want to do the same thing for non-control custom windows.) - -\begin{itemize}\itemsep=0pt -\item Either override or inherit a meaningful \helpref{DoGetBestSize}{wxwindowdogetbestsize} method that calculates whatever size is "best" for the control. Once that size is calculated then there should normally be a call to \helpref{CacheBestSize}{wxwindowcachebestsize} to save it for later use, unless for some reason you want the best size to be recalculated on every layout. -\item Any method that changes the attributes of the control such that the best size will change should call \helpref{InvalidateBestSize}{wxwindowinvalidatebestsize} so it will be recalculated the next time it is needed. -\item The control's constructor and/or Create method should ensure that the minsize is set to the size passed in, and that the control is sized to a blending of the min size and best size. This can be done by calling \helpref{SetBestFittingSize}{wxwindowsetbestfittingsize}. -\end{itemize} - -\wxheading{Massive wxURL Rewrite} - -\helpref{wxURL}{wxurl} has undergone some radical changes. - -\begin{itemize}\itemsep=0pt -\item Many accessors of \helpref{wxURL}{wxurl} - GetHostName, GetProtocolName, and GetPath, have been replaced by its parent's (\helpref{wxURI}{wxuri}) counterparts - \helpref{GetServer}{wxurigetserver}, \helpref{GetScheme}{wxurigetscheme}, and \helpref{GetPath}{wxurigetpath}, respectively. -\item ConvertToValidURI has been replaced by \helpref{wxURI}{wxuri}. Do not use ConvertToValidURI for future applications. -\item ConvertFromURI has been replaced by \helpref{wxURI::Unescape}{wxuriunescape}. -\end{itemize} - - -\wxheading{Minor incompatible changes since 2.4.x} - -\begin{itemize}\itemsep=0pt -\item no initialization/cleanup can be done in wxApp's constructor or destructor because they are now called much earlier/later than before; please move any exiting code from there to \helpref{wxApp::OnInit()}{wxapponinit}/\helpref{OnExit()}{wxapponexit} -\item also, \helpref{OnExit()}{wxapponexit} is not called if \helpref{OnInit()}{wxapponinit} fails -\item finally the program exit code is \helpref{OnRun()}{wxapponrun} return value, not \helpref{OnExit()}{wxapponexit} one -\item \texttt{wxTheApp} can't be assigned to any longer, use \helpref{wxApp::SetInstance()}{wxappsetinstance} instead -\item \helpref{wxFileType::GetIcon()}{wxfiletypegeticon} returns \helpref{wxIconLocation}{wxiconlocation}, not \helpref{wxIcon}{wxicon} -\item wxColourDatabase is not a \helpref{wxList}{wxlist} any more, use AddColour to add new colours -\item wxWindow::Clear() is now called ClearBackground() -\item pointer returned by wxFont::GetNativeFontInfo() must not be deleted now -\item wxMouseEvent::Moving() doesn't return true if mouse is being dragged any more -\item (most) controls now inherit parents colours by default, override ShouldInheritColours() to return false if you don't want this to happen -\item \helpref{wxApp::SendIdleEvents()}{wxappsendidleevents} now takes 2 arguments -\item wxTabView::GetLayers() changed return type from \helpref{wxList\&}{wxlist} to wxTabLayerList\& (when WXWIN\_COMPATIBILITY\_2\_4 == 0) -\item wxID\_SEPARATOR (id used for the menu separators) value changed from -1 to -2 -\item wxGetNumberFromUser() is now in separate wx/numdlg.h, not wx/textdlg.h -\item wxChoice and wxCombobox now handle their size in the same way as in all the other ports under MSW, new code is actually correct but different from weird stuff they were doing before so the behaviour of your programs might change -\item \helpref{wxTaskBarIcon}{wxtaskbaricon} objects must now be destroyed before the application can exit. Previously, the application terminated if there were no top level windows; now it terminates if there are no top level windows or taskbar icons left. -\item \helpref{wxZlibInputStream}{wxzlibinputstream} is not by default compatible with the output of the 2.4.x version of \helpref{wxZlibOutputStream}{wxzliboutputstream}. However, there is a compatibility mode, switched on by passing wxZLIB\_24COMPATIBLE to the constructor. -\item when WXWIN\_COMPATIBILITY\_2\_4 == 0 \helpref{wxHashTable}{wxhashtable} uses a new implementation not using \helpref{wxList}{wxlist} keyed interface (the same used when wxUSE\_STL == 1), the only incompatibility being that Next() returns a wxHashTable::Node* instead of a wxNode*. -\item non-const wxDC methods GetBackground(), GetBrush(), GetFont() and GetPen() as well as wxWindow methods GetFont() and GetCursor() don't exist any more, please fix your code -- it never worked correctly anyhow if you modified the objects returned by these methods so you should simply switch to using const methods. -\item \helpref{wxWindow::GetFont()}{wxwindowgetfont} now returns \helpref{wxFont}{wxfont} object instead of reference -\item EVT\_XXX macros are now type-safe; code that uses wrong type for event handler's argument will no longer compile. -\item Identical functionality of wxFileDialog::ParseWildcard, wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs is now accessible in ::wxParseCommonDialogsFilter -\item wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer needed, you can treat wxNotebook as any other control and put it directly into the sizer that was wxNotebookSizer's parent sizer in old code. -\item \helpref{wxFile}{wxfile} methods now return either wxFileOffset or wxFileSize\_t which may be a 64 bit integer type, even on 32 bit platforms, instead of off\_t and so the return value of \helpref{wxFile::Length()}{wxfilelength}, for example, shouldn't be assigned to off\_t variable any more (the compiler might warn you about this) -\item wxListItem::m\_data is now of type wxUIntPtr, not long, for compatibility with 64 bit systems -\item wxSizer::Add/Insert returns pointer to wxSizerItem just added so conditions writeen with if(Add(..)==true) will not work. Use if(Add(..)) instead. -\item New \helpref{wxBrush::IsHatch()}{wxbrushishatch} checking for brush type replaces IS\_HATCH macro. -\item wxSystemSettings::GetSystem*() members deprecated and replaced with wxSystemSettings::Get*(). -\end{itemize} - -\subsection{Deprecated changes since 2.4.x}\label{deprecatedsince24} - -\begin{itemize}\itemsep=0pt -\item wxURL::GetInputStream() and similar functionality has been deprecated in favor of other ways of connecting, such as though sockets or wxFileSystem. -\item wxDocManager::GetNoHistoryFiles() renamed to \helpref{GetHistoryFilesCount()}{wxdocmanagergethistoryfilescount} -\item wxSizer::Remove(wxWindow *), use Detach() instead (it is more clear) -\item wxSizer::Set/GetOption(): use Set/GetProportion() instead -\item wxKeyEvent::KeyCode(): use GetKeyCode instead -\item wxList::Number, First, Last, Nth: use GetCount, GetFirst/Last, Item instead -\item wxNode::Next, Previous, Data: use GetNext, GetPrevious, GetData instead -\item wxListBase::operator wxList\&(): use typesafe lists instead -\item wxTheFontMapper: use \helpref{wxFontMapper::Get()}{wxfontmapperget} instead -\item wxStringHashTable: use wxHashMap instead -\item wxHashTableLong: use wxHashMap instead -\item wxArrayString::GetStringArray: use wxCArrayString or alternative wxWidgets methods taking wxArrayString -\item wxArrayString::Remove(index, count): use RemoveAt instead -\item wxTreeItemId conversion to long is deprecated and shouldn't be used -\item wxTreeCtrl::GetFirst/NextChild() 2nd argument now has type wxTreeItemIdValue and not long, please change declarations of "cookie"s in your code accordingly -- otherwise your code won't work on 64 bit platforms -\item (MSW only) wxWindow::GetUseCtl3D(), GetTransparentBackground() and SetTransparent() as well as wxNO\_3D and wxUSER\_COLOURS styles -\item \helpref{wxList}{wxlist} keyed interface: use \helpref{wxHashMap}{wxhashmap} instead -\item wxColourDatabase::FindColour(): use \helpref{Find()}{wxcolourdatabasefind} instead (NOTE: it has a different return type) -\item wxHashTable::Next: use wxHashTable::Node* or wxHashTable::compatibility\_iterator to store the return value -\item wxWave class; use wxSound instead -\item The wxHIDE\_READONLY flag for wxFileDialog was not implemented and has now been removed -\item wxTaskBarIcon::OnXXX() virtual methods: use events instead -\item obsolete and not used wxUSE\_GENERIC\_DIALOGS\_IN\_MSW has been removed -\item wxDbTable::wxDbTable with wxChar* deprecated, same with wxString\& instead. -\end{itemize} - diff --git a/docs/latex/wx/tclipbrd.tex b/docs/latex/wx/tclipbrd.tex deleted file mode 100644 index e76f050078..0000000000 --- a/docs/latex/wx/tclipbrd.tex +++ /dev/null @@ -1,72 +0,0 @@ -\section{wxDataObject overview}\label{wxdataobjectoverview} - -Classes: \helpref{wxDataObject}{wxdataobject}, - \helpref{wxClipboard}{wxclipboard}, - \helpref{wxDataFormat}{wxdataformat}, - \helpref{wxDropSource}{wxdropsource}, - \helpref{wxDropTarget}{wxdroptarget} - -See also: \helpref{Drag and drop overview}{wxdndoverview} and \helpref{DnD sample}{samplednd} - -This overview discusses data transfer through clipboard or drag and drop. In -wxWidgets, these two ways to transfer data (either between different -applications or inside one and the same) are very similar which allows to -implement both of them using almost the same code - or, in other -words, if you implement drag and drop support for your application, you get -clipboard support for free and vice versa. - -At the heart of both clipboard and drag and drop operations lies the -\helpref{wxDataObject}{wxdataobject} class. The objects of this class (or, to -be precise, classes derived from it) represent the data which is being carried -by the mouse during drag and drop operation or copied to or pasted from the -clipboard. wxDataObject is a "smart" piece of data because it knows which -formats it supports (see GetFormatCount and GetAllFormats) and knows how to -render itself in any of them (see GetDataHere). It can also receive its value -from the outside in a format it supports if it implements the SetData method. -Please see the documentation of this class for more details. - -Both clipboard and drag and drop operations have two sides: the source and -target, the data provider and the data receiver. These which may be in the same -application and even the same window when, for example, you drag some text from -one position to another in a word processor. Let us describe what each of them -should do. - -\subsection{The data provider (source) duties}\label{wxdataobjectsource} - -The data provider is responsible for creating a -\helpref{wxDataObject}{wxdataobject} containing the data to be -transferred. Then it should either pass it to the clipboard using -\helpref{SetData}{wxclipboardsetdata} function or to -\helpref{wxDropSource}{wxdropsource} and call -\helpref{DoDragDrop}{wxdropsourcedodragdrop} function. - -The only (but important) difference is that the object for the clipboard -transfer must always be created on the heap (i.e. using {\tt new}) and it will -be freed by the clipboard when it is no longer needed (indeed, it is not known -in advance when, if ever, the data will be pasted from the clipboard). On the -other hand, the object for drag and drop operation must only exist while -\helpref{DoDragDrop}{wxdropsourcedodragdrop} executes and may be safely deleted -afterwards and so can be created either on heap or on stack (i.e. as a local -variable). - -Another small difference is that in the case of clipboard operation, the -application usually knows in advance whether it copies or cuts (i.e. copies and -deletes) data - in fact, this usually depends on which menu item the user -chose. But for drag and drop it can only know it after -\helpref{DoDragDrop}{wxdropsourcedodragdrop} returns (from its return value). - -\subsection{The data receiver (target) duties}\label{wxdataobjecttarget} - -To receive (paste in usual terminology) data from the clipboard, you should -create a \helpref{wxDataObject}{wxdataobject} derived class which supports the -data formats you need and pass it as argument to -\helpref{wxClipboard::GetData}{wxclipboardgetdata}. If it returns {\tt false}, -no data in (any of) the supported format(s) is available. If it returns {\tt -true}, the data has been successfully transferred to wxDataObject. - -For drag and drop case, the \helpref{wxDropTarget::OnData}{wxdroptargetondata} -virtual function will be called when a data object is dropped, from which the -data itself may be requested by calling -\helpref{wxDropTarget::GetData}{wxdroptargetwxdroptarget} method which fills -the data object. - diff --git a/docs/latex/wx/tcommdlg.tex b/docs/latex/wx/tcommdlg.tex deleted file mode 100644 index d034bb0156..0000000000 --- a/docs/latex/wx/tcommdlg.tex +++ /dev/null @@ -1,214 +0,0 @@ -\section{Common dialogs overview}\label{commondialogsoverview} - -Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxFontDialog}{wxfontdialog}, -\rtfsp\helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxFileDialog}{wxfiledialog},\rtfsp -\helpref{wxDirDialog}{wxdirdialog}, \helpref{wxTextEntryDialog}{wxtextentrydialog},\rtfsp -\helpref{wxPasswordEntryDialog}{wxpasswordentrydialog},\rtfsp -\helpref{wxMessageDialog}{wxmessagedialog}, \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog},\rtfsp -\helpref{wxMultiChoiceDialog}{wxmultichoicedialog} - -Common dialog classes and functions encapsulate commonly-needed dialog box requirements. -They are all `modal', grabbing the flow of control until the user dismisses the dialog, -to make them easy to use within an application. - -Some dialogs have both platform-dependent and platform-independent implementations, -so that if underlying windowing systems do not provide the required functionality, -the generic classes and functions can stand in. For example, under MS Windows, wxColourDialog -uses the standard colour selector. There is also an equivalent called wxGenericColourDialog -for other platforms, and a macro defines wxColourDialog to be the same as wxGenericColourDialog -on non-MS Windows platforms. However, under MS Windows, the generic dialog can also be -used, for testing or other purposes. - -\subsection{wxColourDialog overview}\label{wxcolourdialogoverview} - -Classes: \helpref{wxColourDialog}{wxcolourdialog}, \helpref{wxColourData}{wxcolourdata} - -The wxColourDialog presents a colour selector to the user, and returns -with colour information. - -{\bf The MS Windows colour selector} - -Under Windows, the native colour selector common dialog is used. This -presents a dialog box with three main regions: at the top left, a -palette of 48 commonly-used colours is shown. Under this, there is a -palette of 16 `custom colours' which can be set by the application if -desired. Additionally, the user may open up the dialog box to show -a right-hand panel containing controls to select a precise colour, and add -it to the custom colour palette. - -{\bf The generic colour selector} - -Under non-MS Windows platforms, the colour selector is a simulation of -most of the features of the MS Windows selector. Two palettes of 48 -standard and 16 custom colours are presented, with the right-hand area -containing three sliders for the user to select a colour from red, -green and blue components. This colour may be added to the custom colour -palette, and will replace either the currently selected custom colour, -or the first one in the palette if none is selected. The RGB colour sliders -are not optional in the generic colour selector. The generic colour -selector is also available under MS Windows; use the name -wxGenericColourDialog. - -{\bf Example} - -In the samples/dialogs directory, there is an example of using -the wxColourDialog class. Here is an excerpt, which -sets various parameters of a wxColourData object, including -a grey scale for the custom colours. If the user did not cancel -the dialog, the application retrieves the selected colour and -uses it to set the background of a window. - -\begin{verbatim} - wxColourData data; - data.SetChooseFull(true); - for (int i = 0; i < 16; i++) - { - wxColour colour(i*16, i*16, i*16); - data.SetCustomColour(i, colour); - } - - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() == wxID_OK) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - wxBrush brush(col, wxSOLID); - myWindow->SetBackground(brush); - myWindow->Clear(); - myWindow->Refresh(); - } -\end{verbatim} - - -\subsection{wxFontDialog overview}\label{wxfontdialogoverview} - -Classes: \helpref{wxFontDialog}{wxfontdialog}, \helpref{wxFontData}{wxfontdata} - -The wxFontDialog presents a font selector to the user, and returns -with font and colour information. - -{\bf The MS Windows font selector} - -Under Windows, the native font selector common dialog is used. This -presents a dialog box with controls for font name, point size, style, weight, -underlining, strikeout and text foreground colour. A sample of the -font is shown on a white area of the dialog box. Note that -in the translation from full MS Windows fonts to wxWidgets font -conventions, strikeout is ignored and a font family (such as -Swiss or Modern) is deduced from the actual font name (such as Arial -or Courier). - -{\bf The generic font selector} - -Under non-MS Windows platforms, the font selector is simpler. -Controls for font family, point size, style, weight, -underlining and text foreground colour are provided, and -a sample is shown upon a white background. The generic font selector -is also available under MS Windows; use the name wxGenericFontDialog. - -{\bf Example} - -In the samples/dialogs directory, there is an example of using -the wxFontDialog class. The application uses the returned font -and colour for drawing text on a canvas. Here is an excerpt: - -\begin{verbatim} - wxFontData data; - data.SetInitialFont(canvasFont); - data.SetColour(canvasTextColour); - - wxFontDialog dialog(this, &data); - if (dialog.ShowModal() == wxID_OK) - { - wxFontData retData = dialog.GetFontData(); - canvasFont = retData.GetChosenFont(); - canvasTextColour = retData.GetColour(); - myWindow->Refresh(); - } -\end{verbatim} - -\subsection{wxPrintDialog overview}\label{wxprintdialogoverview} - -Classes: \helpref{wxPrintDialog}{wxprintdialog}, \helpref{wxPrintData}{wxprintdata} - -This class represents the print and print setup common dialogs. -You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from -a successfully dismissed print dialog. - -The samples/printing example shows how to use it: see \helpref{Printing overview}{printingoverview} for -an excerpt from this example. - -\subsection{wxFileDialog overview}\label{wxfiledialogoverview} - -Classes: \helpref{wxFileDialog}{wxfiledialog} - -Pops up a file selector box. In Windows and GTK2.4+, this is the common -file selector dialog. In X, this is a file selector box with somewhat less -functionality. The path and filename are distinct elements of a full file pathname. -If path is ``", the current directory will be used. If filename is ``", -no default filename will be supplied. The wildcard determines what files -are displayed in the file selector, and file extension supplies a type -extension for the required filename. Flags may be a combination of wxFD\_OPEN, -wxFD\_SAVE, wxFD\_OVERWRITE\_PROMPT, wxFD\_HIDE\_READONLY, wxFD\_FILE\_MUST\_EXIST, -wxFD\_MULTIPLE, wxFD\_CHANGE\_DIR or 0. - -Both the X and Windows versions implement a wildcard filter. Typing a -filename containing wildcards (*, ?) in the filename text item, and -clicking on Ok, will result in only those files matching the pattern being -displayed. In the X version, supplying no default name will result in the -wildcard filter being inserted in the filename text item; the filter is -ignored if a default name is supplied. - -The wildcard may be a specification for multiple -types of file with a description for each, such as: - -\begin{verbatim} - "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif" -\end{verbatim} - -\subsection{wxDirDialog overview}\label{wxdirdialogoverview} - -Classes: \helpref{wxDirDialog}{wxdirdialog} - -This dialog shows a directory selector dialog, allowing the user to select a single -directory. - -\subsection{wxTextEntryDialog overview}\label{wxtextentrydialogoverview} - -Classes: \helpref{wxTextEntryDialog}{wxtextentrydialog} - -This is a dialog with a text entry field. The value that the user -entered is obtained using \helpref{wxTextEntryDialog::GetValue}{wxtextentrydialoggetvalue}. - -\subsection{wxPasswordEntryDialog overview}\label{wxpasswordentrydialogoverview} - -Classes: \helpref{wxPasswordEntryDialog}{wxpasswordentrydialog} - -This is a dialog with a password entry field. The value that the user -entered is obtained using \helpref{wxTextEntryDialog::GetValue}{wxtextentrydialoggetvalue}. - -\subsection{wxMessageDialog overview}\label{wxmessagedialogoverview} - -Classes: \helpref{wxMessageDialog}{wxmessagedialog} - -This dialog shows a message, plus buttons that can be chosen from OK, Cancel, Yes, and No. -Under Windows, an optional icon can be shown, such as an exclamation mark or question mark. - -The return value of \helpref{wxMessageDialog::ShowModal}{wxmessagedialogshowmodal} indicates -which button the user pressed. - -\subsection{wxSingleChoiceDialog overview}\label{wxsinglechoicedialogoverview} - -Classes: \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} - -This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can -select one of them. The selection can be obtained from the dialog as an index, -a string or client data. - -\subsection{wxMultiChoiceDialog overview}\label{wxmultichoicedialogoverview} - -Classes: \helpref{wxMultiChoiceDialog}{wxmultichoicedialog} - -This dialog shows a list of choices, plus OK and (optionally) Cancel. The user can -select one or more of them. - diff --git a/docs/latex/wx/tconfig.tex b/docs/latex/wx/tconfig.tex deleted file mode 100644 index 92475c75eb..0000000000 --- a/docs/latex/wx/tconfig.tex +++ /dev/null @@ -1,50 +0,0 @@ -\section{wxConfig classes overview}\label{wxconfigoverview} - -Classes: \helpref{wxConfig}{wxconfigbase} - -This overview briefly describes what the config classes are and what they are -for. All the details about how to use them may be found in the description of -the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the -file, registry and INI file based implementations mentions all the -features/limitations specific to each one of these versions. - -The config classes provide a way to store some application configuration -information. They were especially designed for this usage and, although may -probably be used for many other things as well, should be limited to it. It -means that this information should be: - -\begin{enumerate}\itemsep=0pt -\item Typed, i.e. strings or numbers for the moment. You can not store -binary data, for example. -\item Small. For instance, it is not recommended to use the Windows -registry for amounts of data more than a couple of kilobytes. -\item Not performance critical, neither from speed nor from a memory -consumption point of view. -\end{enumerate} - -On the other hand, the features provided make them very useful for storing all -kinds of small to medium volumes of hierarchically-organized, heterogeneous -data. In short, this is a place where you can conveniently stuff all your data -(numbers and strings) organizing it in a tree where you use the -filesystem-like paths to specify the location of a piece of data. In -particular, these classes were designed to be as easy to use as possible. - -From another point of view, they provide an interface which hides the -differences between the Windows registry and the standard Unix text format -configuration files. Other (future) implementations of wxConfigBase might also -understand GTK resource files or their analogues on the KDE side. - -In any case, each implementation of wxConfigBase does its best to -make the data look the same way everywhere. Due to limitations of the underlying -physical storage, it may not implement 100\% of the base class functionality. - -There are groups of entries and the entries themselves. Each entry contains either a string or a number -(or a boolean value; support for other types of data such as dates or -timestamps is planned) and is identified by the full path to it: something -like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the -path are the group names, and each name may contain an arbitrary number of entries -and subgroups. The path components are {\bf always} separated with a slash, -even though some implementations use the backslash internally. Further -details (including how to read/write these entries) may be found in -the documentation for \helpref{wxConfigBase}{wxconfigbase}. - diff --git a/docs/latex/wx/tconstr.tex b/docs/latex/wx/tconstr.tex deleted file mode 100644 index 32ea2bf62e..0000000000 --- a/docs/latex/wx/tconstr.tex +++ /dev/null @@ -1,179 +0,0 @@ -\section{Constraints overview}\label{constraintsoverview} - -Classes: \helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}. - -{\bf Note:} constraints are now deprecated and you should use \helpref{sizers}{sizeroverview} instead. - -Objects of class wxLayoutConstraint can be associated with a window to define -the way it is laid out, with respect to its siblings or the parent. - -The class consists of the following eight constraints of class wxIndividualLayoutConstraint, -some or all of which should be accessed directly to set the appropriate -constraints. - -\begin{itemize}\itemsep=0pt -\item {\bf left:} represents the left hand edge of the window -\item {\bf right:} represents the right hand edge of the window -\item {\bf top:} represents the top edge of the window -\item {\bf bottom:} represents the bottom edge of the window -\item {\bf width:} represents the width of the window -\item {\bf height:} represents the height of the window -\item {\bf centreX:} represents the horizontal centre point of the window -\item {\bf centreY:} represents the vertical centre point of the window -\end{itemize} - -The constraints are initially set to have the relationship wxUnconstrained, -which means that their values should be calculated by looking at known constraints. -To calculate the position and size of the control, the layout algorithm needs to -know exactly 4 constraints (as it has 4 numbers to calculate from them), so you -should always set exactly 4 of the constraints from the above table. - -If you want the controls height or width to have the default value, you may use -a special value for the constraint: wxAsIs. If the constraint is wxAsIs, the -dimension will not be changed which is useful for the dialog controls which -often have the default size (e.g. the buttons whose size is determined by their -label). - -The constrains calculation is done in \helpref{wxWindow::Layout}{wxwindowlayout} -function which evaluates constraints. To call it you can either call -\helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} if the parent window -is a frame, panel or a dialog to tell default OnSize handlers to call Layout -automatically whenever the window size changes, or override OnSize and call -Layout yourself (note that you do have to call -\helpref{Layout}{wxwindowlayout} yourself if the parent window is not a -frame, panel or dialog). - -\subsection{Constraint layout: more details}\label{constraintlayoutdetails} - -By default, windows do not have a wxLayoutConstraints object. In this case, much layout -must be done explicitly, by performing calculations in OnSize members, except -for the case of frames that have exactly one subwindow (not counting toolbar and -statusbar which are also positioned by the frame automatically), where wxFrame::OnSize -takes care of resizing the child to always fill the frame. - -To avoid the need for these rather awkward calculations, the user can create -a wxLayoutConstraints object and associate it with a window with wxWindow::SetConstraints. -This object contains a constraint for each of the window edges, two for the centre point, -and two for the window size. By setting some or all of these constraints appropriately, -the user can achieve quite complex layout by defining relationships between windows. - -In wxWidgets, each window can be constrained relative to either its {\it -siblings} on the same window, or the {\it parent}. The layout algorithm -therefore operates in a top-down manner, finding the correct layout for -the children of a window, then the layout for the grandchildren, and so -on. Note that this differs markedly from native Motif layout, where -constraints can ripple upwards and can eventually change the frame -window or dialog box size. We assume in wxWidgets that the {\it user} is -always `boss' and specifies the size of the outer window, to which -subwindows must conform. Obviously, this might be a limitation in some -circumstances, but it suffices for most situations, and the -simplification avoids some of the nightmarish problems associated with -programming Motif. - -When the user sets constraints, many of the constraints for windows -edges and dimensions remain unconstrained. For a given window, -the wxWindow::Layout algorithm first resets all constraints -in all children to have unknown edge or dimension values, and then iterates through the constraints, -evaluating them. For unconstrained edges and dimensions, it -tries to find the value using known relationships that always hold. For example, -an unconstrained {\it width} may be calculated from the {\it left} and {\it right edges}, if -both are currently known. For edges and dimensions with user-supplied constraints, these -constraints are evaluated if the inputs of the constraint are known. - -The algorithm stops when all child edges and dimension are known (success), or -there are unknown edges or dimensions but there has been no change in this cycle (failure). - -It then sets all the window positions and sizes according to the values it has found. - -Because the algorithm is iterative, the order in which constraints are considered is -irrelevant, however you may reduce the number of iterations (and thus speed up -the layout calculations) by creating the controls in such order that as many -constraints as possible can be calculated during the first iteration. For example, if -you have 2 buttons which you'd like to position in the lower right corner, it is -slightly more efficient to first create the second button and specify that its -right border IsSameAs(parent, wxRight) and then create the first one by -specifying that it should be LeftOf() the second one than to do in a more -natural left-to-right order. - -\subsection{Window layout examples}\label{layoutexamples} - -\subsubsection{Example 1: subwindow layout}\label{subwindowlayoutexample} - -This example specifies a panel and a window side by side, -with a text subwindow below it. - -\begin{verbatim} - frame->panel = new wxPanel(frame, -1, wxPoint(0, 0), wxSize(1000, 500), 0); - frame->scrollWindow = new MyScrolledWindow(frame, -1, wxPoint(0, 0), wxSize(400, 400), wxRETAINED); - frame->text_window = new MyTextWindow(frame, -1, wxPoint(0, 250), wxSize(400, 250)); - - // Set constraints for panel subwindow - wxLayoutConstraints *c1 = new wxLayoutConstraints; - - c1->left.SameAs (frame, wxLeft); - c1->top.SameAs (frame, wxTop); - c1->right.PercentOf (frame, wxWidth, 50); - c1->height.PercentOf (frame, wxHeight, 50); - - frame->panel->SetConstraints(c1); - - // Set constraints for scrollWindow subwindow - wxLayoutConstraints *c2 = new wxLayoutConstraints; - - c2->left.SameAs (frame->panel, wxRight); - c2->top.SameAs (frame, wxTop); - c2->right.SameAs (frame, wxRight); - c2->height.PercentOf (frame, wxHeight, 50); - - frame->scrollWindow->SetConstraints(c2); - - // Set constraints for text subwindow - wxLayoutConstraints *c3 = new wxLayoutConstraints; - c3->left.SameAs (frame, wxLeft); - c3->top.Below (frame->panel); - c3->right.SameAs (frame, wxRight); - c3->bottom.SameAs (frame, wxBottom); - - frame->text_window->SetConstraints(c3); -\end{verbatim} - -\subsubsection{Example 2: panel item layout}\label{panelitemlayoutexample} - -This example sizes a button width to 80 percent of the panel width, and centres -it horizontally. A listbox and multitext item are placed below it. The listbox -takes up 40 percent of the panel width, and the multitext item takes up -the remainder of the width. Margins of 5 pixels are used. - -\begin{verbatim} - // Create some panel items - wxButton *btn1 = new wxButton(frame->panel, -1, "A button") ; - - wxLayoutConstraints *b1 = new wxLayoutConstraints; - b1->centreX.SameAs (frame->panel, wxCentreX); - b1->top.SameAs (frame->panel, wxTop, 5); - b1->width.PercentOf (frame->panel, wxWidth, 80); - b1->height.PercentOf (frame->panel, wxHeight, 10); - btn1->SetConstraints(b1); - - wxListBox *list = new wxListBox(frame->panel, -1, "A list", - wxPoint(-1, -1), wxSize(200, 100)); - - wxLayoutConstraints *b2 = new wxLayoutConstraints; - b2->top.Below (btn1, 5); - b2->left.SameAs (frame->panel, wxLeft, 5); - b2->width.PercentOf (frame->panel, wxWidth, 40); - b2->bottom.SameAs (frame->panel, wxBottom, 5); - list->SetConstraints(b2); - - wxTextCtrl *mtext = new wxTextCtrl(frame->panel, -1, "Multiline text", "Some text", - wxPoint(-1, -1), wxSize(150, 100), wxTE_MULTILINE); - - wxLayoutConstraints *b3 = new wxLayoutConstraints; - b3->top.Below (btn1, 5); - b3->left.RightOf (list, 5); - b3->right.SameAs (frame->panel, wxRight, 5); - b3->bottom.SameAs (frame->panel, wxBottom, 5); - mtext->SetConstraints(b3); -\end{verbatim} - - diff --git a/docs/latex/wx/tcontain.tex b/docs/latex/wx/tcontain.tex deleted file mode 100644 index 4ac0741b36..0000000000 --- a/docs/latex/wx/tcontain.tex +++ /dev/null @@ -1,59 +0,0 @@ -\section{Container classes overview}\label{wxcontaineroverview} - -Classes: \helpref{wxList<T>}{wxlist}, \helpref{wxArray<T>}{wxarray}, \helpref{wxVector<T>}{wxvector} - -wxWidgets uses itself several container classes including doubly-linked lists -and dynamic arrays (i.e. arrays which expand automatically when they become -full). For both historical and portability reasons wxWidgets does not -use STL which provides the standard implementation of many container classes in -C++. First of all, wxWidgets has existed since well before STL was written, and -secondly we don't believe that today compilers can deal really well with all of -STL classes (this is especially true for some less common platforms). Of -course, the compilers are evolving quite rapidly and hopefully their progress -will allow to base future versions of wxWidgets on STL - but this is not yet -the case. - -wxWidgets container classes don't pretend to be as powerful or full as STL -ones, but they are quite useful and may be compiled with absolutely any C++ -compiler. They're used internally by wxWidgets, but may, of course, be used in -your programs as well if you wish. - -The list classes in wxWidgets are doubly-linked lists which may either own the -objects they contain (meaning that the list deletes the object when it is -removed from the list or the list itself is destroyed) or just store the -pointers depending on whether you called or not -\helpref{wxList::DeleteContents}{wxlistdeletecontents} method. - -Dynamic arrays resemble C arrays but with two important differences: they -provide run-time range checking in debug builds and they automatically expand -the allocated memory when there is no more space for new items. They come in -two sorts: the "plain" arrays which store either built-in types such as "char", -"int" or "bool" or the pointers to arbitrary objects, or "object arrays" which -own the object pointers to which they store. - -For the same portability reasons, the container classes implementation in wxWidgets -does not use templates, but is rather based on C preprocessor i.e. is done with -the macros: {\it WX\_DECLARE\_LIST} and {\it WX\_DEFINE\_LIST} for the linked -lists and {\it WX\_DECLARE\_ARRAY}, {\it WX\_DECLARE\_OBJARRAY} and {\it WX\_DEFINE\_OBJARRAY} for -the dynamic arrays. The "DECLARE" macro declares a -new container class containing the elements of given type and is needed for all -three types of container classes: lists, arrays and objarrays. The "DEFINE" -classes must be inserted in your program in a place where the {\bf full -declaration of container element class is in scope} (i.e. not just forward -declaration), otherwise destructors of the container elements will not be -called! As array classes never delete the items they contain anyhow, there is -no WX\_DEFINE\_ARRAY macro for them. - -Examples of usage of these macros may be found in \helpref{wxList}{wxlist} and -\helpref{wxArray}{wxarray} documentation. - -Finally, wxWidgets predefines several commonly used container classes. wxList -is defined for compatibility with previous versions as a list containing -wxObjects and wxStringList as a list of C-style strings (char *), both of these -classes are deprecated and should not be used in new programs. The following -array classes are defined: wxArrayInt, wxArrayLong, wxArrayPtrVoid and -wxArrayString. The first three store elements of corresponding types, but -wxArrayString is somewhat special: it is an optimized version of wxArray which -uses its knowledge about \helpref{wxString}{wxstring} reference counting -schema. - diff --git a/docs/latex/wx/tcpclint.tex b/docs/latex/wx/tcpclint.tex deleted file mode 100644 index d5c4027cbb..0000000000 --- a/docs/latex/wx/tcpclint.tex +++ /dev/null @@ -1,72 +0,0 @@ -\section{\class{wxTCPClient}}\label{wxtcpclient} - -A wxTCPClient object represents the client part of a client-server conversation. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEClient}{wxddeclient}. - -To create a client which can communicate with a suitable server, -you need to derive a class from wxTCPConnection and another from wxTCPClient. -The custom wxTCPConnection class will intercept communications in -a `conversation' with a server, and the custom wxTCPServer is required -so that a user-overridden \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} member can return -a wxTCPConnection of the required class, when a connection is made. - -\wxheading{Derived from} - -wxClientBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sckipc.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxTCPServer}{wxtcpserver}, \helpref{wxTCPConnection}{wxtcpconnection}, -\helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPClient::wxTCPClient}\label{wxtcpclientctor} - -\func{}{wxTCPClient}{\void} - -Constructs a client object. - -\membersection{wxTCPClient::MakeConnection}\label{wxtcpclientmakeconnection} - -\func{wxConnectionBase *}{MakeConnection}{\param{const wxString\& }{host}, \param{const wxString\& }{service}, \param{const wxString\& }{topic}} - -Tries to make a connection with a server specified by the host -(a machine name under Unix), service name (must -contain an integer port number under Unix), and a topic string. If the -server allows a connection, a wxTCPConnection object will be returned. -The type of wxTCPConnection returned can be altered by overriding -the \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} member to return your own -derived connection object. - -\membersection{wxTCPClient::OnMakeConnection}\label{wxtcpclientonmakeconnection} - -\func{wxConnectionBase *}{OnMakeConnection}{\void} - -The type of \helpref{wxTCPConnection}{wxtcpconnection} returned from a \helpref{wxTCPClient::MakeConnection}{wxtcpclientmakeconnection} call can -be altered by deriving the {\bf OnMakeConnection} member to return your -own derived connection object. By default, a wxTCPConnection -object is returned. - -The advantage of deriving your own connection class is that it will -enable you to intercept messages initiated by the server, such -as \helpref{wxTCPConnection::OnAdvise}{wxtcpconnectiononadvise}. You may also want to -store application-specific data in instances of the new class. - -\membersection{wxTCPClient::ValidHost}\label{wxtcpclientvalidhost} - -\func{bool}{ValidHost}{\param{const wxString\& }{host}} - -Returns true if this is a valid host name, false otherwise. - diff --git a/docs/latex/wx/tcpconn.tex b/docs/latex/wx/tcpconn.tex deleted file mode 100644 index 5f1dafc35d..0000000000 --- a/docs/latex/wx/tcpconn.tex +++ /dev/null @@ -1,229 +0,0 @@ -\section{\class{wxTCPConnection}}\label{wxtcpconnection} - -A wxTCPClient object represents the connection between a client and a server. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEConnection}{wxddeconnection}. - -A wxTCPConnection object can be created by making a connection using a\rtfsp -\helpref{wxTCPClient}{wxtcpclient} object, or by the acceptance of a connection by a\rtfsp -\helpref{wxTCPServer}{wxtcpserver} object. The bulk of a conversation is controlled by -calling members in a {\bf wxTCPConnection} object or by overriding its -members. - -An application should normally derive a new connection class from -wxTCPConnection, in order to override the communication event handlers -to do something interesting. - -\wxheading{Derived from} - -wxConnectionBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sckipc.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{Types} - -\index{wxIPCFormat}wxIPCFormat is defined as follows: - -\begin{verbatim} -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UTF16TEXT = 13, /* CF_UNICODE */ - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_UTF8TEXT = 17, - wxIPC_UTF32TEXT = 18, -#if SIZEOF_WCHAR_T == 2 - wxIPC_UNICODETEXT = wxIPC_UTF16TEXT, -#elif SIZEOF_WCHAR_T == 4 - wxIPC_UNICODETEXT = wxIPC_UTF32TEXT, -#endif - wxIPC_PRIVATE = 20 -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxTCPClient}{wxtcpclient}, \helpref{wxTCPServer}{wxtcpserver}, \helpref{Interprocess communications overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPConnection::wxTCPConnection}\label{wxtcpconnectionctor} - -\func{}{wxTCPConnection}{\void} - -\func{}{wxTCPConnection}{\param{void* }{buffer}, \param{size\_t}{ size}} - -Constructs a connection object. If no user-defined connection object is -to be derived from wxTCPConnection, then the constructor should not be -called directly, since the default connection object will be provided on -requesting (or accepting) a connection. However, if the user defines his -or her own derived connection object, the \helpref{wxTCPServer::OnAcceptConnection}{wxtcpserveronacceptconnection}\rtfsp -and/or \helpref{wxTCPClient::OnMakeConnection}{wxtcpclientonmakeconnection} members should be replaced by -functions which construct the new connection object. If the arguments of -the wxTCPConnection constructor are void, then a default buffer is -associated with the connection. Otherwise, the programmer must provide a -a buffer and size of the buffer for the connection object to use in -transactions. - -\membersection{wxTCPConnection::Advise}\label{wxtcpconnectionadvise} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Advise}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the server application to advise the client of a change in -the data associated with the given item. Causes the client -connection's \helpref{wxTCPConnection::OnAdvise}{wxtcpconnectiononadvise} -member to be called. Returns true if successful. - -\membersection{wxTCPConnection::Execute}\label{wxtcpconnectionexecute} - -\func{bool}{Execute}{\param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Execute}{\param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Execute}{\param{const wxString& }{data}} - -Called by the client application to execute a command on the server. Can -also be used to transfer arbitrary data to the server (similar -to \helpref{wxTCPConnection::Poke}{wxtcpconnectionpoke} in that respect). Causes the -server connection's \helpref{wxTCPConnection::OnExecute}{wxtcpconnectiononexecute} member to be -called. Returns true if successful. - -\membersection{wxTCPConnection::Disconnect}\label{wxtcpconnectiondisconnect} - -\func{bool}{Disconnect}{\void} - -Called by the client or server application to disconnect from the other -program; it causes the \helpref{wxTCPConnection::OnDisconnect}{wxtcpconnectionondisconnect} message -to be sent to the corresponding connection object in the other -program. The default behaviour of {\bf OnDisconnect} is to delete the -connection, but the calling application must explicitly delete its -side of the connection having called {\bf Disconnect}. Returns true if -successful. - -\membersection{wxTCPConnection::OnAdvise}\label{wxtcpconnectiononadvise} - -\func{virtual bool}{OnAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the client application when the server notifies it of a -change in the data associated with the given item. - -\membersection{wxTCPConnection::OnDisconnect}\label{wxtcpconnectionondisconnect} - -\func{virtual bool}{OnDisconnect}{\void} - -Message sent to the client or server application when the other -application notifies it to delete the connection. Default behaviour is -to delete the connection object. - -\membersection{wxTCPConnection::OnExecute}\label{wxtcpconnectiononexecute} - -\func{virtual bool}{OnExecute}{\param{const wxString\& }{topic}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat}{ format}} - -Message sent to the server application when the client notifies it to -execute the given data. Note that there is no item associated with -this message. - -\membersection{wxTCPConnection::OnPoke}\label{wxtcpconnectiononpoke} - -\func{virtual bool}{OnPoke}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client notifies it to -accept the given data. - -\membersection{wxTCPConnection::OnRequest}\label{wxtcpconnectiononrequest} - -\func{virtual const void*}{OnRequest}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}, \param{size\_t *}{size}, \param{wxIPCFormat }{format}} - -Message sent to the server application when the client -calls \helpref{wxTCPConnection::Request}{wxtcpconnectionrequest}. The server -should respond by returning a character string from {\bf OnRequest}, -or NULL to indicate no data. - -\membersection{wxTCPConnection::OnStartAdvise}\label{wxtcpconnectiononstartadvise} - -\func{virtual bool}{OnStartAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to start an `advise loop' for the given topic and item. The -server can refuse to participate by returning false. - -\membersection{wxTCPConnection::OnStopAdvise}\label{wxtcpconnectiononstopadvise} - -\func{virtual bool}{OnStopAdvise}{\param{const wxString\& }{topic}, \param{const wxString\& }{item}} - -Message sent to the server application by the client, when the client -wishes to stop an `advise loop' for the given topic and item. The -server can refuse to stop the advise loop by returning false, although -this doesn't have much meaning in practice. - -\membersection{wxTCPConnection::Poke}\label{wxtcpconnectionpoke} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const void* }{data}, \param{size\_t }{size}, \param{wxIPCFormat }{format = wxIPC\_PRIVATE}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const char* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wchar\_t* }{data}, \param{size\_t }{size = (size\_t)-1}} - -\func{bool}{Poke}{\param{const wxString\& }{item}, \param{const wxString& }{data}} - -Called by the client application to poke data into the server. Can be -used to transfer arbitrary data to the server. Causes the server -connection's \helpref{wxTCPConnection::OnPoke}{wxtcpconnectiononpoke} member -to be called. Returns true if successful. - -\membersection{wxTCPConnection::Request}\label{wxtcpconnectionrequest} - -\func{const void*}{Request}{\param{const wxString\& }{item}, \param{size\_t *}{size}, \param{wxIPCFormat }{format = wxIPC\_TEXT}} - -Called by the client application to request data from the server. Causes -the server connection's \helpref{wxTCPConnection::OnRequest}{wxtcpconnectiononrequest} member to be called. Returns a -character string (actually a pointer to the connection's buffer) if -successful, NULL otherwise. - -\membersection{wxTCPConnection::StartAdvise}\label{wxtcpconnectionstartadvise} - -\func{bool}{StartAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be started -with the server. Causes the server connection's \helpref{wxTCPConnection::OnStartAdvise}{wxtcpconnectiononstartadvise}\rtfsp -member to be called. Returns true if the server okays it, false -otherwise. - -\membersection{wxTCPConnection::StopAdvise}\label{wxtcpconnectionstopadvise} - -\func{bool}{StopAdvise}{\param{const wxString\& }{item}} - -Called by the client application to ask if an advise loop can be -stopped. Causes the server connection's \helpref{wxTCPConnection::OnStopAdvise}{wxtcpconnectiononstopadvise} member -to be called. Returns true if the server okays it, false otherwise. - diff --git a/docs/latex/wx/tcpservr.tex b/docs/latex/wx/tcpservr.tex deleted file mode 100644 index 30cfe7941d..0000000000 --- a/docs/latex/wx/tcpservr.tex +++ /dev/null @@ -1,53 +0,0 @@ -\section{\class{wxTCPServer}}\label{wxtcpserver} - -A wxTCPServer object represents the server part of a client-server conversation. -It emulates a DDE-style protocol, but uses TCP/IP which is available on most platforms. - -A DDE-based implementation for Windows is available using \helpref{wxDDEServer}{wxddeserver}. - -\wxheading{Derived from} - -wxServerBase\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/sckipc.h> - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxTCPClient}{wxtcpclient}, \helpref{wxTCPConnection}{wxtcpconnection}, \helpref{IPC overview}{ipcoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTCPServer::wxTCPServer}\label{wxtcpserverctor} - -\func{}{wxTCPServer}{\void} - -Constructs a server object. - -\membersection{wxTCPServer::Create}\label{wxtcpservercreate} - -\func{bool}{Create}{\param{const wxString\& }{service}} - -Registers the server using the given service name. Under Unix, the -string must contain an integer id which is used as an Internet port -number. false is returned if the call failed (for example, the port -number is already in use). - -\membersection{wxTCPServer::OnAcceptConnection}\label{wxtcpserveronacceptconnection} - -\func{virtual wxConnectionBase *}{OnAcceptConnection}{\param{const wxString\& }{topic}} - -When a client calls {\bf MakeConnection}, the server receives the -message and this member is called. The application should derive a -member to intercept this message and return a connection object of -either the standard wxTCPConnection type, or of a user-derived type. If the -topic is ``STDIO'', the application may wish to refuse the connection. -Under Unix, when a server is created the OnAcceptConnection message is -always sent for standard input and output. - diff --git a/docs/latex/wx/tdate.tex b/docs/latex/wx/tdate.tex deleted file mode 100644 index 06b14b681f..0000000000 --- a/docs/latex/wx/tdate.tex +++ /dev/null @@ -1,218 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tdate.tex -%% Purpose: wxDateTime and related classes overview -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 07.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Date and time classes overview}\label{wxdatetimeoverview} - -Classes: \helpref{wxDateTime}{wxdatetime}, \helpref{wxDateSpan}{wxdatespan}, \helpref{wxTimeSpan}{wxtimespan}, \helpref{wxCalendarCtrl}{wxcalendarctrl} - -\subsection{Introduction}\label{introductiontowxdatetime} - -wxWidgets provides a set of powerful classes to work with dates and times. Some -of the supported features of \helpref{wxDateTime}{wxdatetime} class are: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{Wide range}{The range of supported dates goes from about 4714 B.C. to -some 480 million years in the future.} -\twocolitem{Precision}{Not using floating point calculations anywhere ensures that -the date calculations don't suffer from rounding errors.} -\twocolitem{Many features}{Not only all usual calculations with dates are supported, -but also more exotic week and year day calculations, work day testing, standard -astronomical functions, conversion to and from strings in either strict or free -format.} -\twocolitem{Efficiency}{Objects of wxDateTime are small (8 bytes) and working with -them is fast} -\end{twocollist} - -\subsection{All date/time classes at a glance}\label{alldatetimeclasses} - -There are 3 main classes declared in {\tt <wx/datetime.h>}: except -\helpref{wxDateTime}{wxdatetime} itself which represents an absolute -moment in time, there are also two classes - -\helpref{wxTimeSpan}{wxtimespan} and \helpref{wxDateSpan}{wxdatespan} - which -represent the intervals of time. - -There are also helper classes which are used together with wxDateTime: -\helpref{wxDateTimeHolidayAuthority}{wxdatetimeholidayauthority} which is used -to determine whether a given date is a holiday or not and -\helpref{wxDateTimeWorkDays}{wxdatetimeworkdays} which is a derivation of this -class for which (only) Saturdays and Sundays are the holidays. See more about -these classes in the discussion of the \helpref{holidays}{tdateholidays}. - -Finally, in other parts of this manual you may find mentions of wxDate and -wxTime classes. \helpref{These classes}{tdatecompatibility} are obsolete and -superseded by wxDateTime. - -\subsection{wxDateTime characteristics}\label{wxdatetimecharacteristics} - -\helpref{wxDateTime}{wxdatetime} stores the time as a signed number of -milliseconds since the Epoch which is fixed, by convention, to Jan 1, 1970 - -however this is not visible to the class users (in particular, dates prior to -the Epoch are handled just as well (or as bad) as the dates after it). But it -does mean that the best resolution which can be achieved with this class is 1 -millisecond. - -The size of wxDateTime object is 8 bytes because it is represented as a 64 bit -integer. The resulting range of supported dates is thus approximatively 580 -million years, but due to the current limitations in the Gregorian calendar -support, only dates from Nov 24, 4714BC are supported (this is subject to -change if there is sufficient interest in doing it). - -Finally, the internal representation is time zone independent (always in GMT) -and the time zones only come into play when a date is broken into -year/month/day components. See more about \helpref{timezones}{tdatetimezones} -below. - -Currently, the only supported calendar is Gregorian one (which is used even -for the dates prior to the historic introduction of this calendar which was -first done on Oct 15, 1582 but is, generally speaking, country, and even -region, dependent). Future versions will probably have Julian calendar support -as well and support for other calendars (Maya, Hebrew, Chinese...) is not -ruled out. - -\subsection{Difference between wxDateSpan and wxTimeSpan}\label{dateandtimespansdifference} - -While there is only one logical way to represent an absolute moment in the -time (and hence only one wxDateTime class), there are at least two methods to -describe a time interval. - -First, there is the direct and self-explaining way implemented by -\helpref{wxTimeSpan}{wxtimespan}: it is just a difference in milliseconds -between two moments in time. Adding or subtracting such an interval to -wxDateTime is always well-defined and is a fast operation. - -But in the daily life other, calendar-dependent time interval specifications are -used. For example, `one month later' is commonly used. However, it is clear -that this is not the same as wxTimeSpan of $60*60*24*31$ seconds because `one -month later' Feb 15 is Mar 15 and not Mar 17 or Mar 16 (depending on whether -the year is leap or not). - -This is why there is another class for representing such intervals called -\helpref{wxDateSpan}{wxdatespan}. It handles these sort of operations in the -most natural way possible, but note that manipulating with intervals of -this kind is not always well-defined. Consider, for example, Jan 31 + `1 -month': this will give Feb 28 (or 29), i.e. the last day of February and not -the non-existent Feb 31. Of course, this is what is usually wanted, but you -still might be surprised to notice that now subtracting back the same -interval from Feb 28 will result in Jan 28 and {\bf not} Jan 31 we started -with! - -So, unless you plan to implement some kind of natural language parsing in the -program, you should probably use wxTimeSpan instead of wxDateSpan (which is -also more efficient). However, wxDateSpan may be very useful in situations -when you do need to understand what `in a month' means (of course, it is -just {\tt wxDateTime::Now() + wxDateSpan::Month()}). - -\subsection{Date arithmetics}\label{tdatearithm} - -Many different operations may be performed with the dates, however not all of -them make sense. For example, multiplying a date by a number is an invalid -operation, even though multiplying either of the time span classes by a number -is perfectly valid. - -Here is what can be done: - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Addition}}{a wxTimeSpan or wxDateSpan can be added to wxDateTime -resulting in a new wxDateTime object and also 2 objects of the same span class -can be added together giving another object of the same class.} -\twocolitem{{\bf Subtraction}}{the same types of operations as above are -allowed and, additionally, a difference between two wxDateTime objects can be -taken and this will yield wxTimeSpan.} -\twocolitem{{\bf Multiplication}}{a wxTimeSpan or wxDateSpan object can be -multiplied by an integer number resulting in an object of the same type.} -\twocolitem{{\bf Unary minus}}{a wxTimeSpan or wxDateSpan object may finally be -negated giving an interval of the same magnitude but of opposite time -direction.} -\end{twocollist} - -For all these operations there are corresponding global (overloaded) operators -and also member functions which are synonyms for them: Add(), Subtract() and -Multiply(). Unary minus as well as composite assignment operations (like $+=$) -are only implemented as members and Neg() is the synonym for unary minus. - -\subsection{Time zone considerations}\label{tdatetimezones} - -Although the time is always stored internally in GMT, you will usually work in -the local time zone. Because of this, all wxDateTime constructors and setters -which take the broken down date assume that these values are for the local -time zone. Thus, {\tt wxDateTime(1, wxDateTime::Jan, 1970)} will not -correspond to the wxDateTime Epoch unless you happen to live in the UK. - -All methods returning the date components (year, month, day, hour, minute, -second...) will also return the correct values for the local time zone by -default, so, generally, doing the natural things will lead to natural and -correct results. - -If you only want to do this, you may safely skip the rest of this section. -However, if you want to work with different time zones, you should read it to -the end. - -In this (rare) case, you are still limited to the local time zone when -constructing wxDateTime objects, i.e. there is no way to construct a -wxDateTime corresponding to the given date in, say, Pacific Standard Time. -To do it, you will need to call \helpref{ToTimezone}{wxdatetimetotimezone} or -\helpref{MakeTimezone}{wxdatetimemaketimezone} methods to adjust the date for -the target time zone. There are also special versions of these functions -\helpref{ToUTC}{wxdatetimetoutc} and \helpref{MakeUTC}{wxdatetimemakeutc} for -the most common case - when the date should be constructed in UTC. - -You also can just retrieve the value for some time zone without converting the -object to it first. For this you may pass TimeZone argument to any of the -methods which are affected by the time zone (all methods getting date -components and the date formatting ones, for example). In particular, the -Format() family of methods accepts a TimeZone parameter and this allows to -simply print time in any time zone. - -To see how to do it, the last issue to address is how to construct a TimeZone -object which must be passed to all these methods. First of all, you may construct -it manually by specifying the time zone offset in seconds from GMT, but -usually you will just use one of the \helpref{symbolic time zone names}{wxdatetime} and -let the conversion constructor do the job. -I.e. you would just write - -\begin{verbatim} -wxDateTime dt(...whatever...); -printf("The time is %s in local time zone", dt.FormatTime().c_str()); -printf("The time is %s in GMT", dt.FormatTime(wxDateTime::GMT).c_str()); -\end{verbatim} - -\subsection{Daylight saving time (DST)}\label{tdatedst} - -DST (a.k.a. `summer time') handling is always a delicate task which is better -left to the operating system which is supposed to be configured by the -administrator to behave correctly. Unfortunately, when doing calculations with -date outside of the range supported by the standard library, we are forced to -deal with these issues ourselves. - -Several functions are provided to calculate the beginning and end of DST in -the given year and to determine whether it is in effect at the given moment or -not, but they should not be considered as absolutely correct because, first of -all, they only work more or less correctly for only a handful of countries -(any information about other ones appreciated!) and even for them the rules -may perfectly well change in the future. - -The time zone handling \helpref{methods}{tdatetimezones} use these functions -too, so they are subject to the same limitations. - -% is this really needed? \subsection{Conversion to/from text} - -\subsection{wxDateTime and Holidays}\label{tdateholidays} - -TODO. - -\subsection{Compatibility}\label{tdatecompatibility} - -The old classes for date/time manipulations ported from wxWidgets version 1.xx -are still included but are reimplemented in terms of wxDateTime. However, using -them is strongly discouraged because they have a few quirks/bugs and were not -`Y2K' compatible. - diff --git a/docs/latex/wx/tdc.tex b/docs/latex/wx/tdc.tex deleted file mode 100644 index 70500d92ec..0000000000 --- a/docs/latex/wx/tdc.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{Device context overview}\label{dcoverview} - -Classes: \helpref{wxBufferedDC}{wxbuffereddc}, \helpref{wxBufferedPaintDC}{wxbufferedpaintdc}, \helpref{wxDC}{wxdc}, \helpref{wxPostScriptDC}{wxpostscriptdc},\rtfsp -\rtfsp\helpref{wxMetafileDC}{wxmetafiledc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPrinterDC}{wxprinterdc},\rtfsp -\helpref{wxScreenDC}{wxscreendc}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxWindowDC}{wxwindowdc}. - -A wxDC is a {\it device context} onto which graphics and text can be drawn. -The device context is intended to represent a number of output devices in a generic way, -with the same API being used throughout. - -Some device contexts are created temporarily in order to draw on a window. -This is true of \helpref{wxScreenDC}{wxscreendc}, \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc}, -and \helpref{wxWindowDC}{wxwindowdc}. The following describes the differences between -these device contexts and when you should use them. - -\begin{itemize}\itemsep=0pt -\item {\bf wxScreenDC.} Use this to paint on the screen, as opposed to an individual window. -\item {\bf wxClientDC.} Use this to paint on the client area of window (the part without -borders and other decorations), but do not use it from within an \helpref{wxPaintEvent}{wxpaintevent}. -\item {\bf wxPaintDC.} Use this to paint on the client area of a window, but {\it only} from -within a \helpref{wxPaintEvent}{wxpaintevent}. -\item {\bf wxWindowDC.} Use this to paint on the whole area of a window, including decorations. -This may not be available on non-Windows platforms. -\end{itemize} - -To use a client, paint or window device context, create an object on the stack with -the window as argument, for example: - -\begin{verbatim} - void MyWindow::OnMyCmd(wxCommandEvent& event) - { - wxClientDC dc(window); - DrawMyPicture(dc); - } -\end{verbatim} - -Try to write code so it is parameterised by wxDC - if you do this, the same piece of code may -write to a number of different devices, by passing a different device context. This doesn't -work for everything (for example not all device contexts support bitmap drawing) but -will work most of the time. - diff --git a/docs/latex/wx/tdebug.tex b/docs/latex/wx/tdebug.tex deleted file mode 100644 index dc73ccef8f..0000000000 --- a/docs/latex/wx/tdebug.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{Debugging overview}\label{debuggingoverview} - -Classes, functions and macros: \helpref{wxDebugContext}{wxdebugcontext}, \helpref{wxObject}{wxobject}, \helpref{wxLog}{wxlog}, -\rtfsp\helpref{Log functions}{logfunctions}, \helpref{Debug macros}{debugmacros} - -Various classes, functions and macros are provided in wxWidgets to help you debug -your application. Most of these are only available if you compile both wxWidgets, -your application and {\it all} libraries that use wxWidgets with the \_\_WXDEBUG\_\_ symbol -defined. You can also test the \_\_WXDEBUG\_\_ symbol in your own applications to execute -code that should be active only in debug mode. - -\wxheading{wxDebugContext} - -\helpref{wxDebugContext}{wxdebugcontext} is a class that never gets instantiated, but ties together -various static functions and variables. It allows you to dump all objects to that stream, write statistics about object allocation, and -check memory for errors. - -It is good practice to define a \helpref{wxObject::Dump}{wxobjectdump} member function for each class you derive -from a wxWidgets class, so that \helpref{wxDebugContext::Dump}{wxdebugcontextdump} can call it and -give valuable information about the state of the application. - -If you have difficulty tracking down a memory leak, recompile -in debugging mode and call \helpref{wxDebugContext::Dump}{wxdebugcontextdump} and \helpref{wxDebugContext::PrintStatistics}{wxdebugcontextprintstatistics} at -appropriate places. They will tell you what objects have not yet been -deleted, and what kinds of object they are. In fact, in debug mode wxWidgets will automatically -detect memory leaks when your application is about to exit, and if there are any leaks, -will give you information about the problem. (How much information depends on the operating system -and compiler -- some systems don't allow all memory logging to be enabled). See the -memcheck sample for example of usage. - -For wxDebugContext to do its work, the {\it new} and {\it delete}\rtfsp -operators for wxObject have been redefined to store extra information -about dynamically allocated objects (but not statically declared -objects). This slows down a debugging version of an application, but can -find difficult-to-detect memory leaks (objects are not -deallocated), overwrites (writing past the end of your object) and -underwrites (writing to memory in front of the object). - -If debugging mode is on and the symbols wxUSE\_GLOBAL\_MEMORY\_OPERATORS and -wxUSE\_DEBUG\_NEW\_ALWAYS are set to 1 in setup.h, 'new' is defined to be: - -{\small -\begin{verbatim} -#define new new(__FILE__,__LINE__) -\end{verbatim} -}% - -All occurrences of 'new' in wxWidgets and your own application will use -the overridden form of the operator with two extra arguments. This means that the debugging -output (and error messages reporting memory problems) will tell you what -file and on what line you allocated the object. Unfortunately not all -compilers allow this definition to work properly, but most do. - -\wxheading{Debug macros} - -You should also use \helpref{debug macros}{debugmacros} as part of a `defensive programming' strategy, -scattering wxASSERTs liberally to test for problems in your code as early as possible. Forward thinking -will save a surprising amount of time in the long run. - -\helpref{wxASSERT}{wxassert} is used to pop up an error message box when a condition -is not true. You can also use \helpref{wxASSERT\_MSG}{wxassertmsg} to supply your -own helpful error message. For example: - -{\small -\begin{verbatim} - void MyClass::MyFunction(wxObject* object) - { - wxASSERT_MSG( (object != NULL), "object should not be NULL in MyFunction!" ); - - ... - }; -\end{verbatim} -} - -The message box allows you to continue execution or abort the program. If you are running -the application inside a debugger, you will be able to see exactly where the problem was. - -\wxheading{Logging functions} - -You can use the \helpref{wxLogDebug}{wxlogdebug} and \helpref{wxLogTrace}{wxlogtrace} functions to output debugging information in debug mode; -it will do nothing for non-debugging code. - -\subsection{wxDebugContext overview}\label{wxdebugcontextoverview} - -\overview{Debugging overview}{debuggingoverview} - -Class: \helpref{wxDebugContext}{wxdebugcontext} - -wxDebugContext is a class for performing various debugging and memory tracing -operations. - -This class has only static data and function members, and there should be -no instances. Probably the most useful members are SetFile (for directing output -to a file, instead of the default standard error or debugger output); -Dump (for dumping the dynamically allocated objects) and PrintStatistics -(for dumping information about allocation of objects). You can also call -Check to check memory blocks for integrity. - -Here's an example of use. The SetCheckpoint ensures that only the -allocations done after the checkpoint will be dumped. - -\begin{verbatim} - wxDebugContext::SetCheckpoint(); - - wxDebugContext::SetFile("c:\\temp\\debug.log"); - - wxString *thing = new wxString; - - char *ordinaryNonObject = new char[1000]; - - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); -\end{verbatim} - -You can use wxDebugContext if \_\_WXDEBUG\_\_ is defined, or you can use it -at any other time (if wxUSE\_DEBUG\_CONTEXT is set to 1 in setup.h). It is not disabled -in non-debug mode because you may not wish to recompile wxWidgets and your entire application -just to make use of the error logging facility. - -Note: wxDebugContext::SetFile has a problem at present, so use the default stream instead. -Eventually the logging will be done through the wxLog facilities instead. - diff --git a/docs/latex/wx/tdelwin.tex b/docs/latex/wx/tdelwin.tex deleted file mode 100644 index da562d0c26..0000000000 --- a/docs/latex/wx/tdelwin.tex +++ /dev/null @@ -1,131 +0,0 @@ -\section{Window deletion overview}\label{windowdeletionoverview} - -Classes: \helpref{wxCloseEvent}{wxcloseevent}, \helpref{wxWindow}{wxwindow} - -Window deletion can be a confusing subject, so this overview is provided -to help make it clear when and how you delete windows, or respond to user requests -to close windows. - -\wxheading{What is the sequence of events in a window deletion?} - -When the user clicks on the system close button or system close command, -in a frame or a dialog, wxWidgets calls \helpref{wxWindow::Close}{wxwindowclose}. This -in turn generates an EVT\_CLOSE event: see \helpref{wxCloseEvent}{wxcloseevent}. - -It is the duty of the application to define a suitable event handler, and -decide whether or not to destroy the window. -If the application is for some reason forcing the application to close -(\helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns false), the window should always be destroyed, otherwise there is the option to -ignore the request, or maybe wait until the user has answered a question -before deciding whether it is safe to close. The handler for EVT\_CLOSE should -signal to the calling code if it does not destroy the window, by calling -\helpref{wxCloseEvent::Veto}{wxcloseeventveto}. Calling this provides useful information -to the calling code. - -The wxCloseEvent handler should only call \helpref{wxWindow::Destroy}{wxwindowdestroy} to -delete the window, and not use the {\bf delete} operator. This is because -for some window classes, wxWidgets delays actual deletion of the window until all events have been processed, -since otherwise there is the danger that events will be sent to a non-existent window. - -As reinforced in the next section, calling Close does not guarantee that the window -will be destroyed. Call \helpref{wxWindow::Destroy}{wxwindowdestroy} if you want to be -certain that the window is destroyed. - -\wxheading{How can the application close a window itself?} - -Your application can either use \helpref{wxWindow::Close}{wxwindowclose} event just as -the framework does, or it can call \helpref{wxWindow::Destroy}{wxwindowdestroy} directly. -If using Close(), you can pass a true argument to this function to tell the event handler -that we definitely want to delete the frame and it cannot be vetoed. - -The advantage of using Close instead of Destroy is that it will call any clean-up code -defined by the EVT\_CLOSE handler; for example it may close a document contained in -a window after first asking the user whether the work should be saved. Close can be vetoed -by this process (return false), whereas Destroy definitely destroys the window. - -\wxheading{What is the default behaviour?} - -The default close event handler for wxDialog simulates a Cancel command, -generating a wxID\_CANCEL event. Since the handler for this cancel event might -itself call {\bf Close}, there is a check for infinite looping. The default handler -for wxID\_CANCEL hides the dialog (if modeless) or calls EndModal(wxID\_CANCEL) (if modal). -In other words, by default, the dialog {\it is not destroyed} (it might have been created -on the stack, so the assumption of dynamic creation cannot be made). - -The default close event handler for wxFrame destroys the frame using Destroy(). - -\wxheading{What should I do when the user calls up Exit from a menu?} - -You can simply call \helpref{wxWindow::Close}{wxwindowclose} on the frame. This -will invoke your own close event handler which may destroy the frame. - -You can do checking to see if your application can be safely exited at this point, -either from within your close event handler, or from within your exit menu command -handler. For example, you may wish to check that all files have been saved. -Give the user a chance to save and quit, to not save but quit anyway, or to cancel -the exit command altogether. - -\wxheading{What should I do to upgrade my 1.xx OnClose to 2.0?} - -In wxWidgets 1.xx, the {\bf OnClose} function did not actually delete 'this', but signaled -to the calling function (either {\bf Close}, or the wxWidgets framework) to delete -or not delete the window. - -To update your code, you should provide an event table entry in your frame or -dialog, using the EVT\_CLOSE macro. The event handler function might look like this: - -{\small% -\begin{verbatim} - void MyFrame::OnCloseWindow(wxCloseEvent& event) - { - if (MyDataHasBeenModified()) - { - wxMessageDialog* dialog = new wxMessageDialog(this, - "Save changed data?", "My app", wxYES_NO|wxCANCEL); - - int ans = dialog->ShowModal(); - dialog->Destroy(); - - switch (ans) - { - case wxID_YES: // Save, then destroy, quitting app - SaveMyData(); - this->Destroy(); - break; - case wxID_NO: // Don't save; just destroy, quitting app - this->Destroy(); - break; - case wxID_CANCEL: // Do nothing - so don't quit app. - default: - if (!event.CanVeto()) // Test if we can veto this deletion - this->Destroy(); // If not, destroy the window anyway. - else - event.Veto(); // Notify the calling code that we didn't delete the frame. - break; - } - } - } -\end{verbatim} -}% - -\wxheading{How do I exit the application gracefully?} - -A wxWidgets application automatically exits when the last top level window -(\helpref{wxFrame}{wxframe} or \helpref{wxDialog}{wxdialog}), is destroyed. Put -any application-wide cleanup code in \helpref{wxApp::OnExit}{wxapponexit} (this -is a virtual function, not an event handler). - -\wxheading{Do child windows get deleted automatically?} - -Yes, child windows are deleted from within the parent destructor. This includes any children -that are themselves frames or dialogs, so you may wish to close these child frame or dialog windows -explicitly from within the parent close handler. - -\wxheading{What about other kinds of window?} - -So far we've been talking about `managed' windows, i.e. frames and dialogs. Windows -with parents, such as controls, don't have delayed destruction and don't usually have -close event handlers, though you can implement them if you wish. For consistency, -continue to use the \helpref{wxWindow::Destroy}{wxwindowdestroy} function instead -of the {\bf delete} operator when deleting these kinds of windows explicitly. - diff --git a/docs/latex/wx/tdialog.tex b/docs/latex/wx/tdialog.tex deleted file mode 100644 index c172d53779..0000000000 --- a/docs/latex/wx/tdialog.tex +++ /dev/null @@ -1,101 +0,0 @@ -\section{wxDialog overview}\label{wxdialogoverview} - -Classes: \helpref{wxDialog}{wxdialog}, \helpref{wxDialogLayoutAdapter}{wxdialoglayoutadapter} - -A dialog box is similar to a panel, in that it is a window which can -be used for placing controls, with the following exceptions: - -\begin{enumerate} -\item A surrounding frame is implicitly created. -\item Extra functionality is automatically given to the dialog box, - such as tabbing between items (currently Windows only). -\item If the dialog box is {\it modal}, the calling program is blocked - until the dialog box is dismissed. -\end{enumerate} - -For a set of dialog convenience functions, including file selection, see -\rtfsp\helpref{Dialog functions}{dialogfunctions}. - -See also \helpref{wxTopLevelWindow}{wxtoplevelwindow} and \helpref{wxWindow}{wxwindow} for inherited -member functions. Validation of data in controls is covered in \helpref{Validator overview}{validatoroverview}. - -\subsection{Automatic scrolling dialogs}\label{autoscrollingdialogs} - -As an ever greater variety of mobile hardware comes to market, it becomes more imperative for wxWidgets applications to adapt -to these platforms without putting too much burden on the programmer. One area where wxWidgets can help is in adapting -dialogs for the lower resolution screens that inevitably accompany a smaller form factor. wxDialog therefore supplies -a global \helpref{wxDialogLayoutAdapter}{wxdialoglayoutadapter} class that implements automatic scrolling adaptation for most sizer-based custom dialogs. -Many applications should therefore be able to adapt to small displays with little or no work, as far as dialogs are concerned. - -By default this adaptation is off. To switch scrolling adaptation on globally in your application, call the static function\rtfsp -\helpref{wxDialog::EnableLayoutAdaptation}{wxdialogenablelayoutadaptation} passing \true. You can also adjust adaptation on a per-dialog basis by calling\rtfsp -\helpref{wxDialog::SetLayoutAdaptationMode}{wxdialogsetlayoutadaptationmode} with one of {\tt wxDIALOG\_ADAPTATION\_MODE\_DEFAULT} (use the global setting), {\tt wxDIALOG\_ADAPTATION\_MODE\_ENABLED} or {\tt wxDIALOG\_ADAPTATION\_MODE\_DISABLED}. -The last two modes override the global adaptation setting. - -With adaptation enabled, if the display size is too small for the dialog, wxWidgets (or rather the -standard adapter class wxStandardDialogLayoutAdapter) will -make part of the dialog scrolling, leaving standard buttons in a non-scrolling part at the bottom of the dialog. - -This is done as follows, in \helpref{wxDialogLayoutAdapter::DoLayoutAdaptation}{wxdialoglayoutadapterdolayoutadaptation} called from within wxDialog::Show or wxDialog::ShowModal: - -\begin{enumerate} -\item If \helpref{wxDialog::GetContentWindow}{wxdialoggetcontentwindow} returns a window derived from wxBookCtrlBase, the pages are made scrollable and -no other adaptation is done. -\item wxWidgets looks for a \helpref{wxStdDialogButtonSizer}{wxstddialogbuttonsizer} and uses it for the non-scrolling part. -\item If that search failed, wxWidgets looks for a horizontal \helpref{wxBoxSizer}{wxboxsizer} with one or more -standard buttons, with identifiers such as {\tt wxID\_OK} and {\tt wxID\_CANCEL}. -\item If that search failed too, wxWidgets finds 'loose' standard buttons (in any kind of sizer) and adds them to a \helpref{wxStdDialogButtonSizer}{wxstddialogbuttonsizer}. -If no standard buttons were found, the whole dialog content will scroll. -\item All the children apart from standard buttons are reparented onto a new \helpref{wxScrolledWindow}{wxscrolledwindow} object, -using the old top-level sizer for the scrolled window and creating a new top-level sizer to lay out the scrolled window and -standard button sizer. -\end{enumerate} - -\wxheading{Customising scrolling adaptation} - -In addition to switching adaptation on and off globally and per dialog, you can choose how aggressively wxWidgets will -search for standard buttons by setting \helpref{wxDialog::SetLayoutAdaptationLevel}{wxdialogsetlayoutadaptationlevel}. By default, -all the steps described above will be performed but by setting the level to 1, for example, you can choose to only look for wxStdDialogButtonSizer. - -You can use \helpref{wxDialog::AddMainButtonId}{wxdialogaddmainbuttonid} to add identifiers for buttons that should also be -treated as standard buttons for the non-scrolling area. - -You can derive your own class from \helpref{wxDialogLayoutAdapter}{wxdialoglayoutadapter} or wxStandardDialogLayoutAdapter and call\rtfsp -\helpref{wxDialog::SetLayoutAdapter}{wxdialogsetlayoutadapter}, deleting the old object that this function returns. Override -the functions CanDoLayoutAdaptation and DoLayoutAdaptation to test for adaptation applicability and perform the adaptation. - -You can also override \helpref{wxDialog::CanDoLayoutAdaptation}{wxdialogcandolayoutadaptation} and \helpref{wxDialog::DoLayoutAdaptation}{wxdialogdolayoutadaptation} in a class derived from wxDialog. - -\wxheading{Situations where automatic scrolling adaptation may fail} - -Because adaptation rearranges your sizer and window hierarchy, it is not fool-proof, and may fail in the following situations. - -\begin{itemize} -\item The dialog doesn't use sizers. -\item The dialog implementation makes assumptions about the window hierarchy, for example getting the parent of a control and casting to the dialog class. -\item The dialog does custom painting and/or event handling not handled by the scrolled window. If this problem can be solved globally, -you can derive a new adapter class from wxStandardDialogLayoutAdapter and override its CreateScrolledWindow function to return an instance of your own class. -\item The dialog has unusual layout, for example a vertical sizer containing a mixture of standard buttons and other controls. -\item The dialog makes assumptions about the sizer hierarchy, for example to show or hide children of the top-level sizer. However, the original sizer hierarchy will still hold -until Show or ShowModal is called. -\end{itemize} - -You can help make sure that your dialogs will continue to function after adaptation by: - -\begin{itemize} -\item avoiding the above situations and assumptions; -\item using \helpref{wxStdDialogButtonSizer}{wxstddialogbuttonsizer}; -\item only making assumptions about hierarchy immediately after the dialog is created; -\item using an intermediate sizer under the main sizer, a false top-level sizer that can be relied on to exist -for the purposes of manipulating child sizers and windows; -\item overriding \helpref{wxDialog::GetContentWindow}{wxdialoggetcontentwindow} to return a book control if your dialog implements pages: wxWidgets will then only make the pages -scrollable. -\end{itemize} - -\wxheading{wxPropertySheetDialog and wxWizard} - -Adaptation for wxPropertySheetDialog is always done by simply making the pages scrollable, since \helpref{wxDialog::GetContentWindow}{wxdialoggetcontentwindow} returns -the dialog's book control and this is handled by the standard layout adapter. - -wxWizard uses its own CanDoLayoutAdaptation and DoLayoutAdaptation functions rather than the global adapter: again, only the wizard pages are made scrollable. - diff --git a/docs/latex/wx/tdnd.tex b/docs/latex/wx/tdnd.tex deleted file mode 100644 index dbbe6daaf2..0000000000 --- a/docs/latex/wx/tdnd.tex +++ /dev/null @@ -1,84 +0,0 @@ -\section{Drag and drop overview}\label{wxdndoverview} - -Classes: \helpref{wxDataObject}{wxdataobject}, -\helpref{wxTextDataObject}{wxtextdataobject}, -\helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, -\helpref{wxTextDropTarget}{wxtextdroptarget}, -\helpref{wxFileDropTarget}{wxfiledroptarget} - -Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in order -to use drag and drop in wxWidgets. - -See also: \helpref{wxDataObject overview}{wxdataobjectoverview} and \helpref{DnD sample}{samplednd} - -It may be noted that data transfer to and from the clipboard is quite -similar to data transfer with drag and drop and the code to implement -these two types is almost the same. In particular, both data transfer -mechanisms store data in some kind of \helpref{wxDataObject}{wxdataobject} -and identify its format(s) using the \helpref{wxDataFormat}{wxdataformat} -class. - -To be a {\it drag source}, i.e. to provide the data which may be dragged by -the user elsewhere, you should implement the following steps: - -\begin{itemize}\itemsep=0pt -\item {\bf Preparation:} First of all, a data object must be created and -initialized with the data you wish to drag. For example: - -\begin{verbatim} - wxTextDataObject my_data("This text will be dragged."); -\end{verbatim} -\item{\bf Drag start:} To start the dragging process (typically in response to a -mouse click) you must call \helpref{wxDropSource::DoDragDrop}{wxdropsourcedodragdrop} -like this: - -\begin{verbatim} - wxDropSource dragSource( this ); - dragSource.SetData( my_data ); - wxDragResult result = dragSource.DoDragDrop( TRUE ); -\end{verbatim} -\item {\bf Dragging:} The call to DoDragDrop() blocks the program until the user releases the -mouse button (unless you override the \helpref{GiveFeedback}{wxdropsourcegivefeedback} function -to do something special). When the mouse moves in a window of a program which understands the -same drag-and-drop protocol (any program under Windows or any program supporting the -XDnD protocol under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods -are called - see below. -\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} which -is one of the values of {\tt wxDragResult} enum (explained \helpref{here}{wxdroptarget}): - -\begin{verbatim} - switch (result) - { - case wxDragCopy: /* copy the data */ break; - case wxDragMove: /* move the data */ break; - default: /* do nothing */ break; - } -\end{verbatim}% -\end{itemize} - -To be a {\it drop target}, i.e. to receive the data dropped by the user you should -follow the instructions below: - -\begin{itemize}\itemsep=0pt -\item {\bf Initialization:} For a window to be a drop target, it needs to have -an associated \helpref{wxDropTarget}{wxdroptarget} object. Normally, you will -call \helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget} during window -creation associating your drop target with it. You must derive a class from -wxDropTarget and override its pure virtual methods. Alternatively, you may -derive from \helpref{wxTextDropTarget}{wxtextdroptarget} or -\helpref{wxFileDropTarget}{wxfiledroptarget} and override their OnDropText() -or OnDropFiles() method. -\item {\bf Drop:} When the user releases the mouse over a window, wxWidgets -asks the associated wxDropTarget object if it accepts the data. For this, -a \helpref{wxDataObject}{wxdataobject} must be associated with the drop target -and this data object will be responsible for the format negotiation between -the drag source and the drop target. If all goes well, then \helpref{OnData}{wxdroptargetondata} -will get called and the wxDataObject belonging to the drop target can get -filled with data. -\item {\bf The end:} After processing the data, DoDragDrop() returns either -wxDragCopy or wxDragMove depending on the state of the keys <Ctrl>, <Shift> -and <Alt> at the moment of the drop. There is currently no way for the drop -target to change this return code. -\end{itemize} - diff --git a/docs/latex/wx/tdocview.tex b/docs/latex/wx/tdocview.tex deleted file mode 100644 index e91f08e839..0000000000 --- a/docs/latex/wx/tdocview.tex +++ /dev/null @@ -1,325 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tdocview.tex -%% Purpose: Document/view overview -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Document/view overview}\label{docviewoverview} - -Classes: \helpref{wxDocument}{wxdocument}, \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp -\helpref{wxDocManager}{wxdocmanager}, \helpref{wxDocParentFrame}{wxdocparentframe}, \helpref{wxDocChildFrame}{wxdocchildframe}, -\rtfsp\helpref{wxDocMDIParentFrame}{wxdocmdiparentframe}, \helpref{wxDocMDIChildFrame}{wxdocmdichildframe}, -\rtfsp\helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor} - -The document/view framework is found in most application frameworks, because it -can dramatically simplify the code required to build many kinds of application. - -The idea is that you can model your application primarily in terms of {\it documents} to store data -and provide interface-independent operations upon it, and {\it views} to visualise and manipulate -the data. Documents know how to do input and output given stream objects, and views are responsible -for taking input from physical windows and performing the manipulation on the document data. -If a document's data changes, all views should be updated to reflect the change. - -The framework can provide many user-interface elements based on this model. Once you have defined -your own classes and the relationships between them, the framework takes care -of popping up file selectors, opening and closing files, asking the user to save -modifications, routing menu commands to appropriate (possibly default) code, even -some default print/preview functionality and support for command undo/redo. -The framework is highly modular, allowing overriding and replacement of functionality -and objects to achieve more than the default behaviour. - -These are the overall steps involved in creating an application based on the document/view framework: - -\begin{enumerate}\itemsep=0pt -\item Define your own document and view classes, overriding a minimal set of -member functions e.g. for input/output, drawing and initialization. -\item Define any subwindows -(such as a scrolled window) that are needed for the view(s). You may need to route some events -to views or documents, for example OnPaint needs to be routed to wxView::OnDraw. -\item Decide what style of interface you will use: Microsoft's MDI (multiple -document child frames surrounded by an overall frame), SDI (a separate, unconstrained frame -for each document), or single-window (one document open at a time, as in Windows Write). -\item Use the appropriate wxDocParentFrame and wxDocChildFrame classes. Construct an instance -of wxDocParentFrame in your wxApp::OnInit, and a wxDocChildFrame (if not single-window) when -you initialize a view. Create menus using standard menu ids (such as wxID\_OPEN, wxID\_PRINT). -\item Construct a single wxDocManager instance at the beginning of your wxApp::OnInit, and then -as many wxDocTemplate instances as necessary to define relationships between documents and -views. For a simple application, there will be just one wxDocTemplate. -\end{enumerate} - -If you wish to implement Undo/Redo, you need to derive your own class(es) from wxCommand -and use wxCommandProcessor::Submit instead of directly executing code. The framework will -take care of calling Undo and Do functions as appropriate, so long as the wxID\_UNDO and -wxID\_REDO menu items are defined in the view menu. - -Here are a few examples of the tailoring you can do to go beyond the default framework -behaviour: - -\begin{itemize}\itemsep=0pt -\item Override wxDocument::OnCreateCommandProcessor to define a different Do/Undo strategy, -or a command history editor. -\item Override wxView::OnCreatePrintout to create an instance of a derived \helpref{wxPrintout}{wxprintout}\rtfsp -class, to provide multi-page document facilities. -\item Override wxDocManager::SelectDocumentPath to provide a different file selector. -\item Limit the maximum number of open documents and the maximum number of undo commands. -\end{itemize} - -Note that to activate framework functionality, you need to use some or all of -the wxWidgets \helpref{predefined command identifiers}{predefinedids} in your menus. - -\perlnote{The document/view framework is available in wxPerl. To use it, -you will need the following statements in your application code:\par -{\small -\begin{verbatim} -use Wx::DocView; -use Wx ':docview'; # import constants (optional) -\end{verbatim} -}} - -\subsection{wxDocument overview}\label{wxdocumentoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocument}{wxdocument} - -The wxDocument class can be used to model an application's file-based -data. It is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocTemplate}{wxdoctemplate}\rtfsp -and \helpref{wxDocManager}{wxdocmanager} classes. - -Using this framework can save a lot of routine user-interface programming, -since a range of menu commands -- such as open, save, save as -- are supported automatically. -The programmer just needs to define a minimal set of classes and member functions -for the framework to call when necessary. Data, and the means to view and edit -the data, are explicitly separated out in this model, and the concept of multiple {\it views} onto -the same data is supported. - -Note that the document/view model will suit many but not all styles of application. -For example, it would be overkill for a simple file conversion utility, where there -may be no call for {\it views} on {\it documents} or the ability to open, edit and save -files. But probably the majority of applications are document-based. - -See the example application in {\tt samples/docview}. - -To use the abstract wxDocument class, you need to derive a new class and override -at least the member functions SaveObject and LoadObject. SaveObject and -LoadObject will be called by the framework when the document needs to be saved -or loaded. - -Use the macros DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS in order -to allow the framework to create document objects on demand. When you create -a \helpref{wxDocTemplate}{wxdoctemplate} object on application initialization, you -should pass CLASSINFO(YourDocumentClass) to the wxDocTemplate constructor -so that it knows how to create an instance of this class. - -If you do not wish to use the wxWidgets method of creating document -objects dynamically, you must override wxDocTemplate::CreateDocument -to return an instance of the appropriate class. - -\subsection{wxView overview}\label{wxviewoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxView}{wxview} - -The wxView class can be used to model the viewing and editing component of -an application's file-based data. It is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate} -and \helpref{wxDocManager}{wxdocmanager} classes. - -See the example application in {\tt samples/docview}. - -To use the abstract wxView class, you need to derive a new class and override -at least the member functions OnCreate, OnDraw, OnUpdate and OnClose. You will probably -want to respond to menu commands from the frame containing the view. - -Use the macros DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS in order -to allow the framework to create view objects on demand. When you create -a \helpref{wxDocTemplate}{wxdoctemplate} object on application initialization, you -should pass CLASSINFO(YourViewClass) to the wxDocTemplate constructor -so that it knows how to create an instance of this class. - -If you do not wish to use the wxWidgets method of creating view -objects dynamically, you must override wxDocTemplate::CreateView -to return an instance of the appropriate class. - -\subsection{wxDocTemplate overview}\label{wxdoctemplateoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocTemplate}{wxdoctemplate} - -The wxDocTemplate class is used to model the relationship between a -document class and a view class. The application creates a document -template object for each document/view pair. The list of document -templates managed by the wxDocManager instance is used to create -documents and views. Each document template knows what file filters -and default extension are appropriate for a document/view combination, -and how to create a document or view. - -For example, you might write a small doodling application that can load -and save lists of line segments. If you had two views of the data -- graphical, -and a list of the segments -- then you would create one document class DoodleDocument, -and two view classes (DoodleGraphicView and DoodleListView). You would also -need two document templates, one for the graphical view and another for the -list view. You would pass the same document class and default file extension to both -document templates, but each would be passed a different view class. When -the user clicks on the Open menu item, the file selector is displayed -with a list of possible file filters -- one for each wxDocTemplate. Selecting -the filter selects the wxDocTemplate, and when -a file is selected, that template will be used for creating a document -and view. - -For the case where an application has one document type and one view type, -a single document template is constructed, and dialogs will be appropriately -simplified. - -wxDocTemplate is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument} -and \helpref{wxDocManager}{wxdocmanager} classes. - -See the example application in {\tt samples/docview}. - -To use the wxDocTemplate class, you do not need to derive a new class. -Just pass relevant information to the constructor including CLASSINFO(YourDocumentClass) and -CLASSINFO(YourViewClass) to allow dynamic instance creation. -If you do not wish to use the wxWidgets method of creating document -objects dynamically, you must override wxDocTemplate::CreateDocument -and wxDocTemplate::CreateView to return instances of the appropriate class. - -{\it NOTE}: the document template has nothing to do with the C++ template construct. - -\subsection{wxDocManager overview}\label{wxdocmanageroverview} - -\overview{Document/view framework overview}{docviewoverview} - -Class: \helpref{wxDocManager}{wxdocmanager} - -The wxDocManager class is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxView}{wxview}, \helpref{wxDocument}{wxdocument}\rtfsp -and \helpref{wxDocTemplate}{wxdoctemplate} classes. - -A wxDocManager instance coordinates documents, views and document templates. It keeps a list of document -and template instances, and much functionality is routed through this object, such -as providing selection and file dialogs. The application can use this class `as is' or -derive a class and override some members to extend or change the functionality. -Create an instance of this class near the beginning of your application initialization, -before any documents, views or templates are manipulated. - -There may be multiple wxDocManager instances in an application. - -See the example application in {\tt samples/docview}. - -\subsection{wxCommand overview}\label{wxcommandoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxCommand}{wxcommand}, \helpref{wxCommandProcessor}{wxcommandprocessor} - -wxCommand is a base class for modelling an application command, -which is an action usually performed by selecting a menu item, pressing -a toolbar button or any other means provided by the application to -change the data or view. - -Instead of the application functionality being scattered around -switch statements and functions in a way that may be hard to -read and maintain, the functionality for a command is explicitly represented -as an object which can be manipulated by a framework or application. -When a user interface event occurs, the application {\it submits} a command -to a \helpref{wxCommandProcessor}{wxcommandprocessoroverview} object to execute and -store. - -The wxWidgets document/view framework handles Undo and Redo by use of -wxCommand and wxCommandProcessor objects. You might find further uses -for wxCommand, such as implementing a macro facility that stores, loads -and replays commands. - -An application can derive a new class for every command, or, more likely, use -one class parameterized with an integer or string command identifier. - -\subsection{wxCommandProcessor overview}\label{wxcommandprocessoroverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxCommandProcessor}{wxcommandprocessor}, \helpref{wxCommand}{wxcommand} - -wxCommandProcessor is a class that maintains a history of wxCommand -instances, with undo/redo functionality built-in. Derive a new class from this -if you want different behaviour. - -\subsection{wxFileHistory overview}\label{wxfilehistoryoverview} - -\overview{Document/view framework overview}{docviewoverview} - -Classes: \helpref{wxFileHistory}{wxfilehistory}, \helpref{wxDocManager}{wxdocmanager} - -wxFileHistory encapsulates functionality to record the last few files visited, and -to allow the user to quickly load these files using the list appended to the File menu. - -Although wxFileHistory is used by wxDocManager, it can be used independently. You may wish -to derive from it to allow different behaviour, such as popping up a scrolling -list of files. - -By calling \helpref{wxFileHistory::UseMenu()}{wxfilehistoryusemenu} you can -associate a file menu with the file history. The menu will then be used for -appending filenames that are added to the history. Please notice that currently -if the history already contained filenames when UseMenu() is called (e.g. when -initializing a second MDI child frame), the menu is not automatically -initialized with the existing filenames in the history and so you need to call -\helpref{AddFilesToMenu()}{wxfilehistoryaddfilestomenu} after UseMenu() -explicitly in order to initialize the menu with the existing list of MRU files. -(otherwise an assertion failure is raised in debug builds). -The filenames are appended using menu identifiers in the range -\texttt{wxID\_FILE1} to \texttt{wxID\_FILE9}. - -In order to respond to a file load command from one of these identifiers, -you need to handle them using an event handler, for example: - -{\small -\begin{verbatim} -BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame) - EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit) - EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile) -END_EVENT_TABLE() - -void wxDocParentFrame::OnExit(wxCommandEvent& WXUNUSED(event)) -{ - Close(); -} - -void wxDocParentFrame::OnMRUFile(wxCommandEvent& event) -{ - wxString f(m_docManager->GetHistoryFile(event.GetId() - wxID_FILE1)); - if (!f.empty()) - (void)m_docManager->CreateDocument(f, wxDOC_SILENT); -} -\end{verbatim} -} - -\subsection{wxWidgets predefined command identifiers}\label{predefinedids} - -To allow communication between the application's menus and the -document/view framework, several command identifiers are predefined for you -to use in menus. - -\begin{itemize}\itemsep=0pt -\item wxID\_OPEN (5000) -\item wxID\_CLOSE (5001) -\item wxID\_NEW (5002) -\item wxID\_SAVE (5003) -\item wxID\_SAVEAS (5004) -\item wxID\_REVERT (5005) -\item wxID\_EXIT (5006) -\item wxID\_UNDO (5007) -\item wxID\_REDO (5008) -\item wxID\_HELP (5009) -\item wxID\_PRINT (5010) -\item wxID\_PRINT\_SETUP (5011) -\item wxID\_PREVIEW (5012) -\end{itemize} - diff --git a/docs/latex/wx/tempfile.tex b/docs/latex/wx/tempfile.tex deleted file mode 100644 index e90dd57487..0000000000 --- a/docs/latex/wx/tempfile.tex +++ /dev/null @@ -1,144 +0,0 @@ -% automatically generated by HelpGen from tempfile.tex at 10/Jan/99 19:24:44 -\section{\class{wxTempFile}}\label{wxtempfile} - -wxTempFile provides a relatively safe way to replace the contents of the -existing file. The name is explained by the fact that it may be also used as -just a temporary file if you don't replace the old file contents. - -Usually, when a program replaces the contents of some file it first opens it for -writing, thus losing all of the old data and then starts recreating it. This -approach is not very safe because during the regeneration of the file bad things -may happen: the program may find that there is an internal error preventing it -from completing file generation, the user may interrupt it (especially if file -generation takes long time) and, finally, any other external interrupts (power -supply failure or a disk error) will leave you without either the original file -or the new one. - -wxTempFile addresses this problem by creating a temporary file which is meant to -replace the original file - but only after it is fully written. So, if the user -interrupts the program during the file generation, the old file won't be lost. -Also, if the program discovers itself that it doesn't want to replace the old -file there is no problem - in fact, wxTempFile will {\bf not} replace the old -file by default, you should explicitly call \helpref{Commit}{wxtempfilecommit} -to do it. Calling \helpref{Discard}{wxtempfilediscard} explicitly discards any -modifications: it closes and deletes the temporary file and leaves the original -file unchanged. If you don't call neither of Commit() and Discard(), the -destructor will call Discard() automatically. - -To summarize: if you want to replace another file, create an instance of -wxTempFile passing the name of the file to be replaced to the constructor (you -may also use default constructor and pass the file name to -\helpref{Open}{wxtempfileopen}). Then you can \helpref{write}{wxtempfilewrite} -to wxTempFile using \helpref{wxFile}{wxfile}-like functions and later call -Commit() to replace the old file (and close this one) or call Discard() to cancel -the modifications. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/file.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also:} - -\helpref{wxFile}{wxfile}\\ -\helpref{wxTempFileOutputStream}{wxtempfileoutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfilector} - -\func{}{wxTempFile}{\void} - -Default constructor - \helpref{Open}{wxtempfileopen} must be used to open the -file. - -\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfile} - -\func{}{wxTempFile}{\param{const wxString\& }{strName}} - -Associates wxTempFile with the file to be replaced and opens it. You should use -\helpref{IsOpened}{wxtempfileisopened} to verify if the constructor succeeded. - -\membersection{wxTempFile::Open}\label{wxtempfileopen} - -\func{bool}{Open}{\param{const wxString\& }{strName}} - -Open the temporary file, returns {\tt true} on success, {\tt false} if an error -occurred. - -{\it strName} is the name of file to be replaced. The temporary file is always -created in the directory where {\it strName} is. In particular, if -{\it strName} doesn't include the path, it is created in the current directory -and the program should have write access to it for the function to succeed. - -\membersection{wxTempFile::IsOpened}\label{wxtempfileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns {\tt true} if the file was successfully opened. - -\membersection{wxTempFile::Length}\label{wxtempfilelength} - -\constfunc{wxFileOffset}{Length}{\void} - -Returns the length of the file. - -\membersection{wxTempFile::Seek}\label{wxtempfileseek} - -\func{wxFileOffset}{Seek}{\param{wxFileOffset }{ofs}, \param{wxSeekMode }{mode = wxFromStart}} - -Seeks to the specified position. - -\membersection{wxTempFile::Tell}\label{wxtempfiletell} - -\constfunc{wxFileOffset}{Tell}{\void} - -Returns the current position or wxInvalidOffset if file is not opened or if another -error occurred. - -\membersection{wxTempFile::Write}\label{wxtempfilewrite} - -\func{bool}{Write}{\param{const void }{*p}, \param{size\_t }{n}} - -Write to the file, return {\tt true} on success, {\tt false} on failure. - -\membersection{wxTempFile::Write}\label{wxtempfilewrites} - -\func{bool}{Write}{\param{const wxString\& }{str}, \param{const wxMBConv\&}{ conv = wxConvUTF8}} - -Write to the file, return {\tt true} on success, {\tt false} on failure. - -The second argument is only meaningful in Unicode build of wxWidgets when -{\it conv} is used to convert {\it str} to multibyte representation. - -\membersection{wxTempFile::Commit}\label{wxtempfilecommit} - -\func{bool}{Commit}{\void} - -Validate changes: deletes the old file of name m\_strName and renames the new -file to the old name. Returns {\tt true} if both actions succeeded. If {\tt false} is -returned it may unfortunately mean two quite different things: either that -either the old file couldn't be deleted or that the new file couldn't be renamed -to the old name. - -\membersection{wxTempFile::Discard}\label{wxtempfilediscard} - -\func{void}{Discard}{\void} - -Discard changes: the old file contents is not changed, temporary file is -deleted. - -\membersection{wxTempFile::\destruct{wxTempFile}}\label{wxtempfiledtor} - -\func{}{\destruct{wxTempFile}}{\void} - -Destructor calls \helpref{Discard()}{wxtempfilediscard} if temporary file -is still opened. - diff --git a/docs/latex/wx/tempfilestrm.tex b/docs/latex/wx/tempfilestrm.tex deleted file mode 100644 index 3e8f049ba1..0000000000 --- a/docs/latex/wx/tempfilestrm.tex +++ /dev/null @@ -1,61 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% wx/wfstream.h at 07/Mar/05 20:45:33 -% - -\section{\class{wxTempFileOutputStream}}\label{wxtempfileoutputstream} - -wxTempFileOutputStream is an output stream based on \helpref{wxTempFile}{wxtempfile}. It -provides a relatively safe way to replace the contents of the -existing file. - -\wxheading{Derived from} - -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - -<wx/wfstream.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxTempFile}{wxtempfile} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTempFileOutputStream::wxTempFileOutputStream}\label{wxtempfileoutputstreamwxtempfileoutputstream} - -\func{}{wxTempFileOutputStream}{\param{const wxString\& }{fileName}} - -Associates wxTempFileOutputStream with the file to be replaced and opens it. You should use -\helpref{IsOk}{wxstreambaseisok} to verify if the constructor succeeded. - -Call \helpref{Commit()}{wxtempfileoutputstreamcommit} or \helpref{Close()}{wxoutputstreamclose} to -replace the old file and close this one. Calling \helpref{Discard()}{wxtempfileoutputstreamdiscard} -(or allowing the destructor to do it) will discard the changes. - - -\membersection{wxTempFileOutputStream::Commit}\label{wxtempfileoutputstreamcommit} - -\func{bool}{Commit}{\void} - -Validate changes: deletes the old file of the given name and renames the new -file to the old name. Returns {\tt true} if both actions succeeded. If {\tt false} is -returned it may unfortunately mean two quite different things: either that -either the old file couldn't be deleted or that the new file couldn't be renamed -to the old name. - - -\membersection{wxTempFileOutputStream::Discard}\label{wxtempfileoutputstreamdiscard} - -\func{void}{Discard}{\void} - -Discard changes: the old file contents are not changed, the temporary file is -deleted. - diff --git a/docs/latex/wx/tenvvars.tex b/docs/latex/wx/tenvvars.tex deleted file mode 100644 index dd2d334948..0000000000 --- a/docs/latex/wx/tenvvars.tex +++ /dev/null @@ -1,32 +0,0 @@ -\section{Environment variables}\label{envvars} -%\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -%\setfooter{\thepage}{}{}{}{}{\thepage}% - -This section describes all environment variables that affect execution of -wxWidgets programs. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt - -\twocolitem{\tt{WXTRACE}}{(Debug build only.) -This variable can be set to a comma-separated list of trace masks used in -\helpref{wxLogTrace}{wxlogtrace} calls; -\helpref{wxLog::AddTraceMask}{wxlogaddtracemask} is called for every mask -in the list during wxWidgets initialization.} - -\twocolitem{\tt{WXPREFIX}}{(Unix only.) -Overrides installation prefix. Normally, the prefix -is hard-coded and is the same as the value passed to {\tt configure} via -the {\tt --prefix} switch when compiling the library (typically -{\tt /usr/local} or {\tt /usr}). You can set WXPREFIX if you are for example -distributing a binary version of an application and you don't know in advance -where it will be installed.} - -\twocolitem{\tt{WXMODE}}{(wxMGL only.) -Sets MGL video mode. The value must be in form -{\it width}x{\it height}-{\it depth}. The default is {\tt 640x480-16}.} - -\twocolitem{\tt{WXSTDERR}}{(wxMGL only.) -Redirects stderr output to a file.} - -\end{twocollist} diff --git a/docs/latex/wx/tevent.tex b/docs/latex/wx/tevent.tex deleted file mode 100644 index 0841732791..0000000000 --- a/docs/latex/wx/tevent.tex +++ /dev/null @@ -1,594 +0,0 @@ -\section{Event handling overview}\label{eventhandlingoverview} - -Classes: \helpref{wxEvtHandler}{wxevthandler}, \helpref{wxWindow}{wxwindow}, \helpref{wxEvent}{wxevent} - -\subsection{Introduction}\label{eventintroduction} - -Before version 2.0 of wxWidgets, events were handled by the application -either by supplying callback functions, or by overriding virtual member -functions such as {\bf OnSize}. - -From wxWidgets 2.0, {\it event tables} are used instead, with a few exceptions. - -An event table is placed in an implementation file to tell wxWidgets how to map -events to member functions. These member functions are not virtual functions, but -they are all similar in form: they take a single wxEvent-derived argument, and have a void return -type. - -Here's an example of an event table. - -\begin{verbatim} -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU (wxID_EXIT, MyFrame::OnExit) - EVT_MENU (DO_TEST, MyFrame::DoTest) - EVT_SIZE ( MyFrame::OnSize) - EVT_BUTTON (BUTTON1, MyFrame::OnButton1) -END_EVENT_TABLE() -\end{verbatim} - -The first two entries map menu commands to two different member functions. The -EVT\_SIZE macro doesn't need a window identifier, since normally you are only -interested in the current window's size events. - -The EVT\_BUTTON macro demonstrates that the originating event does not have to -come from the window class implementing the event table -- if the event source -is a button within a panel within a frame, this will still work, because event -tables are searched up through the hierarchy of windows for the command events. -In this case, the button's event table will be searched, then the parent -panel's, then the frame's. - -As mentioned before, the member functions that handle events do not have to be -virtual. Indeed, the member functions should not be virtual as the event -handler ignores that the functions are virtual, i.e. overriding a virtual -member function in a derived class will not have any effect. These member -functions take an event argument, and the class of event differs according to -the type of event and the class of the originating window. For size events, -\helpref{wxSizeEvent}{wxsizeevent} is used. For menu commands and most -control commands (such as button presses), -\helpref{wxCommandEvent}{wxcommandevent} is used. When controls get more -complicated, then specific event classes are used, such as -\helpref{wxTreeEvent}{wxtreeevent} for events from -\helpref{wxTreeCtrl}{wxtreectrl} windows. - -As well as the event table in the implementation file, there must also be a -DECLARE\_EVENT\_TABLE macro somewhere in the class declaration. For example: - -{\small% -\begin{verbatim} -class MyFrame : public wxFrame -{ -public: - ... - void OnExit(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); - -protected: - int m_count; - ... - - DECLARE_EVENT_TABLE() -}; -\end{verbatim} -}% - -Note that this macro may occur in any section of the class (public, protected -or private) but that it is probably better to insert it at the end, as shown, -because this macro implicitly changes the access to protected which may be -quite unexpected if there is anything following it. - -Finally, if you don't like using macros for static initialization of the event -tables you may also use \helpref{wxEvtHandler::Connect}{wxevthandlerconnect} to -connect the events to the handlers dynamically, during run-time. See the -\helpref{event sample}{sampleevent} for an example of doing it. - - -\subsection{How events are processed}\label{eventprocessing} - -When an event is received from the windowing system, wxWidgets calls -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent} on the first -event handler object belonging to the window generating the event. - -It may be noted that wxWidgets' event processing system implements something -very close to virtual methods in normal C++, i.e. it is possible to alter -the behaviour of a class by overriding its event handling functions. In -many cases this works even for changing the behaviour of native controls. -For example it is possible to filter out a number of key events sent by the -system to a native text control by overriding wxTextCtrl and defining a -handler for key events using EVT\_KEY\_DOWN. This would indeed prevent -any key events from being sent to the native control - which might not be -what is desired. In this case the event handler function has to call Skip() -so as to indicate that the search for the event handler should continue. - -To summarize, instead of explicitly calling the base class version as you -would have done with C++ virtual functions (i.e. {\it wxTextCtrl::OnChar()}), -you should instead call \helpref{Skip}{wxeventskip}. - -In practice, this would look like this if the derived text control only -accepts 'a' to 'z' and 'A' to 'Z': - -{\small% -\begin{verbatim} -void MyTextCtrl::OnChar(wxKeyEvent& event) -{ - if ( isalpha( event.KeyCode() ) ) - { - // key code is within legal range. we call event.Skip() so the - // event can be processed either in the base wxWidgets class - // or the native control. - - event.Skip(); - } - else - { - // illegal key hit. we don't call event.Skip() so the - // event is not processed anywhere else. - - wxBell(); - } -} -\end{verbatim} -}% - - -The normal order of event table searching by ProcessEvent is as follows: - -\begin{enumerate}\itemsep=0pt -\item If the object is disabled (via a call to \helpref{wxEvtHandler::SetEvtHandlerEnabled}{wxevthandlersetevthandlerenabled}) -the function skips to step (6). -\item If the object is a wxWindow, {\bf ProcessEvent} is recursively called on the window's\rtfsp -\helpref{wxValidator}{wxvalidator}. If this returns true, the function exits. -\item {\bf SearchEventTable} is called for this event handler. If this fails, the base -class table is tried, and so on until no more tables exist or an appropriate function was found, -in which case the function exits. -\item The search is applied down the entire chain of event handlers (usually the chain has a length -of one). If this succeeds, the function exits. -\item If the object is a wxWindow and the event is set to set to propagate (in the library only -wxCommandEvent based events are set to propagate), {\bf ProcessEvent} is recursively applied -to the parent window's event handler. If this returns true, the function exits. -\item Finally, {\bf ProcessEvent} is called on the wxApp object. -\end{enumerate} - -{\bf Pay close attention to Step 5.} People often overlook or get -confused by this powerful feature of the wxWidgets event processing -system. To put it a different way, events set to propagate -(\helpref{See: wxEvent::ShouldPropagate}{wxeventshouldpropagate}) -(most likely derived either directly or indirectly from wxCommandEvent) -will travel up the containment hierarchy from child to parent until the -maximal propagation level is reached or an event handler is found that -doesn't call \helpref{event.Skip()}{wxeventskip}. - -Finally, there is another additional complication (which, in fact, simplifies -life of wxWidgets programmers significantly): when propagating the command -events upwards to the parent window, the event propagation stops when it -reaches the parent dialog, if any. This means that you don't risk to get -unexpected events from the dialog controls (which might be left unprocessed by -the dialog itself because it doesn't care about them) when a modal dialog is -popped up. The events do propagate beyond the frames, however. The rationale -for this choice is that there are only a few frames in a typical application -and their parent-child relation are well understood by the programmer while it -may be very difficult, if not impossible, to track down all the dialogs which -may be popped up in a complex program (remember that some are created -automatically by wxWidgets). If you need to specify a different behaviour for -some reason, you can use -\helpref{SetExtraStyle(wxWS\_EX\_BLOCK\_EVENTS)}{wxwindowsetextrastyle} -explicitly to prevent the events from being propagated beyond the given window -or unset this flag for the dialogs which have it on by default. - -Typically events that deal with a window as a window (size, motion, -paint, mouse, keyboard, etc.) are sent only to the window. Events -that have a higher level of meaning and/or are generated by the window -itself, (button click, menu select, tree expand, etc.) are command -events and are sent up to the parent to see if it is interested in the -event. - -Note that your application may wish to override ProcessEvent to redirect processing of -events. This is done in the document/view framework, for example, to allow event handlers -to be defined in the document or view. To test for command events (which will probably -be the only events you wish to redirect), you may use -\helpref{wxEvent::IsCommandEvent}{wxeventiscommandevent} for efficiency, -instead of using the slower run-time type system. - -As mentioned above, only command events are recursively applied to the parents event -handler in the library itself. As this quite often causes confusion for users, -here is a list of system events which will NOT get sent to the parent's event handler: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxEvent}{wxevent}}{The event base class} -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{A window or application activation event} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{A close window or end session event} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{An erase background event} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{A window focus event} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{A keypress event} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{An idle event} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{A dialog initialisation event} -\twocolitem{\helpref{wxJoystickEvent}{wxjoystickevent}}{A joystick event} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{A menu event} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{A mouse event} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{A move event} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{A paint event} -\twocolitem{\helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent}}{Used to query layout information} -\twocolitem{\helpref{wxSetCursorEvent}{wxsetcursorevent}}{Used for special cursor processing based on current mouse position} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{A size event} -\twocolitem{\helpref{wxScrollWinEvent}{wxscrollwinevent}}{A scroll event sent by a scrolled window (not a scroll bar)} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{A system colour change event} -\end{twocollist} - -In some cases, it might be desired by the programmer to get a certain number -of system events in a parent window, for example all key events sent to, but not -used by, the native controls in a dialog. In this case, a special event handler -will have to be written that will override ProcessEvent() in order to pass -all events (or any selection of them) to the parent window. - - -\subsection{Events generated by the user vs programmatically generated events}\label{progevent} - -While generically \helpref{wxEvents}{wxevent} can be generated both by user -actions (e.g. resize of a \helpref{wxWindow}{wxwindow}) and by calls to functions -(e.g. \helpref{wxWindow::SetSize}{wxwindowsetsize}), wxWidgets controls -normally send \helpref{wxCommandEvent}{wxcommandevent}-derived events only for -the user-generated events. The only {\bf exceptions} to this rule are: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxNotebook::AddPage}{wxnotebookaddpage}}{No event-free alternatives} -\twocolitem{\helpref{wxNotebook::AdvanceSelection}{wxnotebookadvanceselection}}{No event-free alternatives} -\twocolitem{\helpref{wxNotebook::DeletePage}{wxnotebookdeletepage}}{No event-free alternatives} -\twocolitem{\helpref{wxNotebook::SetSelection}{wxnotebooksetselection}}{Use \helpref{wxNotebook::ChangeSelection}{wxnotebookchangeselection} instead, as \helpref{wxNotebook::SetSelection}{wxnotebooksetselection} is deprecated} -\twocolitem{\helpref{wxTreeCtrl::Delete}{wxtreectrldelete}}{No event-free alternatives} -\twocolitem{\helpref{wxTreeCtrl::DeleteAllItems}{wxtreectrldeleteallitems}}{No event-free alternatives} -\twocolitem{\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel}}{No event-free alternatives} -\twocolitem{All \helpref{wxTextCtrl}{wxtextctrl} methods}{\helpref{wxTextCtrl::ChangeValue}{wxtextctrlchangevalue} can be used instead -of \helpref{wxTextCtrl::SetValue}{wxtextctrlsetvalue} but the other functions, -such as \helpref{Replace}{wxtextctrlreplace} or \helpref{WriteText}{wxtextctrlwritetext} -don't have event-free equivalents} -\end{twocollist} - - -% VZ: it doesn't work like this, but just in case we ever reenable this -% behaviour, I leave it here -% -% \subsection{Redirection of command events to the window with the focus} -% -% The usual upward search through the window hierarchy for command event -% handlers does not always meet an application's requirements. Say you have two -% wxTextCtrl windows in a frame, plus a toolbar with Cut, Copy and Paste -% buttons. To avoid the need to define event handlers in the frame -% and redirect them explicitly to the window with the focus, command events -% are sent to the window with the focus first, for -% menu and toolbar command and UI update events only. This means that -% each window can handle its own commands and UI updates independently. In -% fact wxTextCtrl can handle Cut, Copy, Paste, Undo and Redo commands and UI update -% requests, so no extra coding is required to support them in your menus and -% toolbars. - -\subsection{Pluggable event handlers}\label{pluggablehandlers} - -In fact, you don't have to derive a new class from a window class -if you don't want to. You can derive a new class from wxEvtHandler instead, -defining the appropriate event table, and then call -\rtfsp\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler} (or, preferably, -\rtfsp\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler}) to make this -event handler the object that responds to events. This way, you can avoid -a lot of class derivation, and use instances of the same event handler class (but different -objects as the same event handler object shouldn't be used more than once) to -handle events from instances of different widget classes. If you ever have to call a window's event handler -manually, use the GetEventHandler function to retrieve the window's event handler and use that -to call the member function. By default, GetEventHandler returns a pointer to the window itself -unless an application has redirected event handling using SetEventHandler or PushEventHandler. - -One use of PushEventHandler is to temporarily or permanently change the -behaviour of the GUI. For example, you might want to invoke a dialog editor -in your application that changes aspects of dialog boxes. You can -grab all the input for an existing dialog box, and edit it `in situ', -before restoring its behaviour to normal. So even if the application -has derived new classes to customize behaviour, your utility can indulge -in a spot of body-snatching. It could be a useful technique for on-line -tutorials, too, where you take a user through a serious of steps and -don't want them to diverge from the lesson. Here, you can examine the events -coming from buttons and windows, and if acceptable, pass them through to -the original event handler. Use PushEventHandler/PopEventHandler -to form a chain of event handlers, where each handler processes a different -range of events independently from the other handlers. - -\subsection{Window identifiers}\label{windowids} - -\index{identifiers}\index{wxID}Window identifiers are integers, and are used to -uniquely determine window identity in the event system (though you can use it -for other purposes). In fact, identifiers do not need to be unique -across your entire application just so long as they are unique within a -particular context you're interested in, such as a frame and its children. You -may use the {\tt wxID\_OK} identifier, for example, on any number of dialogs so -long as you don't have several within the same dialog. - -If you pass {\tt wxID\_ANY} to a window constructor, an identifier will be -generated for you automatically by wxWidgets. This is useful when you don't -care about the exact identifier either because you're not going to process the -events from the control being created at all or because you process the events -from all controls in one place (in which case you should specify {\tt wxID\_ANY} -in the event table or \helpref{wxEvtHandler::Connect}{wxevthandlerconnect} call -as well. The automatically generated identifiers are always negative and so -will never conflict with the user-specified identifiers which must be always -positive. - -The following standard identifiers are supplied. You can use wxID\_HIGHEST to -determine the number above which it is safe to define your own identifiers. Or, -you can use identifiers below wxID\_LOWEST. - -\begin{verbatim} -#define wxID_ANY -1 - -#define wxID_LOWEST 4999 - -#define wxID_OPEN 5000 -#define wxID_CLOSE 5001 -#define wxID_NEW 5002 -#define wxID_SAVE 5003 -#define wxID_SAVEAS 5004 -#define wxID_REVERT 5005 -#define wxID_EXIT 5006 -#define wxID_UNDO 5007 -#define wxID_REDO 5008 -#define wxID_HELP 5009 -#define wxID_PRINT 5010 -#define wxID_PRINT_SETUP 5011 -#define wxID_PREVIEW 5012 -#define wxID_ABOUT 5013 -#define wxID_HELP_CONTENTS 5014 -#define wxID_HELP_COMMANDS 5015 -#define wxID_HELP_PROCEDURES 5016 -#define wxID_HELP_CONTEXT 5017 - -#define wxID_CUT 5030 -#define wxID_COPY 5031 -#define wxID_PASTE 5032 -#define wxID_CLEAR 5033 -#define wxID_FIND 5034 -#define wxID_DUPLICATE 5035 -#define wxID_SELECTALL 5036 -#define wxID_DELETE 5037 -#define wxID_REPLACE 5038 -#define wxID_REPLACE_ALL 5039 -#define wxID_PROPERTIES 5040 - -#define wxID_VIEW_DETAILS 5041 -#define wxID_VIEW_LARGEICONS 5042 -#define wxID_VIEW_SMALLICONS 5043 -#define wxID_VIEW_LIST 5044 -#define wxID_VIEW_SORTDATE 5045 -#define wxID_VIEW_SORTNAME 5046 -#define wxID_VIEW_SORTSIZE 5047 -#define wxID_VIEW_SORTTYPE 5048 - -#define wxID_FILE1 5050 -#define wxID_FILE2 5051 -#define wxID_FILE3 5052 -#define wxID_FILE4 5053 -#define wxID_FILE5 5054 -#define wxID_FILE6 5055 -#define wxID_FILE7 5056 -#define wxID_FILE8 5057 -#define wxID_FILE9 5058 - -#define wxID_OK 5100 -#define wxID_CANCEL 5101 -#define wxID_APPLY 5102 -#define wxID_YES 5103 -#define wxID_NO 5104 -#define wxID_STATIC 5105 - -#define wxID_HIGHEST 5999 -\end{verbatim} - -\subsection{Event macros summary}\label{eventmacros} - -\wxheading{Macros listed by event class} - -The documentation for specific event macros is organised by event class. Please refer -to these sections for details. - -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxActivateEvent}{wxactivateevent}}{The EVT\_ACTIVATE and EVT\_ACTIVATE\_APP macros intercept -activation and deactivation events.} -\twocolitem{\helpref{wxCommandEvent}{wxcommandevent}}{A range of commonly-used control events.} -\twocolitem{\helpref{wxCloseEvent}{wxcloseevent}}{The EVT\_CLOSE macro handles window closure -called via \helpref{wxWindow::Close}{wxwindowclose}.} -\twocolitem{\helpref{wxDropFilesEvent}{wxdropfilesevent}}{The EVT\_DROP\_FILES macros handles -file drop events.} -\twocolitem{\helpref{wxEraseEvent}{wxeraseevent}}{The EVT\_ERASE\_BACKGROUND macro is used to handle window erase requests.} -\twocolitem{\helpref{wxFocusEvent}{wxfocusevent}}{The EVT\_SET\_FOCUS and EVT\_KILL\_FOCUS macros are used to handle keyboard focus events.} -\twocolitem{\helpref{wxKeyEvent}{wxkeyevent}}{EVT\_CHAR, EVT\_KEY\_DOWN and -EVT\_KEY\_UP macros handle keyboard input for any window.} -\twocolitem{\helpref{wxIdleEvent}{wxidleevent}}{The EVT\_IDLE macro handle application idle events -(to process background tasks, for example).} -\twocolitem{\helpref{wxInitDialogEvent}{wxinitdialogevent}}{The EVT\_INIT\_DIALOG macro is used -to handle dialog initialisation.} -\twocolitem{\helpref{wxListEvent}{wxlistevent}}{These macros handle \helpref{wxListCtrl}{wxlistctrl} events.} -\twocolitem{\helpref{wxMenuEvent}{wxmenuevent}}{These macros handle special menu events (not menu commands).} -\twocolitem{\helpref{wxMouseEvent}{wxmouseevent}}{Mouse event macros can handle either individual -mouse events or all mouse events.} -\twocolitem{\helpref{wxMoveEvent}{wxmoveevent}}{The EVT\_MOVE macro is used to handle a window move.} -\twocolitem{\helpref{wxPaintEvent}{wxpaintevent}}{The EVT\_PAINT macro is used to handle window paint requests.} -\twocolitem{\helpref{wxScrollEvent}{wxscrollevent}}{These macros are used to handle scroll events from -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxSlider}{wxslider},and \helpref{wxSpinButton}{wxspinbutton}.} -\twocolitem{\helpref{wxSetCursorEvent}{wxsetcursorevent}}{The EVT\_SET\_CURSOR macro is used for special cursor processing.} -\twocolitem{\helpref{wxSizeEvent}{wxsizeevent}}{The EVT\_SIZE macro is used to handle a window resize.} -\twocolitem{\helpref{wxSplitterEvent}{wxsplitterevent}}{The EVT\_SPLITTER\_SASH\_POS\_CHANGED, EVT\_SPLITTER\_UNSPLIT -and EVT\_SPLITTER\_DCLICK macros are used to handle the various splitter window events.} -\twocolitem{\helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}}{The EVT\_SYS\_COLOUR\_CHANGED macro is used to handle -events informing the application that the user has changed the system colours (Windows only).} -\twocolitem{\helpref{wxTreeEvent}{wxtreeevent}}{These macros handle \helpref{wxTreeCtrl}{wxtreectrl} events.} -\twocolitem{\helpref{wxUpdateUIEvent}{wxupdateuievent}}{The EVT\_UPDATE\_UI macro is used to handle user interface -update pseudo-events, which are generated to give the application the chance to update the visual state of menus, -toolbars and controls.} -\end{twocollist} - -\subsection{Custom event summary}\label{customevents} - -\wxheading{General approach} - -Since version 2.2.x of wxWidgets, each event type is identified by ID which -is given to the event type {\it at runtime} which makes it possible to add -new event types to the library or application without risking ID clashes -(two different event types mistakingly getting the same event ID). This -event type ID is stored in a struct of type {\bf const wxEventType}. - -In order to define a new event type, there are principally two choices. -One is to define a entirely new event class (typically deriving from -\helpref{wxEvent}{wxevent} or \helpref{wxCommandEvent}{wxcommandevent}. -The other is to use the existing event classes and give them an new event -type. You'll have to define and declare a new event type using either way, -and this is done using the following macros: - -\begin{verbatim} -// in the header of the source file -BEGIN_DECLARE_EVENT_TYPES() -DECLARE_EVENT_TYPE(name, value) -END_DECLARE_EVENT_TYPES() - -// in the implementation -DEFINE_EVENT_TYPE(name) -\end{verbatim} - -You can ignore the {\it value} parameter of the DECLARE\_EVENT\_TYPE macro -since it is used only for backwards compatibility with wxWidgets 2.0.x based -applications where you have to give the event type ID an explicit value. - -See also the \helpref{event sample}{sampleevent} for an example of code -defining and working with the custom event types. - -\wxheading{Using existing event classes} - -If you just want to use a \helpref{wxCommandEvent}{wxcommandevent} with -a new event type, you can then use one of the generic event table macros -listed below, without having to define a new macro yourself. This also -has the advantage that you won't have to define a new \helpref{wxEvent::Clone()}{wxeventclone} -method for posting events between threads etc. This could look like this -in your code: - -{\small% -\begin{verbatim} -DECLARE_EVENT_TYPE(wxEVT_MY_EVENT, -1) - -DEFINE_EVENT_TYPE(wxEVT_MY_EVENT) - -// user code intercepting the event - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU (wxID_EXIT, MyFrame::OnExit) - // .... - EVT_COMMAND (ID_MY_WINDOW, wxEVT_MY_EVENT, MyFrame::OnMyEvent) -END_EVENT_TABLE() - -void MyFrame::OnMyEvent( wxCommandEvent &event ) -{ - // do something - wxString text = event.GetText(); -} - - -// user code sending the event - -void MyWindow::SendEvent() -{ - wxCommandEvent event( wxEVT_MY_EVENT, GetId() ); - event.SetEventObject( this ); - // Give it some contents - event.SetText( wxT("Hallo") ); - // Send it - GetEventHandler()->ProcessEvent( event ); -} -\end{verbatim} -}% - - -\wxheading{Generic event table macros} - -\twocolwidtha{8cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{EVT\_CUSTOM(event, id, func)}}{Allows you to add a custom event table -entry by specifying the event identifier (such as wxEVT\_SIZE), the window identifier, -and a member function to call.} -\twocolitem{\windowstyle{EVT\_CUSTOM\_RANGE(event, id1, id2, func)}}{The same as EVT\_CUSTOM, -but responds to a range of window identifiers.} -\twocolitem{\windowstyle{EVT\_COMMAND(id, event, func)}}{The same as EVT\_CUSTOM, but -expects a member function with a wxCommandEvent argument.} -\twocolitem{\windowstyle{EVT\_COMMAND\_RANGE(id1, id2, event, func)}}{The same as EVT\_CUSTOM\_RANGE, but -expects a member function with a wxCommandEvent argument.} -\twocolitem{\windowstyle{EVT\_NOTIFY(event, id, func)}}{The same as EVT\_CUSTOM, but -expects a member function with a wxNotifyEvent argument.} -\twocolitem{\windowstyle{EVT\_NOTIFY\_RANGE(event, id1, id2, func)}}{The same as EVT\_CUSTOM\_RANGE, but -expects a member function with a wxNotifyEvent argument.} -\end{twocollist} - - -\wxheading{Defining your own event class} - -Under certain circumstances, it will be required to define your own event -class e.g. for sending more complex data from one place to another. Apart -from defining your event class, you will also need to define your own -event table macro (which is quite long). Watch out to put in enough -casts to the inherited event function. Here is an example: - -{\small% -\begin{verbatim} - -// code defining event - -class wxPlotEvent: public wxNotifyEvent -{ -public: - wxPlotEvent( wxEventType commandType = wxEVT_NULL, int id = 0 ); - - // accessors - wxPlotCurve *GetCurve() - { return m_curve; } - - // required for sending with wxPostEvent() - virtual wxEvent *Clone() const; - -private: - wxPlotCurve *m_curve; -}; - -DECLARE_EVENT_TYPE( wxEVT_PLOT_ACTION, -1 ) - -typedef void (wxEvtHandler::*wxPlotEventFunction)(wxPlotEvent&); - -#define EVT_PLOT(id, fn) \ - DECLARE_EVENT_TABLE_ENTRY( wxEVT_PLOT_ACTION, id, -1, \ - (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) \ - wxStaticCastEvent( wxPlotEventFunction, & fn ), (wxObject *) NULL ), - - -// code implementing the event type and the event class - -DEFINE_EVENT_TYPE( wxEVT_PLOT_ACTION ) - -wxPlotEvent::wxPlotEvent( ... - - -// user code intercepting the event - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_PLOT (ID_MY_WINDOW, MyFrame::OnPlot) -END_EVENT_TABLE() - -void MyFrame::OnPlot( wxPlotEvent &event ) -{ - wxPlotCurve *curve = event.GetCurve(); -} - - -// user code sending the event - -void MyWindow::SendEvent() -{ - wxPlotEvent event( wxEVT_PLOT_ACTION, GetId() ); - event.SetEventObject( this ); - event.SetCurve( m_curve ); - GetEventHandler()->ProcessEvent( event ); -} - -\end{verbatim} -}% - diff --git a/docs/latex/wx/tex2rtf.ini b/docs/latex/wx/tex2rtf.ini deleted file mode 100644 index e68654f1be..0000000000 --- a/docs/latex/wx/tex2rtf.ini +++ /dev/null @@ -1,61 +0,0 @@ -;;; Tex2RTF initialisation file, using NO style sheet for HTML. See -;;; tex2rtf_css.ini for a version using a style sheet. You can use -;;; -macros tex2rtf.ini to specify the ini file. -runTwice = yes -titleFontSize = 18 -authorFontSize = 12 -authorFontSize = 12 -chapterFontSize = 18 -sectionFontSize = 16 -subsectionFontSize = 12 -contentsDepth = 2 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -listItemIndent=40 -generateHPJ = yes -htmlBrowseButtons = bitmap -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "wxWidgets Manual" -truncateFilenames = no -combineSubSections = yes -;; -;; These two are for generating MS HTML Help project, contents and index files. -;; -htmlWorkshopFiles = true -htmlIndex = true - -; Finally, a way to specify face names -htmlFaceName = "Arial, Lucida, Helvetica" - -\textasciitilde [0]{{\tt\~}} -\textasciicircum [0]{{\tt\^}} -; Need to define this as \symbol(94) in 'real' Latex -\caret [0]{$^$} -\textbackslash [0]{{\tt$\backslash$}} -\gifsep [0]{\par} -ignoreInput = "ltx.tex" -; htmlStylesheet = "wx.css" - -\overview [2] {\helpref{#1}{#2}} -\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}} -\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}} -\const [0] {{\bf const}} -\constfunc [3] {\func{#1}{#2}{#3} {\bf const}\index{#2}} -\windowstyle [1] {{\bf #1}\index{#1}} -\bftt [1] {\bf{\tt{#1}}} -\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1} -%\pythonnote [1] {} -\perlnote [1] {{\bf \fcol{blue}{wxPerl note:}} #1} -%\perlnote [1] {} -\arg [1] {{\it #1}} -\true [0] {{\tt true}} -\false [0] {{\tt false}} -\NUL [0] {{\tt NUL}} -\NULL [0] {{\tt NULL}} -\newsince [1] {This function is new since wxWidgets version #1} -\deprecated [1] {This function is deprecated, please use #1 instead} - -; make tex2rtf understand \hbox{} macro: -\hbox [1] {#1} diff --git a/docs/latex/wx/tex2rtf_css.ini b/docs/latex/wx/tex2rtf_css.ini deleted file mode 100644 index 30e8ea7a7a..0000000000 --- a/docs/latex/wx/tex2rtf_css.ini +++ /dev/null @@ -1,62 +0,0 @@ -;;; Tex2RTF initialisation file, using a style sheet for HTML. -;;; See tex2rtf.ini for a version using no style sheet, and instead -;;; setting explicit fonts. You can use -macros tex2rtf_css.ini to -;;; specify the ini file. -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -contentsDepth = 2 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -listItemIndent=40 -generateHPJ = yes -htmlBrowseButtons = bitmap -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "wxWidgets Manual" -truncateFilenames = no -combineSubSections = yes -;; -;; These two are for generating MS HTML Help project, contents and index files. -;; -htmlWorkshopFiles = true -htmlIndex = true - -; Finally, a way to specify face names -htmlFaceName = "Arial, Lucida, Helvetica" - -\textasciitilde [0]{{\tt\~}} -\textasciicircum [0]{{\tt\^}} -; Need to define this as \symbol(94) in 'real' Latex -\caret [0]{$^$} -\textbackslash [0]{{\tt$\backslash$}} -\gifsep [0]{\par} -ignoreInput = "ltx.tex" -htmlStylesheet = "wx.css" - -\overview [2] {\helpref{#1}{#2}} -\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}} -\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}} -\const [0] {{\bf const}} -\constfunc [3] {\func{#1}{#2}{#3} {\bf const}\index{#2}} -\windowstyle [1] {{\bf #1}\index{#1}} -\bftt [1] {\bf{\tt{#1}}} -\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1} -;;\pythonnote [1] {} -;;\perlnote [1] {{\bf \fcol{blue}{wxPerl note:}} #1} -\perlnote [1] {} -\arg [1] {{\it #1}} -\true [0] {{\tt true}} -\false [0] {{\tt false}} -\NUL [0] {{\tt NUL}} -\NULL [0] {{\tt NULL}} -\newsince [1] {This function is new since wxWidgets version #1} -\deprecated [1] {This function is deprecated, please use #1 instead} - -; make tex2rtf understand \hbox{} macro: -\hbox [1] {#1} diff --git a/docs/latex/wx/texcept.tex b/docs/latex/wx/texcept.tex deleted file mode 100644 index 58344d0ddb..0000000000 --- a/docs/latex/wx/texcept.tex +++ /dev/null @@ -1,75 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: texcept.tex -%% Purpose: C++ exceptions and wxWidgets overview -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 17.09.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{C++ exceptions overview}\label{exceptionsoverview} - -\subsection{Introduction}\label{exceptionintroduction} - -wxWidgets had been started long before the exceptions were introduced in C++ so -it is not very surprising that it is not built around using them as some more -modern C++ libraries are. For instance, the library doesn't throw exceptions to -signal about the errors. Moreover, up to (and including) the version 2.4 of -wxWidgets, even using the exceptions in the user code was dangerous because the -library code wasn't exception-safe and so an exception propagating through it -could result in memory and/or resource leaks, and also not very convenient. - -Starting from the version 2.5.1 wxWidgets becomes more exception-friendly. It -still doesn't use the exceptions by itself but it should be now safe to use the -exceptions in the user code and the library tries to help you with this. Please -note that making the library exception-safe is still work in progress. - - -\subsection{Strategies for exceptions handling}\label{exceptionstrategies} - -There are several choice for using the exceptions in wxWidgets programs. First -of all, you may not use them at all. As stated above, the library doesn't throw -any exceptions by itself and so you don't have to worry about exceptions at all -unless your own code throws them. This is, of course, the simplest solution but -may be not the best one to deal with all possible errors. - -Another strategy is to use exceptions only to signal truly fatal errors. In -this case you probably don't expect to recover from them and the default -behaviour -- to simply terminate the program -- may be appropriate. If it is -not, you may override \helpref{OnUnhandledException()}{wxapponunhandledexception} -in your wxApp-derived class to perform any clean up tasks. Note, however, that -any information about the exact exception type is lost when this function is -called, so if you need you should override \helpref{OnRun()}{wxapponrun} and -add a try/catch clause around the call of the base class version. This would -allow you to catch any exceptions generated during the execution of the main -event loop. To deal with the exceptions which may arise during the program -startup and/or shutdown you should insert try/catch clauses in -\helpref{OnInit()}{wxapponinit} and/or \helpref{OnExit()}{wxapponexit} as well. - -Finally, you may also want to continue running even when certain exceptions -occur. If all of your exceptions may happen only in the event handlers of a -single class (or only in the classes derived from it), you may centralize your -exception handling code in \helpref{ProcessEvent}{wxevthandlerprocessevent} -method of this class. If this is impractical, you may also consider overriding -the \helpref{wxApp::HandleEvent()}{wxapphandleevent} which allows you to handle -all the exceptions thrown by any event handler. - - -\subsection{Technicalities}\label{exceptionstechnicalities} - -To use any kind of exception support in the library you need to build it with -\texttt{wxUSE\_EXCEPTIONS} set to $1$. This should be the case by default but -if it isn't, you should edit the \texttt{include/wx/msw/setup.h} file under -Windows or run \texttt{configure} with \texttt{--enable-exceptions} argument -under Unix. - -On the other hand, if you do \emph{not} plan to use exceptions, setting this -flag to $0$ or using \texttt{--disable-exceptions} could result in a leaner and -slightly faster library. - -As for any other library feature, there is a \helpref{sample}{sampleexcept} -showing how to use it. Please look at its sources for further information. - - diff --git a/docs/latex/wx/texhelp.sty b/docs/latex/wx/texhelp.sty deleted file mode 100644 index 784d53ee67..0000000000 --- a/docs/latex/wx/texhelp.sty +++ /dev/null @@ -1,309 +0,0 @@ -% LaTeX style file -% Name: texhelp.sty -% Author: Julian Smart -% -% Purpose -% ------- -% Style file to enable the simultaneous preparation of printed LaTeX and on-line -% hypertext manuals. -% Use in conjunction with Tex2RTF (see Tex2RTF documentation). -% -% Note that if a non-ASCII character starts a newline and there should be a space -% between the last word on the previous line and the first word on this line, -% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored -% in all other formats. -% -% Julian Smart -% Artificial Intelligence Applications Institute -% -% -% ============== C++/CLIPS Documentation Facilities ============== -% -% Each class definition should be typeset with e.g. -% -% \section{\class{Name}: Parent} -% -% followed by a description of the class. -% Each member should follow: -% -% \membersection{wxName::Member} -% -% with a description of what this member does. -% Then, one (or more if overloaded) member (function) in detail: -% -% \func{return type}{name}{args} -% or -% \member{type}{name} -% -% where args is a list of \param{type}{name}, ... - -% Function, e.g. -% e.g. to typeset -% -% void DoIt(char *string); -% -% write: -% -% \func{void}{DoIt}{\param{char *}{string}} -% - -\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} {\bf #2}\index{#2}}(#3)} - -% For function/type definition where the name is a pointer, -% e.g. to typeset -% -% typedef void (*wxFunction)(wxObject&) -% -% write: -% -% \pfunc{typedef void}{wxFunction}{param{wxObject&}} - -\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} ({\bf *#2})\index{#2}}(#3)} - -% Use an ordinary \section command for class name definitions. - -% This is used for a member, such as wxBitmap: GetDepth -\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}} - -% CLIPS function -\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\bf #1} ({\bf #2}\index{#2}}#3)} - -\newcommand{\clipssection}[1]{\chapter{#1}} - -% This is used for a CLIPS function name -\newcommand{\functionsection}[1]{\subsection*{#1}} - -% Member: a type and a name -\newcommand{\member}[2]{{\bf #1 \it #2}} - -% C++ Parameter: a type and a name (no intervening space) -\newcommand{\param}[2]{{\it #1}{\bf #2}} - -% C++ argument in the documentation text -\newcommand{\arg}[1]{{\it #1}} - -% true and false keywords: -\newcommand{\true}{{\tt true}} -\newcommand{\false}{{\tt false}} - -% CLIPS Parameter: a type and a name (one intervening space) -\newcommand{\cparam}[2]{{\bf #1} {\it #2}} - -% Class: puts in index -\newcommand{\class}[1]{#1\index{#1}} - -%\newcommand{\docparam}[2]{\parskip=0pt {\it #1}\par\parskip=10pt\begin{indented}{1cm}{#2}\end{indented}} - -% Void type -\newcommand{\void}{{\it void}} - -% Typeset destructor -\newcommand{\destruct}[1]{{$\sim$}#1} - -% Typeset insert/extract operators -\newcommand{\cinsert}{$<<$} -\newcommand{\cextract}{$>>$} - -% pythonnote: A note about the wxpython interface. -%\newcommand{\pythonnote}[1]{{\bf wxPython note: }#1} -\newcommand{\pythonnote}[1]{{}} -\newcommand{\perlnote}[1]{{}} - -% =================== Hypertext facilities =================== -% -% To insert hyperlinks (or references, in Latex), \label the sections -% or membersections \label{ref-label} immediately after the section, on the same line, -% and use \helpref{text-to-show}{ref-label} to make a reference. -% - -% Type text with section reference -\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) } - -% Type text with URL in verbatim mode -\newcommand{\urlref}[2]{#1 (\verb$#2$)} - -% Don't typeset section number in LaTeX -\newcommand{\helprefn}[2]{{\it #1}} - -% Like helpref, but popup text in WinHelp instead of hyperlinked -\newcommand{\popref}[2]{{\it #1}} - -% Like footnote, but popup text. -\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}} - -% =================== On-line help specific macros =================== -% - -% Global document font size/family, help only. -\newcommand{\helpfontsize}[1]{} -\newcommand{\helpfontfamily}[1]{} - -% Ignore in all on-line help -\newcommand{\helpignore}[1]{#1} -% Only print in all on-line help -\newcommand{\helponly}[1]{} - -% Ignore in LaTeX -\newcommand{\latexignore}[1]{} -% Only print in LaTeX -\newcommand{\latexonly}[1]{#1} - -% Ignore in linear RTF -\newcommand{\rtfignore}[1]{#1} -% Only print in linear RTF -\newcommand{\rtfonly}[1]{} - -% Ignore in WinHelp RTF -\newcommand{\winhelpignore}[1]{#1} -% Only print in WinHelp RTF -\newcommand{\winhelponly}[1]{} - -% Ignore in wxHelp -\newcommand{\xlpignore}[1]{#1} -% Only print in wxHelp -\newcommand{\xlponly}[1]{} - -% Ignore in HTML -\newcommand{\htmlignore}[1]{#1} -% Only print in HTML -\newcommand{\htmlonly}[1]{} - -% Input a file only for help system (binder thickness is not a limitation -% in help systems!) -\newcommand{\helpinput}[1]{} - -\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex - -% =================== Miscellaneous macros =================== -% -% Headings consistent with generated ones -\newcommand{\myheading}[1]{\vspace*{25pt} -\begin{flushleft} -{\LARGE \bf #1} -\end{flushleft} -\vskip 20pt -} - -% Heading with entry in contents page. -\newcommand{\chapterheading}[1]{\myheading{#1} -\addcontentsline{toc}{chapter}{#1}} - -\newcommand{\sectionheading}[1]{\myheading{#1} -\addcontentsline{toc}{section}{#1}} - -% Glossary environment -\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}} - -% Glossary entry -\newcommand{\gloss}[1]{\item[#1]\index{#1}} - -% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox. -\newcommand{\image}[2]{\psboxto(#1){#2}} - -% Image, left aligned (HTML) -\newcommand{\imager}[2]{\psboxto(#1){#2}} - -% Image, right aligned (HTML) -\newcommand{\imagel}[2]{\psboxto(#1){#2}} - -% Imagemap: principally for HTML only. In Latex, -% acts like \image. -\newcommand{\imagemap}[3]{\psboxto(#1){#2}} - -% Headers and footers -% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setheader}[6]{ -\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}} -\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}} -\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}} -} - -% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setfooter}[6]{ -\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}} -\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}} -\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}} -} - -% Needed for telling RTF where margin paragraph should go -% in mirrored margins mode. -\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}} -\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}} - -% Environment for two-column table popular in WinHelp and manuals. -\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}} -\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}} -\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}} - -\twocolwidtha{3cm} -\twocolwidthb{8.5cm} -\twocolspacing{2} - -\newcommand{\twocolitem}[2]{#1 & #2\\} -\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline} - -\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}% -{\end{tabular}\renewcommand{\arraystretch}{1}} - -% Specifying table rows for RTF compatibility -\newcommand{\row}[1]{#1\\} - -% Use for the last ruled row for correct RTF generation. -\newcommand{\ruledrow}[1]{#1\\\hline} - -% Indentation environment. Arg1 is left margin size -\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}% -{\end{list}} - -% Framed box of text, normal formatting. -\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}} -% Double-framed box of text. -\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}} - -% WITHDRAWN -- can't do in RTF, easily. -% Framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}} -% Double-framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}} - -% toocomplex environment: simply prints the argument in LaTeX, -% comes out verbatim in all generated formats. -\newenvironment{toocomplex}{}{} - -% Colour: dummy commands since LaTeX doesn't support colour. -% \definecolour{name}{red}{blue}{green} -% \fcol{name}{text} ; Foreground -% \bcol{name}{text} ; Background -\newcommand{\definecolour}[4]{} -\newcommand{\definecolor}[4]{} -\newcommand{\fcol}[2]{#2} -\newcommand{\bcol}[2]{#2} -\newcommand{\sethotspotcolour}[1]{} -\newcommand{\sethotspotunderline}[1]{} -\newcommand{\settransparency}[1]{} -\newcommand{\backslashraw}[0]{} -\newcommand{\lbraceraw}[0]{} -\newcommand{\rbraceraw}[0]{} -\newcommand{\registered}[0]{(r)} -\newcommand{\background}[1]{} -\newcommand{\textcolour}[1]{} -\newcommand{\overview}[2]{See \helpref{#1}{#2}.} -\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[] -#2% -\end{list}} -\newcommand{\wxheading}[1]{{\bf #1}} -\newcommand{\const}[0]{{\bf const}} -\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}} - -\addtolength{\textwidth}{1in} -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\topmargin}{-0.5in} -\addtolength{\textheight}{1in} -\sloppy - diff --git a/docs/latex/wx/texhelp2e.sty b/docs/latex/wx/texhelp2e.sty deleted file mode 100644 index 275f517b30..0000000000 --- a/docs/latex/wx/texhelp2e.sty +++ /dev/null @@ -1,373 +0,0 @@ -% LaTeX style file -% Name: texhelp.sty -% Author: Julian Smart -% -% Purpose -% ------- -% Style file to enable the simultaneous preparation of printed LaTeX and on-line -% hypertext manuals. -% Use in conjunction with Tex2RTF (see Tex2RTF documentation). -% -% Note that if a non-ASCII character starts a newline and there should be a space -% between the last word on the previous line and the first word on this line, -% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored -% in all other formats. -% -% Julian Smart -% Artificial Intelligence Applications Institute -% -% -% ============== C++/CLIPS Documentation Facilities ============== -% -% Each class definition should be typeset with e.g. -% -% \section{\class{Name}: Parent} -% -% followed by a description of the class. -% Each member should follow: -% -% \membersection{wxName::Member} -% -% with a description of what this member does. -% Then, one (or more if overloaded) member (function) in detail: -% -% \func{return type}{name}{args} -% or -% \member{type}{name} -% -% where args is a list of \param{type}{name}, ... - -% Function, e.g. -% e.g. to typeset -% -% void DoIt(char *string); -% -% write: -% -% \func{void}{DoIt}{\param{char *}{string}} -% - -\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} {\bf #2}\index{#2}}(#3)} - -% For function/type definition where the name is a pointer, -% e.g. to typeset -% -% typedef void (*wxFunction)(wxObject&) -% -% write: -% -% \pfunc{typedef void}{wxFunction}{param{wxObject&}} - -\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\it #1} ({\bf *#2})\index{#2}}(#3)} - -% Use an ordinary \section command for class name definitions. - -% This is used for a member, such as wxBitmap: GetDepth -\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}} - -% CLIPS function -\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm -{{\bf #1} ({\bf #2}\index{#2}}#3)} - -\newcommand{\clipssection}[1]{\chapter{#1}} - -% This is used for a CLIPS function name -\newcommand{\functionsection}[1]{\subsection*{#1}} - -% Member: a type and a name -\newcommand{\member}[2]{{\bf #1 \it #2}} - -% C++ Parameter: a type and a name (no intervening space) -\newcommand{\param}[2]{{\it #1}{\bf #2}} - -% CLIPS Parameter: a type and a name (one intervening space) -\newcommand{\cparam}[2]{{\bf #1} {\it #2}} - -% Class: puts in index -\newcommand{\class}[1]{#1\index{#1}} - -%\newcommand{\docparam}[2]{\parskip=0pt {\it #1}\par\parskip=10pt\begin{indented}{1cm}{#2}\end{indented}} - -% Void type -\newcommand{\void}{{\it void}} - -% Typeset destructor -\newcommand{\destruct}[1]{{$\sim$}#1} - -% Typeset insert/extract operators -\newcommand{\cinsert}{$<<$} -\newcommand{\cextract}{$>>$} - -% pythonnote: A note about the wxpython interface. -%\newcommand{\pythonnote}[1]{{\bf wxPython note: }#1} -\newcommand{\pythonnote}[1]{{}} -\newcommand{\perlnote}[1]{{}} - -% =================== Hypertext facilities =================== -% -% To insert hyperlinks (or references, in Latex), \label the sections -% or membersections \label{ref-label} immediately after the section, on the same line, -% and use \helpref{text-to-show}{ref-label} to make a reference. -% - -% Type text with section reference -\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) } - -% Type text with URL in verbatim mode -% \newcommand{\urlref}[2]{#1 (\verb$#2$)} -\newcommand{\urlref}[2]{\href{#1}{#2}} - -% Don't typeset section number in LaTeX -\newcommand{\helprefn}[2]{{\it #1}} - -% Like helpref, but popup text in WinHelp instead of hyperlinked -\newcommand{\popref}[2]{{\it #1}} - -% Like footnote, but popup text. -\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}} - -% =================== On-line help specific macros =================== -% - -% Global document font size/family, help only. -\newcommand{\helpfontsize}[1]{} -\newcommand{\helpfontfamily}[1]{} - -% Ignore in all on-line help -\newcommand{\helpignore}[1]{#1} -% Only print in all on-line help -\newcommand{\helponly}[1]{} - -% Ignore in LaTeX -\newcommand{\latexignore}[1]{} -% Only print in LaTeX -\newcommand{\latexonly}[1]{#1} - -% Ignore in linear RTF -\newcommand{\rtfignore}[1]{#1} -% Only print in linear RTF -\newcommand{\rtfonly}[1]{} - -% Ignore in WinHelp RTF -\newcommand{\winhelpignore}[1]{#1} -% Only print in WinHelp RTF -\newcommand{\winhelponly}[1]{} - -% Ignore in wxHelp -\newcommand{\xlpignore}[1]{#1} -% Only print in wxHelp -\newcommand{\xlponly}[1]{} - -% Ignore in HTML -\newcommand{\htmlignore}[1]{#1} -% Only print in HTML -\newcommand{\htmlonly}[1]{} - -% Input a file only for help system (binder thickness is not a limitation -% in help systems!) -\newcommand{\helpinput}[1]{} - -\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex - -% =================== Miscellaneous macros =================== -% -% Headings consistent with generated ones -\newcommand{\myheading}[1]{\vspace*{25pt} -\begin{flushleft} -{\LARGE \bf #1} -\end{flushleft} -\vskip 20pt -} - -% Heading with entry in contents page. -\newcommand{\chapterheading}[1]{\myheading{#1} -\addcontentsline{toc}{chapter}{#1}} - -\newcommand{\sectionheading}[1]{\myheading{#1} -\addcontentsline{toc}{section}{#1}} - -% Glossary environment -\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}} - -% Glossary entry -\newcommand{\gloss}[1]{\item[#1]\index{#1}} - -% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox. -\newcommand{\image}[2]{\psboxto(#1){#2}} - -% Image, left aligned (HTML) -\newcommand{\imager}[2]{\psboxto(#1){#2}} - -% Image, right aligned (HTML) -\newcommand{\imagel}[2]{\psboxto(#1){#2}} - -% Imagemap: principally for HTML only. In Latex, -% acts like \image. -\newcommand{\imagemap}[3]{\psboxto(#1){#2}} - -% Headers and footers -% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setheader}[6]{ -\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}} -\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}} -\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}} -} - -% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight} -% {OddPageLeft}{OddPageCentre}{OddPageRight} -\newcommand{\setfooter}[6]{ -\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}} -\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}} -\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}} -} - -% Needed for telling RTF where margin paragraph should go -% in mirrored margins mode. -\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}} -\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}} - -% Environment for two-column table popular in WinHelp and manuals. -\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}} -\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}} -\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}} - -\twocolwidtha{3cm} -\twocolwidthb{8.5cm} -\twocolspacing{2} - -\newcommand{\twocolitem}[2]{#1 & #2\\} -\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline} - -\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}% -{\end{tabular}\renewcommand{\arraystretch}{1}} - -% Specifying table rows for RTF compatibility -\newcommand{\row}[1]{#1\\} - -% Use for the last ruled row for correct RTF generation. -\newcommand{\ruledrow}[1]{#1\\\hline} - -% Indentation environment. Arg1 is left margin size -\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}% -{\end{list}} - -% Framed box of text, normal formatting. -\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}} -% Double-framed box of text. -\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}} - -% WITHDRAWN -- can't do in RTF, easily. -% Framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}} -% Double-framed box of text, horizontally centred. Ragged right within box. -% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}} - -% toocomplex environment: simply prints the argument in LaTeX, -% comes out verbatim in all generated formats. -\newenvironment{toocomplex}{}{} - -% Colour: dummy commands since LaTeX doesn't support colour. -% \definecolour{name}{red}{blue}{green} -% \fcol{name}{text} ; Foreground -% \bcol{name}{text} ; Background -% \newcommand{\definecolour}[4]{} -% \newcommand{\definecolor}[4]{} -% Trickery needed to change from 0--255 to 0--1 ... - -\def\scalecolornum#1{% - \ifcase#1 0\or - 0.004\or 0.008\or 0.012\or 0.016\or 0.020\or - 0.024\or 0.028\or 0.032\or 0.036\or 0.040\or - 0.044\or 0.048\or 0.052\or 0.056\or 0.060\or - 0.064\or 0.068\or 0.072\or 0.076\or 0.080\or - 0.084\or 0.088\or 0.092\or 0.096\or 0.100\or - 0.104\or 0.108\or 0.112\or 0.116\or 0.120\or - 0.124\or 0.128\or 0.132\or 0.136\or 0.140\or - 0.144\or 0.148\or 0.152\or 0.156\or 0.160\or - 0.164\or 0.168\or 0.172\or 0.176\or 0.180\or - 0.184\or 0.188\or 0.192\or 0.196\or 0.200\or - 0.204\or 0.208\or 0.212\or 0.216\or 0.220\or - 0.224\or 0.228\or 0.232\or 0.236\or 0.240\or - 0.244\or 0.248\or 0.252\or 0.256\or 0.260\or - 0.264\or 0.268\or 0.272\or 0.276\or 0.280\or - 0.284\or 0.288\or 0.292\or 0.296\or 0.300\or - 0.304\or 0.308\or 0.312\or 0.316\or 0.320\or - 0.324\or 0.328\or 0.332\or 0.336\or 0.340\or - 0.344\or 0.348\or 0.352\or 0.356\or 0.360\or - 0.364\or 0.368\or 0.372\or 0.376\or 0.380\or - 0.384\or 0.388\or 0.392\or 0.396\or 0.400\or - 0.404\or 0.408\or 0.412\or 0.416\or 0.420\or - 0.424\or 0.428\or 0.432\or 0.436\or 0.440\or - 0.444\or 0.448\or 0.452\or 0.456\or 0.460\or - 0.464\or 0.468\or 0.472\or 0.476\or 0.480\or - 0.484\or 0.488\or 0.492\or 0.496\or 0.500\or - 0.504\or 0.508\or 0.512\or 0.516\or 0.520\or - 0.524\or 0.528\or 0.532\or 0.536\or 0.540\or - 0.544\or 0.548\or 0.552\or 0.556\or 0.560\or - 0.564\or 0.568\or 0.572\or 0.576\or 0.580\or - 0.584\or 0.588\or 0.592\or 0.596\or 0.600\or - 0.604\or 0.608\or 0.612\or 0.616\or 0.620\or - 0.624\or 0.628\or 0.632\or 0.636\or 0.640\or - 0.644\or 0.648\or 0.652\or 0.656\or 0.660\or - 0.664\or 0.668\or 0.672\or 0.676\or 0.680\or - 0.684\or 0.688\or 0.692\or 0.696\or 0.700\or - 0.704\or 0.708\or 0.712\or 0.716\or 0.720\or - 0.724\or 0.728\or 0.732\or 0.736\or 0.740\or - 0.744\or 0.748\or 0.752\or 0.756\or 0.760\or - 0.764\or 0.768\or 0.772\or 0.776\or 0.780\or - 0.784\or 0.788\or 0.792\or 0.796\or 0.800\or - 0.804\or 0.808\or 0.812\or 0.816\or 0.820\or - 0.824\or 0.828\or 0.832\or 0.836\or 0.840\or - 0.844\or 0.848\or 0.852\or 0.856\or 0.860\or - 0.864\or 0.868\or 0.872\or 0.876\or 0.880\or - 0.884\or 0.888\or 0.892\or 0.896\or 0.900\or - 0.904\or 0.908\or 0.912\or 0.916\or 0.920\or - 0.924\or 0.928\or 0.932\or 0.936\or 0.940\or - 0.944\or 0.948\or 0.952\or 0.956\or 0.960\or - 0.964\or 0.968\or 0.972\or 0.976\or 0.980\or - 0.984\or 0.988\or 0.992\or 0.996\or 1\else\fi -} - -\let\originaldefinecolor\definecolor -\def\definecolor#1#2#3#4{% - \originaldefinecolor{#1}{rgb}{% - \scalecolornum{#2},% - \scalecolornum{#3},% - \scalecolornum{#4}}} -\let\definecolour\definecolor - -% \newcommand{\fcol}[2]{#2} -\let\fcol\textcolor - -% \newcommand{\bcol}[2]{#2} -\let\bcol\colorbox - -\newcommand{\sethotspotcolour}[1]{} -\newcommand{\sethotspotunderline}[1]{} -\newcommand{\settransparency}[1]{} -\newcommand{\backslashraw}[0]{} -\newcommand{\lbraceraw}[0]{} -\newcommand{\rbraceraw}[0]{} -\newcommand{\registered}[0]{(r)} -\newcommand{\background}[1]{} -% \newcommand{\textcolour}[1]{} -\let\textcolour\color - -\newcommand{\overview}[2]{See \helpref{#1}{#2}.} -\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[] -#2% -\end{list}} -\newcommand{\wxheading}[1]{{\bf #1}} -\newcommand{\const}[0]{{\bf const}} -\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}} - -\addtolength{\textwidth}{1in} -\addtolength{\oddsidemargin}{-0.5in} -\addtolength{\topmargin}{-0.5in} -\addtolength{\textheight}{1in} -\sloppy - diff --git a/docs/latex/wx/texpr.tex b/docs/latex/wx/texpr.tex deleted file mode 100644 index 739d5facf4..0000000000 --- a/docs/latex/wx/texpr.tex +++ /dev/null @@ -1,203 +0,0 @@ -\section{wxExpr overview}\label{exproverview} - -wxExpr is a C++ class reading and writing a subset of Prolog-like syntax, -supporting objects attribute/value pairs. - -wxExpr can be used to develop programs with readable and -robust data files. Within wxWidgets itself, it is used to parse -the {\tt .wxr} dialog resource files. - -{\bf History of wxExpr} - -During the development of the tool Hardy within the AIAI, a need arose -for a data file format for C++ that was easy for both humans and -programs to read, was robust in the face of fast-moving software -development, and that provided some compatibility with AI languages -such as Prolog and LISP. - -The result was the wxExpr library (formerly called PrologIO), which is able to read and write a -Prolog-like attribute-value syntax, and is additionally capable of -writing LISP syntax for no extra programming effort. The advantages of -such a library are as follows: - -\begin{enumerate}\itemsep=0pt -\item The data files are readable by humans; -\item I/O routines are easier to write and debug compared with using binary files; -\item the files are robust: unrecognised data will just be ignored by the application -\item Inbuilt hashing gives a random access capability, useful for when linking -up C++ objects as data is read in; -\item Prolog and LISP programs can load the files using a single command. -\end{enumerate} - -The library was extended to use the ability to read and write -Prolog-like structures for remote procedure call (RPC) communication. -The next two sections outline the two main ways the library can be used. - -\subsection{wxExpr for data file manipulation}\itemsep=0pt - -The fact that the output is in Prolog syntax is irrelevant for most -programmers, who just need a reasonable I/O facility. Typical output -looks like this: - -\begin{verbatim} -diagram_definition(type = "Spirit Belief Network"). - -node_definition(type = "Model", - image_type = "Diamond", - attribute_for_label = "name", - attribute_for_status_line = "label", - colour = "CYAN", - default_width = 120, - default_height = 80, - text_size = 10, - can_resize = 1, - has_hypertext_item = 1, - attributes = ["name", "combining_function", "level_of_belief"]). - -arc_definition(type = "Potentially Confirming", - image_type = "Spline", - arrow_type = "End", - line_style = "Solid", - width = 1, - segmentable = 0, - attribute_for_label = "label", - attribute_for_status_line = "label", - colour = "BLACK", - text_size = 10, - has_hypertext_item = 1, - can_connect_to = ["Evidence", "Cluster", "Model", "Evidence", "Evidence", "Cluster"], - can_connect_from = ["Data", "Evidence", "Cluster", "Evidence", "Data", "Cluster"]). -\end{verbatim} - -This is substantially easier to read and debug than a series of numbers and -strings. - -Note the object-oriented style: a file comprises a series of {\it clauses}. -Each clause is an object with a {\it functor}\/ or object name, followed -by a list of attribute-value pairs enclosed in parentheses, and finished -with a full stop. Each attribute value may be a string, a word (no quotes), -an integer, a real number, or a list with potentially recursive elements. - -The way that the facility is used by an application to read in a file is -as follows: - -\begin{enumerate}\itemsep=0pt -\item The application creates a wxExprDatabase instance. -\item The application tells the database to read in the entire file. -\item The application searches the database for objects it requires, -decomposing the objects using the wxExpr API. The database may be hashed, -allowing rapid linking-up of application data. -\item The application deletes or clears the wxExprDatabase. -\end{enumerate} - -Writing a file is just as easy: - -\begin{enumerate}\itemsep=0pt -\item The application creates a wxExprDatabase instance. -\item The application adds objects to the database using the API. -\item The application tells the database to write out the entire database, -in Prolog or LISP notation. -\item The application deletes or clears the wxExprDatabase. -\end{enumerate} - -To use the library, include "wxexpr.h". - -\subsection{wxExpr compilation} - -For UNIX compilation, ensure that YACC and LEX or FLEX are on your system. Check that -the makefile uses the correct programs: a common error is to compile -y\_tab.c with a C++ compiler. Edit the CCLEX variable in make.env -to specify a C compiler. Also, do not attempt to compile lex\_yy.c -since it is included by y\_tab.c. - -For DOS compilation, the simplest thing is to copy dosyacc.c to y\_tab.c, and doslex.c to -lex\_yy.c. It is y\_tab.c that must be compiled (lex\_yy.c is included by -y\_tab.c) so if adding source files to a project file, ONLY add y\_tab.c -plus the .cc files. If you wish to alter the parser, you will need YACC -and FLEX on DOS. - -The DOS tools are available at the AIAI ftp site, in the tools directory. Note that -for FLEX installation, you need to copy flex.skl into the directory -c:/lib. - -If you are using Borland C++ and wish to regenerate lex\_yy.c and y\_tab.c -you need to generate lex\_yy.c with FLEX and then comment out the `malloc' and `free' -prototypes in lex\_yy.c. It will compile with lots of warnings. If you -get an undefined \_PROIO\_YYWRAP symbol when you link, you need to remove -USE\_DEFINE from the makefile and recompile. This is because the parser.y -file has a choice of defining this symbol as a function or as a define, -depending on what the version of FLEX expects. See the bottom of -parser.y, and if necessary edit it to make it compile in the opposite -way to the current compilation. - -%To test out wxExpr compile the test program (samples/wxexpr/wxexpr.exe), -%and try loading test.exp into the test -%program. Then save it to another file. If the second is identical to the -%first, wxExpr is in a working state. - -\subsection{Bugs} - -These are the known bugs: - -\begin{enumerate}\itemsep=0pt -\item Functors are permissible only in the main clause (object). -Therefore nesting of structures must be done using lists, not predicates -as in Prolog. -\item There is a limit to the size of strings read in (about 5000 bytes). -\end{enumerate} - -\subsection{Using wxExpr} - -This section is a brief introduction to using the wxExpr package. - -First, some terminology. A {\it wxExprDatabase}\/ is a list of {\it clauses}, -each of which represents an object or record which needs to be saved to a file. -A clause has a {\it functor}\/ (name), and a list of attributes, each of which -has a value. Attributes may take the following types of value: string, word, -integer, floating point number, and list. A list can itself contain any -type, allowing for nested data structures. - -Consider the following code. - -\begin{verbatim} -wxExprDatabase db; - -wxExpr *my_clause = new wxExpr("object"); -my_clause->AddAttributeValue("id", (long)1); -my_clause->AddAttributeValueString("name", "Julian Smart"); -db.Append(my_clause); - -ofstream file("my_file"); -db.Write(file); -\end{verbatim} - -This creates a database, constructs a clause, adds it to the database, -and writes the whole database to a file. The file it produces looks like -this: - -\begin{verbatim} -object(id = 1, - name = "Julian Smart"). -\end{verbatim} - -To read the database back in, the following will work: - -\begin{verbatim} -wxExprDatabase db; -db.Read("my_file"); - -db.BeginFind(); - -wxExpr *my_clause = db.FindClauseByFunctor("object"); -int id = 0; -wxString name = "None found"; - -my_clause->GetAttributeValue("id", id); -my_clause->GetAttributeValue("name", name); - -cout << "Id is " << id << ", name is " << name << "\n"; -\end{verbatim} - -Note the setting of defaults before attempting to retrieve attribute values, -since they may not be found. - diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex deleted file mode 100644 index 083659f1b6..0000000000 --- a/docs/latex/wx/text.tex +++ /dev/null @@ -1,1153 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTextCtrl}}\label{wxtextctrl} - -A text control allows text to be displayed and edited. It may be -single line or multi-line. - -\wxheading{Derived from} - -streambuf\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/textctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the event wxEVT\_COMMAND\_TEXT\_ENTER (otherwise pressing Enter key -is either processed internally by the control or used for navigation between -dialog controls).} -\twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receive -wxEVT\_CHAR events for TAB pressed - normally, TAB is used for passing to the -next control in a dialog instead. For the control created with this style, -you can still use Ctrl-Enter to pass to the next control from the keyboard.} -\twocolitem{\windowstyle{wxTE\_MULTILINE}}{The text control allows multiple lines.} -\twocolitem{\windowstyle{wxTE\_PASSWORD}}{The text will be echoed as asterisks.} -\twocolitem{\windowstyle{wxTE\_READONLY}}{The text will not be user-editable.} -\twocolitem{\windowstyle{wxTE\_RICH}}{Use rich text control under Win32, this -allows to have more than 64KB of text in the control even under Win9x. This -style is ignored under other platforms.} -\twocolitem{\windowstyle{wxTE\_RICH2}}{Use rich text control version 2.0 or 3.0 -under Win32, this style is ignored under other platforms} -\twocolitem{\windowstyle{wxTE\_AUTO\_URL}}{Highlight the URLs and generate the -wxTextUrlEvents when mouse events occur over them. This style is only supported -for wxTE\_RICH Win32 and multi-line wxGTK2 text controls.} -\twocolitem{\windowstyle{wxTE\_NOHIDESEL}}{By default, the Windows text control -doesn't show the selection when it doesn't have focus - use this style to force -it to always show it. It doesn't do anything under other platforms.} -\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created and -used, so that text won't be wrapped. No effect under wxGTK1.} -\twocolitem{\windowstyle{wxTE\_NO\_VSCROLL}}{For multiline controls only: -vertical scrollbar will never be created. This limits the amount of text which -can be entered into the control to what can be displayed in it under MSW but -not under GTK2. Currently not implemented for the other platforms.} -\twocolitem{\windowstyle{wxTE\_LEFT}}{The text in the control will be left-justified (default).} -\twocolitem{\windowstyle{wxTE\_CENTRE}}{The text in the control will be centered (currently wxMSW and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_RIGHT}}{The text in the control will be right-justified (currently wxMSW and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_DONTWRAP}}{Same as {\tt wxHSCROLL} style: don't wrap at all, show horizontal scrollbar instead.} -\twocolitem{\windowstyle{wxTE\_CHARWRAP}}{Wrap the lines too long to be shown entirely at any position (wxUniv and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_WORDWRAP}}{Wrap the lines too long to be shown entirely at word boundaries (wxUniv and wxGTK2 only).} -\twocolitem{\windowstyle{wxTE\_BESTWRAP}}{Wrap the lines at word boundaries or at any other character if there are words longer than the window width (this is the default).} -\twocolitem{\windowstyle{wxTE\_CAPITALIZE}}{On PocketPC and Smartphone, causes the first letter to be capitalized.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles} and \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlctor}. - -Note that alignment styles (\windowstyle{wxTE\_LEFT}, -\windowstyle{wxTE\_CENTRE} and \windowstyle{wxTE\_RIGHT}) can be changed -dynamically after control creation on wxMSW and wxGTK. -\windowstyle{wxTE\_READONLY}, \windowstyle{wxTE\_PASSWORD} and wrapping styles -can be dynamically changed under wxGTK but not wxMSW. The other styles can be -only set during control creation. - - -\wxheading{wxTextCtrl text format} - -The multiline text controls always store the text as a sequence of lines -separated by {\tt $\backslash$n} characters, i.e. in the Unix text format even -on non-Unix platforms. This allows the user code to ignore the differences -between the platforms but at a price: the indices in the control such as those -returned by \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} or -\helpref{GetSelection}{wxtextctrlgetselection} can {\bf not} be used as -indices into the string returned by \helpref{GetValue}{wxtextctrlgetvalue} as -they're going to be slightly off for platforms using -{\tt $\backslash$r$\backslash$n} as separator (as Windows does), for example. - -Instead, if you need to obtain a substring between the $2$ indices obtained -from the control with the help of the functions mentioned above, you should -use \helpref{GetRange}{wxtextctrlgetrange}. And the indices themselves can -only be passed to other methods, for example -\helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint} or -\helpref{SetSelection}{wxtextctrlsetselection}. - -To summarize: never use the indices returned by (multiline) wxTextCtrl as -indices into the string it contains, but only as arguments to be passed back -to the other wxTextCtrl methods. - -\wxheading{wxTextCtrl styles} - -Multi-line text controls support the styles, i.e. provide a possibility to set -colours and font for individual characters in it (note that under Windows {\tt -wxTE\_RICH} style is required for style support). To use the styles you can -either call \helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle} before -inserting the text or call \helpref{SetStyle}{wxtextctrlsetstyle} later to -change the style of the text already in the control (the first solution is -much more efficient). - -In either case, if the style doesn't specify some of the attributes (for -example you only want to set the text colour but without changing the font nor -the text background), the values of the default style will be used for them. -If there is no default style, the attributes of the text control itself are -used. - -So the following code correctly describes what it does: the second call -to \helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle} doesn't change the -text foreground colour (which stays red) while the last one doesn't change the -background colour (which stays grey): - -{\small% -\begin{verbatim} - text->SetDefaultStyle(wxTextAttr(*wxRED)); - text->AppendText("Red text\n"); - text->SetDefaultStyle(wxTextAttr(wxNullColour, *wxLIGHT_GREY)); - text->AppendText("Red on grey text\n"); - text->SetDefaultStyle(wxTextAttr(*wxBLUE); - text->AppendText("Blue on grey text\n"); -\end{verbatim} -}% - -\wxheading{wxTextCtrl and C++ streams} - -This class multiply-inherits from {\bf streambuf} where compilers allow, -allowing code such as the following: - -{\small% -\begin{verbatim} - wxTextCtrl *control = new wxTextCtrl(...); - - ostream stream(control) - - stream << 123.456 << " some text\n"; - stream.flush(); -\end{verbatim} -}% - -If your compiler does not support derivation from {\bf streambuf} and gives a -compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the -wxTextCtrl header file. - -Note that independently of this setting you can always use wxTextCtrl itself -in a stream-like manner: - -{\small% -\begin{verbatim} - wxTextCtrl *control = new wxTextCtrl(...); - - *control << 123.456 << " some text\n"; -\end{verbatim} -}% - -always works. However the possibility to create an ostream associated with -wxTextCtrl may be useful if you need to redirect the output of a function -taking an ostream as parameter to a text control. - -Another commonly requested need is to redirect {\bf std::cout} to the text -control. This could be done in the following way: - -{\small% -\begin{verbatim} - #include <iostream> - - wxTextCtrl *control = new wxTextCtrl(...); - - std::streambuf *sbOld = std::cout.rdbuf(); - std::cout.rdbuf(control); - - // use cout as usual, the output appears in the text control - ... - - std::cout.rdbuf(sbOld); -\end{verbatim} -}% - -But wxWidgets provides a convenient class to make it even simpler so instead -you may just do - -{\small% -\begin{verbatim} - #include <iostream> - - wxTextCtrl *control = new wxTextCtrl(...); - - wxStreamToTextRedirector redirect(control); - - // all output to cout goes into the text control until the exit from current - // scope -\end{verbatim} -}% - -See \helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} for more -details. - -\wxheading{Constants} - -The values below are the possible return codes of the -\helpref{HitTest}{wxtextctrlhittest} method: - -{\small -\begin{verbatim} -// the point asked is ... -enum wxTextCtrlHitTestResult -{ - wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented - wxTE_HT_BEFORE, // either to the left or upper - wxTE_HT_ON_TEXT, // directly on - wxTE_HT_BELOW, // below [the last line] - wxTE_HT_BEYOND // after [the end of line] -}; -// ... the character returned -\end{verbatim} -} - - -\wxheading{Event handling} - -The following commands are processed by default event handlers in wxTextCtrl: wxID\_CUT, wxID\_COPY, -wxID\_PASTE, wxID\_UNDO, wxID\_REDO. The associated UI update events are also processed -automatically, when the control has the focus. - -To process input from a text control, use these event handler macros to direct input to member -functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument. - -\twocolwidtha{7cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event, -generated when the text changes. Notice that this event will be sent -when the text controls contents changes - whether this is due to user input or -comes from the program itself (for example, if SetValue() is called); see ChangeValue() for -a function which does not send this event.} -\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event, -generated when enter is pressed in a text control (which must have -wxTE\_PROCESS\_ENTER style for this event to be generated).} -\twocolitem{{\bf EVT\_TEXT\_URL(id, func)}}{A mouse event occurred over an URL -in the text control (wxMSW and wxGTK2 only)} -\twocolitem{{\bf EVT\_TEXT\_MAXLEN(id, func)}}{User tried to enter more text -into the control than the limit set by -\helpref{SetMaxLength}{wxtextctrlsetmaxlength}.} -\end{twocollist}% - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTextCtrl::wxTextCtrl}\label{wxtextctrlctor} - -\func{}{wxTextCtrl}{\void} - -Default constructor. - -\func{}{wxTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} - -Constructor, creating and showing a text control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Should not be NULL.} - -\docparam{id}{Control identifier. A value of -1 denotes a default value.} - -\docparam{value}{Default text value.} - -\docparam{pos}{Text control position.} - -\docparam{size}{Text control size.} - -\docparam{style}{Window style. See \helpref{wxTextCtrl}{wxtextctrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -The horizontal scrollbar ({\bf wxHSCROLL} style flag) will only be created -for multi-line text controls. -Without a horizontal scrollbar, text lines that don't fit in the control's -size will be wrapped (but no newline character is inserted). Single line -controls don't have a horizontal scrollbar, the text is automatically scrolled -so that the \helpref{insertion point}{wxtextctrlgetinsertionpoint} is always -visible. - -% VZ: this is no longer true -%Under Windows, if the {\bf wxTE\_MULTILINE} style is used, the window is implemented -%as a Windows rich text control with unlimited capacity. Otherwise, normal edit control limits -%apply. - -\wxheading{See also} - -\helpref{wxTextCtrl::Create}{wxtextctrlcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxTextCtrl::\destruct{wxTextCtrl}}\label{wxtextctrldtor} - -\func{}{\destruct{wxTextCtrl}}{\void} - -Destructor, destroying the text control. - - -\membersection{wxTextCtrl::AppendText}\label{wxtextctrlappendtext} - -\func{void}{AppendText}{\param{const wxString\& }{ text}} - -Appends the text to the end of the text control. - -\wxheading{Parameters} - -\docparam{text}{Text to write to the text control.} - -\wxheading{Remarks} - -After the text is appended, the insertion point will be at the end of the text control. If this behaviour is not desired, -the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} and \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}. - -\wxheading{See also} - -\helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext} - - -\membersection{wxTextCtrl::AutoComplete}\label{wxtextctrlautocomplete} - -\func{bool}{AutoComplete}{\param{const wxArrayString\& }{choices}} - -Call this function to enable auto-completion of the text typed in a single-line -text control using the given \arg{choices}. - -Notice that currently this function is only implemented in wxGTK2 and wxMSW -ports and does nothing under the other platforms. - -\newsince{2.9.0} - -\wxheading{Return value} - -\true if the auto-completion was enabled or \false if the operation failed, -typically because auto-completion is not supported by the current platform. - -\wxheading{See also} - -\helpref{AutoCompleteFileNames}{wxtextctrlautocompletefilenames} - - -\membersection{wxTextCtrl::AutoCompleteFileNames}\label{wxtextctrlautocompletefilenames} - -\func{bool}{AutoCompleteFileNames}{\void} - -Call this function to enable auto-completion of the text typed in a single-line -text control using all valid file system paths. - -Notice that currently this function is only implemented in wxGTK2 port and does -nothing under the other platforms. - -\newsince{2.9.0} - -\wxheading{Return value} - -\true if the auto-completion was enabled or \false if the operation failed, -typically because auto-completion is not supported by the current platform. - -\wxheading{See also} - -\helpref{AutoComplete}{wxtextctrlautocomplete} - - -\membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy} - -\func{virtual bool}{CanCopy}{\void} - -Returns {\tt true} if the selection can be copied to the clipboard. - - -\membersection{wxTextCtrl::CanCut}\label{wxtextctrlcancut} - -\func{virtual bool}{CanCut}{\void} - -Returns {\tt true} if the selection can be cut to the clipboard. - - -\membersection{wxTextCtrl::CanPaste}\label{wxtextctrlcanpaste} - -\func{virtual bool}{CanPaste}{\void} - -Returns {\tt true} if the contents of the clipboard can be pasted into the -text control. On some platforms (Motif, GTK) this is an approximation -and returns {\tt true} if the control is editable, {\tt false} otherwise. - - -\membersection{wxTextCtrl::CanRedo}\label{wxtextctrlcanredo} - -\func{virtual bool}{CanRedo}{\void} - -Returns {\tt true} if there is a redo facility available and the last operation -can be redone. - - -\membersection{wxTextCtrl::CanUndo}\label{wxtextctrlcanundo} - -\func{virtual bool}{CanUndo}{\void} - -Returns {\tt true} if there is an undo facility available and the last operation -can be undone. - - -\membersection{wxTextCtrl::Clear}\label{wxtextctrlclear} - -\func{virtual void}{Clear}{\void} - -Clears the text in the control. - -Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED} -event. - - -\membersection{wxTextCtrl::Copy}\label{wxtextctrlcopy} - -\func{virtual void}{Copy}{\void} - -Copies the selected text to the clipboard under Motif and MS Windows. - - -\membersection{wxTextCtrl::Create}\label{wxtextctrlcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp -\param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}} - -Creates the text control for two-step construction. Derived classes -should call or replace this function. See \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlctor}\rtfsp -for further details. - - -\membersection{wxTextCtrl::Cut}\label{wxtextctrlcut} - -\func{virtual void}{Cut}{\void} - -Copies the selected text to the clipboard and removes the selection. - - -\membersection{wxTextCtrl::DiscardEdits}\label{wxtextctrldiscardedits} - -\func{void}{DiscardEdits}{\void} - -Resets the internal `modified' flag as if the current edits had been saved. - - -\membersection{wxTextCtrl::EmulateKeyPress}\label{wxtextctrlemulatekeypress} - -\func{bool}{EmulateKeyPress}{\param{const wxKeyEvent\& }{event}} - -This functions inserts into the control the character which would have been -inserted if the given key event had occurred in the text control. The -{\it event} object should be the same as the one passed to {\tt EVT\_KEY\_DOWN} -handler previously by wxWidgets. - -Please note that this function doesn't currently work correctly for all keys -under any platform but MSW. - -\wxheading{Return value} - -{\tt true} if the event resulted in a change to the control, {\tt false} -otherwise. - - -\membersection{wxTextCtrl::GetDefaultStyle}\label{wxtextctrlgetdefaultstyle} - -\constfunc{const wxTextAttr\& }{GetDefaultStyle}{\void} - -Returns the style currently used for the new text. - -\wxheading{See also} - -\helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle} - - -\membersection{wxTextCtrl::GetInsertionPoint}\label{wxtextctrlgetinsertionpoint} - -\constfunc{virtual long}{GetInsertionPoint}{\void} - -Returns the insertion point. This is defined as the zero based index of the -character position to the right of the insertion point. For example, if -the insertion point is at the end of the text control, it is equal to -both \helpref{GetValue()}{wxtextctrlgetvalue}.Length() and -\helpref{GetLastPosition()}{wxtextctrlgetlastposition}. - -The following code snippet safely returns the character at the insertion -point or the zero character if the point is at the end of the control. - -{\small% -\begin{verbatim} - char GetCurrentChar(wxTextCtrl *tc) { - if (tc->GetInsertionPoint() == tc->GetLastPosition()) - return '\0'; - return tc->GetValue[tc->GetInsertionPoint()]; - } -\end{verbatim} -}% - - -\membersection{wxTextCtrl::GetLastPosition}\label{wxtextctrlgetlastposition} - -\constfunc{virtual wxTextPos}{GetLastPosition}{\void} - -Returns the zero based index of the last position in the text control, -which is equal to the number of characters in the control. - - -\membersection{wxTextCtrl::GetLineLength}\label{wxtextctrlgetlinelength} - -\constfunc{int}{GetLineLength}{\param{long}{ lineNo}} - -Gets the length of the specified line, not including any trailing newline -character(s). - -\wxheading{Parameters} - -\docparam{lineNo}{Line number (starting from zero).} - -\wxheading{Return value} - -The length of the line, or -1 if {\it lineNo} was invalid. - - -\membersection{wxTextCtrl::GetLineText}\label{wxtextctrlgetlinetext} - -\constfunc{wxString}{GetLineText}{\param{long}{ lineNo}} - -Returns the contents of a given line in the text control, not including -any trailing newline character(s). - -\wxheading{Parameters} - -\docparam{lineNo}{The line number, starting from zero.} - -\wxheading{Return value} - -The contents of the line. - - -\membersection{wxTextCtrl::GetNumberOfLines}\label{wxtextctrlgetnumberoflines} - -\constfunc{int}{GetNumberOfLines}{\void} - -Returns the number of lines in the text control buffer. - -\wxheading{Remarks} - -Note that even empty text controls have one line (where the insertion point -is), so GetNumberOfLines() never returns $0$. - -For wxGTK using GTK+ 1.2.x and earlier, the number of lines in a multi-line -text control is calculated by actually counting newline characters in the -buffer, i.e. this function returns the number of logical lines and doesn't -depend on whether any of them are wrapped. For all the other platforms, the -number of physical lines in the control is returned. - -Also note that you may wish to avoid using functions that work with line -numbers if you are working with controls that contain large amounts of text as -this function has $O(N)$ complexity for $N$ being the number of lines. - - -\membersection{wxTextCtrl::GetRange}\label{wxtextctrlgetrange} - -\constfunc{virtual wxString}{GetRange}{\param{long}{ from}, \param{long}{ to}} - -Returns the string containing the text starting in the positions {\it from} and -up to {\it to} in the control. The positions must have been returned by another -wxTextCtrl method. - -Please note that the positions in a multiline wxTextCtrl do {\bf not} -correspond to the indices in the string returned by -\helpref{GetValue}{wxtextctrlgetvalue} because of the different new line -representations ({\tt CR} or {\tt CR LF}) and so this method should be used to -obtain the correct results instead of extracting parts of the entire value. It -may also be more efficient, especially if the control contains a lot of data. - - -\membersection{wxTextCtrl::GetSelection}\label{wxtextctrlgetselection} - -\constfunc{virtual void}{GetSelection}{\param{long*}{ from}, \param{long*}{ to}} - -Gets the current selection span. If the returned values are equal, there was -no selection. - -Please note that the indices returned may be used with the other wxTextctrl -methods but don't necessarily represent the correct indices into the string -returned by \helpref{GetValue()}{wxtextctrlgetvalue} for multiline controls -under Windows (at least,) you should use -\helpref{GetStringSelection()}{wxtextctrlgetstringselection} to get the selected -text. - -\wxheading{Parameters} - -\docparam{from}{The returned first position.} - -\docparam{to}{The returned last position.} - -\pythonnote{The wxPython version of this method returns a tuple -consisting of the from and to values.} - -\perlnote{In wxPerl this method takes no parameter and returns a -2-element list {\tt ( from, to )}.} - - -\membersection{wxTextCtrl::GetStringSelection}\label{wxtextctrlgetstringselection} - -\func{virtual wxString}{GetStringSelection}{\void} - -Gets the text currently selected in the control. If there is no selection, the -returned string is empty. - - -\membersection{wxTextCtrl::GetStyle}\label{wxtextctrlgetstyle} - -\func{bool}{GetStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} - -Returns the style at this position in the text control. Not all platforms -support this function. - -\wxheading{Return value} - -{\tt true} on success, {\tt false} if an error occurred - it may also mean that -the styles are not supported under this platform. - -\wxheading{See also} - -\helpref{wxTextCtrl::SetStyle}{wxtextctrlsetstyle}, \helpref{wxTextAttr}{wxtextattr} - - -\membersection{wxTextCtrl::GetValue}\label{wxtextctrlgetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Gets the contents of the control. Notice that for a multiline text control, -the lines will be separated by (Unix-style) $\backslash$n characters, even -under Windows where they are separated by a $\backslash$r$\backslash$n -sequence in the native control. - - -\membersection{wxTextCtrl::HitTest}\label{wxtextctrlhittest} - -\constfunc{wxTextCtrlHitTestResult}{HitTest}{\param{const wxPoint\& }{pt}, \param{wxTextCoord }{*col}, \param{wxTextCoord }{*row}} - -This function finds the character at the specified position expressed in -pixels. If the return code is not \texttt{wxTE\_HT\_UNKNOWN} the row and column -of the character closest to this position are returned in the \arg{col} and -\arg{row} parameters (unless the pointers are {\tt NULL} which is allowed). - -Please note that this function is currently only implemented in wxUniv, -wxMSW and wxGTK2 ports. - -\wxheading{See also} - -\helpref{PositionToXY}{wxtextctrlpositiontoxy}, \helpref{XYToPosition}{wxtextctrlxytoposition} - -\perlnote{In wxPerl this function takes only the position argument and -returns a 3-element list \texttt{(result, col, row)}}. - - -\membersection{wxTextCtrl::IsEditable}\label{wxtextctrliseditable} - -\constfunc{bool}{IsEditable}{\void} - -Returns {\tt true} if the controls contents may be edited by user (note that it -always can be changed by the program), i.e. if the control hasn't been put in -read-only mode by a previous call to -\helpref{SetEditable}{wxtextctrlseteditable}. - - -\membersection{wxTextCtrl::IsEmpty}\label{wxtextctrlisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns \true if the control is currently empty. This is the same as -\texttt{GetValue().empty()} but can be much more efficient for the multiline -controls containing big amounts of text. - -\newsince{2.7.1} - - -\membersection{wxTextCtrl::IsModified}\label{wxtextctrlismodified} - -\constfunc{bool}{IsModified}{\void} - -Returns {\tt true} if the text has been modified by user. Note that calling -\helpref{SetValue}{wxtextctrlsetvalue} doesn't make the control modified. - -\wxheading{See also} - -\helpref{MarkDirty}{wxtextctrlmarkdirty} - - -\membersection{wxTextCtrl::IsMultiLine}\label{wxtextctrlismultiline} - -\constfunc{bool}{IsMultiLine}{\void} - -Returns {\tt true} if this is a multi line edit control and {\tt false} -otherwise. - -\wxheading{See also} - -\helpref{IsSingleLine}{wxtextctrlissingleline} - - -\membersection{wxTextCtrl::IsSingleLine}\label{wxtextctrlissingleline} - -\constfunc{bool}{IsSingleLine}{\void} - -Returns {\tt true} if this is a single line edit control and {\tt false} -otherwise. - -\wxheading{See also} - -\helpref{IsMultiLine}{wxtextctrlissingleline} - - -\membersection{wxTextCtrl::LoadFile}\label{wxtextctrlloadfile} - -\func{bool}{LoadFile}{\param{const wxString\& }{ filename}, \param{int }{fileType = wxTEXT\_TYPE\_ANY}} - -Loads and displays the named file, if it exists. - -\wxheading{Parameters} - -\docparam{filename}{The filename of the file to load.} - -\docparam{fileType}{The type of file to load. This is currently ignored in wxTextCtrl.} - -\wxheading{Return value} - -{\tt true} if successful, {\tt false} otherwise. - -% VZ: commenting this out as: (a) the docs are wrong (you can't replace -% anything), (b) wxTextCtrl doesn't have any OnChar() anyhow -%% \membersection{wxTextCtrl::OnChar}\label{wxtextctrlonchar} -%% -%% \func{void}{OnChar}{\param{wxKeyEvent\& }{event}} -%% -%% Default handler for character input. -%% -%% \wxheading{Remarks} -%% -%% It is possible to intercept character -%% input by overriding this member. Call this function -%% to let the default behaviour take place; not calling -%% it results in the character being ignored. You can -%% replace the {\it keyCode} member of {\it event} to -%% translate keystrokes. -%% -%% Note that Windows and Motif have different ways -%% of implementing the default behaviour. In Windows, -%% calling wxTextCtrl::OnChar immediately -%% processes the character. In Motif, -%% calling this function simply sets a flag -%% to let default processing happen. This might affect -%% the way in which you write your OnChar function -%% on different platforms. -%% -%% \wxheading{See also} -%% -%% \helpref{wxKeyEvent}{wxkeyevent} - - -\membersection{wxTextCtrl::MarkDirty}\label{wxtextctrlmarkdirty} - -\func{void}{MarkDirty}{\void} - -Mark text as modified (dirty). - -\wxheading{See also} - -\helpref{IsModified}{wxtextctrlismodified} - - -\membersection{wxTextCtrl::OnDropFiles}\label{wxtextctrlondropfiles} - -\func{void}{OnDropFiles}{\param{wxDropFilesEvent\& }{event}} - -This event handler function implements default drag and drop behaviour, which -is to load the first dropped file into the control. - -\wxheading{Parameters} - -\docparam{event}{The drop files event.} - -\wxheading{Remarks} - -This is not implemented on non-Windows platforms. - -\wxheading{See also} - -\helpref{wxDropFilesEvent}{wxdropfilesevent} - - -\membersection{wxTextCtrl::Paste}\label{wxtextctrlpaste} - -\func{virtual void}{Paste}{\void} - -Pastes text from the clipboard to the text item. - - -\membersection{wxTextCtrl::PositionToXY}\label{wxtextctrlpositiontoxy} - -\constfunc{bool}{PositionToXY}{\param{long }{pos}, \param{long *}{x}, \param{long *}{y}} - -Converts given position to a zero-based column, line number pair. - -\wxheading{Parameters} - -\docparam{pos}{Position.} - -\docparam{x}{Receives zero based column number.} - -\docparam{y}{Receives zero based line number.} - -\wxheading{Return value} - -{\tt true} on success, {\tt false} on failure (most likely due to a too large position -parameter). - -\wxheading{See also} - -\helpref{wxTextCtrl::XYToPosition}{wxtextctrlxytoposition} - -\pythonnote{In Python, PositionToXY() returns a tuple containing the x and -y values, so (x,y) = PositionToXY() is equivalent to the call described -above.} - -\perlnote{In wxPerl this method only takes the {\tt pos} parameter, and -returns a 2-element list {\tt ( x, y )}.} - - -\membersection{wxTextCtrl::Redo}\label{wxtextctrlredo} - -\func{virtual void}{Redo}{\void} - -If there is a redo facility and the last operation can be redone, redoes the last operation. Does nothing -if there is no redo facility. - - -\membersection{wxTextCtrl::Remove}\label{wxtextctrlremove} - -\func{virtual void}{Remove}{\param{long}{ from}, \param{long}{ to}} - -Removes the text starting at the first given position up to (but not including) -the character at the last position. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - - -\membersection{wxTextCtrl::Replace}\label{wxtextctrlreplace} - -\func{virtual void}{Replace}{\param{long}{ from}, \param{long}{ to}, \param{const wxString\& }{value}} - -Replaces the text starting at the first position up to (but not including) -the character at the last position with the given text. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - -\docparam{value}{The value to replace the existing text with.} - - -\membersection{wxTextCtrl::SaveFile}\label{wxtextctrlsavefile} - -\func{bool}{SaveFile}{\param{const wxString\& }{ filename}, \param{int }{fileType = wxTEXT\_TYPE\_ANY}} - -Saves the contents of the control in a text file. - -\wxheading{Parameters} - -\docparam{filename}{The name of the file in which to save the text.} - -\docparam{fileType}{The type of file to save. This is currently ignored in wxTextCtrl.} - -\wxheading{Return value} - -{\tt true} if the operation was successful, {\tt false} otherwise. - - -\membersection{wxTextCtrl::SetDefaultStyle}\label{wxtextctrlsetdefaultstyle} - -\func{bool}{SetDefaultStyle}{\param{const wxTextAttr\& }{style}} - -Changes the default style to use for the new text which is going to be added -to the control using \helpref{WriteText}{wxtextctrlwritetext} or\rtfsp -\helpref{AppendText}{wxtextctrlappendtext}. - -If either of the font, foreground, or background colour is not set in\rtfsp -{\it style}, the values of the previous default style are used for them. If -the previous default style didn't set them neither, the global font or colours -of the text control itself are used as fall back. - -However if the {\it style} parameter is the default wxTextAttr, then the -default style is just reset (instead of being combined with the new style which -wouldn't change it at all). - -\wxheading{Parameters} - -\docparam{style}{The style for the new text.} - -\wxheading{Return value} - -{\tt true} on success, {\tt false} if an error occurred - may also mean that -the styles are not supported under this platform. - -\wxheading{See also} - -\helpref{GetDefaultStyle}{wxtextctrlgetdefaultstyle} - - -\membersection{wxTextCtrl::SetEditable}\label{wxtextctrlseteditable} - -\func{virtual void}{SetEditable}{\param{const bool}{ editable}} - -Makes the text item editable or read-only, overriding the {\bf wxTE\_READONLY} flag. - -\wxheading{Parameters} - -\docparam{editable}{If {\tt true}, the control is editable. If {\tt false}, the control is read-only.} - -\wxheading{See also} - -\helpref{IsEditable}{wxtextctrliseditable} - - -\membersection{wxTextCtrl::SetInsertionPoint}\label{wxtextctrlsetinsertionpoint} - -\func{virtual void}{SetInsertionPoint}{\param{long}{ pos}} - -Sets the insertion point at the given position. - -\wxheading{Parameters} - -\docparam{pos}{Position to set.} - - -\membersection{wxTextCtrl::SetInsertionPointEnd}\label{wxtextctrlsetinsertionpointend} - -\func{virtual void}{SetInsertionPointEnd}{\void} - -Sets the insertion point at the end of the text control. This is equivalent -to \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}(\helpref{GetLastPosition}{wxtextctrlgetlastposition}()). - - -\membersection{wxTextCtrl::SetMaxLength}\label{wxtextctrlsetmaxlength} - -\func{virtual void}{SetMaxLength}{\param{unsigned long }{len}} - -This function sets the maximum number of characters the user can enter into the -control. In other words, it allows to limit the text value length to {\it len} -not counting the terminating {\tt NUL} character. - -If {\it len} is $0$, the previously set max length limit, if any, is discarded -and the user may enter as much text as the underlying native text control -widget supports (typically at least 32Kb). - -If the user tries to enter more characters into the text control when it -already is filled up to the maximal length, a -{\tt wxEVT\_COMMAND\_TEXT\_MAXLEN} event is sent to notify the program about it -(giving it the possibility to show an explanatory message, for example) and the -extra input is discarded. - -Note that under GTK+, this function may only be used with single line text controls. - -\wxheading{Compatibility} - -Only implemented in wxMSW/wxGTK starting with wxWidgets 2.3.2. - - -\membersection{wxTextCtrl::SetModified}\label{wxtextctrlsetmodified} - -\func{void}{SetModified}{\param{bool }{modified}} - -Marks the control as being modified by the user or not. - -\wxheading{See also} - -\helpref{MarkDirty}{wxtextctrlmarkdirty}, \helpref{DiscardEdits}{wxtextctrldiscardedits} - - -\membersection{wxTextCtrl::SetSelection}\label{wxtextctrlsetselection} - -\func{virtual void}{SetSelection}{\param{long}{ from}, \param{long}{ to}} - -Selects the text starting at the first position up to (but not including) the -character at the last position. If both parameters are equal to $-1$ all text -in the control is selected. - -\wxheading{Parameters} - -\docparam{from}{The first position.} - -\docparam{to}{The last position.} - - -\membersection{wxTextCtrl::SetStyle}\label{wxtextctrlsetstyle} - -\func{bool}{SetStyle}{\param{long }{start}, \param{long }{end}, \param{const wxTextAttr\& }{style}} - -Changes the style of the given range. If any attribute within {\it style} is -not set, the corresponding attribute from \helpref{GetDefaultStyle()}{wxtextctrlgetdefaultstyle} is used. - -\wxheading{Parameters} - -\docparam{start}{The start of the range to change.} - -\docparam{end}{The end of the range to change.} - -\docparam{style}{The new style for the range.} - -\wxheading{Return value} - -{\tt true} on success, {\tt false} if an error occurred - it may also mean that -the styles are not supported under this platform. - -\wxheading{See also} - -\helpref{wxTextCtrl::GetStyle}{wxtextctrlgetstyle}, \helpref{wxTextAttr}{wxtextattr} - - -\membersection{wxTextCtrl::SetValue}\label{wxtextctrlsetvalue} - -\func{virtual void}{SetValue}{\param{const wxString\& }{ value}} - -Sets the text value and marks the control as not-modified (which means that -\helpref{IsModified}{wxtextctrlismodified} would return {\tt false} immediately -after the call to SetValue). - -Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED} -event. - -This function is deprecated and should not be used in new code. Please use the -\helpref{ChangeValue}{wxtextctrlchangevalue} function instead. - -\wxheading{Parameters} - -\docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.} - - -\membersection{wxTextCtrl::ChangeValue}\label{wxtextctrlchangevalue} - -\func{virtual void}{ChangeValue}{\param{const wxString\& }{ value}} - -Sets the text value and marks the control as not-modified (which means that -\helpref{IsModified}{wxtextctrlismodified} would return {\tt false} immediately -after the call to SetValue). - -Note that this function will \emph{not} generate the {\tt wxEVT\_COMMAND\_TEXT\_UPDATED} -event. -This is the only difference with \helpref{SetValue}{wxtextctrlsetvalue}. -See \helpref{this topic}{progevent} for more information. - -\newsince{2.7.1} - -\wxheading{Parameters} - -\docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.} - - -\membersection{wxTextCtrl::ShowPosition}\label{wxtextctrlshowposition} - -\func{void}{ShowPosition}{\param{long}{ pos}} - -Makes the line containing the given position visible. - -\wxheading{Parameters} - -\docparam{pos}{The position that should be visible.} - - -\membersection{wxTextCtrl::Undo}\label{wxtextctrlundo} - -\func{virtual void}{Undo}{\void} - -If there is an undo facility and the last operation can be undone, undoes the last operation. Does nothing -if there is no undo facility. - - -\membersection{wxTextCtrl::WriteText}\label{wxtextctrlwritetext} - -\func{void}{WriteText}{\param{const wxString\& }{ text}} - -Writes the text into the text control at the current insertion position. - -\wxheading{Parameters} - -\docparam{text}{Text to write to the text control.} - -\wxheading{Remarks} - -Newlines in the text string -are the only control characters allowed, and they will cause appropriate -line breaks. See \helpref{wxTextCtrl::\cinsert}{wxtextctrlinsert} and \helpref{wxTextCtrl::AppendText}{wxtextctrlappendtext} for more convenient ways of writing to the window. - -After the write operation, the insertion point will be at the end of the inserted text, so subsequent write operations will be appended. To append text after the user may have interacted with the control, call \helpref{wxTextCtrl::SetInsertionPointEnd}{wxtextctrlsetinsertionpointend} before writing. - - -\membersection{wxTextCtrl::XYToPosition}\label{wxtextctrlxytoposition} - -\func{long}{XYToPosition}{\param{long}{ x}, \param{long}{ y}} - -Converts the given zero based column and line number to a position. - -\wxheading{Parameters} - -\docparam{x}{The column number.} - -\docparam{y}{The line number.} - -\wxheading{Return value} - -The position value, or -1 if {\tt x} or {\tt y} was invalid. - - -\membersection{wxTextCtrl::operator \cinsert}\label{wxtextctrlinsert} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{const wxString\& }{s}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{int}{ i}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{long}{ i}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{float}{ f}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{double}{ d}} - -\func{wxTextCtrl\&}{operator \cinsert}{\param{char}{ c}} - -Operator definitions for appending to a text control, for example: - -\begin{verbatim} - wxTextCtrl *wnd = new wxTextCtrl(my_frame); - - (*wnd) << "Welcome to text control number " << 1 << ".\n"; -\end{verbatim} - diff --git a/docs/latex/wx/textattr.tex b/docs/latex/wx/textattr.tex deleted file mode 100644 index 1fba2be659..0000000000 --- a/docs/latex/wx/textattr.tex +++ /dev/null @@ -1,901 +0,0 @@ -\section{\class{wxTextAttr}}\label{wxtextattr} - -wxTextAttr represents the character and paragraph attributes, or style, -for a range of text in a \helpref{wxTextCtrl}{wxtextctrl} or \helpref{wxRichTextCtrl}{wxrichtextctrl}. - -When setting up a wxTextAttr object, pass a bitlist mask to \helpref{SetFlags}{wxtextattrsetflags} to -indicate which style elements should be changed. As a convenience, when you call a setter such -as SetFont, the relevant bit will be set. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/textctrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Constants} - -The following values can be passed to wxTextAttr::SetAlignment to determine -paragraph alignment. - -{\small -\begin{verbatim} -enum wxTextAttrAlignment -{ - wxTEXT_ALIGNMENT_DEFAULT, - wxTEXT_ALIGNMENT_LEFT, - wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_RIGHT, - wxTEXT_ALIGNMENT_JUSTIFIED -}; -\end{verbatim} -} - -Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported -when printing or previewing, only. - -The following values are passed in a bitlist to wxTextAttr::SetFlags to determine -what attributes will be considered when setting the attributes -for a text control. - -{\small -\begin{verbatim} -// Standard wxTextAttr constants - -#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001 -#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002 -#define wxTEXT_ATTR_FONT_FACE 0x00000004 -#define wxTEXT_ATTR_FONT_SIZE 0x00000008 -#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010 -#define wxTEXT_ATTR_FONT_ITALIC 0x00000020 -#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040 -#define wxTEXT_ATTR_FONT_ENCODING 0x02000000 -#define wxTEXT_ATTR_FONT \ - wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \ -| wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING -#define wxTEXT_ATTR_ALIGNMENT 0x00000080 -#define wxTEXT_ATTR_LEFT_INDENT 0x00000100 -#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200 -#define wxTEXT_ATTR_TABS 0x00000400 - -// Extra formatting flags not in wxTextAttr - -#define wxTEXT_ATTR_PARA_SPACING_AFTER 0x00000800 -#define wxTEXT_ATTR_PARA_SPACING_BEFORE 0x00001000 -#define wxTEXT_ATTR_LINE_SPACING 0x00002000 -#define wxTEXT_ATTR_CHARACTER_STYLE_NAME 0x00004000 -#define wxTEXT_ATTR_PARAGRAPH_STYLE_NAME 0x00008000 -#define wxTEXT_ATTR_LIST_STYLE_NAME 0x00010000 -#define wxTEXT_ATTR_BULLET_STYLE 0x00020000 -#define wxTEXT_ATTR_BULLET_NUMBER 0x00040000 -#define wxTEXT_ATTR_BULLET_TEXT 0x00080000 -#define wxTEXT_ATTR_BULLET_NAME 0x00100000 -#define wxTEXT_ATTR_URL 0x00200000 -#define wxTEXT_ATTR_PAGE_BREAK 0x00400000 -#define wxTEXT_ATTR_EFFECTS 0x00800000 -#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000 -\end{verbatim} -} - -The following styles can be passed to wxTextAttr::SetBulletStyle: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_BULLET_STYLE_NONE 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ARABIC 0x00000001 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER 0x00000002 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER 0x00000004 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER 0x00000008 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER 0x00000010 -#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL 0x00000020 -#define wxTEXT_ATTR_BULLET_STYLE_BITMAP 0x00000040 -#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES 0x00000080 -#define wxTEXT_ATTR_BULLET_STYLE_PERIOD 0x00000100 -#define wxTEXT_ATTR_BULLET_STYLE_STANDARD 0x00000200 -#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS 0x00000400 -#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE 0x00000800 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT 0x00001000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE 0x00002000 -\end{verbatim} -} - -Of these, wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is unimplemented. - -The following constants can be passed to wxTextAttr::SetLineSpacing: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10 -#define wxTEXT_ATTR_LINE_SPACING_HALF 15 -#define wxTEXT_ATTR_LINE_SPACING_TWICE 20 -\end{verbatim} -} - -The following styles can be passed to wxTextAttr::SetTextEffects: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 -#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 -#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 -#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 -#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 -#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 -#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 -#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 -#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 -#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 -#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 -\end{verbatim} -} - -Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. - -\wxheading{See also} - -\helpref{wxTextCtrl}{wxtextctrl}, \helpref{wxRichTextCtrl}{wxrichtextctrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextAttr::wxTextAttr}\label{wxtextattrwxtextattr} - -\func{}{wxTextAttr}{\void} - -\func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, \param{const wxFont\& }{font = wxNullFont}, \param{wxTextAttrAlignment }{alignment = wxTEXT\_ALIGNMENT\_DEFAULT}} - -\func{}{wxTextAttr}{\param{const wxTextAttr\& }{attr}} - -Constructors. - -\membersection{wxTextAttr::Apply}\label{wxtextattrapply} - -\func{bool}{Apply}{\param{const wxTextAttr\& }{style}, \param{const wxTextAttr* }{compareWith = NULL}} - -Applies the attributes in {\it style} to the original object, but not those attributes from {\it style} that are the same as those in {\it compareWith} (if passed). - -\membersection{wxTextAttr::CreateFont}\label{wxtextattrcreatefont} - -\constfunc{wxFont}{CreateFont}{\void} - -Creates a font from the font attributes. - -\membersection{wxTextAttr::GetAlignment}\label{wxtextattrgetalignment} - -\constfunc{wxTextAttrAlignment}{GetAlignment}{\void} - -Returns the alignment flags. -See \helpref{wxTextAttr::SetAlignment}{wxtextattrsetalignment} for a list of available styles. - -\membersection{wxTextAttr::GetBackgroundColour}\label{wxtextattrgetbackgroundcolour} - -\constfunc{const wxColour\&}{GetBackgroundColour}{\void} - -Returns the background colour. - -\membersection{wxTextAttr::GetBulletFont}\label{wxtextattrgetbulletfont} - -\constfunc{const wxString\&}{GetBulletFont}{\void} - -Returns a string containing the name of the font associated with the bullet symbol. -Only valid for attributes with wxTEXT\_ATTR\_BULLET\_SYMBOL. - -\membersection{wxTextAttr::GetBulletName}\label{wxtextattrgetbulletname} - -\constfunc{const wxString\&}{GetBulletName}{\void} - -Returns the standard bullet name, applicable if the bullet style is wxTEXT\_ATTR\_BULLET\_STYLE\_STANDARD. -Currently the following standard bullet names are supported: - -\begin{itemize}\itemsep=0pt -\item {\tt standard/circle} -\item {\tt standard/square} -\item {\tt standard/diamond} -\item {\tt standard/triangle} -\end{itemize} - -For wxRichTextCtrl users only: if you wish your rich text controls to support further bullet graphics, you can derive a -class from wxRichTextRenderer or wxRichTextStdRenderer, override {\tt DrawStandardBullet} and {\tt EnumerateStandardBulletNames}, and -set an instance of the class using \helpref{wxRichTextBuffer::SetRenderer}{wxrichtextbuffersetrenderer}. - -\membersection{wxTextAttr::GetBulletNumber}\label{wxtextattrgetbulletnumber} - -\constfunc{int}{GetBulletNumber}{\void} - -Returns the bullet number. - -\membersection{wxTextAttr::GetBulletStyle}\label{wxtextattrgetbulletstyle} - -\constfunc{int}{GetBulletStyle}{\void} - -Returns the bullet style. -See \helpref{wxTextAttr::SetBulletStyle}{wxtextattrsetbulletstyle} for a list of available styles. - -\membersection{wxTextAttr::GetBulletText}\label{wxtextattrgetbullettext} - -\constfunc{const wxString\&}{GetBulletText}{\void} - -Returns the bullet text, which could be a symbol, or (for example) cached outline text. - -\membersection{wxTextAttr::GetCharacterStyleName}\label{wxtextattrgetcharacterstylename} - -\constfunc{const wxString\&}{GetCharacterStyleName}{\void} - -Returns the name of the character style. - -\membersection{wxTextAttr::GetFlags}\label{wxtextattrgetflags} - -\constfunc{long}{GetFlags}{\void} - -Returns flags indicating which attributes are applicable. -See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for a list of available flags. - -\membersection{wxTextAttr::GetFont}\label{wxtextattrgetfont} - -\constfunc{wxFont}{GetFont}{\void} - -Creates and returns a font specified by the font attributes in the wxTextAttr object. Note that -wxTextAttr does not store a wxFont object, so this is only a temporary font. For greater -efficiency, access the font attributes directly. - -\membersection{wxTextAttr::GetFontAttributes}\label{wxtextattrgetfontattributes} - -\func{bool}{GetFontAttributes}{\param{const wxFont\& }{font}, \param{int}{ flags = wxTEXT\_ATTR\_FONT}} - -Gets the font attributes from the given font, using only the attributes specified by {\it flags}. - -\membersection{wxTextAttr::GetFontEncoding}\label{wxtextattrgetfontencoding} - -\constfunc{wxFontEncoding}{GetFontEncoding}{\void} - -Returns the font encoding. - -\membersection{wxTextAttr::GetFontFaceName}\label{wxtextattrgetfontfacename} - -\constfunc{const wxString\&}{GetFontFaceName}{\void} - -Returns the font face name. - -\membersection{wxTextAttr::GetFontSize}\label{wxtextattrgetfontsize} - -\constfunc{int}{GetFontSize}{\void} - -Returns the font size in points. - -\membersection{wxTextAttr::GetFontStyle}\label{wxtextattrgetfontstyle} - -\constfunc{int}{GetFontStyle}{\void} - -Returns the font style. - -\membersection{wxTextAttr::GetFontUnderlined}\label{wxtextattrgetfontunderlined} - -\constfunc{bool}{GetFontUnderlined}{\void} - -Returns \true if the font is underlined. - -\membersection{wxTextAttr::GetFontWeight}\label{wxtextattrgetfontweight} - -\constfunc{int}{GetFontWeight}{\void} - -Returns the font weight. - -\membersection{wxTextAttr::GetLeftIndent}\label{wxtextattrgetleftindent} - -\constfunc{long}{GetLeftIndent}{\void} - -Returns the left indent in tenths of a millimetre. - -\membersection{wxTextAttr::GetLeftSubIndent}\label{wxtextattrgetleftsubindent} - -\constfunc{long}{GetLeftSubIndent}{\void} - -Returns the left sub-indent in tenths of a millimetre. - -\membersection{wxTextAttr::GetLineSpacing}\label{wxtextattrgetlinespacing} - -\constfunc{int}{GetLineSpacing}{\void} - -Returns the line spacing value, one of wxTEXT\_ATTR\_LINE\_SPACING\_NORMAL, -wxTEXT\_ATTR\_LINE\_SPACING\_HALF, and wxTEXT\_ATTR\_LINE\_SPACING\_TWICE. - -\membersection{wxTextAttr::GetListStyleName}\label{wxtextattrgetliststylename} - -\constfunc{const wxString\&}{GetListStyleName}{\void} - -Returns the name of the list style. - -\membersection{wxTextAttr::GetOutlineLevel}\label{wxtextattrgetoutlinelevel} - -\constfunc{bool}{GetOutlineLevel}{\void} - -Returns the outline level. - -\membersection{wxTextAttr::GetParagraphSpacingAfter}\label{wxtextattrgetparagraphspacingafter} - -\constfunc{int}{GetParagraphSpacingAfter}{\void} - -Returns the space in tenths of a millimeter after the paragraph. - -\membersection{wxTextAttr::GetParagraphSpacingBefore}\label{wxtextattrgetparagraphspacingbefore} - -\constfunc{int}{GetParagraphSpacingBefore}{\void} - -Returns the space in tenths of a millimeter before the paragraph. - -\membersection{wxTextAttr::GetParagraphStyleName}\label{wxtextattrgetparagraphstylename} - -\constfunc{const wxString\&}{GetParagraphStyleName}{\void} - -Returns the name of the paragraph style. - -\membersection{wxTextAttr::GetRightIndent}\label{wxtextattrgetrightindent} - -\constfunc{long}{GetRightIndent}{\void} - -Returns the right indent in tenths of a millimeter. - -\membersection{wxTextAttr::GetTabs}\label{wxtextattrgettabs} - -\constfunc{const wxArrayInt\&}{GetTabs}{\void} - -Returns an array of tab stops, each expressed in tenths of a millimeter. Each stop -is measured from the left margin and therefore each value must be larger than the last. - -\membersection{wxTextAttr::GetTextColour}\label{wxtextattrgettextcolour} - -\constfunc{const wxColour\&}{GetTextColour}{\void} - -Returns the text foreground colour. - -\membersection{wxTextAttr::GetTextEffectFlags}\label{wxtextattrgettexteffectflags} - -\constfunc{int}{GetTextEffectFlags}{\void} - -Returns the text effect bits of interest. See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for further information. - -\membersection{wxTextAttr::GetTextEffects}\label{wxtextattrgettexteffects} - -\constfunc{int}{GetTextEffects}{\void} - -Returns the text effects, a bit list of styles. See \helpref{wxTextAttr::SetTextEffects}{wxtextattrsettexteffects} for -details. - -\membersection{wxTextAttr::GetURL}\label{wxtextattrgeturl} - -\constfunc{const wxString\&}{GetURL}{\void} - -Returns the URL for the content. Content with wxTEXT\_ATTR\_URL style -causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl generates -a wxTextUrlEvent when the content is clicked. - -\membersection{wxTextAttr::HasAlignment}\label{wxtextattrhasalignment} - -\constfunc{bool}{HasAlignment}{\void} - -Returns \true if the attribute object specifies alignment. - -\membersection{wxTextAttr::HasBackgroundColour}\label{wxtextattrhasbackgroundcolour} - -\constfunc{bool}{HasBackgroundColour}{\void} - -Returns \true if the attribute object specifies a background colour. - -\membersection{wxTextAttr::HasBulletName}\label{wxtextattrhasbulletname} - -\constfunc{bool}{HasBulletName}{\void} - -Returns \true if the attribute object specifies a standard bullet name. - -\membersection{wxTextAttr::HasBulletNumber}\label{wxtextattrhasbulletnumber} - -\constfunc{bool}{HasBulletNumber}{\void} - -Returns \true if the attribute object specifies a bullet number. - -\membersection{wxTextAttr::HasBulletStyle}\label{wxtextattrhasbulletstyle} - -\constfunc{bool}{HasBulletStyle}{\void} - -Returns \true if the attribute object specifies a bullet style. - -\membersection{wxTextAttr::HasBulletText}\label{wxtextattrhasbullettext} - -\constfunc{bool}{HasBulletText}{\void} - -Returns \true if the attribute object specifies bullet text (usually specifying a symbol). - -\membersection{wxTextAttr::HasCharacterStyleName}\label{wxtextattrhascharacterstylename} - -\constfunc{bool}{HasCharacterStyleName}{\void} - -Returns \true if the attribute object specifies a character style name. - -\membersection{wxTextAttr::HasFontEncoding}\label{wxtextattrhasfontencoding} - -\constfunc{bool}{HasFontEncoding}{\void} - -Returns \true if the attribute object specifies an encoding. - -\membersection{wxTextAttr::HasFontFaceName}\label{wxtextattrhasfontfacename} - -\constfunc{bool}{HasFontFaceName}{\void} - -Returns \true if the attribute object specifies a font face name. - -\membersection{wxTextAttr::HasFlag}\label{wxtextattrhasflag} - -\constfunc{bool}{HasFlag}{\param{long }{flag}} - -Returns \true if the {\it flag} is present in the attribute object's flag bitlist. - -\membersection{wxTextAttr::HasFont}\label{wxtextattrhasfont} - -\constfunc{bool}{HasFont}{\void} - -Returns \true if the attribute object specifies any font attributes. - -\membersection{wxTextAttr::HasFontItalic}\label{wxtextattrhasfontitalic} - -\constfunc{bool}{HasFontItalic}{\void} - -Returns \true if the attribute object specifies italic style. - -\membersection{wxTextAttr::HasFontUnderlined}\label{wxtextattrhasfontunderlined} - -\constfunc{bool}{HasFontUnderlined}{\void} - -Returns \true if the attribute object specifies either underlining or no underlining. - -\membersection{wxTextAttr::HasURL}\label{wxtextattrhasurl} - -\constfunc{bool}{HasURL}{\void} - -Returns \true if the attribute object specifies a URL. - -\membersection{wxTextAttr::HasFontWeight}\label{wxtextattrhasfontweight} - -\constfunc{bool}{HasFontWeight}{\void} - -Returns \true if the attribute object specifies font weight (bold, light or normal). - -\membersection{wxTextAttr::HasLeftIndent}\label{wxtextattrhasleftindent} - -\constfunc{bool}{HasLeftIndent}{\void} - -Returns \true if the attribute object specifies a left indent. - -\membersection{wxTextAttr::HasLineSpacing}\label{wxtextattrhaslinespacing} - -\constfunc{bool}{HasLineSpacing}{\void} - -Returns \true if the attribute object specifies line spacing. - -\membersection{wxTextAttr::HasListStyleName}\label{wxtextattrhasliststylename} - -\constfunc{bool}{HasListStyleName}{\void} - -Returns \true if the attribute object specifies a list style name. - -\membersection{wxTextAttr::HasOutlineLevel}\label{wxtextattrhasoutlinelevel} - -\constfunc{bool}{HasOutlineLevel}{\void} - -Returns \true if the attribute object specifies an outline level. - -\membersection{wxTextAttr::HasPageBreak}\label{wxtextattrhaspagebreak} - -\constfunc{bool}{HasPageBreak}{\void} - -Returns \true if the attribute object specifies a page break before this paragraph. - -\membersection{wxTextAttr::HasParagraphSpacingAfter}\label{wxtextattrhasparagraphspacingafter} - -\constfunc{bool}{HasParagraphSpacingAfter}{\void} - -Returns \true if the attribute object specifies spacing after a paragraph. - -\membersection{wxTextAttr::HasParagraphSpacingBefore}\label{wxtextattrhasparagraphspacingbefore} - -\constfunc{bool}{HasParagraphSpacingBefore}{\void} - -Returns \true if the attribute object specifies spacing before a paragraph. - -\membersection{wxTextAttr::HasParagraphStyleName}\label{wxtextattrhasparagraphstylename} - -\constfunc{bool}{HasParagraphStyleName}{\void} - -Returns \true if the attribute object specifies a paragraph style name. - -\membersection{wxTextAttr::HasRightIndent}\label{wxtextattrhasrightindent} - -\constfunc{bool}{HasRightIndent}{\void} - -Returns \true if the attribute object specifies a right indent. - -\membersection{wxTextAttr::HasFontSize}\label{wxtextattrhasfontsize} - -\constfunc{bool}{HasFontSize}{\void} - -Returns \true if the attribute object specifies a font point size. - -\membersection{wxTextAttr::HasTabs}\label{wxtextattrhastabs} - -\constfunc{bool}{HasTabs}{\void} - -Returns \true if the attribute object specifies tab stops. - -\membersection{wxTextAttr::HasTextColour}\label{wxtextattrhastextcolour} - -\constfunc{bool}{HasTextColour}{\void} - -Returns \true if the attribute object specifies a text foreground colour. - -\membersection{wxTextAttr::HasTextEffects}\label{wxtextattrhastexteffects} - -\constfunc{bool}{HasTextEffects}{\void} - -Returns \true if the attribute object specifies text effects. - -\membersection{wxTextAttr::IsCharacterStyle}\label{wxtextattrischaracterstyle} - -\constfunc{bool}{IsCharacterStyle}{\void} - -Returns \true if the object represents a character style, that is, -the flags specify a font or a text background or foreground colour. - -\membersection{wxTextAttr::IsDefault}\label{wxtextattrisdefault} - -\constfunc{bool}{IsDefault}{\void} - -Returns \false if we have any attributes set, \true otherwise. - -\membersection{wxTextAttr::IsParagraphStyle}\label{wxtextattrisparagraphstyle} - -\constfunc{bool}{IsParagraphStyle}{\void} - -Returns \true if the object represents a paragraph style, that is, -the flags specify alignment, indentation, tabs, paragraph spacing, or -bullet style. - -\membersection{wxTextAttr::Merge}\label{wxtextattrmerge} - -\func{void}{Merge}{\param{const wxTextAttr\&}{ overlay}} - -Copies all defined/valid properties from \arg{overlay} to current object. - -\func{static wxTextAttr}{Merge}{\param{const wxTextAttr\&}{ base}, \param{const wxTextAttr\&}{ overlay}} - -Creates a new {\tt wxTextAttr} which is a merge of \arg{base} and -\arg{overlay}. Properties defined in \arg{overlay} take precedence over those -in \arg{base}. Properties undefined/invalid in both are undefined in the -result. - - -\membersection{wxTextAttr::SetAlignment}\label{wxtextattrsetalignment} - -\func{void}{SetAlignment}{\param{wxTextAttrAlignment }{alignment}} - -Sets the paragraph alignment. These are the possible values for {\it alignment}: - -{\small -\begin{verbatim} -enum wxTextAttrAlignment -{ - wxTEXT_ALIGNMENT_DEFAULT, - wxTEXT_ALIGNMENT_LEFT, - wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_RIGHT, - wxTEXT_ALIGNMENT_JUSTIFIED -}; -\end{verbatim} -} - -Of these, wxTEXT\_ALIGNMENT\_JUSTIFIED is unimplemented. In future justification may be supported -when printing or previewing, only. - -\membersection{wxTextAttr::SetBackgroundColour}\label{wxtextattrsetbackgroundcolour} - -\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colBack}} - -Sets the background colour. - -\membersection{wxTextAttr::SetBulletFont}\label{wxtextattrsetbulletfont} - -\func{void}{SetBulletFont}{\param{const wxString\& }{font}} - -Sets the name of the font associated with the bullet symbol. -Only valid for attributes with wxTEXT\_ATTR\_BULLET\_SYMBOL. - -\membersection{wxTextAttr::SetBulletName}\label{wxtextattrsetbulletname} - -\func{void}{SetBulletName}{\param{const wxString\& }{name}} - -Sets the standard bullet name, applicable if the bullet style is wxTEXT\_ATTR\_BULLET\_STYLE\_STANDARD. -See \helpref{wxTextAttr::GetBulletName}{wxtextattrgetbulletname} for a list -of supported names, and how to expand the range of supported types. - -\membersection{wxTextAttr::SetBulletNumber}\label{wxtextattrsetbulletnumber} - -\func{void}{SetBulletNumber}{\param{int }{n}} - -Sets the bullet number. - -\membersection{wxTextAttr::SetBulletStyle}\label{wxtextattrsetbulletstyle} - -\func{void}{SetBulletStyle}{\param{int }{style}} - -Sets the bullet style. The following styles can be passed: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_BULLET_STYLE_NONE 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ARABIC 0x00000001 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER 0x00000002 -#define wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER 0x00000004 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER 0x00000008 -#define wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER 0x00000010 -#define wxTEXT_ATTR_BULLET_STYLE_SYMBOL 0x00000020 -#define wxTEXT_ATTR_BULLET_STYLE_BITMAP 0x00000040 -#define wxTEXT_ATTR_BULLET_STYLE_PARENTHESES 0x00000080 -#define wxTEXT_ATTR_BULLET_STYLE_PERIOD 0x00000100 -#define wxTEXT_ATTR_BULLET_STYLE_STANDARD 0x00000200 -#define wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS 0x00000400 -#define wxTEXT_ATTR_BULLET_STYLE_OUTLINE 0x00000800 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT 0x00000000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT 0x00001000 -#define wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE 0x00002000 -\end{verbatim} -} - -Currently wxTEXT\_ATTR\_BULLET\_STYLE\_BITMAP is not supported. - -\membersection{wxTextAttr::SetBulletText}\label{wxtextattrsetbullettext} - -\func{void}{SetBulletText}{\param{const wxString& }{text}} - -Sets the bullet text, which could be a symbol, or (for example) cached outline text. - -\membersection{wxTextAttr::SetCharacterStyleName}\label{wxtextattrsetcharacterstylename} - -\func{void}{SetCharacterStyleName}{\param{const wxString\& }{name}} - -Sets the character style name. - -\membersection{wxTextAttr::SetFlags}\label{wxtextattrsetflags} - -\func{void}{SetFlags}{\param{long }{flags}} - -Sets the flags determining which styles are being specified. The following -flags can be passed in a bitlist: - -{\small -\begin{verbatim} -// Standard wxTextAttr constants - -#define wxTEXT_ATTR_TEXT_COLOUR 0x00000001 -#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x00000002 -#define wxTEXT_ATTR_FONT_FACE 0x00000004 -#define wxTEXT_ATTR_FONT_SIZE 0x00000008 -#define wxTEXT_ATTR_FONT_WEIGHT 0x00000010 -#define wxTEXT_ATTR_FONT_ITALIC 0x00000020 -#define wxTEXT_ATTR_FONT_UNDERLINE 0x00000040 -#define wxTEXT_ATTR_FONT \ - wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \ -| wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE -#define wxTEXT_ATTR_ALIGNMENT 0x00000080 -#define wxTEXT_ATTR_LEFT_INDENT 0x00000100 -#define wxTEXT_ATTR_RIGHT_INDENT 0x00000200 -#define wxTEXT_ATTR_TABS 0x00000400 - -// Extra formatting flags not in wxTextAttr - -#define wxTEXT_ATTR_PARA_SPACING_AFTER 0x00000800 -#define wxTEXT_ATTR_PARA_SPACING_BEFORE 0x00001000 -#define wxTEXT_ATTR_LINE_SPACING 0x00002000 -#define wxTEXT_ATTR_CHARACTER_STYLE_NAME 0x00004000 -#define wxTEXT_ATTR_PARAGRAPH_STYLE_NAME 0x00008000 -#define wxTEXT_ATTR_LIST_STYLE_NAME 0x00010000 -#define wxTEXT_ATTR_BULLET_STYLE 0x00020000 -#define wxTEXT_ATTR_BULLET_NUMBER 0x00040000 -#define wxTEXT_ATTR_BULLET_TEXT 0x00080000 -#define wxTEXT_ATTR_BULLET_NAME 0x00100000 -#define wxTEXT_ATTR_URL 0x00200000 -#define wxTEXT_ATTR_PAGE_BREAK 0x00400000 -#define wxTEXT_ATTR_EFFECTS 0x00800000 -#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000 -\end{verbatim} -} - -\membersection{wxTextAttr::SetFont}\label{wxtextattrsetfont} - -\func{void}{SetFont}{\param{const wxFont\&}{ font}} - -Sets the attributes for the given font. Note that wxTextAttr does not store an actual wxFont object. - -\membersection{wxTextAttr::SetFontEncoding}\label{wxtextattrsetfontencoding} - -\func{void}{SetFontEncoding}{\param{wxFontEncoding }{encoding}} - -Sets the font encoding. - -\membersection{wxTextAttr::SetFontFaceName}\label{wxtextattrsetfontfacename} - -\func{void}{SetFontFaceName}{\param{const wxString\& }{faceName}} - -Sets the paragraph alignment. - -\membersection{wxTextAttr::SetFontSize}\label{wxtextattrsetfontsize} - -\func{void}{SetFontSize}{\param{int }{pointSize}} - -Sets the font size in points. - -\membersection{wxTextAttr::SetFontStyle}\label{wxtextattrsetfontstyle} - -\func{void}{SetFontStyle}{\param{int }{fontStyle}} - -Sets the font style (normal, italic or slanted). - -\membersection{wxTextAttr::SetFontUnderlined}\label{wxtextattrsetfontunderlined} - -\func{void}{SetFontUnderlined}{\param{bool }{underlined}} - -Sets the font underlining. - -\membersection{wxTextAttr::SetFontWeight}\label{wxtextattrsetfontweight} - -\func{void}{SetFontWeight}{\param{int }{fontWeight}} - -Sets the font weight. - -\membersection{wxTextAttr::SetLeftIndent}\label{wxtextattrsetleftindent} - -\func{void}{SetLeftIndent}{\param{int }{indent}, \param{int }{subIndent = 0}} - -Sets the left indent and left subindent in tenths of a millimetre. - -The sub-indent is an offset from the left of the paragraph, and is used for all but the -first line in a paragraph. A positive value will cause the first line to appear to the left -of the subsequent lines, and a negative value will cause the first line to be indented -relative to the subsequent lines. - -wxRichTextBuffer uses indentation to render a bulleted item. The left indent is the distance between -the margin and the bullet. The content of the paragraph, including the first line, starts -at leftMargin + leftSubIndent. So the distance between the left edge of the bullet and the -left of the actual paragraph is leftSubIndent. - -\membersection{wxTextAttr::SetLineSpacing}\label{wxtextattrsetlinespacing} - -\func{void}{SetLineSpacing}{\param{int }{spacing}} - -Sets the line spacing. {\it spacing} is a multiple, where 10 means single-spacing, -15 means 1.5 spacing, and 20 means double spacing. The following constants are -defined for convenience: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_LINE_SPACING_NORMAL 10 -#define wxTEXT_ATTR_LINE_SPACING_HALF 15 -#define wxTEXT_ATTR_LINE_SPACING_TWICE 20 -\end{verbatim} -} - -\membersection{wxTextAttr::SetListStyleName}\label{wxtextattrsetliststylename} - -\func{void}{SetListStyleName}{\param{const wxString\& }{name}} - -Sets the list style name. - -\membersection{wxTextAttr::SetOutlineLevel}\label{wxtextattrsetoutlinelevel} - -\func{void}{SetOutlineLevel}{\param{int}{ level}} - -Specifies the outline level. Zero represents normal text. At present, the outline level is -not used, but may be used in future for determining list levels and for applications -that need to store document structure information. - -\membersection{wxTextAttr::SetPageBreak}\label{wxtextattrsetpagebreak} - -\func{void}{SetPageBreak}{\param{bool}{ pageBreak = true}} - -Specifies a page break before this paragraph. - -\membersection{wxTextAttr::SetParagraphSpacingAfter}\label{wxtextattrsetparagraphspacingafter} - -\func{void}{SetParagraphSpacingAfter}{\param{int }{spacing}} - -Sets the spacing after a paragraph, in tenths of a millimetre. - -\membersection{wxTextAttr::SetParagraphSpacingBefore}\label{wxtextattrsetparagraphspacingbefore} - -\func{void}{SetParagraphSpacingBefore}{\param{int }{spacing}} - -Sets the spacing before a paragraph, in tenths of a millimetre. - -\membersection{wxTextAttr::SetParagraphStyleName}\label{wxtextattrsetparagraphstylename} - -\func{void}{SetParagraphStyleName}{\param{const wxString\& }{name}} - -Sets the name of the paragraph style. - -\membersection{wxTextAttr::SetRightIndent}\label{wxtextattrsetrightindent} - -\func{void}{SetRightIndent}{\param{int }{indent}} - -Sets the right indent in tenths of a millimetre. - -\membersection{wxTextAttr::SetTabs}\label{wxtextattrsettabs} - -\func{void}{SetTabs}{\param{const wxArrayInt\& }{tabs}} - -Sets the tab stops, expressed in tenths of a millimetre. -Each stop is measured from the left margin and therefore each value must be larger than the last. - -\membersection{wxTextAttr::SetTextColour}\label{wxtextattrsettextcolour} - -\func{void}{SetTextColour}{\param{const wxColour\& }{colText}} - -Sets the text foreground colout. - -\membersection{wxTextAttr::SetTextEffectFlags}\label{wxtextattrsettexteffectflags} - -\func{void}{SetTextEffectFlags}{\param{int }{flags}} - -Sets the text effect bits of interest. You should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}. -See \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags} for further information. - -\membersection{wxTextAttr::SetTextEffects}\label{wxtextattrsettexteffects} - -\func{void}{SetTextEffects}{\param{int }{effects}} - -Sets the text effects, a bit list of styles. - -The following styles can be passed: - -{\small -\begin{verbatim} -#define wxTEXT_ATTR_EFFECT_NONE 0x00000000 -#define wxTEXT_ATTR_EFFECT_CAPITALS 0x00000001 -#define wxTEXT_ATTR_EFFECT_SMALL_CAPITALS 0x00000002 -#define wxTEXT_ATTR_EFFECT_STRIKETHROUGH 0x00000004 -#define wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH 0x00000008 -#define wxTEXT_ATTR_EFFECT_SHADOW 0x00000010 -#define wxTEXT_ATTR_EFFECT_EMBOSS 0x00000020 -#define wxTEXT_ATTR_EFFECT_OUTLINE 0x00000040 -#define wxTEXT_ATTR_EFFECT_ENGRAVE 0x00000080 -#define wxTEXT_ATTR_EFFECT_SUPERSCRIPT 0x00000100 -#define wxTEXT_ATTR_EFFECT_SUBSCRIPT 0x00000200 -\end{verbatim} -} - -Of these, only wxTEXT\_ATTR\_EFFECT\_CAPITALS and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH are implemented. -wxTEXT\_ATTR\_EFFECT\_CAPITALS capitalises text when displayed (leaving the case of the actual buffer -text unchanged), and wxTEXT\_ATTR\_EFFECT\_STRIKETHROUGH draws a line through text. - -To set effects, you should also pass wxTEXT\_ATTR\_EFFECTS to \helpref{wxTextAttr::SetFlags}{wxtextattrsetflags}, and call\rtfsp -\helpref{wxTextAttr::SetTextEffectFlags}{wxtextattrsettexteffectflags} with the styles (taken from the -above set) that you are interested in setting. - -\membersection{wxTextAttr::SetURL}\label{wxtextattrseturl} - -\func{void}{SetURL}{\param{const wxString\& }{url}} - -Sets the URL for the content. Sets the wxTEXT\_ATTR\_URL style; content with this style -causes wxRichTextCtrl to show a hand cursor over it, and wxRichTextCtrl generates -a wxTextUrlEvent when the content is clicked. - -\membersection{wxTextAttr::operator=}\label{wxtextattroperatorassign} - -\func{void operator}{operator=}{\param{const wxTextAttr\& }{attr}} - -Assignment from a \helpref{wxTextAttr}{wxtextattr} object. - diff --git a/docs/latex/wx/textdlg.tex b/docs/latex/wx/textdlg.tex deleted file mode 100644 index 69e3baf4fe..0000000000 --- a/docs/latex/wx/textdlg.tex +++ /dev/null @@ -1,71 +0,0 @@ -\section{\class{wxTextEntryDialog}}\label{wxtextentrydialog} - -This class represents a dialog that requests a one-line text string from the user. -It is implemented as a generic wxWidgets dialog. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/textdlg.h> - -\wxheading{See also} - -\helpref{wxTextEntryDialog overview}{wxtextentrydialogoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextEntryDialog::wxTextEntryDialog}\label{wxtextentrydialogctor} - -\func{}{wxTextEntryDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{message},\rtfsp -\param{const wxString\& }{caption = "Please enter text"}, \param{const wxString\& }{defaultValue = ""}, \param{long }{style = wxOK \pipe wxCANCEL \pipe wxCENTRE}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -Constructor. Use \helpref{wxTextEntryDialog::ShowModal}{wxtextentrydialogshowmodal} to show the dialog. - -\wxheading{Parameters} - -\docparam{parent}{Parent window.} - -\docparam{message}{Message to show on the dialog.} - -\docparam{defaultValue}{The default value, which may be the empty string.} - -\docparam{style}{A dialog style, specifying the buttons (wxOK, wxCANCEL) -and an optional wxCENTRE style. Additionally, wxTextCtrl styles (such as -\windowstyle{wxTE\_PASSWORD}) may be specified here.} - -\docparam{pos}{Dialog position.} - -\membersection{wxTextEntryDialog::\destruct{wxTextEntryDialog}}\label{wxtextentrydialogdtor} - -\func{}{\destruct{wxTextEntryDialog}}{\void} - -Destructor. - -\membersection{wxTextEntryDialog::GetValue}\label{wxtextentrydialoggetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the text that the user has entered if the user has pressed OK, or the original value -if the user has pressed Cancel. - -\membersection{wxTextEntryDialog::SetValue}\label{wxtextentrydialogsetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{value}} - -Sets the default text value. - -\membersection{wxTextEntryDialog::ShowModal}\label{wxtextentrydialogshowmodal} - -\func{int}{ShowModal}{\void} - -Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL -otherwise. - - diff --git a/docs/latex/wx/textfile.tex b/docs/latex/wx/textfile.tex deleted file mode 100644 index 91fec37e02..0000000000 --- a/docs/latex/wx/textfile.tex +++ /dev/null @@ -1,306 +0,0 @@ -\section{\class{wxTextFile}}\label{wxtextfile} - -The wxTextFile is a simple class which allows to work with text files on line by -line basis. It also understands the differences in line termination characters -under different platforms and will not do anything bad to files with "non -native" line termination sequences - in fact, it can be also used to modify the -text files and change the line termination characters from one type (say DOS) to -another (say Unix). - -One word of warning: the class is not at all optimized for big files and thus -it will load the file entirely into memory when opened. Of course, you should not -work in this way with large files (as an estimation, anything over 1 Megabyte is -surely too big for this class). On the other hand, it is not a serious -limitation for small files like configuration files or program sources -which are well handled by wxTextFile. - -The typical things you may do with wxTextFile in order are: - -\begin{itemize}\itemsep=0pt -\item Create and open it: this is done with either -\helpref{Create}{wxtextfilecreate} or \helpref{Open}{wxtextfileopen} -function which opens the file (name may be specified either as the argument to -these functions or in the constructor), reads its contents in memory (in the -case of {\tt Open()}) and closes it. -\item Work with the lines in the file: this may be done either with "direct -access" functions like \helpref{GetLineCount}{wxtextfilegetlinecount} and -\helpref{GetLine}{wxtextfilegetline} ({\it operator[]} does exactly the same -but looks more like array addressing) or with "sequential access" functions -which include \helpref{GetFirstLine}{wxtextfilegetfirstline}/ -\helpref{GetNextLine}{wxtextfilegetnextline} and also -\helpref{GetLastLine}{wxtextfilegetlastline}/\helpref{GetPrevLine}{wxtextfilegetprevline}. -For the sequential access functions the current line number is maintained: it is -returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} and may be -changed with \helpref{GoToLine}{wxtextfilegotoline}. -\item Add/remove lines to the file: \helpref{AddLine}{wxtextfileaddline} and -\helpref{InsertLine}{wxtextfileinsertline} add new lines while -\helpref{RemoveLine}{wxtextfileremoveline} deletes the existing ones. -\helpref{Clear}{wxtextfileclear} resets the file to empty. -\item Save your changes: notice that the changes you make to the file will {\bf -not} be saved automatically; calling \helpref{Close}{wxtextfileclose} or doing -nothing discards them! To save the changes you must explicitly call -\helpref{Write}{wxtextfilewrite} - here, you may also change the line -termination type if you wish. -\end{itemize} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/textfile.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -The following constants identify the line termination type: - -\begin{verbatim} -enum wxTextFileType -{ - wxTextFileType_None, // incomplete (the last line of the file only) - wxTextFileType_Unix, // line is terminated with 'LF' = 0xA = 10 = '\n' - wxTextFileType_Dos, // 'CR' 'LF' - wxTextFileType_Mac // 'CR' = 0xD = 13 = '\r' -}; -\end{verbatim} - -\wxheading{See also} - -\helpref{wxFile}{wxfile} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextFile::wxTextFile}\label{wxtextfilectordef} - -\constfunc{}{wxTextFile}{\void} - -Default constructor, use \helpref{Create}{wxtextfilecreate} or -\helpref{Open}{wxtextfileopen} with a file name parameter to initialize the object. - -\membersection{wxTextFile::wxTextFile}\label{wxtextfilector} - -\constfunc{}{wxTextFile}{\param{const wxString\& }{strFile}} - -Constructor does not load the file into memory, use Open() to do it. - -\membersection{wxTextFile::\destruct{wxTextFile}}\label{wxtextfiledtor} - -\constfunc{}{\destruct{wxTextFile}}{\void} - -Destructor does nothing. - -\membersection{wxTextFile::AddLine}\label{wxtextfileaddline} - -\constfunc{void}{AddLine}{\param{const wxString\& }{str}, \param{wxTextFileType }{type = typeDefault}} - -Adds a line to the end of file. - -\membersection{wxTextFile::Close}\label{wxtextfileclose} - -\constfunc{bool}{Close}{\void} - -Closes the file and frees memory, {\bf losing all changes}. Use \helpref{Write()}{wxtextfilewrite} -if you want to save them. - -\membersection{wxTextFile::Create}\label{wxtextfilecreate} - -\constfunc{bool}{Create}{\void} - -\constfunc{bool}{Create}{\param{const wxString\& }{strFile}} - -Creates the file with the given name or the name which was given in the -\helpref{constructor}{wxtextfilector}. The array of file lines is initially -empty. - -It will fail if the file already exists, \helpref{Open}{wxtextfileopen} should -be used in this case. - -\membersection{wxTextFile::Exists}\label{wxtextfileexists} - -\constfunc{bool}{Exists}{\void} - -Return true if file exists - the name of the file should have been specified -in the constructor before calling Exists(). - -\membersection{wxTextFile::IsOpened}\label{wxtextfileisopened} - -\constfunc{bool}{IsOpened}{\void} - -Returns true if the file is currently opened. - -\membersection{wxTextFile::GetLineCount}\label{wxtextfilegetlinecount} - -\constfunc{size\_t}{GetLineCount}{\void} - -Get the number of lines in the file. - -\membersection{wxTextFile::GetLine}\label{wxtextfilegetline} - -\constfunc{wxString\&}{GetLine}{\param{size\_t }{n}} - -Retrieves the line number {\it n} from the file. The returned line may be -modified but you shouldn't add line terminator at the end - this will be done -by wxTextFile. - -\membersection{wxTextFile::operator[]}\label{wxtextfileoperatorarray} - -\constfunc{wxString\&}{operator[]}{\param{size\_t }{n}} - -The same as \helpref{GetLine}{wxtextfilegetline}. - -\membersection{wxTextFile::GetCurrentLine}\label{wxtextfilegetcurrentline} - -\constfunc{size\_t}{GetCurrentLine}{\void} - -Returns the current line: it has meaning only when you're using -GetFirstLine()/GetNextLine() functions, it doesn't get updated when -you're using "direct access" functions like GetLine(). GetFirstLine() and -GetLastLine() also change the value of the current line, as well as -GoToLine(). - -\membersection{wxTextFile::GoToLine}\label{wxtextfilegotoline} - -\constfunc{void}{GoToLine}{\param{size\_t }{n}} - -Changes the value returned by \helpref{GetCurrentLine}{wxtextfilegetcurrentline} -and used by \helpref{GetFirstLine()}{wxtextfilegetfirstline}/\helpref{GetNextLine()}{wxtextfilegetnextline}. - -\membersection{wxTextFile::Eof}\label{wxtextfileeof} - -\constfunc{bool}{Eof}{\void} - -Returns true if the current line is the last one. - -\membersection{wxTextFile::GetEOL}\label{wxtextfilegeteol} - -\constfunc{static const char*}{GetEOL}{\param{wxTextFileType }{type = typeDefault}} - -Get the line termination string corresponding to given constant. {\it typeDefault} is -the value defined during the compilation and corresponds to the native format -of the platform, i.e. it will be wxTextFileType\_Dos under Windows, -wxTextFileType\_Unix under Unix (including Mac OS X when compiling with the -Apple Developer Tools) and wxTextFileType\_Mac under Mac OS (including -Mac OS X when compiling with CodeWarrior). - -\membersection{wxTextFile::GetFirstLine}\label{wxtextfilegetfirstline} - -\constfunc{wxString\&}{GetFirstLine}{\void} - -This method together with \helpref{GetNextLine()}{wxtextfilegetnextline} -allows more "iterator-like" traversal of the list of lines, i.e. you may -write something like: - -\begin{verbatim} -wxTextFile file; -... -for ( str = file.GetFirstLine(); !file.Eof(); str = file.GetNextLine() ) -{ - // do something with the current line in str -} -// do something with the last line in str -\end{verbatim} - -\membersection{wxTextFile::GetNextLine}\label{wxtextfilegetnextline} - -\func{wxString\&}{GetNextLine}{\void} - -Gets the next line (see \helpref{GetFirstLine}{wxtextfilegetfirstline} for -the example). - -\membersection{wxTextFile::GetPrevLine}\label{wxtextfilegetprevline} - -\func{wxString\&}{GetPrevLine}{\void} - -Gets the previous line in the file. - -\membersection{wxTextFile::GetLastLine}\label{wxtextfilegetlastline} - -\func{wxString\&}{GetLastLine}{\void} - -Gets the last line of the file. Together with -\helpref{GetPrevLine}{wxtextfilegetprevline} it allows to enumerate the lines -in the file from the end to the beginning like this: - -\begin{verbatim} -wxTextFile file; -... -for ( str = file.GetLastLine(); - file.GetCurrentLine() > 0; - str = file.GetPrevLine() ) -{ - // do something with the current line in str -} -// do something with the first line in str -\end{verbatim} - -\membersection{wxTextFile::GetLineType}\label{wxtextfilegetlinetype} - -\constfunc{wxTextFileType}{GetLineType}{\param{size\_t }{n}} - -Get the type of the line (see also \helpref{GetEOL}{wxtextfilegeteol}) - -\membersection{wxTextFile::GuessType}\label{wxtextfileguesstype} - -\constfunc{wxTextFileType}{GuessType}{\void} - -Guess the type of file (which is supposed to be opened). If sufficiently -many lines of the file are in DOS/Unix/Mac format, the corresponding value will -be returned. If the detection mechanism fails wxTextFileType\_None is returned. - -\membersection{wxTextFile::GetName}\label{wxtextfilegetname} - -\constfunc{const char*}{GetName}{\void} - -Get the name of the file. - -\membersection{wxTextFile::InsertLine}\label{wxtextfileinsertline} - -\constfunc{void}{InsertLine}{\param{const wxString\& }{str}, \param{size\_t }{n}, \param{wxTextFileType }{type = typeDefault}} - -Insert a line before the line number {\it n}. - -\membersection{wxTextFile::Open}\label{wxtextfileopen} - -\constfunc{bool}{Open}{\param{const wxMBConv\&}{ conv = wxConvAuto()}} - -\constfunc{bool}{Open}{\param{const wxString\& }{strFile}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Open() opens the file with the given name or the name which was given in the -\helpref{constructor}{wxtextfilector} and also loads file in memory on -success. It will fail if the file does not exist, -\helpref{Create}{wxtextfilecreate} should be used in this case. - -The {\it conv} argument is only meaningful in Unicode build of wxWidgets when -it is used to convert the file to wide character representation. - -\membersection{wxTextFile::RemoveLine}\label{wxtextfileremoveline} - -\constfunc{void}{RemoveLine}{\param{size\_t }{n}} - -Delete line number {\it n} from the file. - -\membersection{wxTextFile::Clear}\label{wxtextfileclear} - -\constfunc{void}{Clear}{\void} - -Delete all lines from the file, set current line number to 0. - -\membersection{wxTextFile::Write}\label{wxtextfilewrite} - -\constfunc{bool}{Write}{\param{wxTextFileType }{typeNew = wxTextFileType\_None}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Change the file on disk. The {\it typeNew} parameter allows you to change the -file format (default argument means "don't change type") and may be used to -convert, for example, DOS files to Unix. - -The {\it conv} argument is only meaningful in Unicode build of wxWidgets when -it is used to convert all lines to multibyte representation before writing them -them to physical file. - -Returns true if operation succeeded, false if it failed. - diff --git a/docs/latex/wx/tfile.tex b/docs/latex/wx/tfile.tex deleted file mode 100644 index 78dde1c7bc..0000000000 --- a/docs/latex/wx/tfile.tex +++ /dev/null @@ -1,31 +0,0 @@ -\section{File classes and functions overview}\label{wxfileoverview} - -Classes: \helpref{wxFile}{wxfile}, \helpref{wxDir}{wxdir}, \helpref{wxTempFile}{wxtempfile}, -\helpref{wxTextFile}{wxtextfile} - -Functions: see \helpref{file functions}{filefunctions}. - -wxWidgets provides some functions and classes to facilitate working with files. -As usual, the accent is put on cross-platform features which explains, for -example, the \helpref{wxTextFile}{wxtextfile} class which may be used to convert -between different types of text files (DOS/Unix/Mac). - -wxFile may be used for low-level IO. It contains all the usual functions to work -with files (opening/closing, reading/writing, seeking, and so on) but compared with -using standard C functions, has error checking (in case of an error a message -is logged using \helpref{wxLog}{wxlog} facilities) and closes the file -automatically in the destructor which may be quite convenient. - -wxTempFile is a very small file designed to make replacing the files contents -safer - see its \helpref{documentation}{wxtempfile} for more details. - -wxTextFile is a general purpose class for working with small text files on line -by line basis. It is especially well suited for working with configuration files -and program source files. It can be also used to work with files with "non -native" line termination characters and write them as "native" files if needed -(in fact, the files may be written in any format). - -wxDir is a helper class for enumerating the files or subdirectories of a -directory. It may be used to enumerate all files, only files satisfying the -given template mask or only non-hidden files. - diff --git a/docs/latex/wx/tfont.tex b/docs/latex/wx/tfont.tex deleted file mode 100644 index 21ce73db3d..0000000000 --- a/docs/latex/wx/tfont.tex +++ /dev/null @@ -1,64 +0,0 @@ -\section{wxFont overview}\label{wxfontoverview} - -Class: \helpref{wxFont}{wxfont}, \helpref{wxFontDialog}{wxfontdialog} - -A font is an object which determines the appearance of text, primarily -when drawing text to a window or device context. A font is determined by -the following parameters (not all of them have to be specified, of course): - -\begin{twocollist}\itemsep=0pt -\twocolitem{Point size}{This is the standard way of referring to text size.} -\twocolitem{Family}{Supported families are: - {\bf wxDEFAULT, wxDECORATIVE, wxROMAN, wxSCRIPT, wxSWISS, wxMODERN}. - {\bf wxMODERN} is a fixed pitch font; the others are either fixed or variable pitch.} -\twocolitem{Style}{The value can be {\bf wxNORMAL, wxSLANT} or {\bf wxITALIC}.} -\twocolitem{Weight}{The value can be {\bf wxNORMAL, wxLIGHT} or {\bf wxBOLD}.} -\twocolitem{Underlining}{The value can be true or false.} -\twocolitem{Face name}{An optional string specifying the actual typeface to be used. If NULL, -a default typeface will chosen based on the family.} -\twocolitem{Encoding}{The font encoding (see {\bf wxFONTENCODING\_XXX} -constants and the \helpref{font overview}{wxfontencodingoverview} for more -details)} -\end{twocollist} - -Specifying a family, rather than a specific typeface name, ensures a degree of -portability across platforms because a suitable font will be chosen for the -given font family, however it doesn't allow to choose a font precisely as the -parameters above don't suffice, in general, to identify all the available fonts -and this is where using the native font descriptions may be helpful - see -below. - -Under Windows, the face name can be one of the installed fonts on the user's -system. Since the choice of fonts differs from system to system, either choose -standard Windows fonts, or if allowing the user to specify a face name, store -the family name with any file that might be transported to a different Windows -machine or other platform. - -\normalbox{{\bf Note:} There is currently a difference between the appearance -of fonts on the two platforms, if the mapping mode is anything other than -wxMM\_TEXT. Under X, font size is always specified in points. Under MS -Windows, the unit for text is points but the text is scaled according to the -current mapping mode. However, user scaling on a device context will also -scale fonts under both environments.} - -\subsection{Native font information}\label{nativefontinformation} - -An alternative way of choosing fonts is to use the native font description. -This is the only acceptable solution if the user is allowed to choose the font -using the \helpref{wxFontDialog}{wxfontdialog} because the selected font cannot -be described using only the family name and so, if only family name is stored -permanently, the user would almost surely see a different font in the program -later. - -Instead, you should store the value returned by -\helpref{wxFont::GetNativeFontInfoDesc}{wxfontgetnativefontinfodesc} and pass -it to \helpref{wxFont::SetNativeFontInfo}{wxfontsetnativefontinfo} later to -recreate exactly the same font. - -Note that the contents of this string depends on the platform and shouldn't be -used for any other purpose (in particular, it is not meant to be shown to the -user). Also please note that although the native font information is currently -implemented for Windows and Unix (GTK+ and Motif) ports only, all the methods -are available for all the ports and should be used to make your program work -correctly when they are implemented later. - diff --git a/docs/latex/wx/tfontenc.tex b/docs/latex/wx/tfontenc.tex deleted file mode 100644 index 1c5ad6f7fa..0000000000 --- a/docs/latex/wx/tfontenc.tex +++ /dev/null @@ -1,85 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tfontenc.tex -%% Purpose: font encoding overview -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 03.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Font encoding overview}\label{wxfontencodingoverview} - -wxWidgets has support for multiple font encodings. -By encoding we mean here the mapping between the character codes and the -letters. Probably the most well-known encoding is (7 bit) ASCII one which is -used almost universally now to represent the letters of the English alphabet -and some other common characters. However, it is not enough to represent the -letters of foreign alphabets and here other encodings come into play. Please -note that we will only discuss 8-bit fonts here and not -\helpref{Unicode}{unicode}. - -Font encoding support is ensured by several classes: -\helpref{wxFont}{wxfont} itself, but also -\helpref{wxFontEnumerator}{wxfontenumerator} and -\helpref{wxFontMapper}{wxfontmapper}. wxFont encoding support is reflected by -a (new) constructor parameter {\it encoding} which takes one of the following -values (elements of enumeration type {\tt wxFontEncoding}): - -\begin{twocollist} -\twocolitem{wxFONTENCODING\_SYSTEM}{The default encoding of the underlying -operating system (notice that this might be a "foreign" encoding for foreign -versions of Windows 9x/NT).} -\twocolitem{wxFONTENCODING\_DEFAULT}{The applications default encoding as -returned by \helpref{wxFont::GetDefaultEncoding}{wxfontgetdefaultencoding}. On -program startup, the applications default encoding is the same as -wxFONTENCODING\_SYSTEM, but may be changed to make all the fonts created later -to use it (by default).} -\twocolitem{wxFONTENCODING\_ISO8859\_1..15}{ISO8859 family encodings which are -usually used by all non-Microsoft operating systems} -\twocolitem{wxFONTENCODING\_KOI8}{Standard Cyrillic encoding for the Internet -(but see also wxFONTENCODING\_ISO8859\_5 and wxFONTENCODING\_CP1251)} -\twocolitem{wxFONTENCODING\_CP1250}{Microsoft analogue of ISO8859-2} -\twocolitem{wxFONTENCODING\_CP1251}{Microsoft analogue of ISO8859-5} -\twocolitem{wxFONTENCODING\_CP1252}{Microsoft analogue of ISO8859-1} -\end{twocollist} - -As you may see, Microsoft's encoding partly mirror the standard ISO8859 ones, -but there are (minor) differences even between ISO8859-1 (Latin1, ISO encoding -for Western Europe) and CP1251 (WinLatin1, standard code page for English -versions of Windows) and there are more of them for other encodings. - -The situation is particularly complicated with Cyrillic encodings for which -(more than) three incompatible encodings exist: KOI8 (the old standard, widely -used on the Internet), ISO8859-5 (ISO standard for Cyrillic) and CP1251 -(WinCyrillic). - -This abundance of (incompatible) encodings should make it clear that using -encodings is less easy than it might seem. The problems arise both from the -fact that the standard encodings for the given language (say Russian, which is -written in Cyrillic) are different on different platforms and because the -fonts in the given encoding might just not be installed (this is especially a -problem with Unix, or, in general, non-Win32 systems). - -To clarify, the \helpref{wxFontEnumerator}{wxfontenumerator} -class may be used to enumerate both all available encodings and to find the -facename(s) in which the given encoding exists. If you can find the font in -the correct encoding with wxFontEnumerator then your troubles are over, but, -unfortunately, sometimes this is not enough. For example, there is no standard -way (that I know of, please tell me if you do!) to find a font on a Windows system -for KOI8 encoding (only for WinCyrillic one which is quite different), so -\helpref{wxFontEnumerator}{wxfontenumerator} will never return one, even if -the user has installed a KOI8 font on his system. - -To solve this problem, a \helpref{wxFontMapper}{wxfontmapper} class is provided. -This class stores the mapping between the encodings and the font face -names which support them in \helpref{wxConfig}{wxconfigoverview} object. Of -course, it would be fairly useless if it tried to determine these mappings by -itself, so, instead, it (optionally) asks the user and remembers his answers -so that the next time the program will automatically choose the correct font. - -All these topics are illustrated by the \helpref{font sample}{samplefont}; -please refer to it and the documentation of the classes mentioned here for -further explanations. - diff --git a/docs/latex/wx/tglbtn.tex b/docs/latex/wx/tglbtn.tex deleted file mode 100644 index 88519f5fd9..0000000000 --- a/docs/latex/wx/tglbtn.tex +++ /dev/null @@ -1,129 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tglbtn.tex -%% Purpose: wxToggleButton documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 20.11.01 -%% RCS-ID: $Id$ -%% Copyright: (c) 2001 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxToggleButton}}\label{wxtogglebutton} - -wxToggleButton is a button that stays pressed when clicked by the user. In -other words, it is similar to \helpref{wxCheckBox}{wxcheckbox} in -functionality but looks like a \helpref{wxButton}{wxbutton}. - -Since wxWidgets version 2.9.0 this control emits an update UI event. - -You can see wxToggleButton in action in the sixth page of the -\helpref{controls}{samplecontrols} sample. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tglbtn.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -There are no special styles for wxToggleButton. - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TOGGLEBUTTON(id, func)}}{Handles a toggle button click event.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxCheckBox}{wxcheckbox}, \helpref{wxButton}{wxbutton}, -\helpref{wxBitmapToggleButton}{wxbitmaptogglebutton} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxToggleButton::wxToggleButton}\label{wxtogglebuttonconstr} - -\func{}{wxToggleButton}{\void} - -Default constructor. - -\func{}{wxToggleButton}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Constructor, creating and showing a toggle button. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be {\tt NULL}.} - -\docparam{id}{Toggle button identifier. A value of $-1$ indicates a default value.} - -\docparam{label}{Text to be displayed next to the toggle button.} - -\docparam{pos}{Toggle button position. If the position $(-1, -1)$ is specified then a default position is chosen.} - -\docparam{size}{Toggle button size. If the default size $(-1, -1)$ is specified then a default size is chosen.} - -\docparam{style}{Window style. See \helpref{wxToggleButton}{wxtogglebutton}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxToggleButton::Create}{wxtogglebuttoncreate}, \helpref{wxValidator}{wxvalidator} - -\membersection{wxToggleButton::\destruct{wxToggleButton}}\label{wxtogglebuttondtor} - -\func{}{\destruct{wxToggleButton}}{\void} - -Destructor, destroying the toggle button. - -\membersection{wxToggleButton::Create}\label{wxtogglebuttoncreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxString\& }{label}, \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp -\param{const wxSize\& }{size = wxDefaultSize}, \param{long}{ style = 0},\rtfsp -\param{const wxValidator\& }{val}, \param{const wxString\& }{name = ``checkBox"}} - -Creates the toggle button for two-step construction. See \helpref{wxToggleButton::wxToggleButton}{wxtogglebuttonconstr}\rtfsp -for details. - -\membersection{wxToggleButton::GetValue}\label{wxtogglebuttongetvalue} - -\constfunc{bool}{GetValue}{\void} - -Gets the state of the toggle button. - -\wxheading{Return value} - -Returns {\tt true} if it is pressed, {\tt false} otherwise. - -\membersection{wxToggleButton::SetValue}\label{wxtogglebuttonsetvalue} - -\func{void}{SetValue}{\param{bool}{ state}} - -Sets the toggle button to the given state. This does not cause a -{\tt EVT\_TOGGLEBUTTON} event to be emitted. - -\wxheading{Parameters} - -\docparam{state}{If {\tt true}, the button is pressed.} - diff --git a/docs/latex/wx/tgrid.tex b/docs/latex/wx/tgrid.tex deleted file mode 100644 index 1b59a8fb2f..0000000000 --- a/docs/latex/wx/tgrid.tex +++ /dev/null @@ -1,60 +0,0 @@ -\section{wxGrid classes overview}\label{gridoverview} - -Classes: \helpref{wxGrid}{wxgrid} - -\subsection{Introduction}\label{introductiontowxgrid} -wxGrid and its related classes are used for displaying and editing tabular data. - -\subsection{Getting started: a simple example}\label{simplewxgridexample} -For simple applications you need only refer to the wxGrid class in your -code. This example shows how you might create a grid in a frame or -dialog constructor and illustrates some of the formatting functions. - -\begin{verbatim} - - // Create a wxGrid object - - grid = new wxGrid( this, - -1, - wxPoint( 0, 0 ), - wxSize( 400, 300 ) ); - - // Then we call CreateGrid to set the dimensions of the grid - // (100 rows and 10 columns in this example) - grid->CreateGrid( 100, 10 ); - - // We can set the sizes of individual rows and columns - // in pixels - grid->SetRowSize( 0, 60 ); - grid->SetColSize( 0, 120 ); - - // And set grid cell contents as strings - grid->SetCellValue( 0, 0, "wxGrid is good" ); - - // We can specify that some cells are read-only - grid->SetCellValue( 0, 3, "This is read-only" ); - grid->SetReadOnly( 0, 3 ); - - // Colours can be specified for grid cell contents - grid->SetCellValue(3, 3, "green on grey"); - grid->SetCellTextColour(3, 3, *wxGREEN); - grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY); - - // We can specify the some cells will store numeric - // values rather than strings. Here we set grid column 5 - // to hold floating point values displayed with width of 6 - // and precision of 2 - grid->SetColFormatFloat(5, 6, 2); - grid->SetCellValue(0, 6, "3.1415"); - -\end{verbatim} - -\subsection{A more complex example}\label{complexwxgridexample} -Yet to be written - -\subsection{How the wxGrid classes relate to each other}\label{wxgridclassesrelations} -Yet to be written - -\subsection{Keyboard and mouse actions}\label{keyboardandmouseinwxgrid} -Yet to be written - diff --git a/docs/latex/wx/tguide.tex b/docs/latex/wx/tguide.tex deleted file mode 100644 index c78f52a345..0000000000 --- a/docs/latex/wx/tguide.tex +++ /dev/null @@ -1,51 +0,0 @@ -\section{Writing a wxWidgets application: a rough guide}\label{roughguide} - -To set a wxWidgets application going, you will need to derive a \helpref{wxApp}{wxapp} class and -override \helpref{wxApp::OnInit}{wxapponinit}. - -An application must have a top-level \helpref{wxFrame}{wxframe} or \helpref{wxDialog}{wxdialog} window. -Each frame may contain one or more instances of classes such as \helpref{wxPanel}{wxpanel}, \helpref{wxSplitterWindow}{wxsplitterwindow}\rtfsp -or other windows and controls. - -A frame can have a \helpref{wxMenuBar}{wxmenubar}, a \helpref{wxToolBar}{wxtoolbar}, a status line, and a \helpref{wxIcon}{wxicon} for -when the frame is iconized. - -A \helpref{wxPanel}{wxpanel} is used to place controls (classes derived from \helpref{wxControl}{wxcontrol}) -which are used for user interaction. Examples of controls are \helpref{wxButton}{wxbutton}, -\rtfsp\helpref{wxCheckBox}{wxcheckbox}, \helpref{wxChoice}{wxchoice}, \helpref{wxListBox}{wxlistbox}, -\rtfsp\helpref{wxRadioBox}{wxradiobox}, \helpref{wxSlider}{wxslider}. - -Instances of \helpref{wxDialog}{wxdialog} can also be used for controls and they have -the advantage of not requiring a separate frame. - -Instead of creating a dialog box and populating it with items, it is possible to choose -one of the convenient common dialog classes, such as \helpref{wxMessageDialog}{wxmessagedialog}\rtfsp -and \helpref{wxFileDialog}{wxfiledialog}. - -You never draw directly onto a window - you use a {\it device context} (DC). \helpref{wxDC}{wxdc} is -the base for \helpref{wxClientDC}{wxclientdc}, \helpref{wxPaintDC}{wxpaintdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPostScriptDC}{wxpostscriptdc}, -\rtfsp\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxMetafileDC}{wxmetafiledc} and \helpref{wxPrinterDC}{wxprinterdc}. -If your drawing functions have {\bf wxDC} as a parameter, you can pass any of these DCs -to the function, and thus use the same code to draw to several different devices. -You can draw using the member functions of {\bf wxDC}, such as \helpref{wxDC::DrawLine}{wxdcdrawline}\rtfsp -and \helpref{wxDC::DrawText}{wxdcdrawtext}. Control colour on a window (\helpref{wxColour}{wxcolour}) with -brushes (\helpref{wxBrush}{wxbrush}) and pens (\helpref{wxPen}{wxpen}). - -To intercept events, you add a DECLARE\_EVENT\_TABLE macro to the window class declaration, -and put a BEGIN\_EVENT\_TABLE ... END\_EVENT\_TABLE block in the implementation file. Between these -macros, you add event macros which map the event (such as a mouse click) to a member function. -These might override predefined event handlers such as for \helpref{wxKeyEvent}{wxkeyevent} and -\rtfsp\helpref{wxMouseEvent}{wxmouseevent}. - -Most modern applications will have an on-line, hypertext help system; for this, you -need wxHelp and the \helpref{wxHelpController}{wxhelpcontroller} class to control -wxHelp. - -GUI applications aren't all graphical wizardry. List and hash table needs are -catered for by \helpref{wxList}{wxlist} and \helpref{wxHashMap}{wxhashmap}. -You will undoubtedly need some platform-independent \helpref{file functions}{filefunctions}, -and you may find it handy to maintain and search a list of paths using \helpref{wxPathList}{wxpathlist}. -There's a \helpref{miscellany}{miscellany} of operating system and other functions. - -See also \helpref{Classes by Category}{classesbycat} for a list of classes. - diff --git a/docs/latex/wx/thread.tex b/docs/latex/wx/thread.tex deleted file mode 100644 index a0b29545c4..0000000000 --- a/docs/latex/wx/thread.tex +++ /dev/null @@ -1,500 +0,0 @@ -\section{\class{wxThread}}\label{wxthread} - -A thread is basically a path of execution through a program. Threads are -sometimes called {\it light-weight processes}, but the fundamental difference -between threads and processes is that memory spaces of different processes are -separated while all threads share the same address space. - -While it makes it much easier to share common data between several threads, it also -makes it much easier to shoot oneself in the foot, so careful use of synchronization -objects such as \helpref{mutexes}{wxmutex} or \helpref{critical sections}{wxcriticalsection} is recommended. In addition, don't create global thread -objects because they allocate memory in their constructor, which will cause -problems for the memory checking system. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/thread.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxMutex}{wxmutex}, \helpref{wxCondition}{wxcondition}, \helpref{wxCriticalSection}{wxcriticalsection} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{Types of wxThreads}\label{typeswxthread} - -There are two types of threads in wxWidgets: {\it detached} and {\it joinable}, -modeled after the the POSIX thread API. This is different from the Win32 API -where all threads are joinable. - -By default wxThreads in wxWidgets use the detached behavior. Detached threads -delete themselves once they have completed, either by themselves when they complete -processing or through a call to \helpref{wxThread::Delete}{wxthreaddelete}, and thus -must be created on the heap (through the new operator, for example). Conversely, -joinable threads do not delete themselves when they are done processing and as such -are safe to create on the stack. Joinable threads also provide the ability -for one to get value it returned from \helpref{wxThread::Entry}{wxthreadentry} -through \helpref{wxThread::Wait}{wxthreadwait}. - -You shouldn't hurry to create all the threads joinable, however, because this -has a disadvantage as well: you {\bf must} Wait() for a joinable thread or the -system resources used by it will never be freed, and you also must delete the -corresponding wxThread object yourself if you did not create it on the stack. In -contrast, detached threads are of the "fire-and-forget" kind: you only have to start -a detached thread and it will terminate and destroy itself. - -\membersection{wxThread deletion}\label{deletionwxthread} - -Regardless of whether it has terminated or not, you should call -\helpref{wxThread::Wait}{wxthreadwait} on a joinable thread to release its -memory, as outlined in \helpref{Types of wxThreads}{typeswxthread}. If you created -a joinable thread on the heap, remember to delete it manually with the delete -operator or similar means as only detached threads handle this type of memory -management. - -Since detached threads delete themselves when they are finished processing, -you should take care when calling a routine on one. If you are certain the -thread is still running and would like to end it, you may call -\helpref{wxThread::Delete}{wxthreaddelete} to gracefully end it (which implies -that the thread will be deleted after that call to Delete()). It should be -implied that you should never attempt to delete a detached thread with the -delete operator or similar means. - -As mentioned, \helpref{wxThread::Wait}{wxthreadwait} or -\helpref{wxThread::Delete}{wxthreaddelete} attempts to gracefully terminate -a joinable and detached thread, respectively. It does this by waiting until -the thread in question calls \helpref{wxThread::TestDestroy}{wxthreadtestdestroy} -or ends processing (returns from \helpref{wxThread::Entry}{wxthreadentry}). - -Obviously, if the thread does call TestDestroy() and does not end the calling -thread will come to halt. This is why it is important to call TestDestroy() in -the Entry() routine of your threads as often as possible. - -As a last resort you can end the thread immediately through -\helpref{wxThread::Kill}{wxthreadkill}. It is strongly recommended that you -do not do this, however, as it does not free the resources associated with -the object (although the wxThread object of detached threads will still be -deleted) and could leave the C runtime library in an undefined state. - -\membersection{wxWidgets calls in secondary threads}\label{secondarywxthread} - -All threads other then the "main application thread" (the one -\helpref{wxApp::OnInit}{wxapponinit} or your main function runs in, for -example) are considered "secondary threads". These include all threads created -by \helpref{wxThread::Create}{wxthreadcreate} or the corresponding constructors. - -GUI calls, such as those to a \helpref{wxWindow}{wxwindow} or -\helpref{wxBitmap}{wxbitmap} are explicitly not safe at all in secondary threads -and could end your application prematurely. This is due to several reasons, -including the underlying native API and the fact that wxThread does not run a -GUI event loop similar to other APIs as MFC. - -A workaround that works on some wxWidgets ports is calling \helpref{wxMutexGUIEnter}{wxmutexguienter} -before any GUI calls and then calling \helpref{wxMutexGUILeave}{wxmutexguileave} afterwords. However, -the recommended way is to simply process the GUI calls in the main thread -through an event that is posted by either \helpref{wxPostEvent}{wxpostevent} or -\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}. This does -not imply that calls to these classes are thread-safe, however, as most -wxWidgets classes are not thread-safe, including wxString. - -\membersection{Don't poll a wxThread}\label{dontpollwxthread} - -A common problem users experience with wxThread is that in their main thread -they will check the thread every now and then to see if it has ended through -\helpref{wxThread::IsRunning}{wxthreadisrunning}, only to find that their -application has run into problems because the thread is using the default -behavior and has already deleted itself. Naturally, they instead attempt to -use joinable threads in place of the previous behavior. - -However, polling a wxThread for when it has ended is in general a bad idea - -in fact calling a routine on any running wxThread should be avoided if -possible. Instead, find a way to notify yourself when the thread has ended. -Usually you only need to notify the main thread, in which case you can post -an event to it via \helpref{wxPostEvent}{wxpostevent} or -\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent}. In -the case of secondary threads you can call a routine of another class -when the thread is about to complete processing and/or set the value -of a variable, possibly using \helpref{mutexes}{wxmutex} and/or other -synchronization means if necessary. - -\membersection{wxThread::wxThread}\label{wxthreadctor} - -\func{}{wxThread}{\param{wxThreadKind }{kind = wxTHREAD\_DETACHED}} - -This constructor creates a new detached (default) or joinable C++ thread object. It -does not create or start execution of the real thread -- for this you should -use the \helpref{Create}{wxthreadcreate} and \helpref{Run}{wxthreadrun} methods. - -The possible values for {\it kind} parameters are: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTHREAD\_DETACHED}}{Creates a detached thread.} -\twocolitem{{\bf wxTHREAD\_JOINABLE}}{Creates a joinable thread.} -\end{twocollist} - - -\membersection{wxThread::\destruct{wxThread}}\label{wxthreaddtor} - -\func{}{\destruct{wxThread}}{\void} - -The destructor frees the resources associated with the thread. Notice that you -should never delete a detached thread -- you may only call -\helpref{Delete}{wxthreaddelete} on it or wait until it terminates (and auto -destructs) itself. Because the detached threads delete themselves, they can -only be allocated on the heap. - -Joinable threads should be deleted explicitly. The \helpref{Delete}{wxthreaddelete} and \helpref{Kill}{wxthreadkill} functions -will not delete the C++ thread object. It is also safe to allocate them on -stack. - - -\membersection{wxThread::Create}\label{wxthreadcreate} - -\func{wxThreadError}{Create}{\param{unsigned int }{stackSize = 0}} - -Creates a new thread. The thread object is created in the suspended state, and you -should call \helpref{Run}{wxthreadrun} to start running it. You may optionally -specify the stack size to be allocated to it (Ignored on platforms that don't -support setting it explicitly, eg. Unix system without -\texttt{pthread\_attr\_setstacksize}). If you do not specify the stack size, -the system's default value is used. - -{\bf Warning:} It is a good idea to explicitly specify a value as systems' -default values vary from just a couple of KB on some systems (BSD and -OS/2 systems) to one or several MB (Windows, Solaris, Linux). So, if you -have a thread that requires more than just a few KB of memory, you will -have mysterious problems on some platforms but not on the common ones. On the -other hand, just indicating a large stack size by default will give you -performance issues on those systems with small default stack since those -typically use fully committed memory for the stack. On the contrary, if -use a lot of threads (say several hundred), virtual adress space can get tight -unless you explicitly specify a smaller amount of thread stack space for each -thread. - - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTHREAD\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxTHREAD\_NO\_RESOURCE}}{There were insufficient resources to create a new thread.} -\twocolitem{{\bf wxTHREAD\_RUNNING}}{The thread is already running.} -\end{twocollist} - - -\membersection{wxThread::Delete}\label{wxthreaddelete} - -\func{wxThreadError}{Delete}{\void} - -Calling \helpref{Delete}{wxthreaddelete} gracefully terminates a -detached thread, either when the thread calls \helpref{TestDestroy}{wxthreadtestdestroy} or finished processing. - -(Note that while this could work on a joinable thread you simply should not -call this routine on one as afterwards you may not be able to call -\helpref{wxThread::Wait}{wxthreadwait} to free the memory of that thread). - -See \helpref{wxThread deletion}{deletionwxthread} for a broader explanation of this routine. - -%%FIXME: What does this return and why? - -\membersection{wxThread::Entry}\label{wxthreadentry} - -\func{virtual ExitCode}{Entry}{\void} - -This is the entry point of the thread. This function is pure virtual and must -be implemented by any derived class. The thread execution will start here. - -The returned value is the thread exit code which is only useful for -joinable threads and is the value returned by \helpref{Wait}{wxthreadwait}. - -This function is called by wxWidgets itself and should never be called -directly. - - -\membersection{wxThread::Exit}\label{wxthreadexit} - -\func{void}{Exit}{\param{ExitCode }{exitcode = 0}} - -This is a protected function of the wxThread class and thus can only be called -from a derived class. It also can only be called in the context of this -thread, i.e. a thread can only exit from itself, not from another thread. - -This function will terminate the OS thread (i.e. stop the associated path of -execution) and also delete the associated C++ object for detached threads. -\helpref{wxThread::OnExit}{wxthreadonexit} will be called just before exiting. - - -\membersection{wxThread::GetCPUCount}\label{wxthreadgetcpucount} - -\func{static int}{GetCPUCount}{\void} - -Returns the number of system CPUs or -1 if the value is unknown. - -\wxheading{See also} - -\helpref{SetConcurrency}{wxthreadsetconcurrency} - - -\membersection{wxThread::GetCurrentId}\label{wxthreadgetcurrentid} - -\func{static unsigned long}{GetCurrentId}{\void} - -Returns the platform specific thread ID of the current thread as a -long. This can be used to uniquely identify threads, even if they are -not wxThreads. - - -\membersection{wxThread::GetId}\label{wxthreadgetid} - -\constfunc{unsigned long}{GetId}{\void} - -Gets the thread identifier: this is a platform dependent number that uniquely identifies the -thread throughout the system during its existence (i.e. the thread identifiers may be reused). - - -\membersection{wxThread::GetPriority}\label{wxthreadgetpriority} - -\constfunc{int}{GetPriority}{\void} - -Gets the priority of the thread, between zero and 100. - -The following priorities are defined: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0} -\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50} -\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100} -\end{twocollist} - - -\membersection{wxThread::IsAlive}\label{wxthreadisalive} - -\constfunc{bool}{IsAlive}{\void} - -Returns \true if the thread is alive (i.e. started and not terminating). - -Note that this function can only safely be used with joinable threads, not -detached ones as the latter delete themselves and so when the real thread is -no longer alive, it is not possible to call this function because -the wxThread object no longer exists. - -\membersection{wxThread::IsDetached}\label{wxthreadisdetached} - -\constfunc{bool}{IsDetached}{\void} - -Returns \true if the thread is of the detached kind, \false if it is a joinable -one. - - -\membersection{wxThread::IsMain}\label{wxthreadismain} - -\func{static bool}{IsMain}{\void} - -Returns \true if the calling thread is the main application thread. - - -\membersection{wxThread::IsPaused}\label{wxthreadispaused} - -\constfunc{bool}{IsPaused}{\void} - -Returns \true if the thread is paused. - - -\membersection{wxThread::IsRunning}\label{wxthreadisrunning} - -\constfunc{bool}{IsRunning}{\void} - -Returns \true if the thread is running. - -This method may only be safely used for joinable threads, see the remark in -\helpref{IsAlive}{wxthreadisalive}. - - -\membersection{wxThread::Kill}\label{wxthreadkill} - -\func{wxThreadError}{Kill}{\void} - -Immediately terminates the target thread. {\bf This function is dangerous and should -be used with extreme care (and not used at all whenever possible)!} The resources -allocated to the thread will not be freed and the state of the C runtime library -may become inconsistent. Use \helpref{Delete()}{wxthreaddelete} for detached -threads or \helpref{Wait()}{wxthreadwait} for joinable threads instead. - -For detached threads Kill() will also delete the associated C++ object. -However this will not happen for joinable threads and this means that you will -still have to delete the wxThread object yourself to avoid memory leaks. -In neither case \helpref{OnExit}{wxthreadonexit} of the dying thread will be -called, so no thread-specific cleanup will be performed. - -This function can only be called from another thread context, i.e. a thread -cannot kill itself. - -It is also an error to call this function for a thread which is not running or -paused (in the latter case, the thread will be resumed first) -- if you do it, -a {\tt wxTHREAD\_NOT\_RUNNING} error will be returned. - - -\membersection{wxThread::OnExit}\label{wxthreadonexit} - -\func{void}{OnExit}{\void} - -Called when the thread exits. This function is called in the context of the -thread associated with the wxThread object, not in the context of the main -thread. This function will not be called if the thread was -\helpref{killed}{wxthreadkill}. - -This function should never be called directly. - - -\membersection{wxThread::Pause}\label{wxthreadpause} - -\func{wxThreadError}{Pause}{\void} - -Suspends the thread. Under some implementations (Win32), the thread is -suspended immediately, under others it will only be suspended when it calls -\helpref{TestDestroy}{wxthreadtestdestroy} for the next time (hence, if the -thread doesn't call it at all, it won't be suspended). - -This function can only be called from another thread context. - - -\membersection{wxThread::Run}\label{wxthreadrun} - -\func{wxThreadError}{Run}{\void} - -Starts the thread execution. Should be called after -\helpref{Create}{wxthreadcreate}. - -This function can only be called from another thread context. - - -\membersection{wxThread::SetPriority}\label{wxthreadsetpriority} - -\func{void}{SetPriority}{\param{int}{ priority}} - -Sets the priority of the thread, between $0$ and $100$. It can only be set -after calling \helpref{Create()}{wxthreadcreate} but before calling -\helpref{Run()}{wxthreadrun}. - -The following priorities are already defined: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf WXTHREAD\_MIN\_PRIORITY}}{0} -\twocolitem{{\bf WXTHREAD\_DEFAULT\_PRIORITY}}{50} -\twocolitem{{\bf WXTHREAD\_MAX\_PRIORITY}}{100} -\end{twocollist} - - -\membersection{wxThread::Sleep}\label{wxthreadsleep} - -\func{static void}{Sleep}{\param{unsigned long }{milliseconds}} - -Pauses the thread execution for the given amount of time. - -This function should be used instead of \helpref{wxSleep}{wxsleep} by all worker -threads (i.e. all except the main one). - - -\membersection{wxThread::Resume}\label{wxthreadresume} - -\func{wxThreadError}{Resume}{\void} - -Resumes a thread suspended by the call to \helpref{Pause}{wxthreadpause}. - -This function can only be called from another thread context. - - -\membersection{wxThread::SetConcurrency}\label{wxthreadsetconcurrency} - -\func{static bool}{SetConcurrency}{\param{size\_t }{level}} - -Sets the thread concurrency level for this process. This is, roughly, the -number of threads that the system tries to schedule to run in parallel. -The value of $0$ for {\it level} may be used to set the default one. - -Returns \true on success or false otherwise (for example, if this function is -not implemented for this platform -- currently everything except Solaris). - - -\membersection{wxThread::TestDestroy}\label{wxthreadtestdestroy} - -\func{virtual bool}{TestDestroy}{\void} - -This function should be called periodically by the thread to ensure that calls -to \helpref{Pause}{wxthreadpause} and \helpref{Delete}{wxthreaddelete} will -work. If it returns \true, the thread should exit as soon as possible. - -Notice that under some platforms (POSIX), implementation of -\helpref{Pause}{wxthreadpause} also relies on this function being called, so -not calling it would prevent both stopping and suspending thread from working. - - -\membersection{wxThread::This}\label{wxthreadthis} - -\func{static wxThread *}{This}{\void} - -Return the thread object for the calling thread. NULL is returned if the calling thread -is the main (GUI) thread, but \helpref{IsMain}{wxthreadismain} should be used to test -whether the thread is really the main one because NULL may also be returned for the thread -not created with wxThread class. Generally speaking, the return value for such a thread -is undefined. - - -\membersection{wxThread::Yield}\label{wxthreadyield} - -\func{void}{Yield}{\void} - -Give the rest of the thread time slice to the system allowing the other threads to run. -Note that using this function is {\bf strongly discouraged}, since in -many cases it indicates a design weakness of your threading model (as -does using Sleep functions). -Threads should use the CPU in an efficient manner, i.e. they should -do their current work efficiently, then as soon as the work is done block -on a wakeup event (wxCondition, wxMutex, select(), poll(), ...) -which will get signalled e.g. by other threads or a user device once further -thread work is available. Using Yield or Sleep -indicates polling-type behaviour, since we're fuzzily giving up our timeslice -and wait until sometime later we'll get reactivated, at which time we -realize that there isn't really much to do and Yield again... -The most critical characteristic of Yield is that it's operating system -specific: there may be scheduler changes which cause your thread to not -wake up relatively soon again, but instead many seconds later, -causing huge performance issues for your application. {\bf with a -well-behaving, CPU-efficient thread the operating system is likely to properly -care for its reactivation the moment it needs it, whereas with -non-deterministic, Yield-using threads all bets are off and the system -scheduler is free to penalize drastically}, and this effect gets worse -with increasing system load due to less free CPU resources available. -You may refer to various Linux kernel sched\_yield discussions for more information. -See also \helpref{Sleep()}{wxthreadsleep}. - - -\membersection{wxThread::Wait}\label{wxthreadwait} - -\constfunc{ExitCode}{Wait}{\void} - -Waits for a joinable thread to terminate and returns the value the thread -returned from \helpref{wxThread::Entry}{wxthreadentry} or {\tt (ExitCode)-1} on -error. Notice that, unlike \helpref{Delete}{wxthreaddelete} doesn't cancel the -thread in any way so the caller waits for as long as it takes to the thread to -exit. - -You can only Wait() for joinable (not detached) threads. - -This function can only be called from another thread context. - -See \helpref{wxThread deletion}{deletionwxthread} for a broader explanation of this routine. - diff --git a/docs/latex/wx/threadh.tex b/docs/latex/wx/threadh.tex deleted file mode 100644 index bfe147a7ce..0000000000 --- a/docs/latex/wx/threadh.tex +++ /dev/null @@ -1,105 +0,0 @@ -\section{\class{wxThreadHelper}}\label{wxthreadhelper} - -The wxThreadHelper class is a mix-in class that manages a single background -thread. By deriving from wxThreadHelper, a class can implement the thread -code in its own \helpref{wxThreadHelper::Entry}{wxthreadhelperentry} method -and easily share data and synchronization objects between the main thread -and the worker thread. Doing this prevents the awkward passing of pointers -that is needed when the original object in the main thread needs to -synchronize with its worker thread in its own wxThread derived object. - -For example, \helpref{wxFrame}{wxframe} may need to make some calculations -in a background thread and then display the results of those calculations in -the main window. - -Ordinarily, a \helpref{wxThread}{wxthread} derived object would be created -with the calculation code implemented in -\helpref{wxThread::Entry}{wxthreadentry}. To access the inputs to the -calculation, the frame object would often to pass a pointer to itself to the -thread object. Similarly, the frame object would hold a pointer to the -thread object. Shared data and synchronization objects could be stored in -either object though the object without the data would have to access the -data through a pointer. - -However, with wxThreadHelper, the frame object and the thread object are -treated as the same object. Shared data and synchronization variables are -stored in the single object, eliminating a layer of indirection and the -associated pointers. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/thread.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxThread}{wxthread} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxThreadHelper::wxThreadHelper}\label{wxthreadhelperctor} - -\func{}{wxThreadHelper}{\void} - -This constructor simply initializes a member variable. - -\membersection{wxThreadHelper::m\_thread}\label{wxthreadhelpermthread} - -\member{wxThread *}{m\_thread} - -the actual \helpref{wxThread}{wxthread} object. - -\membersection{wxThreadHelper::\destruct{wxThreadHelper}}\label{wxthreadhelperdtor} - -\func{}{\destruct{wxThreadHelper}}{\void} - -The destructor frees the resources associated with the thread. - -\membersection{wxThreadHelper::Create}\label{wxthreadhelpercreate} - -\func{wxThreadError}{Create}{\param{unsigned int }{stackSize = 0}} - -Creates a new thread. The thread object is created in the suspended state, and you -should call \helpref{GetThread()->Run()}{wxthreadrun} to start running -it. You may optionally specify the stack size to be allocated to it (Ignored on -platforms that don't support setting it explicitly, eg. Unix). - -\wxheading{Return value} - -One of: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxTHREAD\_NO\_ERROR}}{There was no error.} -\twocolitem{{\bf wxTHREAD\_NO\_RESOURCE}}{There were insufficient resources to create a new thread.} -\twocolitem{{\bf wxTHREAD\_RUNNING}}{The thread is already running.} -\end{twocollist} - -\membersection{wxThreadHelper::Entry}\label{wxthreadhelperentry} - -\func{virtual ExitCode}{Entry}{\void} - -This is the entry point of the thread. This function is pure virtual and must -be implemented by any derived class. The thread execution will start here. - -The returned value is the thread exit code which is only useful for -joinable threads and is the value returned by -\helpref{GetThread()->Wait()}{wxthreadwait}. - -This function is called by wxWidgets itself and should never be called -directly. - -\membersection{wxThreadHelper::GetThread}\label{wxthreadhelpergetthread} - -\func{wxThread *}{GetThread}{\void} - -This is a public function that returns the \helpref{wxThread}{wxthread} object -associated with the thread. - diff --git a/docs/latex/wx/ti18n.tex b/docs/latex/wx/ti18n.tex deleted file mode 100644 index 1b586dd4f0..0000000000 --- a/docs/latex/wx/ti18n.tex +++ /dev/null @@ -1,74 +0,0 @@ -\section{Internationalization}\label{internationalization} - -Although internationalization of an application (i18n for short) involves far -more than just translating its text messages to another message - date, time and -currency formats need changing too, some languages are written left to right -and others right to left, character encoding may differ and many other things -may need changing too - it is a necessary first step. wxWidgets provides -facilities for message translation with its -\helpref{wxLocale}{wxlocale} class and is itself fully translated into several -languages. Please consult wxWidgets home page for the most up-to-date -translations - and if you translate it into one of the languages not done -yet, your translations would be gratefully accepted for inclusion into future -versions of the library! - -The wxWidgets approach to i18n closely follows the GNU gettext package. wxWidgets uses the -message catalogs which are binary compatible with gettext catalogs and this -allows to use all of the programs in this package to work with them. But note -that no additional libraries are needed during run-time, however, so you -have only the message catalogs to distribute and nothing else. - -During program development you will need the gettext package for -working with message catalogs. {\bf Warning:} gettext versions < 0.10 are known -to be buggy, so you should find a later version of it! - -There are two kinds of message catalogs: source catalogs which are text files -with extension .po and binary catalogs which are created from the source ones -with {\it msgfmt} program (part of gettext package) and have the extension .mo. -Only the binary files are needed during program execution. - -The program i18n involves several steps: - -\begin{enumerate}\itemsep=0pt -\item Translating the strings in the program text using -\helpref{wxGetTranslation}{wxgettranslation} or equivalently the -\helpref{\_()}{underscore} macro. -\item Extracting the strings to be translated from the program: this uses the -work done in the previous step because {\tt xgettext} program used for string -extraction recognises the standard \_() as well as (using its {\tt -k} option) -our wxGetTranslation and extracts all strings inside the calls to these -functions. Alternatively, you may use {\tt -a} option to extract all the -strings, but it will usually result in many strings being found which don't -have to be translated at all. This will create a text message catalog - a .po -file. -\item Translating the strings extracted in the previous step to other -language(s). It involves editing the .po file. -\item Compiling the .po file into .mo file to be used by the program. -\item Installing the .mo files with your application in the appropriate -location for the target system which is the one returned by -\helpref{wxStandardPaths::GetLocalizedResourcesDir(wxStandardPaths::ResourceCat\_Messages)}{wxstandardpathsgetlocalizedresourcesdir}. -If the message catalogs are not installed in this default location you may -explicitly use \helpref{AddCatalogLookupPathPrefix()}{wxlocaleaddcataloglookuppathprefix} to -still allow wxWidgets to find them but it is strongly recommended to use the -default directory. -\item Setting the appropriate locale in your program to use the strings for the -given language: see \helpref{wxLocale}{wxlocale}. -\end{enumerate} - -See also the \urlref{GNU gettext documentation}{http://www.gnu.org/software/gettext/manual/gettext.html}. - -See also \helpref{Writing non-English applications}{nonenglishoverview}. -It focuses on handling charsets related problems. - -Finally, take a look at the \helpref{i18n sample}{sampleinternat} which shows -you how all this looks in practice. - -\wxheading{Translating menu accelerators} - -If you translate the accelerator modifier names (Ctrl, Alt and Shift) in your menu labels, you may find -the accelerators no longer work. In your message catalogs, you need to provide individual translations -of these modifiers from their lower case names (ctrl, alt, shift) so that the wxWidgets accelerator -code can recognise them even when translated. wxWidgets does not provide translations for all of these -currently. wxWidgets does not yet handle translated special key names such as Backspace, -End, Insert, etc. - diff --git a/docs/latex/wx/timaglst.tex b/docs/latex/wx/timaglst.tex deleted file mode 100644 index c080e33f1e..0000000000 --- a/docs/latex/wx/timaglst.tex +++ /dev/null @@ -1,13 +0,0 @@ -\section{wxImageList overview}\label{wximagelistoverview} - -Classes: \helpref{wxImageList}{wximagelist} - -An image list is a list of images that may have transparent areas. -The class helps an application organise a collection of images -so that they can be referenced by integer index instead of by -pointer. - -Image lists are used in \helpref{wxNotebook}{wxnotebook}, -\helpref{wxListCtrl}{wxlistctrl}, \helpref{wxTreeCtrl}{wxlistctrl} and -some other control classes. - diff --git a/docs/latex/wx/timer.tex b/docs/latex/wx/timer.tex deleted file mode 100644 index f5d7b52f5f..0000000000 --- a/docs/latex/wx/timer.tex +++ /dev/null @@ -1,217 +0,0 @@ -\section{\class{wxTimer}}\label{wxtimer} - -The wxTimer class allows you to execute code at specified intervals. Its -precision is platform-dependent, but in general will not be better than 1ms nor -worse than 1s. - -There are three different ways to use this class: - -\begin{enumerate} -\item You may derive a new class from wxTimer and override the -\helpref{Notify}{wxtimernotify} member to perform the required action. -\item Or you may redirect the notifications to any -\helpref{wxEvtHandler}{wxevthandler} derived object by using the non-default -constructor or \helpref{SetOwner}{wxtimersetowner}. Then use the {\tt EVT\_TIMER} -macro to connect it to the event handler which will receive -\helpref{wxTimerEvent}{wxtimerevent} notifications. -\item Or you may use a derived class and the {\tt EVT\_TIMER} -macro to connect it to an event handler defined in the derived class. -If the default constructor is used, the timer object will be its -own owner object, since it is derived from wxEvtHandler. -\end{enumerate} - -In any case, you must start the timer with \helpref{Start}{wxtimerstart} -after constructing it before it actually starts sending notifications. It can -be stopped later with \helpref{Stop}{wxtimerstop}. - -{\bf Note:} A timer can only be used from the main thread. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler} -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/timer.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxStopWatch}{wxstopwatch} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTimer::wxTimer}\label{wxtimerwxtimer} - -\func{}{wxTimer}{\void} - -Default constructor. If you use it to construct the object and don't call -\helpref{SetOwner}{wxtimersetowner} later, you must override -\helpref{Notify}{wxtimernotify} method to process the notifications. - -\func{}{wxTimer}{\param{wxEvtHandler *}{owner}, \param{int }{id = -1}} - -Creates a timer and associates it with {\it owner}. Please see -\helpref{SetOwner}{wxtimersetowner} for the description of parameters. - -\membersection{wxTimer::\destruct{wxTimer}}\label{wxtimerdtor} - -\func{}{\destruct{wxTimer}}{\void} - -Destructor. Stops the timer if it is running. - -\membersection{wxTimer::GetInterval}\label{wxtimergetinterval} - -\constfunc{int}{GetInterval}{\void} - -Returns the current interval for the timer (in milliseconds). - -\membersection{wxTimer::GetOwner}\label{wxtimergetowner} - -\constfunc{wxEvtHandler}{GetOwner}{\void} - -Returns the current {\it owner} of the timer. -If non-\NULL this is the event handler which will receive the -\helpref{timer events}{wxtimerevent} when the timer is running. - -\membersection{wxTimer::GetId}\label{wxtimergetid} - -\constfunc{int}{GetId}{\void} - -Returns the ID of the events generated by this timer. - -\membersection{wxTimer::IsOneShot}\label{wxtimerisoneshot} - -\constfunc{bool}{IsOneShot}{\void} - -Returns {\tt true} if the timer is one shot, i.e.\ if it will stop after firing the -first notification automatically. - -\membersection{wxTimer::IsRunning}\label{wxtimerisrunning} - -\constfunc{bool}{IsRunning}{\void} - -Returns {\tt true} if the timer is running, {\tt false} if it is stopped. - -\membersection{wxTimer::Notify}\label{wxtimernotify} - -\func{void}{Notify}{\void} - -This member should be overridden by the user if the default constructor was -used and \helpref{SetOwner}{wxtimersetowner} wasn't called. - -Perform whatever action which is to be taken periodically here. - -\membersection{wxTimer::SetOwner}\label{wxtimersetowner} - -\func{void}{SetOwner}{\param{wxEvtHandler *}{owner}, \param{int }{id = -1}} - -Associates the timer with the given {\it owner}\/ object. When the timer is -running, the owner will receive \helpref{timer events}{wxtimerevent} with -id equal to {\it id}\/ specified here. - -\membersection{wxTimer::Start}\label{wxtimerstart} - -\func{bool}{Start}{\param{int }{milliseconds = -1}, \param{bool }{oneShot = {\tt false}}} - -(Re)starts the timer. If {\it milliseconds}\/ parameter is -1 (value by default), -the previous value is used. Returns {\tt false} if the timer could not be started, -{\tt true} otherwise (in MS Windows timers are a limited resource). - -If {\it oneShot}\/ is {\tt false} (the default), the \helpref{Notify}{wxtimernotify} -function will be called repeatedly until the timer is stopped. If {\tt true}, -it will be called only once and the timer will stop automatically. To make your -code more readable you may also use the following symbolic constants: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTIMER\_CONTINUOUS}{Start a normal, continuously running, timer} -\twocolitem{wxTIMER\_ONE\_SHOT}{Start a one shot timer} -\end{twocollist} - -If the timer was already running, it will be stopped by this method before -restarting it. - -\membersection{wxTimer::Stop}\label{wxtimerstop} - -\func{void}{Stop}{\void} - -Stops the timer. - - - - - -%% wxTimerEvent - - -\section{\class{wxTimerEvent}}\label{wxtimerevent} - -wxTimerEvent object is passed to the event handler of timer events. - -For example: - -\begin{verbatim} -class MyFrame : public wxFrame -{ -public: - ... - void OnTimer(wxTimerEvent& event); - -private: - wxTimer m_timer; -}; - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_TIMER(TIMER_ID, MyFrame::OnTimer) -END_EVENT_TABLE() - -MyFrame::MyFrame() - : m_timer(this, TIMER_ID) -{ - m_timer.Start(1000); // 1 second interval -} - -void MyFrame::OnTimer(wxTimerEvent& event) -{ - // do whatever you want to do every second here -} - -\end{verbatim} - -\wxheading{Derived from} - -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/timer.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxTimer}{wxtimer} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTimerEvent::GetInterval}\label{wxtimereventgetinterval} - -\constfunc{int}{GetInterval}{\void} - -Returns the interval of the timer which generated this event. - - -\membersection{wxTimerEvent::GetTimer}\label{wxtimereventgettimer} - -\constfunc{wxTimer\&}{GetTimer}{\void} - -Returns the timer object which generated this event. - diff --git a/docs/latex/wx/timespan.tex b/docs/latex/wx/timespan.tex deleted file mode 100644 index 443cf9f0be..0000000000 --- a/docs/latex/wx/timespan.tex +++ /dev/null @@ -1,379 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: datespan.tex -%% Purpose: wxDateSpan documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 04.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTimeSpan}}\label{wxtimespan} - -wxTimeSpan class represents a time interval. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<wx/datetime.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp -\helpref{wxDateTime}{wxdatetime} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Static functions}\label{timespanstaticfunctions} - -\helpref{Milliseconds}{wxtimespanmilliseconds}\\ -\helpref{Millisecond}{wxtimespanmillisecond}\\ -\helpref{Seconds}{wxtimespanseconds}\\ -\helpref{Second}{wxtimespansecond}\\ -\helpref{Minutes}{wxtimespanminutes}\\ -\helpref{Minute}{wxtimespanminute}\\ -\helpref{Hours}{wxtimespanhours}\\ -\helpref{Hour}{wxtimespanhour}\\ -\helpref{Days}{wxtimespandays}\\ -\helpref{Day}{wxtimespanday}\\ -\helpref{Weeks}{wxtimespanweeks}\\ -\helpref{Week}{wxtimespanweek} - - -\membersection{Constructors}\label{timespanconstructors} - -\helpref{wxTimeSpan}{wxtimespanctor} - - -\membersection{Accessors}\label{timespanaccessors} - -\helpref{GetSeconds}{wxtimespangetseconds}\\ -\helpref{GetMinutes}{wxtimespangetminutes}\\ -\helpref{GetHours}{wxtimespangethours}\\ -\helpref{GetDays}{wxtimespangetdays}\\ -\helpref{GetWeeks}{wxtimespangetweeks}\\ -\helpref{GetValue}{wxtimespangetvalue} - - -\membersection{Operations}\label{timespanoperations} - -\helpref{Add}{wxtimespanadd}\\ -\helpref{Subtract}{wxtimespansubtract}\\ -\helpref{Multiply}{wxtimespanmultiply}\\ -\helpref{Negate}{wxtimespannegate}\\ -\helpref{Neg}{wxtimespanneg}\\ -\helpref{Abs}{wxtimespanabs} - - -\membersection{Tests}\label{timespantests} - -\helpref{IsNull}{wxtimespanisnull}\\ -\helpref{IsPositive}{wxtimespanispositive}\\ -\helpref{IsNegative}{wxtimespanisnegative}\\ -\helpref{IsEqualTo}{wxtimespanisequalto}\\ -\helpref{IsLongerThan}{wxtimespanislongerthan}\\ -\helpref{IsShorterThan}{wxtimespanisshorterthan} - - -\membersection{Formatting time spans}\label{timespanformatting} - -\helpref{Format}{wxtimespanformat} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Start of member function part % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\helponly{\insertatlevel{2}{ - \wxheading{Members} -}} - - -\membersection{wxTimeSpan::Abs}\label{wxtimespanabs} - -\constfunc{wxTimeSpan}{Abs}{\void} - -Returns the absolute value of the timespan: does not modify the -object. - - -\membersection{wxTimeSpan::Add}\label{wxtimespanadd} - -\constfunc{wxTimeSpan}{Add}{\param{const wxTimeSpan\& }{diff}} - -\func{wxTimeSpan\&}{Add}{\param{const wxTimeSpan\& }{diff}} - -\func{wxTimeSpan\&}{operator$+=$}{\param{const wxTimeSpan\&}{diff}} - -Returns the sum of two timespans. - - -\membersection{wxTimeSpan::Days}\label{wxtimespandays} - -\func{static wxTimespan}{Days}{\param{long }{days}} - -Returns the timespan for the given number of days. - - -\membersection{wxTimeSpan::Day}\label{wxtimespanday} - -\func{static wxTimespan}{Day}{\void} - -Returns the timespan for one day. - - -\membersection{wxTimeSpan::Format}\label{wxtimespanformat} - -\func{wxString}{Format}{\param{const wxChar * }{format = wxDefaultTimeSpanFormat}} - -Returns the string containing the formatted representation of the time span. -The following format specifiers are allowed after \%: - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{H}{number of {\bf H}ours} -\twocolitem{M}{number of {\bf M}inutes} -\twocolitem{S}{number of {\bf S}econds} -\twocolitem{l}{number of mi{\bf l}liseconds} -\twocolitem{D}{number of {\bf D}ays} -\twocolitem{E}{number of w{\bf E}eks} -\twocolitem{\%}{the percent character} -\end{twocollist} - -Note that, for example, the number of hours in the description above is not -well defined: it can be either the total number of hours (for example, for a -time span of $50$ hours this would be $50$) or just the hour part of the time -span, which would be $2$ in this case as $50$ hours is equal to $2$ days and -$2$ hours. - -wxTimeSpan resolves this ambiguity in the following way: if there had been, -indeed, the {\tt \%D} format specified preceding the {\tt \%H}, then it is -interpreted as $2$. Otherwise, it is $50$. - -The same applies to all other format specifiers: if they follow a specifier of -larger unit, only the rest part is taken, otherwise the full value is used. - - -\membersection{wxTimeSpan::GetDays}\label{wxtimespangetdays} - -\constfunc{int}{GetDays}{\void} - -Returns the difference in number of days. - - -\membersection{wxTimeSpan::GetHours}\label{wxtimespangethours} - -\constfunc{int}{GetHours}{\void} - -Returns the difference in number of hours. - - -\membersection{wxTimeSpan::GetMilliseconds}\label{wxtimespangetmilliseconds} - -\constfunc{wxLongLong}{GetMilliseconds}{\void} - -Returns the difference in number of milliseconds. - - -\membersection{wxTimeSpan::GetMinutes}\label{wxtimespangetminutes} - -\constfunc{int}{GetMinutes}{\void} - -Returns the difference in number of minutes. - - -\membersection{wxTimeSpan::GetSeconds}\label{wxtimespangetseconds} - -\constfunc{wxLongLong}{GetSeconds}{\void} - -Returns the difference in number of seconds. - - -\membersection{wxTimeSpan::GetValue}\label{wxtimespangetvalue} - -\constfunc{wxLongLong}{GetValue}{\void} - -Returns the internal representation of timespan. - - -\membersection{wxTimeSpan::GetWeeks}\label{wxtimespangetweeks} - -\constfunc{int}{GetWeeks}{\void} - -Returns the difference in number of weeks. - - -\membersection{wxTimeSpan::Hours}\label{wxtimespanhours} - -\func{static wxTimespan}{Hours}{\param{long }{hours}} - -Returns the timespan for the given number of hours. - - -\membersection{wxTimeSpan::Hour}\label{wxtimespanhour} - -\func{static wxTimespan}{Hour}{\void} - -Returns the timespan for one hour. - - -\membersection{wxTimeSpan::IsEqualTo}\label{wxtimespanisequalto} - -\constfunc{bool}{IsEqualTo}{\param{const wxTimeSpan\& }{ts}} - -Returns {\tt true} if two timespans are equal. - - -\membersection{wxTimeSpan::IsLongerThan}\label{wxtimespanislongerthan} - -\constfunc{bool}{IsLongerThan}{\param{const wxTimeSpan\& }{ts}} - -Compares two timespans: works with the absolute values, i.e. -2 -hours is longer than 1 hour. Also, it will return {\tt false} if -the timespans are equal in absolute value. - - -\membersection{wxTimeSpan::IsNegative}\label{wxtimespanisnegative} - -\constfunc{bool}{IsNegative}{\void} - -Returns {\tt true} if the timespan is negative. - - -\membersection{wxTimeSpan::IsNull}\label{wxtimespanisnull} - -\constfunc{bool}{IsNull}{\void} - -Returns {\tt true} if the timespan is empty. - - -\membersection{wxTimeSpan::IsPositive}\label{wxtimespanispositive} - -\constfunc{bool}{IsPositive}{\void} - -Returns {\tt true} if the timespan is positive. - - -\membersection{wxTimeSpan::IsShorterThan}\label{wxtimespanisshorterthan} - -\constfunc{bool}{IsShorterThan}{\param{const wxTimeSpan\& }{ts}} - -Compares two timespans: works with the absolute values, i.e. 1 -hour is shorter than -2 hours. Also, it will return {\tt false} if -the timespans are equal in absolute value. - - -\membersection{wxTimeSpan::Minutes}\label{wxtimespanminutes} - -\func{static wxTimespan}{Minutes}{\param{long }{min}} - -Returns the timespan for the given number of minutes. - - -\membersection{wxTimeSpan::Minute}\label{wxtimespanminute} - -\func{static wxTimespan}{Minute}{\void} - -Returns the timespan for one minute. - - -\membersection{wxTimeSpan::Multiply}\label{wxtimespanmultiply} - -\constfunc{wxTimeSpan}{Multiply}{\param{int }{n}} - -\func{wxTimeSpan\&}{Multiply}{\param{int }{n}} - -\func{wxTimeSpan\&}{operator$*=$}{\param{int }{n}} - -Multiplies timespan by a scalar. - - -\membersection{wxTimeSpan::Negate}\label{wxtimespannegate} - -\constfunc{wxTimeSpan}{Negate}{\void} - -Returns timespan with inverted sign. - - -\membersection{wxTimeSpan::Neg}\label{wxtimespanneg} - -\func{wxTimeSpan\&}{Neg}{\void} - -\func{wxTimeSpan\&}{operator$-$}{\void} - -Negate the value of the timespan. - - -\membersection{wxTimeSpan::Milliseconds}\label{wxtimespanmilliseconds} - -\func{static wxTimespan}{Milliseconds}{\param{long }{ms}} - -Returns the timespan for the given number of milliseconds. - - -\membersection{wxTimeSpan::Millisecond}\label{wxtimespanmillisecond} - -\func{static wxTimespan}{Millisecond}{\void} - -Returns the timespan for one millisecond. - - -\membersection{wxTimeSpan::Seconds}\label{wxtimespanseconds} - -\func{static wxTimespan}{Seconds}{\param{long }{sec}} - -Returns the timespan for the given number of seconds. - - -\membersection{wxTimeSpan::Second}\label{wxtimespansecond} - -\func{static wxTimespan}{Second}{\void} - -Returns the timespan for one second. - - -\membersection{wxTimeSpan::Subtract}\label{wxtimespansubtract} - -\constfunc{wxTimeSpan}{Subtract}{\param{const wxTimeSpan\&}{diff}} - -\func{wxTimeSpan\&}{Subtract}{\param{const wxTimeSpan\& }{diff}} - -\func{wxTimeSpan\&}{operator$-=$}{\param{const wxTimeSpan\&}{diff}} - -Returns the difference of two timespans. - - -\membersection{wxTimeSpan::Weeks}\label{wxtimespanweeks} - -\func{static wxTimespan}{Weeks}{\param{long }{weeks}} - -Returns the timespan for the given number of weeks. - - -\membersection{wxTimeSpan::Week}\label{wxtimespanweek} - -\func{static wxTimespan}{Week}{\void} - -Returns the timespan for one week. - - -\membersection{wxTimeSpan::wxTimeSpan}\label{wxtimespanctor} - -\func{}{wxTimeSpan}{\void} - -Default constructor, constructs a zero timespan. - -\func{}{wxTimeSpan}{\param{long }{hours}, \param{long }{min}, \param{long }{sec}, \param{long }{msec}} - -Constructs timespan from separate values for each component, with the date -set to 0. Hours are not restricted to 0..24 range, neither are -minutes, seconds or milliseconds. - diff --git a/docs/latex/wx/tipc.tex b/docs/latex/wx/tipc.tex deleted file mode 100644 index 9edd9836bd..0000000000 --- a/docs/latex/wx/tipc.tex +++ /dev/null @@ -1,221 +0,0 @@ -\section{Interprocess communication overview}\label{ipcoverview} - -Classes: \helpref{wxServer}{wxserver}, -\helpref{wxConnection}{wxddeconnection}, -\helpref{wxClient}{wxclient} -%\helpref{wxTCPServer}{wxtcpserver}, \helpref{wxTCPConnection}{wxtcpconnection}, -%\helpref{wxTCPClient}{wxtcpclient} - -wxWidgets has a number of different classes to help with -interprocess communication and network programming. This section -only discusses one family of classes -- the DDE-like protocol -- -but here's a list of other useful classes: - -\begin{itemize}\itemsep=0pt -\item \helpref{wxSocketEvent}{wxsocketevent}, -\helpref{wxSocketBase}{wxsocketbase}, -\helpref{wxSocketClient}{wxsocketclient}, -\helpref{wxSocketServer}{wxsocketserver}: classes for the low-level TCP/IP API. -\item \helpref{wxProtocol}{wxprotocol}, \helpref{wxURL}{wxurl}, \helpref{wxFTP}{wxftp}, \helpref{wxHTTP}{wxhttp}: classes -for programming popular Internet protocols. -\end{itemize} - -wxWidgets' DDE-like protocol is a high-level protocol based on -Windows DDE. There are two implementations of this DDE-like -protocol: one using real DDE running on Windows only, and another -using TCP/IP (sockets) that runs on most platforms. Since the API -and virtually all of the behaviour is the same apart from the -names of the classes, you should find it easy to switch between -the two implementations. - -Notice that by including {\tt <wx/ipc.h>} you may define -convenient synonyms for the IPC classes: {\tt wxServer} for either -{\tt wxDDEServer} or {\tt wxTCPServer} depending on whether -DDE-based or socket-based implementation is used and the same -thing for {\tt wxClient} and {\tt wxConnection}. - -By default, the DDE implementation is used under Windows. DDE works -within one computer only. If you want to use IPC between -different workstations you should define {\tt -wxUSE\_DDE\_FOR\_IPC} as $0$ before including this header -- this -will force using TCP/IP implementation even under Windows. - -The following description refers to wx... but remember that the -equivalent wxTCP... and wxDDE... classes can be used in much the -same way. - -Three classes are central to the DDE-like API: - -\begin{enumerate}\itemsep=0pt -\item wxClient. This represents the client application, and is used -only within a client program. -\item wxServer. This represents the server application, and is used -only within a server program. -\item wxConnection. This represents the connection from the -client to the server - both the client and the server use an -instance of this class, one per connection. Most DDE transactions -operate on this object. -\end{enumerate} - -Messages between applications are usually identified by three -variables: connection object, topic name and item name. A data -string is a fourth element of some messages. To create a -connection (a conversation in Windows parlance), the client -application uses wxClient::MakeConnection to send a message to the -server object, with a string service name to identify the server -and a topic name to identify the topic for the duration of the -connection. Under Unix, the service name may be either an integer -port identifier in which case an Internet domain socket will be -used for the communications or a valid file name (which shouldn't -exist and will be deleted afterwards) in which case a Unix domain -socket is created. - -{\bf SECURITY NOTE:} Using Internet domain sockets is extremely insecure for -IPC as there is absolutely no access control for them, use Unix domain sockets -whenever possible! - -The server then responds and either vetoes the connection or -allows it. If allowed, both the server and client objects create -wxConnection objects which persist until the connection is -closed. The connection object is then used for sending and -receiving subsequent messages between client and server - -overriding virtual functions in your class derived from -wxConnection allows you to handle the DDE messages. - -To create a working server, the programmer must: - -\begin{enumerate}\itemsep=0pt -\item Derive a class from wxConnection, providing handlers for various messages sent to the server -side of a wxConnection (e.g. OnExecute, OnRequest, OnPoke). Only -the handlers actually required by the application need to be -overridden. -\item Derive a class from wxServer, overriding OnAcceptConnection -to accept or reject a connection on the basis of the topic -argument. This member must create and return an instance of the -derived connection class if the connection is accepted. -\item Create an instance of your server object and call Create to -activate it, giving it a service name. -\end{enumerate} - -To create a working client, the programmer must: - -\begin{enumerate}\itemsep=0pt -\item Derive a class from wxConnection, providing handlers for various -messages sent to the client side of a wxConnection (e.g. -OnAdvise). Only the handlers actually required by the application -need to be overridden. -\item Derive a class from wxClient, overriding OnMakeConnection to -create and return an instance of the derived connection class. -\item Create an instance of your client object. -\item When appropriate, create a new connection using -\helpref{wxClient::MakeConnection}{wxclientmakeconnection}, -with arguments host name (processed in Unix only, use `localhost' -for local computer), service name, and topic name for this -connection. The client object will call -\helpref{OnMakeConnection}{wxddeclientonmakeconnection} to create -a connection object of the derived class if the connection is -successful. -\item Use the wxConnection member functions to send messages to the server. -\end{enumerate} - -\subsection{Data transfer}\label{datatransfer} - -These are the ways that data can be transferred from one -application to another. These are methods of wxConnection. - -\begin{itemize}\itemsep=0pt -\item {\bf Execute:} the client calls the server with a data string representing -a command to be executed. This succeeds or fails, depending on the -server's willingness to answer. If the client wants to find the result -of the Execute command other than success or failure, it has to explicitly -call Request. -\item {\bf Request:} the client asks the server for a particular data string -associated with a given item string. If the server is unwilling to -reply, the return value is NULL. Otherwise, the return value is a string -(actually a pointer to the connection buffer, so it should not be -deallocated by the application). -\item {\bf Poke:} The client sends a data string associated with an item -string directly to the server. This succeeds or fails. -\item {\bf Advise:} The client asks to be advised of any change in data -associated with a particular item. If the server agrees, the server will -send an OnAdvise message to the client along with the item and data. -\end{itemize} - -The default data type is wxCF\_TEXT (ASCII text), and the default data -size is the length of the null-terminated string. Windows-specific data -types could also be used on the PC. - -\subsection{Examples}\label{ipcexamples} - -See the sample programs {\it server}\/ and {\it client}\/ in the IPC -samples directory. Run the server, then the client. This demonstrates -using the Execute, Request, and Poke commands from the client, together -with an Advise loop: selecting an item in the server list box causes -that item to be highlighted in the client list box. - -\subsection{More DDE details}\label{ddedetails} - -A wxClient object initiates the client part of a client-server -DDE-like (Dynamic Data Exchange) conversation (available in both -Windows and Unix). - -To create a client which can communicate with a suitable server, -you need to derive a class from wxConnection and another from -wxClient. The custom wxConnection class will receive -communications in a `conversation' with a server. and the custom -wxServer is required so that a user-overridden -\helpref{wxClient::OnMakeConnection}{wxddeclientonmakeconnection} -member can return a wxConnection of the required class, when a -connection is made. - -For example: - -\begin{verbatim} -class MyConnection: public wxConnection { - public: - MyConnection(void)::wxConnection() {} - ~MyConnection(void) { } - bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) - { wxMessageBox(topic, data); } -}; - -class MyClient: public wxClient { - public: - MyClient(void) {} - wxConnectionBase *OnMakeConnection(void) { return new MyConnection; } -}; - -\end{verbatim} - -Here, {\bf MyConnection} will respond to -\helpref{OnAdvise}{wxddeconnectiononadvise} messages sent by the -server by displaying a message box. - -When the client application starts, it must create an instance of -the derived wxClient. In the following, command line arguments -are used to pass the host name (the name of the machine the -server is running on) and the server name (identifying the server -process). Calling -\helpref{wxClient::MakeConnection}{wxddeclientmakeconnection}\rtfsp -implicitly creates an instance of {\bf MyConnection} if the -request for a connection is accepted, and the client then -requests an {\it Advise} loop from the server (an Advise loop is -where the server calls the client when data has changed). - -\begin{verbatim} - wxString server = "4242"; - wxString hostName; - wxGetHostName(hostName); - - // Create a new client - MyClient *client = new MyClient; - connection = (MyConnection *)client->MakeConnection(hostName, server, "IPC TEST"); - - if (!connection) - { - wxMessageBox("Failed to make connection to server", "Client Demo Error"); - return NULL; - } - connection->StartAdvise("Item"); -\end{verbatim} - diff --git a/docs/latex/wx/tipprov.tex b/docs/latex/wx/tipprov.tex deleted file mode 100644 index 50eae53af6..0000000000 --- a/docs/latex/wx/tipprov.tex +++ /dev/null @@ -1,67 +0,0 @@ -\section{\class{wxTipProvider}}\label{wxtipprovider} - -This is the class used together with \helpref{wxShowTip}{wxshowtip} function. -It must implement \helpref{GetTip}{wxtipprovidergettip} function and return the -current tip from it (different tip each time it is called). - -You will never use this class yourself, but you need it to show startup tips -with wxShowTip. Also, if you want to get the tips text from elsewhere than a -simple text file, you will want to derive a new class from wxTipProvider and -use it instead of the one returned by \helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - -<wx/tipdlg.h> - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{See also} - -\helpref{Startup tips overview}{tipsoverview}, \helpref{::wxShowTip}{wxshowtip} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTipProvider::wxTipProvider}\label{wxtipproviderctor} - -\func{}{wxTipProvider}{\param{size\_t }{currentTip}} - -Constructor. - -\docparam{currentTip}{The starting tip index.} - -\membersection{wxTipProvider::GetTip}\label{wxtipprovidergettip} - -\func{wxString}{GetTip}{\void} - -Return the text of the current tip and pass to the next one. This function is -pure virtual, it should be implemented in the derived classes. - -\membersection{wxTipProvider::PreprocessTip}\label{wxtipproviderpreprocesstip} - -\func{virtual wxString}{PreProcessTip}{\param{const wxString\&}{tip}} - -Returns a modified tip. This function will be called immediately after read, -and before being check whether it is a comment, an empty string or a string -to translate. You can optionally override this in your custom user-derived class -to optionally to modify the tip as soon as it is read. You can return any -modification to the string. If you return wxEmptyString, then this tip is -skipped, and the next one is read. - -\membersection{wxCurrentTipProvider::GetCurrentTip}\label{wxtipprovidergetcurrenttip} - -\constfunc{size\_t}{GetCurrentTip}{\void} - -Returns the index of the current tip (i.e. the one which would be returned by -GetTip). - -The program usually remembers the value returned by this function after calling -\helpref{wxShowTip}{wxshowtip}. Note that it is not the same as the value which -was passed to wxShowTip $+ 1$ because the user might have pressed the "Next" -button in the tip dialog. - diff --git a/docs/latex/wx/tipwin.tex b/docs/latex/wx/tipwin.tex deleted file mode 100644 index 6a30b5789e..0000000000 --- a/docs/latex/wx/tipwin.tex +++ /dev/null @@ -1,81 +0,0 @@ -\section{\class{wxTipWindow}}\label{wxtipwindow} - -Shows simple text in a popup tip window on creation. This is used by -\helpref{wxSimpleHelpProvider}{wxsimplehelpprovider} to show popup help. The -window automatically destroys itself when the user clicks on it or it loses the -focus. - -You may also use this class to emulate the tooltips when you need finer -control over them than what the standard tooltips provide. - -\wxheading{Derived from} - -wxPopupTransientWindow\\ -wxPopupWindow\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tipwin.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTipWindow::wxTipWindow}\label{wxtipwindowwxtipwindow} - -\func{}{wxTipWindow}{\param{wxWindow* }{parent}, \param{const wxString\& }{text}, \param{wxCoord }{maxLength = 100}, \param{wxTipWindow** }{windowPtr}, \param{wxRect *}{rectBounds = \NULL}} - -Constructor. The tip is shown immediately after the window is constructed. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, must be non-\NULL} - -\docparam{text}{The text to show, may contain the new line characters} - -\docparam{maxLength}{The length of each line, in pixels. Set to a very large -value to avoid wrapping lines} - -\docparam{windowPtr}{Simply passed to -\helpref{SetTipWindowPtr}{wxtipwindowsettipwindowptr} below, please see its -documentation for the description of this parameter} - -\docparam{rectBounds}{If non-\NULL, passed to -\helpref{SetBoundingRect}{wxtipwindowsetboundingrect} below, please see its -documentation for the description of this parameter} - - - -\membersection{wxTipWindow::SetTipWindowPtr}\label{wxtipwindowsettipwindowptr} - -\func{void}{SetTipWindowPtr}{\param{wxTipWindow** }{windowPtr}} - -When the tip window closes itself (which may happen at any moment and -unexpectedly to the caller) it may \NULL out the pointer pointed to by -\arg{it windowPtr}. This is helpful to avoid dereferencing the tip window which -had been already closed and deleted. - - - -\membersection{wxTipWindow::SetBoundingRect}\label{wxtipwindowsetboundingrect} - -\func{void}{SetBoundingRect}{\param{const wxRect\& }{rectBound}} - -By default, the tip window disappears when the user clicks the mouse or presses -a keyboard key or if it loses focus in any other way - for example because the -user switched to another application window. - -Additionally, if a non-empty \arg{rectBound} is provided, the tip window will -also automatically close if the mouse leaves this area. This is useful to -dismiss the tip mouse when the mouse leaves the object it is associated with. - -\wxheading{Parameters} - -\docparam{rectBound}{The bounding rectangle for the mouse in the screen coordinates} - diff --git a/docs/latex/wx/tlistctl.tex b/docs/latex/wx/tlistctl.tex deleted file mode 100644 index cb12e592af..0000000000 --- a/docs/latex/wx/tlistctl.tex +++ /dev/null @@ -1,6 +0,0 @@ -\section{wxListCtrl overview}\label{wxlistctrloverview} - -Classes: \helpref{wxListCtrl}{wxlistctrl}, \helpref{wxImageList}{wximagelist} - -Sorry, this topic has yet to be written. - diff --git a/docs/latex/wx/tlog.tex b/docs/latex/wx/tlog.tex deleted file mode 100644 index acce4436d8..0000000000 --- a/docs/latex/wx/tlog.tex +++ /dev/null @@ -1,175 +0,0 @@ -\section{wxLog classes overview}\label{wxlogoverview} - -Classes: \helpref{wxLog}{wxlog},\\ -\helpref{wxLogStderr}{wxlogstderr},\\ -\helpref{wxLogStream}{wxlogstream},\\ -\helpref{wxLogTextCtrl}{wxlogtextctrl},\\ -\helpref{wxLogWindow}{wxlogwindow},\\ -\helpref{wxLogGui}{wxloggui},\\ -\helpref{wxLogNull}{wxlognull},\\ -\helpref{wxLogBuffer}{wxlogbuffer},\\ -\helpref{wxLogChain}{wxlogchain},\\ -\helpref{wxLogInterposer}{wxloginterposer},\\ -\helpref{wxLogInterposerTemp}{wxloginterposertemp},\\ -\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} - -This is a general overview of logging classes provided by wxWidgets. The word -logging here has a broad sense, including all of the program output, not only -non-interactive messages. The logging facilities included in wxWidgets provide -the base {\it wxLog} class which defines the standard interface for a {\it log -target} as well as several standard implementations of it and a family of -functions to use with them. - -First of all, no knowledge of {\it wxLog} classes is needed to use them. For -this, you should only know about {\it wxLogXXX()} functions. All of them have -the same syntax as {\it printf()} or {\it vprintf()} , i.e. they take the -format string as the first argument and respectively a variable number of -arguments or a variable argument list pointer. Here are all of them: - -\begin{itemize}\itemsep=0pt -\item{\bf wxLogFatalError} which is like {\it wxLogError}, but also -terminates the program with the exit code $3$ (using {\it abort()} standard -function). Unlike for all the other logging functions, this function can't be -overridden by a log target. -\item{\bf wxLogError} is the function to use for error messages, i.e. the -messages that must be shown to the user. The default processing is to pop up a -message box to inform the user about it. -\item{\bf wxLogWarning} for warnings - they are also normally shown to the -user, but don't interrupt the program work. -\item{\bf wxLogMessage} is for all normal, informational messages. They also -appear in a message box by default (but it can be changed, see below). -\item{\bf wxLogVerbose} is for verbose output. Normally, it is suppressed, but -might be activated if the user wishes to know more details about the program -progress (another, but possibly confusing name for the same function is {\bf -wxLogInfo}). -\item{\bf wxLogStatus} is for status messages - they will go into the status -bar of the active or specified (as the first argument) \helpref{wxFrame}{wxframe} if it has one. -\item{\bf wxLogSysError} is mostly used by wxWidgets itself, but might be -handy for logging errors after system call (API function) failure. It logs the -specified message text as well as the last system error -code ({\it errno} or {\it ::GetLastError()} depending on the platform) and -the corresponding error message. The second form of this function takes the -error code explicitly as the first argument. -\item{\bf wxLogDebug} is {\bf the} right function for debug output. It only -does anything at all in the debug mode (when the preprocessor symbol -\_\_WXDEBUG\_\_ is defined) and expands to nothing in release mode (otherwise). -{\bf Tip:} under Windows, you must either run the program under debugger or -use a 3rd party program such as \urlref{DbgView}{http://www.sysinternals.com} -to actually see the debug output. -\item{\bf wxLogTrace} as {\bf wxLogDebug} only does something in debug -build. The reason for making it a separate function from it is that usually -there are a lot of trace messages, so it might make sense to separate them -from other debug messages which would be flooded in them. Moreover, the second -version of this function takes a trace mask as the first argument which allows -to further restrict the amount of messages generated. -\end{itemize} - -The usage of these functions should be fairly straightforward, however it may -be asked why not use the other logging facilities, such as C standard stdio -functions or C++ streams. The short answer is that they're all very good -generic mechanisms, but are not really adapted for wxWidgets, while the log -classes are. Some of advantages in using wxWidgets log functions are: - -\begin{itemize}\itemsep=0pt -\item{\bf Portability} It is a common practice to use {\it printf()} -statements or cout/cerr C++ streams for writing out some (debug or otherwise) -information. -Although it works just fine under Unix, these messages go strictly nowhere -under Windows where the stdout of GUI programs is not assigned to anything. -Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it -printf()}. - -You can also redirect the {\it wxLogXXX} calls to {\it cout} by just writing: -{\small -\begin{verbatim} - wxLog *logger=new wxLogStream(&cout); - wxLog::SetActiveTarget(logger); -\end{verbatim} -} - -Finally, there is also a possibility to redirect the output sent to {\it cout} -to a \helpref{wxTextCtrl}{wxtextctrl} by using the -\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} class. -\item{\bf Flexibility} The output of wxLog functions can be redirected or -suppressed entirely based on their importance, which is either impossible or -difficult to do with traditional methods. For example, only error messages, or -only error messages and warnings might be logged, filtering out all -informational messages. -\item{\bf Completeness} Usually, an error message should be presented to the user -when some operation fails. Let's take a quite simple but common case of a file -error: suppose that you're writing your data file on disk and there is not -enough space. The actual error might have been detected inside wxWidgets code -(say, in {\it wxFile::Write}), so the calling function doesn't really know the -exact reason of the failure, it only knows that the data file couldn't be -written to the disk. However, as wxWidgets uses {\it wxLogError()} in this -situation, the exact error code (and the corresponding error message) will be -given to the user together with "high level" message about data file writing -error. -\end{itemize} - -After having enumerated all the functions which are normally used to log the -messages, and why would you want to use them we now describe how all this -works. - -wxWidgets has the notion of a {\it log target}: it is just a class deriving -from \helpref{wxLog}{wxlog}. As such, it implements the virtual functions of -the base class which are called when a message is logged. Only one log target -is {\it active} at any moment, this is the one used by {\it wxLogXXX()} -functions. The normal usage of a log object (i.e. object of a class derived -from wxLog) is to install it as the active target with a call to {\it -SetActiveTarget()} and it will be used automatically by all subsequent calls -to {\it wxLogXXX()} functions. - -To create a new log target class you only need to derive it from wxLog and -implement one (or both) of {\it DoLog()} and {\it DoLogString()} in it. The -second one is enough if you're happy with the standard wxLog message -formatting (prepending "Error:" or "Warning:", timestamping \&c) but just want -to send the messages somewhere else. The first one may be overridden to do -whatever you want but you have to distinguish between the different message -types yourself. - -There are some predefined classes deriving from wxLog and which might be -helpful to see how you can create a new log target class and, of course, may -also be used without any change. There are: - -\begin{itemize}\itemsep=0pt -\item{\bf wxLogStderr} This class logs messages to a {\it FILE *}, using -stderr by default as its name suggests. -\item{\bf wxLogStream} This class has the same functionality as wxLogStderr, -but uses {\it ostream} and cerr instead of {\it FILE *} and stderr. -\item{\bf wxLogGui} This is the standard log target for wxWidgets -applications (it is used by default if you don't do anything) and provides the -most reasonable handling of all types of messages for given platform. -\item{\bf wxLogWindow} This log target provides a "log console" which -collects all messages generated by the application and also passes them to the -previous active log target. The log window frame has a menu allowing user to -clear the log, close it completely or save all messages to file. -\item{\bf wxLogBuffer} This target collects all the logged messages in an -internal buffer allowing to show them later to the user all at once. -\item{\bf wxLogNull} The last log class is quite particular: it doesn't do -anything. The objects of this class may be instantiated to (temporarily) -suppress output of {\it wxLogXXX()} functions. As an example, trying to open a -non-existing file will usually provoke an error message, but if for some -reasons it is unwanted, just use this construction: - -{\small% -\begin{verbatim} - wxFile file; - - // wxFile.Open() normally complains if file can't be opened, we don't want it - { - wxLogNull logNo; - if ( !file.Open("bar") ) - ... process error ourselves ... - } // ~wxLogNull called, old log sink restored - - wxLogMessage("..."); // ok -\end{verbatim} -}% -\end{itemize} - -The log targets can also be combined: for example you may wish to redirect the -messages somewhere else (for example, to a log file) but also process them as -normally. For this the \helpref{wxLogChain}{wxlogchain}, \helpref{wxLogInterposer}{wxloginterposer} and\rtfsp -\helpref{wxLogInterposerTemp}{wxloginterposertemp} can be used. - diff --git a/docs/latex/wx/tlw.tex b/docs/latex/wx/tlw.tex deleted file mode 100644 index db2f329cfd..0000000000 --- a/docs/latex/wx/tlw.tex +++ /dev/null @@ -1,493 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tlw.tex -%% Purpose: wxTopLevelWindow documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2004-09-07 (partly extracted from frame.tex) -%% RCS-ID: $Id$ -%% Copyright: (c) 2004 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTopLevelWindow}}\label{wxtoplevelwindow} - -wxTopLevelWindow is a common base class for \helpref{wxDialog}{wxdialog} and -\helpref{wxFrame}{wxframe}. It is an abstract base class meaning that you never -work with objects of this class directly, but all of its methods are also -applicable for the two classes above. - -\wxheading{Derived from} - -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/toplevel.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTopLevelWindow::CanSetTransparent}\label{wxtoplevelwindowcansettransparent} - -\func{virtual bool}{CanSetTransparent}{\void} - -Returns \true if the platform supports making the window translucent. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::SetTransparent}{wxtoplevelwindowsettransparent} - - -\membersection{wxWindow::CenterOnScreen}\label{wxtoplevelwindowcenteronscreen} - -\func{void}{CenterOnScreen}{\param{int}{ direction}} - -A synonym for \helpref{CentreOnScreen}{wxtoplevelwindowcentreonscreen}. - - -\membersection{wxTopLevelWindow::CentreOnScreen}\label{wxtoplevelwindowcentreonscreen} - -\func{void}{CentreOnScreen}{\param{int}{ direction = wxBOTH}} - -Centres the window on screen. - -\wxheading{Parameters} - -\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp -or {\tt wxBOTH}.} - -\wxheading{See also} - -\helpref{wxWindow::CentreOnParent}{wxwindowcenteronparent} - - -\membersection{wxTopLevelWindow::EnableCloseButton}\label{wxtoplevelenableclosebutton} - -\func{bool}{EnableCloseButton}{\param{bool}{ enable = true}} - -Enables or disables the Close button (most often in the right -upper corner of a dialog) and the Close entry of the system -menu (most often in the left upper corner of the dialog). -Currently only implemented for wxMSW and wxGTK. Returns -true if operation was successful. This may be wrong on -X11 (including GTK+) where the window manager may not support -this operation and there is no way to find out. - -\membersection{wxTopLevelWindow::GetDefaultItem}\label{wxtoplevelwindowgetdefaultitem} - -\constfunc{wxWindow *}{GetDefaultItem}{\void} - -Returns a pointer to the button which is the default for this window, or \NULL. -The default button is the one activated by pressing the Enter key. - - -\membersection{wxTopLevelWindow::GetIcon}\label{wxtoplevelwindowgeticon} - -\constfunc{const wxIcon\&}{GetIcon}{\void} - -Returns the standard icon of the window. The icon will be invalid if it hadn't -been previously set by \helpref{SetIcon}{wxtoplevelwindowseticon}. - -\wxheading{See also} - -\helpref{GetIcons}{wxtoplevelwindowgeticons} - - -\membersection{wxTopLevelWindow::GetIcons}\label{wxtoplevelwindowgeticons} - -\constfunc{const wxIconBundle\&}{GetIcons}{\void} - -Returns all icons associated with the window, there will be none of them if -neither \helpref{SetIcon}{wxtoplevelwindowseticon} nor -\helpref{SetIcons}{wxtoplevelwindowseticons} had been called before. - -Use \helpref{GetIcon}{wxtoplevelwindowgeticon} to get the main icon of the -window. - -\wxheading{See also} - -\helpref{wxIconBundle}{wxiconbundle} - - -\membersection{wxTopLevelWindow::GetTitle}\label{wxtoplevelwindowgettitle} - -\constfunc{wxString}{GetTitle}{\void} - -Gets a string containing the window title. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::SetTitle}{wxtoplevelwindowsettitle} - - -\membersection{wxTopLevelWindow::HandleSettingChange}\label{wxtoplevelwindowhandlesettingchange} - -\func{virtual bool}{HandleSettingChange}{\param{WXWPARAM}{ wParam}, \param{WXLPARAM}{ lParam}} - -Unique to the wxWinCE port. Responds to showing/hiding SIP (soft input panel) area and resize -window accordingly. Override this if you want to avoid resizing or do additional -operations. - - -\membersection{wxTopLevelWindow::IsActive}\label{wxtoplevelwindowisactive} - -\constfunc{bool}{IsActive}{\void} - -Returns \true if this window is currently active, i.e. if the user is currently -working with it. - - -\membersection{wxTopLevelWindow::IsAlwaysMaximized}\label{wxtoplevelwindowisalwaysmaximized} - -\constfunc{virtual bool}{IsAlwaysMaximized}{\void} - -Returns \true if this window is expected to be always maximized, either due to platform policy -or due to local policy regarding particular class. - - -\membersection{wxTopLevelWindow::Iconize}\label{wxtoplevelwindowiconize} - -\func{void}{Iconize}{\param{bool}{ iconize}} - -Iconizes or restores the window. - -\wxheading{Parameters} - -\docparam{iconize}{If \true, iconizes the window; if \false, shows and restores it.} - -\wxheading{See also} - -\helpref{wxTopLevelWindow::IsIconized}{wxtoplevelwindowisiconized}, \helpref{wxTopLevelWindow::Maximize}{wxtoplevelwindowmaximize}. - - -\membersection{wxTopLevelWindow::IsFullScreen}\label{wxtoplevelwindowisfullscreen} - -\func{bool}{IsFullScreen}{\void} - -Returns \true if the window is in fullscreen mode. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::ShowFullScreen}{wxtoplevelwindowshowfullscreen} - - -\membersection{wxTopLevelWindow::IsIconized}\label{wxtoplevelwindowisiconized} - -\constfunc{bool}{IsIconized}{\void} - -Returns \true if the window is iconized. - - -\membersection{wxTopLevelWindow::IsMaximized}\label{wxtoplevelwindowismaximized} - -\constfunc{bool}{IsMaximized}{\void} - -Returns \true if the window is maximized. - - -\membersection{wxTopLevelWindow::IsUsingNativeDecorations}\label{wxtoplevelwindowisusingnativedecorations} - -\constfunc{bool}{IsUsingNativeDecorations}{\void} - -\bftt{This method is specific to wxUniversal port} - -Returns \true if this window is using native decorations, \false if we draw -them ourselves. - -\wxheading{See also} - -\helpref{UseNativeDecorations}{wxtoplevelwindowusenativedecorations},\\ -\helpref{UseNativeDecorationsByDefault}{wxtoplevelwindowusenativedecorationsbydefault} - - -\membersection{wxTopLevelWindow::Maximize}\label{wxtoplevelwindowmaximize} - -\func{void}{Maximize}{\param{bool }{maximize}} - -Maximizes or restores the window. - -\wxheading{Parameters} - -\docparam{maximize}{If \true, maximizes the window, otherwise it restores it.} - -\wxheading{See also} - -\helpref{wxTopLevelWindow::Iconize}{wxtoplevelwindowiconize} - - -\membersection{wxTopLevelWindow::RequestUserAttention}\label{wxtoplevelwindowrequestuserattention} - -\func{void}{RequestUserAttention}{\param{int }{flags = wxUSER\_ATTENTION\_INFO}} - -Use a system-dependent way to attract users attention to the window when it is -in background. - -\arg{flags} may have the value of either \texttt{wxUSER\_ATTENTION\_INFO} -(default) or \texttt{wxUSER\_ATTENTION\_ERROR} which results in a more drastic -action. When in doubt, use the default value. - -Note that this function should normally be only used when the application is -not already in foreground. - -This function is currently implemented for Win32 where it flashes the -window icon in the taskbar, and for wxGTK with task bars supporting it. - - -\membersection{wxTopLevelWindow::SetDefaultItem}\label{wxtoplevelwindowsetdefaultitem} - -\func{void}{SetDefaultItem}{\param{wxWindow }{*win}} - -Changes the default item for the panel, usually \arg{win} is a button. - -\wxheading{See also} - -\helpref{GetDefaultItem}{wxtoplevelwindowgetdefaultitem} - - -\membersection{wxTopLevelWindow::SetIcon}\label{wxtoplevelwindowseticon} - -\func{void}{SetIcon}{\param{const wxIcon\& }{icon}} - -Sets the icon for this window. - -\wxheading{Parameters} - -\docparam{icon}{The icon to associate with this window.} - -\wxheading{Remarks} - -The window takes a `copy' of {\it icon}, but since it uses reference -counting, the copy is very quick. It is safe to delete {\it icon} after -calling this function. - -See also \helpref{wxIcon}{wxicon}. - - -\membersection{wxTopLevelWindow::SetIcons}\label{wxtoplevelwindowseticons} - -\func{void}{SetIcons}{\param{const wxIconBundle\& }{icons}} - -Sets several icons of different sizes for this window: this allows to use -different icons for different situations (e.g. task switching bar, taskbar, -window title bar) instead of scaling, with possibly bad looking results, the -only icon set by \helpref{SetIcon}{wxtoplevelwindowseticon}. - -\wxheading{Parameters} - -\docparam{icons}{The icons to associate with this window.} - -\wxheading{See also} - -\helpref{wxIconBundle}{wxiconbundle}. - - -\membersection{wxTopLevelWindow::SetLeftMenu}\label{wxtoplevelwindowsetleftmenu} - -\func{void}{SetLeftMenu}{\param{int}{ id = wxID\_ANY}, \param{const wxString\&}{ label = wxEmptyString}, \param{wxMenu *}{ subMenu = NULL}} - -Sets action or menu activated by pressing left hardware button on the smart phones. -Unavailable on full keyboard machines. - -\wxheading{Parameters} - -\docparam{id}{Identifier for this button.} - -\docparam{label}{Text to be displayed on the screen area dedicated to this hardware button.} - -\docparam{subMenu}{The menu to be opened after pressing this hardware button.} - -\wxheading{See also} - -\helpref{wxTopLevelWindow::SetRightMenu}{wxtoplevelwindowsetrightmenu}. - - -\membersection{wxTopLevelWindow::SetMaxSize}\label{wxtoplevelwindowsetmaxsize} - -\func{void}{SetMaxSize}{\param{const wxSize\& }{size}} - -A simpler interface for setting the size hints than -\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints}. - -\membersection{wxTopLevelWindow::SetMinSize}\label{wxtoplevelwindowsetminsize} - -\func{void}{SetMinSize}{\param{const wxSize\& }{size}} - -A simpler interface for setting the size hints than -\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints}. - -\membersection{wxTopLevelWindow::SetSizeHints}\label{wxtoplevelwindowsetsizehints} - -\func{virtual void}{SetSizeHints}{\param{int}{ minW}, \param{int}{ minH}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1}, - \param{int}{ incW=-1}, \param{int}{ incH=-1}} - -\func{void}{SetSizeHints}{\param{const wxSize\&}{ minSize}, -\param{const wxSize\&}{ maxSize=wxDefaultSize}, \param{const wxSize\&}{ incSize=wxDefaultSize}} - -Allows specification of minimum and maximum window sizes, and window size increments. -If a pair of values is not set (or set to -1), no constraints will be used. - -\docparam{incW}{Specifies the increment for sizing the width (GTK/Motif/Xt only).} - -\docparam{incH}{Specifies the increment for sizing the height (GTK/Motif/Xt only).} - -\docparam{incSize}{Increment size (only taken into account under X11-based -ports such as wxGTK/wxMotif/wxX11).} - -\wxheading{Remarks} - -Notice that this function not only prevents the user from resizing the window -outside the given bounds but it also prevents the program itself from doing it -using \helpref{SetSize}{wxwindowsetsize}. - - -\membersection{wxTopLevelWindow::SetRightMenu}\label{wxtoplevelwindowsetrightmenu} - -\func{void}{SetRightMenu}{\param{int}{ id = wxID\_ANY}, \param{const wxString\&}{ label = wxEmptyString}, \param{wxMenu *}{ subMenu = NULL}} - -Sets action or menu activated by pressing right hardware button on the smart phones. -Unavailable on full keyboard machines. - -\wxheading{Parameters} - -\docparam{id}{Identifier for this button.} - -\docparam{label}{Text to be displayed on the screen area dedicated to this hardware button.} - -\docparam{subMenu}{The menu to be opened after pressing this hardware button.} - -\wxheading{See also} - -\helpref{wxTopLevelWindow::SetLeftMenu}{wxtoplevelwindowsetleftmenu}. - - -\membersection{wxTopLevelWindow::SetShape}\label{wxtoplevelwindowsetshape} - -\func{bool}{SetShape}{\param{const wxRegion\&}{ region}} - -If the platform supports it, sets the shape of the window to that -depicted by {\it region}. The system will not display or -respond to any mouse event for the pixels that lie outside of the -region. To reset the window to the normal rectangular shape simply -call {\it SetShape} again with an empty region. Returns true if the -operation is successful. - - -\membersection{wxTopLevelWindow::SetTitle}\label{wxtoplevelwindowsettitle} - -\func{virtual void}{SetTitle}{\param{const wxString\& }{ title}} - -Sets the window title. - -\wxheading{Parameters} - -\docparam{title}{The window title.} - -\wxheading{See also} - -\helpref{wxTopLevelWindow::GetTitle}{wxtoplevelwindowgettitle} - - -\membersection{wxTopLevelWindow::SetTransparent}\label{wxtoplevelwindowsettransparent} - -\func{virtual bool}{SetTransparent}{\param{int }{ alpha}} - -If the platform supports it will set the window to be translucent - -\wxheading{Parameters} - -\docparam{alpha}{Determines how opaque or transparent the window will - be, if the platform supports the opreration. A value of 0 sets the - window to be fully transparent, and a value of 255 sets the window - to be fully opaque.} - -Returns \true if the transparency was successfully changed. - - - -\membersection{wxTopLevelWindow::ShouldPreventAppExit}\label{wxtoplevelwindowshouldpreventappexit} - -\constfunc{virtual bool}{ShouldPreventAppExit}{\void} - -This virtual function is not meant to be called directly but can be overridden -to return \false (it returns \true by default) to allow the application to -close even if this, presumably not very important, window is still opened. -By default, the application stays alive as long as there are any open top level -windows. - - -\membersection{wxTopLevelWindow::ShowFullScreen}\label{wxtoplevelwindowshowfullscreen} - -\func{bool}{ShowFullScreen}{\param{bool}{ show}, \param{long}{ style = wxFULLSCREEN\_ALL}} - -Depending on the value of {\it show} parameter the window is either shown full -screen or restored to its normal state. {\it style} is a bit list containing -some or all of the following values, which indicate what elements of the window -to hide in full-screen mode: - -\begin{itemize}\itemsep=0pt -\item wxFULLSCREEN\_NOMENUBAR -\item wxFULLSCREEN\_NOTOOLBAR -\item wxFULLSCREEN\_NOSTATUSBAR -\item wxFULLSCREEN\_NOBORDER -\item wxFULLSCREEN\_NOCAPTION -\item wxFULLSCREEN\_ALL (all of the above) -\end{itemize} - -This function has not been tested with MDI frames. - -Note that showing a window full screen also actually -\helpref{Show()s}{wxwindowshow} if it hadn't been shown yet. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::IsFullScreen}{wxtoplevelwindowisfullscreen} - - -\membersection{wxTopLevelWindow::UseNativeDecorations}\label{wxtoplevelwindowusenativedecorations} - -\func{void}{UseNativeDecorations}{\param{bool }{native = \true}} - -\bftt{This method is specific to wxUniversal port} - -Use native or custom-drawn decorations for this window only. Notice that to -have any effect this method must be called before really creating the window, -i.e. two step creation must be used: -\begin{verbatim} - MyFrame *frame = new MyFrame; // use default ctor - frame->UseNativeDecorations(false); // change from default "true" - frame->Create(parent, title, ...); // really create the frame -\end{verbatim} - -\wxheading{See also} - -\helpref{UseNativeDecorationsByDefault}{wxtoplevelwindowusenativedecorationsbydefault},\\ -\helpref{IsUsingNativeDecorations}{wxtoplevelwindowisusingnativedecorations} - - -\membersection{wxTopLevelWindow::UseNativeDecorationsByDefault}\label{wxtoplevelwindowusenativedecorationsbydefault} - -\func{void}{UseNativeDecorationsByDefault}{\param{bool }{native = \true}} - -\bftt{This method is specific to wxUniversal port} - -Top level windows in wxUniversal port can use either system-provided window -decorations (i.e. title bar and various icons, buttons and menus in it) or draw -the decorations themselves. By default the system decorations are used if they -are available, but this method can be called with \arg{native} set to \false to -change this for all windows created after this point. - -Also note that if \texttt{WXDECOR} environment variable is set, then custom -decorations are used by default and so it may make sense to call this method -with default argument if the application can't use custom decorations at all -for some reason. - -\wxheading{See also} - -\helpref{UseNativeDecorations}{wxtoplevelwindowusenativedecorations} - diff --git a/docs/latex/wx/tmbconv.tex b/docs/latex/wx/tmbconv.tex deleted file mode 100644 index 4ef2750a27..0000000000 --- a/docs/latex/wx/tmbconv.tex +++ /dev/null @@ -1,176 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tmbconv.tex -%% Purpose: Overview of the wxMBConv classes in wxWidgets -%% Author: Ove Kaaven -%% Modified by: -%% Created: 25.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) 2000 Ove Kaaven -%% Licence: wxWindows licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{wxMBConv classes overview}\label{mbconvclasses} - -Classes: \helpref{wxMBConv}{wxmbconv}, wxMBConvLibc, -\helpref{wxMBConvUTF7}{wxmbconvutf7}, \helpref{wxMBConvUTF8}{wxmbconvutf8}, -\helpref{wxCSConv}{wxcsconv}, -\helpref{wxMBConvUTF16}{wxmbconvutf16}, \helpref{wxMBConvUTF32}{wxmbconvutf32} - -The wxMBConv classes in wxWidgets enable an Unicode-aware application to -easily convert between Unicode and the variety of 8-bit encoding systems still -in use. - -\subsection{Background: The need for conversion}\label{needforconversion} - -As programs are becoming more and more globalized, and users exchange documents -across country boundaries as never before, applications increasingly need to -take into account all the different character sets in use around the world. It -is no longer enough to just depend on the default byte-sized character set that -computers have traditionally used. - -A few years ago, a solution was proposed: the Unicode standard. Able to contain -the complete set of characters in use in one unified global coding system, -it would resolve the character set problems once and for all. - -But it hasn't happened yet, and the migration towards Unicode has created new -challenges, resulting in "compatibility encodings" such as UTF-8. A large -number of systems out there still depends on the old 8-bit encodings, hampered -by the huge amounts of legacy code still widely deployed. Even sending -Unicode data from one Unicode-aware system to another may need encoding to an -8-bit multibyte encoding (UTF-7 or UTF-8 is typically used for this purpose), to -pass unhindered through any traditional transport channels. - -\subsection{Background: The wxString class}\label{conversionandwxstring} - -If you have compiled wxWidgets in Unicode mode, the wxChar type will become -identical to wchar\_t rather than char, and a wxString stores wxChars. Hence, -all wxString manipulation in your application will then operate on Unicode -strings, and almost as easily as working with ordinary char strings (you -just need to remember to use the wxT() macro to encapsulate any string -literals). - -But often, your environment doesn't want Unicode strings. You could be sending -data over a network, or processing a text file for some other application. You -need a way to quickly convert your easily-handled Unicode data to and from a -traditional 8-bit encoding. And this is what the wxMBConv classes do. - -\subsection{wxMBConv classes}\label{wxmbconvclasses} - -The base class for all these conversions is the wxMBConv class (which itself -implements standard libc locale conversion). Derived classes include -wxMBConvLibc, several different wxMBConvUTFxxx classes, and wxCSConv, which -implement different kinds of conversions. You can also derive your own class -for your own custom encoding and use it, should you need it. All you need to do -is override the MB2WC and WC2MB methods. - -\subsection{wxMBConv objects}\label{wxmbconvobjects} - -Several of the wxWidgets-provided wxMBConv classes have predefined instances -(wxConvLibc, wxConvFileName, wxConvUTF7, wxConvUTF8, wxConvLocal). You can use -these predefined objects directly, or you can instantiate your own objects. - -A variable, wxConvCurrent, points to the conversion object that the user -interface is supposed to use, in the case that the user interface is not -Unicode-based (like with GTK+ 1.2). By default, it points to wxConvLibc or -wxConvLocal, depending on which works best on the current platform. - -\subsection{wxCSConv}\label{wxcsconvclass} - -The wxCSConv class is special because when it is instantiated, you can tell it -which character set it should use, which makes it meaningful to keep many -instances of them around, each with a different character set (or you can -create a wxCSConv instance on the fly). - -The predefined wxCSConv instance, wxConvLocal, is preset to use the -default user character set, but you should rarely need to use it directly, -it is better to go through wxConvCurrent. - -\subsection{Converting strings}\label{convertingstrings} - -Once you have chosen which object you want to use to convert your text, -here is how you would use them with wxString. These examples all assume -that you are using a Unicode build of wxWidgets, although they will still -compile in a non-Unicode build (they just won't convert anything). - -Example 1: Constructing a wxString from input in current encoding. - -\begin{verbatim} -wxString str(input_data, *wxConvCurrent); -\end{verbatim} - -Example 2: Input in UTF-8 encoding. - -\begin{verbatim} -wxString str(input_data, wxConvUTF8); -\end{verbatim} - -Example 3: Input in KOI8-R. Construction of wxCSConv instance on the fly. - -\begin{verbatim} -wxString str(input_data, wxCSConv(wxT("koi8-r"))); -\end{verbatim} - -Example 4: Printing a wxString to stdout in UTF-8 encoding. - -\begin{verbatim} -puts(str.mb_str(wxConvUTF8)); -\end{verbatim} - -Example 5: Printing a wxString to stdout in custom encoding. -Using preconstructed wxCSConv instance. - -\begin{verbatim} -wxCSConv cust(user_encoding); -printf("Data: %s\n", (const char*) str.mb_str(cust)); -\end{verbatim} - -Note: Since mb\_str() returns a temporary wxCharBuffer to hold the result -of the conversion, you need to explicitly cast it to const char* if you use -it in a vararg context (like with printf). - -\subsection{Converting buffers}\label{convertingbuffers} - -If you have specialized needs, or just don't want to use wxString, you -can also use the conversion methods of the conversion objects directly. -This can even be useful if you need to do conversion in a non-Unicode -build of wxWidgets; converting a string from UTF-8 to the current -encoding should be possible by doing this: - -\begin{verbatim} -wxString str(wxConvUTF8.cMB2WC(input_data), *wxConvCurrent); -\end{verbatim} - -Here, cMB2WC of the UTF8 object returns a wxWCharBuffer containing a Unicode -string. The wxString constructor then converts it back to an 8-bit character -set using the passed conversion object, *wxConvCurrent. (In a Unicode build -of wxWidgets, the constructor ignores the passed conversion object and -retains the Unicode data.) - -This could also be done by first making a wxString of the original data: - -\begin{verbatim} -wxString input_str(input_data); -wxString str(input_str.wc_str(wxConvUTF8), *wxConvCurrent); -\end{verbatim} - -To print a wxChar buffer to a non-Unicode stdout: - -\begin{verbatim} -printf("Data: %s\n", (const char*) wxConvCurrent->cWX2MB(unicode_data)); -\end{verbatim} - -If you need to do more complex processing on the converted data, you -may want to store the temporary buffer in a local variable: - -\begin{verbatim} -const wxWX2MBbuf tmp_buf = wxConvCurrent->cWX2MB(unicode_data); -const char *tmp_str = (const char*) tmp_buf; -printf("Data: %s\n", tmp_str); -process_data(tmp_str); -\end{verbatim} - -If a conversion had taken place in cWX2MB (i.e. in a Unicode build), -the buffer will be deallocated as soon as tmp\_buf goes out of scope. -(The macro wxWX2MBbuf reflects the correct return value of cWX2MB -(either char* or wxCharBuffer), except for the const.) - diff --git a/docs/latex/wx/tnoneng.tex b/docs/latex/wx/tnoneng.tex deleted file mode 100644 index 56e9147833..0000000000 --- a/docs/latex/wx/tnoneng.tex +++ /dev/null @@ -1,164 +0,0 @@ -\section{Writing non-English applications}\label{nonenglishoverview} - -This article describes how to write applications that communicate with -the user in a language other than English. Unfortunately many languages use -different charsets under Unix and Windows (and other platforms, to make -the situation even more complicated). These charsets usually differ in so -many characters that it is impossible to use the same texts under all -platforms. - -The wxWidgets library provides a mechanism that helps you avoid distributing many -identical, only differently encoded, packages with your application -(e.g. help files and menu items in iso8859-13 and windows-1257). Thanks -to this mechanism you can, for example, distribute only iso8859-13 data -and it will be handled transparently under all systems. - -Please read \helpref{Internationalization}{internationalization} which -describes the locales concept. - -In the following text, wherever {\it iso8859-2} and {\it windows-1250} are -used, any encodings are meant and any encodings may be substituted there. - -\wxheading{Locales} - -The best way to ensure correctly displayed texts in a GUI across platforms -is to use locales. Write your in-code messages in English or without -diacritics and put real messages into the message catalog (see -\helpref{Internationalization}{internationalization}). - -A standard .po file begins with a header like this: - -\begin{verbatim} -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-02-19 16:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" -\end{verbatim} - -Note this particular line: - -\begin{verbatim} -"Content-Type: text/plain; charset=CHARSET\n" -\end{verbatim} - -It specifies the charset used by the catalog. All strings in the catalog -are encoded using this charset. - -You have to fill in proper charset information. Your .po file may look like this -after doing so: - -\begin{verbatim} -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-02-19 16:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso8859-2\n" -"Content-Transfer-Encoding: 8bit\n" -\end{verbatim} - -(Make sure that the header is {\bf not} marked as {\it fuzzy}.) - -wxWidgets is able to use this catalog under any supported platform -(although iso8859-2 is a Unix encoding and is normally not understood by -Windows). - -How is this done? When you tell the wxLocale class to load a message catalog that -contains a correct header, it checks the charset. The catalog is then converted -to the charset used (see -\helpref{wxLocale::GetSystemEncoding}{wxlocalegetsystemencoding} and -\helpref{wxLocale::GetSystemEncodingName}{wxlocalegetsystemencodingname}) by -the user's operating system. This is the default behaviour of the -\helpref{wxLocale}{wxlocale} class; you can disable it by {\bf not} passing -{\tt wxLOCALE\_CONV\_ENCODING} to \helpref{wxLocale::Init}{wxlocaleinit}. - -\wxheading{Non-English strings or 8-bit characters in the source code} - -By convention, you should only use characters without diacritics (i.e. 7-bit -ASCII strings) for msgids in the source code and write them in English. - -If you port software to wxWindows, you may be confronted with legacy source -code containing non-English string literals. Instead of translating the strings -in the source code to English and putting the original strings into message -catalog, you may configure wxWidgets to use non-English msgids and translate to -English using message catalogs: - -\begin{enumerate} -\item{If you use the program {\tt xgettext} to extract the strings from -the source code, specify the option {\tt --from-code=<source code charset>}.} -\item{Specify the source code language and charset as arguments to -\helpref{wxLocale::AddCatalog}{wxlocaleaddcatalog}. For example: -\begin{verbatim} -locale.AddCatalog(_T("myapp"), - wxLANGUAGE_GERMAN, _T("iso-8859-1")); -\end{verbatim} -} -\end{enumerate} - -\wxheading{Font mapping} - -You can use \helpref{wxMBConv classes}{mbconvclasses} and -\helpref{wxFontMapper}{wxfontmapper} to display text: - -\begin{verbatim} -if (!wxFontMapper::Get()->IsEncodingAvailable(enc, facename)) -{ - wxFontEncoding alternative; - if (wxFontMapper::Get()->GetAltForEncoding(enc, &alternative, - facename, false)) - { - wxCSConv convFrom(wxFontMapper::Get()->GetEncodingName(enc)); - wxCSConv convTo(wxFontMapper::Get()->GetEncodingName(alternative)); - text = wxString(text.mb_str(convFrom), convTo); - } - else - ...failure (or we may try iso8859-1/7bit ASCII)... -} -...display text... -\end{verbatim} - -\wxheading{Converting data} - -You may want to store all program data (created documents etc.) in -the same encoding, let's say {\tt utf-8}. You can use -\helpref{wxCSConv}{wxcsconv} class to convert data to the encoding used by the -system your application is running on (see -\helpref{wxLocale::GetSystemEncoding}{wxlocalegetsystemencoding}). - -\wxheading{Help files} - -If you're using \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} there is -no problem at all. You only need to make sure that all the HTML files contain -the META tag, e.g. - -\begin{verbatim} -<meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> -\end{verbatim} - -and that the hhp project file contains one additional line in the {\tt OPTIONS} -section: - -\begin{verbatim} -Charset=iso8859-2 -\end{verbatim} - -This additional entry tells the HTML help controller what encoding is used -in contents and index tables. - diff --git a/docs/latex/wx/tokenizr.tex b/docs/latex/wx/tokenizr.tex deleted file mode 100644 index 85aa9f0945..0000000000 --- a/docs/latex/wx/tokenizr.tex +++ /dev/null @@ -1,159 +0,0 @@ -\section{\class{wxStringTokenizer}}\label{wxstringtokenizer} - -wxStringTokenizer helps you to break a string up into a number of tokens. It -replaces the standard C function {\tt strtok()} and also extends it in a -number of ways. - -To use this class, you should create a wxStringTokenizer object, give it the -string to tokenize and also the delimiters which separate tokens in the string -(by default, white space characters will be used). - -Then \helpref{GetNextToken}{wxstringtokenizergetnexttoken} may be called -repeatedly until it \helpref{HasMoreTokens}{wxstringtokenizerhasmoretokens} -returns \false. - -For example: - -\begin{verbatim} - -wxStringTokenizer tkz(wxT("first:second:third:fourth"), wxT(":")); -while ( tkz.HasMoreTokens() ) -{ - wxString token = tkz.GetNextToken(); - - // process token here -} -\end{verbatim} - -By default, wxStringTokenizer will behave in the same way as {\tt strtok()} if -the delimiters string only contains white space characters but, unlike the -standard function, it will return empty tokens if this is not the case. This -is helpful for parsing strictly formatted data where the number of fields is -fixed but some of them may be empty (i.e. {\tt TAB} or comma delimited text -files). - -The behaviour is governed by the last -\helpref{constructor}{wxstringtokenizerwxstringtokenizer}/\helpref{SetString}{wxstringtokenizersetstring} -parameter {\tt mode} which may be one of the following: - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{{\tt wxTOKEN\_DEFAULT}}{Default behaviour (as described above): -same as {\tt wxTOKEN\_STRTOK} if the delimiter string contains only -whitespaces, same as {\tt wxTOKEN\_RET\_EMPTY} otherwise} -\twocolitem{{\tt wxTOKEN\_RET\_EMPTY}}{In this mode, the empty tokens in the -middle of the string will be returned, i.e. {\tt "a::b:"} will be tokenized in -three tokens `a', `' and `b'. Notice that all trailing delimiters are ignored -in this mode, not just the last one, i.e. a string \texttt{"a::b::"} would -still result in the same set of tokens.} -\twocolitem{{\tt wxTOKEN\_RET\_EMPTY\_ALL}}{In this mode, empty trailing tokens -(including the one after the last delimiter character) will be returned as -well. The string \texttt{"a::b:"} will be tokenized in four tokens: the already -mentioned ones and another empty one as the last one and a string -\texttt{"a::b::"} will have five tokens.} -\twocolitem{{\tt wxTOKEN\_RET\_DELIMS}}{In this mode, the delimiter character -after the end of the current token (there may be none if this is the last -token) is returned appended to the token. Otherwise, it is the same mode as -\texttt{wxTOKEN\_RET\_EMPTY}. Notice that there is no mode like this one but -behaving like \texttt{wxTOKEN\_RET\_EMPTY\_ALL} instead of -\texttt{wxTOKEN\_RET\_EMPTY}, use \texttt{wxTOKEN\_RET\_EMPTY\_ALL} and -\helpref{GetLastDelimiter()}{wxstringtokenizergetlastdelimiter} to emulate it.} -\twocolitem{{\tt wxTOKEN\_STRTOK}}{In this mode the class behaves exactly like -the standard {\tt strtok()} function: the empty tokens are never returned.} -\end{twocollist} - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{See also} - -\helpref{wxStringTokenize}{wxstringtokenize} - -\wxheading{Include files} - -<wx/tokenzr.h> - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStringTokenizer::wxStringTokenizer}\label{wxstringtokenizerwxstringtokenizer} - -\func{}{wxStringTokenizer}{\void} - -Default constructor. You must call -\helpref{SetString}{wxstringtokenizersetstring} before calling any other -methods. - -\func{}{wxStringTokenizer}{\param{const wxString\& }{str}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{wxStringTokenizerMode }{mode = wxTOKEN\_DEFAULT}} - -Constructor. Pass the string to tokenize, a string containing delimiters -and the mode specifying how the string should be tokenized. - - -\membersection{wxStringTokenizer::CountTokens}\label{wxstringtokenizercounttokens} - -\constfunc{int}{CountTokens}{\void} - -Returns the number of tokens remaining in the input string. The number of -tokens returned by this function is decremented each time -\helpref{GetNextToken}{wxstringtokenizergetnexttoken} is called and when it -reaches $0$ \helpref{HasMoreTokens}{wxstringtokenizerhasmoretokens} returns -\false. - - -\membersection{wxStringTokenizer::HasMoreTokens}\label{wxstringtokenizerhasmoretokens} - -\constfunc{bool}{HasMoreTokens}{\void} - -Returns \true if the tokenizer has further tokens, \false if none are left. - - -\membersection{wxStringTokenizer::GetLastDelimiter}\label{wxstringtokenizergetlastdelimiter} - -\func{wxChar}{GetLastDelimiter}{\void} - -Returns the delimiter which ended scan for the last token returned by -\helpref{GetNextToken()}{wxstringtokenizergetnexttoken} or \texttt{NUL} if -there had been no calls to this function yet or if it returned the trailing -empty token in \texttt{wxTOKEN\_RET\_EMPTY\_ALL} mode. - -\newsince{2.7.0} - - -\membersection{wxStringTokenizer::GetNextToken}\label{wxstringtokenizergetnexttoken} - -\constfunc{wxString}{GetNextToken}{\void} - -Returns the next token or empty string if the end of string was reached. - - -\membersection{wxStringTokenizer::GetPosition}\label{wxstringtokenizergetposition} - -\constfunc{size\_t}{GetPosition}{\void} - -Returns the current position (i.e. one index after the last returned -token or 0 if GetNextToken() has never been called) in the original -string. - - -\membersection{wxStringTokenizer::GetString}\label{wxstringtokenizergetstring} - -\constfunc{wxString}{GetString}{\void} - -Returns the part of the starting string without all token already extracted. - - -\membersection{wxStringTokenizer::SetString}\label{wxstringtokenizersetstring} - -\func{void}{SetString}{\param{const wxString\& }{to\_tokenize}, \param{const wxString\& }{delims = " $\backslash$t$\backslash$r$\backslash$n"}, \param{wxStringTokenizerMode }{mode = wxTOKEN\_DEFAULT}} - -Initializes the tokenizer. - -Pass the string to tokenize, a string containing delimiters, -and the mode specifying how the string should be tokenized. - diff --git a/docs/latex/wx/toolbar.tex b/docs/latex/wx/toolbar.tex deleted file mode 100644 index bb7f8ada0b..0000000000 --- a/docs/latex/wx/toolbar.tex +++ /dev/null @@ -1,918 +0,0 @@ -\section{\class{wxToolBar}}\label{wxtoolbar} - -The name wxToolBar is defined to be a synonym for one of the following classes: - -\begin{itemize}\itemsep=0pt -\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above. -\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows. -\item {\bf wxToolBarGTK} The GTK toolbar. -\end{itemize} - -\wxheading{Derived from} - -wxToolBarBase\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/toolbar.h> (to allow wxWidgets to select an appropriate toolbar class)\\ -<wx/tbarbase.h> (the base class) - -\wxheading{Remarks} - -You may also create a toolbar that is managed by the frame, by -calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. Under Pocket PC, -you should \arg{always} use this function for creating the toolbar -to be managed by the frame, so that wxWidgets can use a combined -menubar and toolbar. Where you manage your own toolbars, create a wxToolBar -as usual. - -The meaning of a "separator" is a vertical line under Windows and simple space under GTK+. - -{\bf wxToolBar95:} Note that this toolbar paints tools to reflect system-wide colours. -If you use more than 16 colours in your tool bitmaps, you may wish to suppress -this behaviour, otherwise system colours in your bitmaps will inadvertently be -mapped to system colours. To do this, set the {\tt msw.remap} system option -before creating the toolbar: - -\begin{verbatim} - wxSystemOptions::SetOption(wxT("msw.remap"), 0); -\end{verbatim} - -If you wish to use 32-bit images (which include an alpha channel for transparency) -use: - -\begin{verbatim} - wxSystemOptions::SetOption(wxT("msw.remap"), 2); -\end{verbatim} - -then colour remapping is switched off, and a transparent background used. But only -use this option under Windows XP with true colour: - -\begin{verbatim} - (wxTheApp->GetComCtl32Version() >= 600 && ::wxDisplayDepth() >= 32) -\end{verbatim} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look (Windows and GTK only).} -\twocolitem{\windowstyle{wxTB\_DOCKABLE}}{Makes the toolbar floatable and dockable (GTK only).} -\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout (default).} -\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout.} -\twocolitem{\windowstyle{wxTB\_TEXT}}{Shows the text in the toolbar buttons; by default only icons are shown.} -\twocolitem{\windowstyle{wxTB\_NOICONS}}{Specifies no icons in the toolbar buttons; by default they are shown.} -\twocolitem{\windowstyle{wxTB\_NODIVIDER}}{Specifies no divider (border) above the toolbar (Windows only).} -\twocolitem{\windowstyle{wxTB\_NOALIGN}}{Specifies no alignment with the parent window (Windows only, not very useful).} -\twocolitem{\windowstyle{wxTB\_HORZ\_LAYOUT}}{Shows the text and the icons alongside, not vertically stacked (Windows and GTK -2 only). This style must be used with wxTB\_TEXT.} -\twocolitem{\windowstyle{wxTB\_HORZ\_TEXT}}{Combination of wxTB\_HORZ\_LAYOUT and wxTB\_TEXT.} -\twocolitem{\windowstyle{wxTB\_NO\_TOOLTIPS}}{Don't show the short help tooltips for the tools when the mouse hovers over them.} -\twocolitem{\windowstyle{wxTB\_BOTTOM}}{Align the toolbar at the bottom of parent window.} -\twocolitem{\windowstyle{wxTB\_RIGHT}}{Align the toolbar at the right side of parent window.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. Note that the Win32 -native toolbar ignores {\tt wxTB\_NOICONS} style. Also, toggling the -{\tt wxTB\_TEXT} works only if the style was initially on. - -\wxheading{Event handling} - -The toolbar class emits menu commands in the same way that a frame menubar does, -so you can use one EVT\_MENU macro for both a menu item and a toolbar button. -The event handler functions take a wxCommandEvent argument. For most event macros, -the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar -window identifier is passed and the tool identifier is retrieved from the wxCommandEvent. -This is because the identifier may be -1 when the mouse moves off a tool, and -1 is not -allowed as an identifier in the event system. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.} -\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.} -\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event -for a range of identifiers. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event. -Pass the id of the tool.} -\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event -for a range of ids. Pass the ids of the tools.} -\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event. -Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.} -\twocolitem{{\bf EVT\_TOOL\_DROPDOWN(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_DROPDOWN\_CLICKED event. If unhandled, displays the default dropdown menu set using \helpref{wxToolBar::SetDropdownMenu}{wxtoolbarsetdropdownmenu}.} -\end{twocollist} - -\wxheading{wxItemKind} - -There are several different types of tools you can add to a toolbar. These -types are controlled by the wxItemKind enumeration which has the following -values: -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxITEM\_NORMAL}}{Normal tool button} -\twocolitem{{\bf wxITEM\_CHECK}}{Check (or toggle) tool button.} -\twocolitem{{\bf wxITEM\_NORMAL}}{Radio tool button. See \helpref{wxToolBar::AddRadioTool}{wxtoolbaraddradiotool} for details} -\twocolitem{{\bf wxITEM\_DROPDOWN}}{Normal tool button with a dropdown arrow -next to it. Clicking the dropdown arrow sends a wxEVT\_COMMAND\_TOOL\_DROPDOWN\_CLICKED -event and may also display the menu previously associated with the item with -\helpref{wxToolBar::SetDropdownMenu}{wxtoolbarsetdropdownmenu}. Currently this -type of tools is supported under MSW and GTK.} -\end{twocollist} - -\wxheading{See also} - -\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp -\helpref{wxScrolledWindow}{wxscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr} - -\func{}{wxToolBar}{\void} - -Default constructor. - -\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxTB\_HORIZONTAL \pipe wxBORDER\_NONE}, - \param{const wxString\& }{name = wxPanelNameStr}} - -Constructs a toolbar. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If -1, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets -should generate a default position for the window. If using the wxWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets -should generate a default size for the window.} - -\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.} - -\docparam{name}{Window name.} - -\wxheading{Remarks} - -After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and -perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you -must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar -tools. - -You may also create a toolbar that is managed by the frame, by -calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. - - -\membersection{wxToolBar::\destruct{wxToolBar}}\label{wxtoolbardtor} - -\func{void}{\destruct{wxToolBar}}{\void} - -Toolbar destructor. - - -\membersection{wxToolBar::AddControl}\label{wxtoolbaraddcontrol} - -\func{bool}{AddControl}{\param{wxControl*}{ control}, \param{const wxString&}{ label = ""}} - -Adds any control to the toolbar, typically e.g. a combobox. - -\docparam{control}{The control to be added.} - -\docparam{label}{Text to be displayed near the control.} - -\wxheading{Remarks} - -wxMSW: the label is only displayed if there is enough space available below the embedded control. - -wxMac: labels are only displayed if wxWidgets is built with wxMAC\_USE\_NATIVE\_TOOLBAR set to 1 - - -\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator} - -\func{void}{AddSeparator}{\void} - -Adds a separator for spacing groups of tools. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation} - - -\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool} - -\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp -\param{const wxString\&}{ label},\rtfsp -\param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxString\& }{shortHelpString = ""},\rtfsp -\param{wxItemKind}{ kind = wxITEM\_NORMAL}} - -\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp -\param{const wxString\&}{ label},\rtfsp -\param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap},\rtfsp -\param{wxItemKind}{ kind = wxITEM\_NORMAL},\rtfsp -\param{const wxString\& }{shortHelpString = ""}, -\param{const wxString\& }{longHelpString = ""},\rtfsp -\param{wxObject* }{clientData = \NULL}} - -\func{wxToolBarToolBase*}{AddTool}{\param{wxToolBarToolBase* }{tool}} - -Adds a tool to the toolbar. The first (short and most commonly used) version -has fewer parameters than the full version at the price of not being able to -specify some of the more rarely used button features. The last version allows -you to add an existing tool. - -\wxheading{Parameters} - -\docparam{toolId}{An integer by which -the tool may be identified in subsequent operations.} - -\docparam{kind}{May be wxITEM\_NORMAL for a normal button (default), -wxITEM\_CHECK for a checkable tool (such tool stays pressed after it had been -toggled) or wxITEM\_RADIO for a checkable tool which makes part of a radio -group of tools each of which is automatically unchecked whenever another button -in the group is checked} - -\docparam{bitmap1}{The primary tool bitmap.} - -\docparam{bitmap2}{The bitmap used when the tool is disabled. If it is equal to -wxNullBitmap, the disabled bitmap is automatically generated by greing the -normal one.} - -\docparam{shortHelpString}{This string is used for the tools tooltip} - -\docparam{longHelpString}{This string is shown in the statusbar (if any) of the -parent frame when the mouse pointer is inside the tool} - -\docparam{clientData}{An optional pointer to client data which can be -retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.} - -\docparam{tool}{The tool to be added.} - -\wxheading{Remarks} - -After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in -order to have the tools appear. - -\wxheading{See also} - -\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},\rtfsp -\helpref{wxToolBar::AddCheckTool}{wxtoolbaraddchecktool},\rtfsp -\helpref{wxToolBar::AddRadioTool}{wxtoolbaraddradiotool},\rtfsp -\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool},\rtfsp -\helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool},\rtfsp -\helpref{wxToolBar::Realize}{wxtoolbarrealize} - - -\membersection{wxToolBar::AddCheckTool}\label{wxtoolbaraddchecktool} - -\func{wxToolBarToolBase*}{AddCheckTool}{\param{int}{ toolId},\rtfsp -\param{const wxString\&}{ label},\rtfsp -\param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxBitmap\&}{ bitmap2},\rtfsp -\param{const wxString\& }{shortHelpString = ""},\rtfsp -\param{const wxString\& }{longHelpString = ""},\rtfsp -\param{wxObject* }{clientData = \NULL}} - -Adds a new check (or toggle) tool to the toolbar. The parameters are the same -as in \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool} - - -\membersection{wxToolBar::AddRadioTool}\label{wxtoolbaraddradiotool} - -\func{wxToolBarToolBase*}{AddRadioTool}{\param{int}{ toolId},\rtfsp -\param{const wxString\&}{ label},\rtfsp -\param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxBitmap\&}{ bitmap2},\rtfsp -\param{const wxString\& }{shortHelpString = ""},\rtfsp -\param{const wxString\& }{longHelpString = ""},\rtfsp -\param{wxObject* }{clientData = \NULL}} - -Adds a new radio tool to the toolbar. Consecutive radio tools form a radio -group such that exactly one button in the group is pressed at any moment, in -other words whenever a button in the group is pressed the previously pressed -button is automatically released. You should avoid having the radio groups of -only one element as it would be impossible for the user to use such button. - -By default, the first button in the radio group is initially pressed, the -others are not. - -\wxheading{See also} - -\helpref{wxToolBar::AddTool}{wxtoolbaraddtool} - -\membersection{wxToolBar::ClearTools}\label{wxtoolbarcleartools} - -\func{void}{ClearTools}{\void} - -Deletes all the tools in the toolbar. - -\membersection{wxToolBar::DeleteTool}\label{wxtoolbardeletetool} - -\func{bool}{DeleteTool}{\param{int }{toolId}} - -Removes the specified tool from the toolbar and deletes it. If you don't want -to delete the tool, but just to remove it from the toolbar (to possibly add it -back later), you may use \helpref{RemoveTool}{wxtoolbarremovetool} instead. - -Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the -change to take place, it will happen immediately. - -Returns true if the tool was deleted, false otherwise. - -\wxheading{See also} - -\helpref{DeleteToolByPos}{wxtoolbardeletetoolbypos} - - -\membersection{wxToolBar::DeleteToolByPos}\label{wxtoolbardeletetoolbypos} - -\func{bool}{DeleteToolByPos}{\param{size\_t }{pos}} - -This function behaves like \helpref{DeleteTool}{wxtoolbardeletetool} but it -deletes the tool at the specified position and not the one with the given id. - - -\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool} - -\func{void}{EnableTool}{\param{int }{toolId}, \param{bool}{ enable}} - -Enables or disables the tool. - -\wxheading{Parameters} - -\docparam{toolId}{Tool to enable or disable.} - -\docparam{enable}{If true, enables the tool, otherwise disables it.} - -{\bf NB:} This function should only be called after -\helpref{Realize}{wxtoolbarrealize}. - -\wxheading{Remarks} - -Some implementations will change the visible state of the tool to indicate that it is disabled. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp -\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool} - - -\membersection{wxToolBar::FindById}\label{wxtoolbarfindbyid} - -\func{wxToolBarToolBase*}{FindById}{\param{int }{id}} - -Returns a pointer to the tool identified by \arg{id} or -\NULL if no corresponding tool is found. - - -\membersection{wxToolBar::FindControl}\label{wxtoolbarfindcontrol} - -\func{wxControl*}{FindControl}{\param{int }{id}} - -Returns a pointer to the control identified by \arg{id} or -\NULL if no corresponding control is found. - - -\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition} - -\constfunc{wxToolBarToolBase*}{FindToolForPosition}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Finds a tool for the given mouse position. - -\wxheading{Parameters} - -\docparam{x}{X position.} - -\docparam{y}{Y position.} - -\wxheading{Return value} - -A pointer to a tool if a tool is found, or \NULL otherwise. - -\wxheading{Remarks} - -Currently not implemented in wxGTK (always returns \NULL there). - - -\membersection{wxToolBar::GetToolsCount}\label{wxtoolbargettoolscount} - -\constfunc{int}{GetToolsCount}{\void} - -Returns the number of tools in the toolbar. - - -\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize} - -\func{wxSize}{GetToolSize}{\void} - -Returns the size of a whole button, which is usually larger than a tool bitmap because -of added 3D effects. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize} - - -\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize} - -\func{wxSize}{GetToolBitmapSize}{\void} - -Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels. - -\wxheading{Remarks} - -Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, -and not the eventual size of the tool button. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize} - - -\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins} - -\constfunc{wxSize}{GetMargins}{\void} - -Returns the left/right and top/bottom margins, which are also used for inter-toolspacing. - -\wxheading{See also} - -\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins} - - -\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata} - -\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolId}} - -Get any client data associated with the tool. - -\wxheading{Parameters} - -\docparam{toolId}{Id of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\wxheading{Return value} - -Client data, or \NULL if there is none. - - -\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled} - -\constfunc{bool}{GetToolEnabled}{\param{int }{toolId}} - -Called to determine whether a tool is enabled (responds to user input). - -\wxheading{Parameters} - -\docparam{toolId}{Id of the tool in question.} - -\wxheading{Return value} - -true if the tool is enabled, false otherwise. - -\wxheading{See also} - -\helpref{wxToolBar::EnableTool}{wxtoolbarenabletool} - - -\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp} - -\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolId}} - -Returns the long help for the given tool. - -\wxheading{Parameters} - -\docparam{toolId}{The tool in question.} - -\wxheading{See also} - -\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp - - -\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking} - -\constfunc{int}{GetToolPacking}{\void} - -Returns the value used for packing tools. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking} - - -\membersection{wxToolBar::GetToolPos}\label{wxtoolbargettoolpos} - -\constfunc{int}{GetToolPos}{\param{int }{toolId}} - -Returns the tool position in the toolbar, or {\tt wxNOT\_FOUND} if the tool is not found. - - -\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation} - -\constfunc{int}{GetToolSeparation}{\void} - -Returns the default separator size. - -\wxheading{See also} - -\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation} - - -\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp} - -\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolId}} - -Returns the short help for the given tool. - -\wxheading{Parameters} - -\docparam{toolId}{The tool in question.} - -\wxheading{See also} - -\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp - - -\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate} - -\constfunc{bool}{GetToolState}{\param{int }{toolId}} - -Gets the on/off state of a toggle tool. - -\wxheading{Parameters} - -\docparam{toolId}{The tool in question.} - -\wxheading{Return value} - -true if the tool is toggled on, false otherwise. - -\wxheading{See also} - -\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool} - - -\membersection{wxToolBar::InsertControl}\label{wxtoolbarinsertcontrol} - -\func{wxToolBarToolBase *}{InsertControl}{\param{size\_t }{pos}, \param{wxControl *}{control}} - -Inserts the control into the toolbar at the given position. - -You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place. - -\wxheading{See also} - -\helpref{AddControl}{wxtoolbaraddcontrol},\\ -\helpref{InsertTool}{wxtoolbarinserttool} - - -\membersection{wxToolBar::InsertSeparator}\label{wxtoolbarinsertseparator} - -\func{wxToolBarToolBase *}{InsertSeparator}{\param{size\_t }{pos}} - -Inserts the separator into the toolbar at the given position. - -You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place. - -\wxheading{See also} - -\helpref{AddSeparator}{wxtoolbaraddseparator},\\ -\helpref{InsertTool}{wxtoolbarinserttool} - - -\membersection{wxToolBar::InsertTool}\label{wxtoolbarinserttool} - -\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp -\param{int}{ toolId}, \param{const wxBitmap\&}{ bitmap1},\rtfsp -\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = false},\rtfsp -\param{wxObject* }{clientData = \NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}} - -\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp -\param{wxToolBarToolBase* }{tool}} - -Inserts the tool with the specified attributes into the toolbar at the given -position. - -You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place. - -\wxheading{See also} - -\helpref{AddTool}{wxtoolbaraddtool},\\ -\helpref{InsertControl}{wxtoolbarinsertcontrol},\\ -\helpref{InsertSeparator}{wxtoolbarinsertseparator} - - -\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick} - -\func{bool}{OnLeftClick}{\param{int}{ toolId}, \param{bool}{ toggleDown}} - -Called when the user clicks on a tool with the left mouse button. - -This is the old way of detecting tool clicks; although it will still work, -you should use the EVT\_MENU or EVT\_TOOL macro instead. - -\wxheading{Parameters} - -\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\docparam{toggleDown}{true if the tool is a toggle and the toggle is down, otherwise is false.} - -\wxheading{Return value} - -If the tool is a toggle and this function returns false, the toggle -toggle state (internal and visual) will not be changed. This provides a way of -specifying that toggle operations are not permitted in some circumstances. - -\wxheading{See also} - -\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp -\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick} - - -\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter} - -\func{void}{OnMouseEnter}{\param{int}{ toolId}} - -This is called when the mouse cursor moves into a tool or out of -the toolbar. - -This is the old way of detecting mouse enter events; although it will still work, -you should use the EVT\_TOOL\_ENTER macro instead. - -\wxheading{Parameters} - -\docparam{toolId}{Greater than -1 if the mouse cursor has moved into the tool, -or -1 if the mouse cursor has moved. The -programmer can override this to provide extra information about the tool, -such as a short description on the status line.} - -\wxheading{Remarks} - -With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWidgets may not be able to -detect it. Therefore this function may not always be called when expected. - - -\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick} - -\func{void}{OnRightClick}{\param{int}{ toolId}, \param{float}{ x}, \param{float}{ y}} - -Called when the user clicks on a tool with the right mouse button. The -programmer should override this function to detect right tool clicks. - -This is the old way of detecting tool right clicks; although it will still work, -you should use the EVT\_TOOL\_RCLICKED macro instead. - -\wxheading{Parameters} - -\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.} - -\docparam{x}{The x position of the mouse cursor.} - -\docparam{y}{The y position of the mouse cursor.} - -\wxheading{Remarks} - -A typical use of this member might be to pop up a menu. - -\wxheading{See also} - -\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp -\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick} - - -\membersection{wxToolBar::Realize}\label{wxtoolbarrealize} - -\func{bool}{Realize}{\void} - -This function should be called after you have added tools. - - -\membersection{wxToolBar::RemoveTool}\label{wxtoolbarremovetool} - -\func{wxToolBarToolBase *}{RemoveTool}{\param{int }{id}} - -Removes the given tool from the toolbar but doesn't delete it. This allows to -insert/add this tool back to this (or another) toolbar later. - -Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the -change to take place, it will happen immediately. - -\wxheading{See also} - -\helpref{DeleteTool}{wxtoolbardeletetool} - - -\membersection{wxToolBar::SetBitmapResource}\label{wxtoolbarsetbitmapresource} - -\func{void}{SetBitmapResource}{\param{int }{resourceId}} - -Sets the bitmap resource identifier for specifying tool bitmaps as indices -into a custom bitmap. Windows CE only. - - -\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins} - -\func{void}{SetMargins}{\param{const wxSize\&}{ size}} - -\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}} - -Set the values to be used as margins for the toolbar. - -\wxheading{Parameters} - -\docparam{size}{Margin size.} - -\docparam{x}{Left margin, right margin and inter-tool separation value.} - -\docparam{y}{Top margin, bottom margin and inter-tool separation value.} - -\wxheading{Remarks} - -This must be called before the tools are added if absolute positioning is to be used, and the -default (zero-size) margins are to be overridden. - -\wxheading{See also} - -\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize} - - -\membersection{wxToolBar::SetDropdownMenu}\label{wxtoolbarsetdropdownmenu} - -\func{bool}{SetDropdownMenu}{\param{int }{id}, \param{wxMenu* }{menu}} - -Sets the dropdown menu for the tool given by its \arg{id}. The tool itself will -delete the menu when it's no longer needed. - -If you define a EVT\_TOOL\_DROPDOWN handler in your program, you must call -\helpref{wxEvent::Skip()}{wxeventskip} from it or the menu won't be displayed. - - -\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize} - -\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}} - -Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels. - -\wxheading{Parameters} - -\docparam{size}{The size of the bitmaps in the toolbar.} - -\wxheading{Remarks} - -This should be called to tell the toolbar what the tool bitmap size is. Call -it before you add tools. - -Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, -and not the eventual size of the tool button. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp -\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize} - - -\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata} - -\func{void}{SetToolClientData}{\param{int }{id}, \param{wxObject* }{clientData}} - -Sets the client data associated with the tool. - - -\membersection{wxToolBar::SetToolDisabledBitmap}\label{wxtoolbarsettooldisabledbitmap} - -\func{void}{SetToolDisabledBitmap}{\param{int }{id}, \param{const wxBitmap\& }{bitmap}} - -Sets the bitmap to be used by the tool with the given ID when the tool -is in a disabled state. This can only be used on Button tools, not -controls. NOTE: The native toolbar classes on the main platforms all -synthesize the disabled bitmap from the normal bitmap, so this -function will have no effect on those platforms. - - -\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp} - -\func{void}{SetToolLongHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}} - -Sets the long help for the given tool. - -\wxheading{Parameters} - -\docparam{toolId}{The tool in question.} - -\docparam{helpString}{A string for the long help.} - -\wxheading{Remarks} - -You might use the long help for displaying the tool purpose on the status line. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp -\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp - - -\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking} - -\func{void}{SetToolPacking}{\param{int}{ packing}} - -Sets the value used for spacing tools. The default value is 1. - -\wxheading{Parameters} - -\docparam{packing}{The value for packing.} - -\wxheading{Remarks} - -The packing is used for spacing in the vertical direction if the toolbar is horizontal, -and for spacing in the horizontal direction if the toolbar is vertical. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking} - - -\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp} - -\func{void}{SetToolShortHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}} - -Sets the short help for the given tool. - -\wxheading{Parameters} - -\docparam{toolId}{The tool in question.} - -\docparam{helpString}{The string for the short help.} - -\wxheading{Remarks} - -An application might use short help for identifying the tool purpose in a tooltip. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp} - - -\membersection{wxToolBar::SetToolNormalBitmap}\label{wxtoolbarsettoolnormalbitmap} - -\func{void}{SetToolNormalBitmap}{\param{int }{id}, \param{const wxBitmap\& }{bitmap}} - -Sets the bitmap to be used by the tool with the given ID. This can -only be used on Button tools, not controls. - - - -\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation} - -\func{void}{SetToolSeparation}{\param{int}{ separation}} - -Sets the default separator size. The default value is 5. - -\wxheading{Parameters} - -\docparam{separation}{The separator size.} - -\wxheading{See also} - -\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator} - - -\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool} - -\func{void}{ToggleTool}{\param{int }{toolId}, \param{bool}{ toggle}} - -Toggles a tool on or off. This does not cause any event to get emitted. - -\wxheading{Parameters} - -\docparam{toolId}{Tool in question.} - -\docparam{toggle}{If true, toggles the tool on, otherwise toggles it off.} - -\wxheading{Remarks} - -Only applies to a tool that has been specified as a toggle tool. - -\wxheading{See also} - -\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate} - diff --git a/docs/latex/wx/toolbook.tex b/docs/latex/wx/toolbook.tex deleted file mode 100644 index ec84f5c0dd..0000000000 --- a/docs/latex/wx/toolbook.tex +++ /dev/null @@ -1,57 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: toolbook.tex -%% Purpose: wxToolbook documentation -%% Author: Julian Smart -%% Modified by: -%% Created: 2006-01-30 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Julian Smart -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxToolbook}}\label{wxtoolbook} - -wxToolbook is a class similar to \helpref{wxNotebook}{wxnotebook} but which -uses a \helpref{wxToolBar}{wxtoolbar} to show the labels instead of the -tabs. - -There is no documentation for this class yet but its usage is -identical to wxNotebook (except for the features clearly related to tabs -only), so please refer to that class documentation for now. You can also -use the \helpref{notebook sample}{samplenotebook} to see wxToolbook in action. - -\wxheading{Derived from} - -wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/toolbook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTBK\_BUTTONBAR}}{Use wxButtonToolBar-based -implementation under Mac OS (ignored under other platforms.)} -\twocolitem{\windowstyle{wxTBK\_HORZ\_LAYOUT}}{Shows the text and the icons -alongside, not vertically stacked (only implement under Windows and GTK 2 -platforms as it relies on \texttt{wxTB\_HORZ\_LAYOUT} flag support).} -\end{twocollist} - -The common wxBookCtrl styles described in this control -\helpref{overview}{wxbookctrloverview} are also supported. - -\wxheading{See also} - -\helpref{wxBookCtrl}{wxbookctrloverview}, \helpref{wxNotebook}{wxnotebook}, \helpref{notebook sample}{samplenotebook} - diff --git a/docs/latex/wx/tooltip.tex b/docs/latex/wx/tooltip.tex deleted file mode 100644 index f2e70d722c..0000000000 --- a/docs/latex/wx/tooltip.tex +++ /dev/null @@ -1,83 +0,0 @@ -\section{\class{wxToolTip}}\label{wxtooltip} - -This class holds information about a tooltip associated with a window -(see \helpref{wxWindow::SetToolTip}{wxwindowsettooltip}). - -The four static methods, \helpref{wxToolTip::Enable}{wxtooltipenable}, -\helpref{wxToolTip::SetDelay}{wxtooltipsetdelay} -\helpref{wxToolTip::SetAutoPop}{wxtooltipsetautopop} and -\helpref{wxToolTip::SetReshow}{wxtooltipsetreshow} can be used to globally -alter tooltips behaviour. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/tooltip.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxToolTip::Enable}\label{wxtooltipenable} - -\func{static void}{Enable}{\param{bool }{flag}} - -Enable or disable tooltips globally. - -May not be supported on all platforms (eg. wxCocoa). - - -\membersection{wxToolTip::SetDelay}\label{wxtooltipsetdelay} - -\func{static void}{SetDelay}{\param{long }{msecs}} - -Set the delay after which the tooltip appears. - -May not be supported on all platforms (eg. wxCocoa). - -\membersection{wxToolTip::SetAutoPop}\label{wxtooltipsetautopop} - -\func{static void}{SetAutoPop}{\param{long }{msecs}} - -Set the delay after which the tooltip disappears or how long a -tooltip remains visible. -May not be supported on all platforms (eg. wxCocoa, GTK, Palmos). - -\membersection{wxToolTip::SetReshow}\label{wxtooltipsetreshow} - -\func{static void}{SetReshow}{\param{long }{msecs}} - -Set the delay between subsequent tooltips to appear. -May not be supported on all platforms (eg. wxCocoa, GTK, Palmos). - -\membersection{wxToolTip::wxToolTip}\label{wxtooltipwxtooltip} - -\func{}{wxToolTip}{\param{const wxString\& }{tip}} - -Constructor. - -\membersection{wxToolTip::SetTip}\label{wxtooltipsettip} - -\func{void}{SetTip}{\param{const wxString\& }{tip}} - -Set the tooltip text. - - -\membersection{wxToolTip::GetTip}\label{wxtooltipgettip} - -\constfunc{wxString}{GetTip}{\void} - -Get the tooltip text. - -\membersection{wxToolTip::GetWindow}\label{wxtooltipgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - -Get the associated window. - diff --git a/docs/latex/wx/topics.tex b/docs/latex/wx/topics.tex deleted file mode 100644 index 08a7685cfc..0000000000 --- a/docs/latex/wx/topics.tex +++ /dev/null @@ -1,86 +0,0 @@ -\chapter{Topic overviews}\label{overviews} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This chapter contains a selection of topic overviews. - - -{\large {\bf Starting with wxWidgets}} - -\helpref{Notes on using the reference}{referencenotes}\\ -\helpref{Writing a wxWidgets application: a rough guide}{roughguide}\\ -\helpref{wxWidgets Hello World sample}{helloworld}\\ -\helpref{wxWidgets samples}{samples}\\ -\helpref{Introduction to wxPython}{wxpython} - -{\large {\bf Programming with wxWidgets}} - -\helpref{Backward compatibility}{backwardcompatibility}\\ -\helpref{Runtime class information (RTTI)}{runtimeclassoverview}\\ -\helpref{Reference counting}{trefcount}\\ -\helpref{Application class: wxApp}{wxappoverview}\\ -\helpref{Unicode support in wxWidgets}{unicode}\\ -\helpref{Conversion between Unicode and multibyte strings}{mbconvclasses}\\ -\helpref{Internationalization}{internationalization}\\ -\helpref{Writing non-English applications}{nonenglishoverview}\\ -\helpref{Debugging overview}{debuggingoverview}\\ -\helpref{Logging overview}{wxlogoverview}\\ -\helpref{Event handling overview}{eventhandlingoverview}\\ -\helpref{C++ exceptions overview}{exceptionsoverview}\\ -\helpref{Window styles}{windowstyles}\\ -\helpref{Window deletion overview}{windowdeletionoverview}\\ -\helpref{Window IDs overview}{windowidsoverview}\\ -\helpref{Environment variables}{envvars} - -{\large {\bf Overviews of non-GUI classes}} - -\helpref{String class: wxString}{wxstringoverview}\\ -\helpref{Buffer classes}{bufferclasses}\\ -\helpref{Date and time classes}{wxdatetimeoverview}\\ -\helpref{Container classes}{wxcontaineroverview}\\ -\helpref{File classes and functions}{wxfileoverview}\\ -\helpref{Stream classes}{wxstreamoverview}\\ -\helpref{Multi-threaded applications}{wxthreadoverview}\\ -\helpref{Working with program options: wxConfig}{wxconfigoverview}\\ -\helpref{Virtual file system: wxFileSystem}{fs}\\ -\helpref{Syntax of the built-in regular expression library}{wxresyn}\\ -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{Interprocess communication}{ipcoverview}\\ - -{\large {\bf Drawing related classes}} - -\helpref{Device contexts}{dcoverview}\\ -\helpref{Bitmaps and icons}{wxbitmapoverview}\\ -\helpref{Fonts}{wxfontoverview}\\ -\helpref{Fonts encodings}{wxfontencodingoverview}\\ -\helpref{Printing}{printingoverview}\\ -\helpref{Printing under GTK+}{unixprinting} - -{\large {\bf Overviews of GUI classes}} - -\helpref{Laying out window elements with sizers}{sizeroverview}\\ -\helpref{XML-based resource system}{xrcoverview}\\ -\helpref{Window sizing}{windowsizingoverview}\\ -\helpref{Scrolling}{scrollingoverview}\\ -\helpref{Dialogs}{wxdialogoverview}\\ -\helpref{Transferring and validating data}{validatoroverview}\\ -\helpref{Data exchange: wxDataObject}{wxdataobjectoverview}\\ -\helpref{Drag and drop}{wxdndoverview}\\ -\helpref{Layout constraints}{constraintsoverview} - -{\large {\bf Overviews of individual controls}} - -\helpref{wxHTML}{wxhtml}\\ -\helpref{wxRichTextCtrl}{wxrichtextctrloverview}\\ -\helpref{wxAUI (advanced user interface)}{wxauioverview}\\ -\helpref{Common dialogs}{commondialogsoverview}\\ -\helpref{Toolbar}{wxtoolbaroverview}\\ -\helpref{wxGrid}{gridoverview}\\ -\helpref{wxTreeCtrl}{wxtreectrloverview}\\ -\helpref{wxListCtrl}{wxlistctrloverview}\\ -\helpref{wxSplitterWindow}{wxsplitterwindowoverview}\\ -\helpref{wxImageList}{wximagelistoverview}\\ -\helpref{wxBookCtrl}{wxbookctrloverview}\\ -\helpref{wxTipProvider}{wxtipprovider}\\ -\helpref{Document/view}{docviewoverview} - diff --git a/docs/latex/wx/topics2.tex b/docs/latex/wx/topics2.tex deleted file mode 100644 index c5f541d01d..0000000000 --- a/docs/latex/wx/topics2.tex +++ /dev/null @@ -1,67 +0,0 @@ - -{\large {\bf All overview topics (uncategorized)}} - -\input tusage.tex -\input tguide.tex -\input hworld.tex -\input tsamples.tex -\input tapp.tex -\input twinsizes.tex -\input truntime.tex -\input trefcount.tex -\input tstring.tex -\input tbuffer.tex -\input tdate.tex -\input tunicode.tex -\input tmbconv.tex -\input ti18n.tex -\input tnoneng.tex -\input tcontain.tex -\input tfile.tex -\input tstream.tex -\input tlog.tex -\input tdebug.tex -\input tconfig.tex -%\input texpr.tex -\input fs.tex -\input tevent.tex -\input texcept.tex -\input tstyles.tex -\input tdelwin.tex -\input tdialog.tex -\input tvalidat.tex -\input tconstr.tex -\input tsizer.tex -\input txrc.tex -\input tscroll.tex -\input tbitmap.tex -\input tdc.tex -\input tfont.tex -\input tfontenc.tex -\input tsplittr.tex -\input ttreectl.tex -\input tlistctl.tex -\input timaglst.tex -\input tbook.tex -\input tcommdlg.tex -\input tdocview.tex -\input twindowid.tex -% Deprecated -%\input ttab.tex -\input ttoolbar.tex -\input tgrid.tex -\input ttips.tex -\input tprint.tex -\input tthreads.tex -\input tdnd.tex -\input tclipbrd.tex -\input tipc.tex -\input wxhtml.tex -\input richtextoverview.tex -\input taui.tex -\input tenvvars.tex -\input wxPython.tex -\input re_syntax.tex -\input arc.tex -\input backwardcompat.tex - diff --git a/docs/latex/wx/tprint.tex b/docs/latex/wx/tprint.tex deleted file mode 100644 index db064e4927..0000000000 --- a/docs/latex/wx/tprint.tex +++ /dev/null @@ -1,233 +0,0 @@ -\section{Printing overview}\label{printingoverview} - -Classes: \helpref{wxPrintout}{wxprintout}, -\helpref{wxPrinter}{wxprinter}, -\helpref{wxPrintPreview}{wxprintpreview}, -\helpref{wxPrinterDC}{wxprinterdc}, -\helpref{wxPostScriptDC}{wxpostscriptdc}, -\helpref{wxPrintDialog}{wxprintdialog}, -\helpref{wxPrintData}{wxprintdata}, -\helpref{wxPrintDialogData}{wxprintdialogdata}, -\helpref{wxPageSetupDialog}{wxpagesetupdialog}, -\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} - -The printing framework relies on the application to provide classes whose member -functions can respond to particular requests, such as `print this page' or `does -this page exist in the document?'. This method allows wxWidgets to take over the -housekeeping duties of turning preview pages, calling the print dialog box, -creating the printer device context, and so on: the application can concentrate -on the rendering of the information onto a device context. - -In most cases, the only class you will need to derive from is -\helpref{wxPrintout}{wxprintout}; all others will be used as-is. - -A brief description of each class's role and how they work together follows. - -For the special case of printing under Unix, where various different -printing backends have to be offered, please have a look at the -\helpref{Unix printing overview}{unixprinting}. - -\subsection{\helpref{wxPrintout}{wxprintout}} - -A document's printing ability is represented in an application by a derived -wxPrintout class. This class prints a page on request, and can be passed to the -Print function of a wxPrinter object to actually print the document, or can be -passed to a wxPrintPreview object to initiate previewing. The following code -(from the printing sample) shows how easy it is to initiate printing, previewing -and the print setup dialog, once the wxPrintout functionality has been defined. -Notice the use of MyPrintout for both printing and previewing. All the preview -user interface functionality is taken care of by wxWidgets. For more details on how -MyPrintout is defined, please look at the printout sample code. - -\begin{verbatim} - case WXPRINT_PRINT: - { - wxPrinter printer; - MyPrintout printout("My printout"); - printer.Print(this, &printout, true); - break; - } - case WXPRINT_PREVIEW: - { - // Pass two printout objects: for preview, and possible printing. - wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout); - wxPreviewFrame *frame = new wxPreviewFrame(preview, this, "Demo Print Preview", wxPoint(100, 100), wxSize(600, 650)); - frame->Centre(wxBOTH); - frame->Initialize(); - frame->Show(true); - break; - } -\end{verbatim} - -Class \helpref{wxPrintout}{wxprintout} assembles the printed page and (using -your subclass's overrides) writes requested pages to a \helpref{wxDC}{wxdc} that -is passed to it. This wxDC could be a \helpref{wxMemoryDC}{wxmemorydc} (for -displaying the preview image on-screen), a \helpref{wxPrinterDC}{wxprinterdc} -(for printing under MSW and Mac), or a \helpref{wxPostScriptDC}{wxpostscriptdc} -(for printing under GTK or generating PostScript output). - -The \helpref{document/view framework}{docviewoverview} creates a default -wxPrintout object for every view, calling wxView::OnDraw to achieve a -prepackaged print/preview facility. - -If your window classes have a Draw(wxDC *dc) routine to do screen rendering, -your wxPrintout subclass will typically call those routines to create portions -of the image on your printout. Your wxPrintout subclass can also make its own -calls to its wxDC to draw headers, footers, page numbers, etc. - -The scaling of the drawn image typically differs from the screen to the preview -and printed images. This class provides a set of routines named -FitThisSizeToXXX(), MapScreenSizeToXXX(), and GetLogicalXXXRect, which can be -used to set the user scale and origin of the wxPrintout's DC so that your class -can easily map your image to the printout withough getting into the details of -screen and printer PPI and scaling. See the printing sample for examples of how -these routines are used. - -\subsection{\helpref{wxPrinter}{wxprinter}} - -Class wxPrinter encapsulates the platform-dependent print function with a common -interface. In most cases, you will not need to derive a class from wxPrinter; -simply create a wxPrinter object in your Print function as in the example above. - -\subsection{\helpref{wxPrintPreview}{wxprintpreview}} - -Class wxPrintPreview manages the print preview process. Among other things, it -constructs the wxDCs that get passed to your wxPrintout subclass for printing -and manages the display of multiple pages, a zoomable preview image, and so -forth. In most cases you will use this class as-is, but you can create your own -subclass, for example, to change the layout or contents of the preview window. - - -\subsection{\helpref{wxPrinterDC}{wxprinterdc}} - -Class wxPrinterDC is the wxDC that represents the actual printed page under MSW -and Mac. During printing, an object of this class will be passed to your derived -wxPrintout object to draw upon. The size of the wxPrinterDC will depend on the -paper orientation and the resolution of the printer. - -There are two important rectangles in printing: the \em{page rectangle} defines -the printable area seen by the application, and under MSW and Mac, it is the -printable area specified by the printer. (For PostScript printing, the page -rectangle is the entire page.) The inherited function -\helpref{wxDC::GetSize}{wxdcgetsize} returns the page size in device pixels. The -point (0,0) on the wxPrinterDC represents the top left corner of the page -rectangle; that is, the page rect is given by wxRect(0, 0, w, h), where (w,h) -are the values returned by GetSize. - -The \em{paper rectangle}, on the other hand, represents the entire paper area -including the non-printable border. Thus, the coordinates of the top left corner -of the paper rectangle will have small negative values, while the width and -height will be somewhat larger than that of the page rectangle. The -wxPrinterDC-specific function -\helpref{wxPrinterDC::GetPaperRect}{wxprinterdcgetpaperrect} returns the paper -rectangle of the given wxPrinterDC. - -\subsection{\helpref{wxPostScriptDC}{wxpostscriptdc}} - -Class wxPostScriptDC is the wxDC that represents the actual printed page under -GTK and other PostScript printing. During printing, an object of this class will -be passed to your derived wxPrintout object to draw upon. The size of the -wxPostScriptDC will depend upon the \helpref{wxPrintData}{wxprintdata} used to -construct it. - -Unlike a wxPrinterDC, there is no distinction between the page rectangle and the -paper rectangle in a wxPostScriptDC; both rectangles are taken to represent the -entire sheet of paper. - -\subsection{\helpref{wxPrintDialog}{wxprintdialog}} - -Class wxPrintDialog puts up the standard print dialog, which allows you to -select the page range for printing (as well as many other print settings, which -may vary from platform to platform). You provide an object of type -\helpref{wxPrintDialogData}{wxprintdialogdata} to the wxPrintDialog at -construction, which is used to populate the dialog. - -\subsection{\helpref{wxPrintData}{wxprintdata}} - -Class wxPrintData is a subset of wxPrintDialogData that is used (internally) to -initialize a wxPrinterDC or wxPostScriptDC. (In fact, a wxPrintData is a data -member of a wxPrintDialogData and a wxPageSetupDialogData). Essentially, -wxPrintData contains those bits of information from the two dialogs necessary to -configure the wxPrinterDC or wxPostScriptDC (e.g., size, orientation, etc.). You -might wish to create a global instance of this object to provide call-to-call -persistence to your application's print settings. - -\subsection{\helpref{wxPrintDialogData}{wxprintdialogdata}} - -Class wxPrintDialogData contains the settings entered by the user in the print -dialog. It contains such things as page range, number of copies, and so forth. -In most cases, you won't need to access this information; the framework takes -care of asking your wxPrintout derived object for the pages requested by the -user. - -\subsection{\helpref{wxPageSetupDialog}{wxpagesetupdialog}} - -Class wxPageSetupDialog puts up the standard page setup dialog, which allows you -to specify the orientation, paper size, and related settings. You provide it -with a wxPageSetupDialogData object at intialization, which is used to populate -the dialog; when the dialog is dismissed, this object contains the settings -chosen by the user, including orientation and/or page margins. - -Note that on Macintosh, the native page setup dialog does not contain entries -that allow you to change the page margins. You can use the Mac-specific class -wxMacPageMarginsDialog (which, like wxPageSetupDialog, takes a -wxPageSetupDialogData object in its constructor) to provide this capability; see -the printing sample for an example. - -\subsection{\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata}} - -Class wxPageSetupDialogData contains settings affecting the page size (paper -size), orientation, margins, and so forth. Note that not all platforms populate -all fields; for example, the MSW page setup dialog lets you set the page margins -while the Mac setup dialog does not. - -You will typically create a global instance of each of a wxPrintData and -wxPageSetupDialogData at program initiation, which will contain the default -settings provided by the system. Each time the user calls up either the -wxPrintDialog or the wxPageSetupDialog, you pass these data structures to -initialize the dialog values and to be updated by the dialog. The framework then -queries these data structures to get information like the printed page range -(from the wxPrintDialogData) or the paper size and/or page orientation (from the -wxPageSetupDialogData). - - -\section{Printing under Unix (GTK+)}\label{unixprinting} - -Printing under Unix has always been a cause of problems as Unix -does not provide a standard way to display text and graphics -on screen and print it to a printer using the same application -programming interface - instead, displaying on screen is done -via the X11 library while printing has to be done with using -PostScript commands. This was particularly difficult to handle -for the case of fonts with the result that only a selected -number of application could offer WYSIWYG under Unix. Equally, -wxWidgets offered its own printing implementation using PostScript -which never really matched the screen display. - -Starting with version 2.8.X, the GNOME project provides printing -support through the libgnomeprint and libgnomeprintui libraries -by which especially the font problem is mostly solved. Beginning -with version 2.5.4, the GTK+ port of wxWidgets can make use of -these libraries if wxWidgets is configured accordingly and if the -libraries are present. You need to configure wxWidgets with the -{\it configure --with-gnomeprint} switch and your application will -then search for the GNOME print libraries at runtime. If they -are found, printing will be done through these, otherwise the -application will fall back to the old PostScript printing code. -Note that the application will not require the GNOME print libraries -to be installed in order to run (there will be no dependency on -these libraries). - -In version GTK+ 2.10, support for printing has been added to GTK+ -itself. Beginning with version wxWidgets 2.9.X, the GTK+ port of -wxWidgets can make use of this feature -if wxWidgets is configured accordingly and if the GTK+ version is >= 2.10. -You need to configure wxWidgets with the {\it configure --with-gtkprint} -switch and your application will then search for the GTK+ print support -at runtime. If it is found, printing will be done through GTK+, otherwise the -application will fall back to GNOME printing support if it is available or, -if it isn't, to the old PostScript printing code. -Note that the application will not require a GTK+ version >= 2.10 -to be installed in order to run (there will be no dependency on -this version). - diff --git a/docs/latex/wx/trackable.tex b/docs/latex/wx/trackable.tex deleted file mode 100644 index 6b0b9f6f0d..0000000000 --- a/docs/latex/wx/trackable.tex +++ /dev/null @@ -1,29 +0,0 @@ -\section{\class{wxTrackable}}\label{wxtrackable} - -Add-on base class for a trackable object. This class maintains -an internal linked list of classes of type wxTrackerNode and -calls OnObjectDestroy() on them if this object is destroyed. -The most common usage is by using the \helpref{wxWeakRef<T>}{wxweakref} -class template which automates this. This class has no public -API. Its only use is by deriving another class from it to -make it trackable. - -\begin{verbatim} -class MyClass: public Foo, public wxTrackable -{ - // whatever -} - -typedef wxWeakRef<MyClass> MyClassRef; -\end{verbatim} - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - -<tracker.h> - -\wxheading{Data structures} - diff --git a/docs/latex/wx/treebook.tex b/docs/latex/wx/treebook.tex deleted file mode 100644 index b4f22c9c05..0000000000 --- a/docs/latex/wx/treebook.tex +++ /dev/null @@ -1,296 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: treebook.tex -%% Purpose: wxTreebook documentation -%% Author: Evgeniy Tarassov -%% Modified by: -%% Created: 2005-10-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTreebook}}\label{wxtreebook} - -This class is an extension of the Notebook class that allows a tree structured -set of pages to be shown in a control. -A classic example is a netscape preferences dialog that shows a tree -of preference sections on the left and select section page on the right. - -To use the class simply create it and populate with pages using -\helpref{InsertPage}{wxtreebookinsertpage}, -\helpref{InsertSubPage}{wxtreebookinsertsubpage}, -\helpref{AddPage}{wxtreebookaddpage}, -\helpref{AddSubPage}{wxtreebookaddsubpage}. - -If your tree is no more than $1$ level in depth then you could -simply use \helpref{AddPage}{wxtreebookaddpage} and -\helpref{AddSubPage}{wxtreebookaddsubpage} to sequentially populate your tree -by adding at every step a page or a subpage to the end of the tree. - - -\wxheading{Derived from} - -wxBookCtrlBase (see \helpref{wxBookCtrl overview}{wxbookctrloverview})\\ -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - - -\wxheading{Include files} - -<wx/treebook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\input treebookevt.inc - - -\wxheading{See also} - -\helpref{wxNotebook}{wxnotebook}, \helpref{wxTreebookEvent}{wxtreebookevent}, \helpref{wxImageList}{wximagelist}, \helpref{notebook sample}{samplenotebook} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTreebook::wxTreebook}\label{wxtreebookwxtreebook} - -\func{}{wxTreebook}{\void} - -Default constructor. - - -\func{}{wxTreebook}{ - \param{wxWindow* }{parent}, - \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = wxTBK\_DEFAULT}, - \param{const wxString\& }{name = wxEmptyString}} - -Creates an empty TreeBook control. - -\wxheading{Parameters} - -\docparam{parent}{The parent window. Must be non-NULL.} - -\docparam{id}{The window identifier.} - -\docparam{pos}{The window position.} - -\docparam{size}{The window size.} - -\docparam{style}{The window style. See \helpref{wxNotebook}{wxnotebook}.} - -\docparam{name}{The name of the control (used only under Motif).} - - - -\membersection{wxTreebook::\destruct{wxTreebook}}\label{wxtreebookdtor} - -\func{}{\destruct{wxTreebook}}{\void} - -Destroys the wxTreebook object. - -Also deletes all the pages owned by the control (inserted previously into it). - - - -\membersection{wxTreebook::AddPage}\label{wxtreebookaddpage} - -\func{bool}{AddPage}{ - \param{wxWindow* }{page}, - \param{const wxString\& }{text}, - \param{bool }{bSelect = false}, - \param{int }{imageId = wxNOT\_FOUND}} - -Adds a new page. The page is placed at the topmost level after all other pages. -\NULL could be specified for page to create an empty page. - - - -\membersection{wxTreebook::AddSubPage}\label{wxtreebookaddsubpage} - -\func{bool}{AddSubPage}{\param{wxWindow* }{page}, \param{const wxString\& }{text}, \param{bool }{bSelect = false}, \param{int }{imageId = wxNOT\_FOUND}} - -Adds a new child-page to the last top-level page. -\NULL could be specified for page to create an empty page. - - - -\membersection{wxTreebook::AssignImageList}\label{wxtreebookassignimagelist} - -\func{void}{AssignImageList}{\param{wxImageList* }{imageList}} - -Sets the image list for the page control and takes ownership of the list. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, \helpref{SetImageList}{wxtreebooksetimagelist} - - - -\membersection{wxTreebook::CollapseNode}\label{wxtreebookcollapsenode} - -\func{bool}{CollapseNode}{\param{size\_t }{pageId}} - -Shortcut for \helpref{ExpandNode}{wxtreebookexpandnode}(pageId, false). - - - -\membersection{wxTreebook::Create}\label{wxtreebookcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = wxTBK\_DEFAULT}, \param{const wxString\& }{name = wxEmptyString}} - -Creates a treebook control. See \helpref{wxTreebook::wxTreebook}{wxtreebookwxtreebook} for the description of the parameters. - - - -\membersection{wxTreebook::DeleteAllPages}\label{wxtreebookdeleteallpages} - -\func{bool}{DeleteAllPages}{\void} - -Deletes all pages inserted into the treebook. No event is generated. - - - -\membersection{wxTreebook::DeletePage}\label{wxtreebookdeletepage} - -\func{bool}{DeletePage}{\param{size\_t }{pagePos}} - -Deletes the page at the specified position and all its children. Could trigger page selection change -in a case when selected page is removed. In that case its parent is selected -(or the next page if no parent). - - - -\membersection{wxTreebook::ExpandNode}\label{wxtreebookexpandnode} - -\func{bool}{ExpandNode}{\param{size\_t }{pageId}, \param{bool }{expand = true}} - -Expands (collapses) the pageId node. Returns the previous state. -May generate page changing events (if selected page -is under the collapsed branch, then its parent is autoselected). - - -\membersection{wxTreebook::GetPageImage}\label{wxtreebookgetpageimage} - -\constfunc{int}{GetPageImage}{\param{size\_t }{n}} - -Returns the image index for the given page. - - -\membersection{wxTreebook::GetPageParent}\label{wxtreebookgetpageparent} - -\constfunc{int}{GetPageParent}{\param{size\_t }{page}} - -Returns the parent page of the given one or \texttt{wxNOT\_FOUND} if this is a -top-level page. - - -\membersection{wxTreebook::GetPageText}\label{wxtreebookgetpagetext} - -\constfunc{wxString}{GetPageText}{\param{size\_t }{n}} - -Returns the string for the given page. - - - -\membersection{wxTreebook::GetSelection}\label{wxtreebookgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or wxNOT\_FOUND if none was selected. - -Note that this method may return either the previously or newly selected page -when called from the EVT\_TREEBOOK\_PAGE\_CHANGED handler -depending on the platform and so wxTreebookEvent::GetSelection should be used instead in this case. - - - -\membersection{wxTreebook::InsertPage}\label{wxtreebookinsertpage} - -\func{bool}{InsertPage}{\param{size\_t }{pagePos}, \param{wxWindow* }{page}, \param{const wxString\& }{text}, \param{bool }{bSelect = false}, \param{int }{imageId = wxNOT\_FOUND}} - -Inserts a new page just before the page indicated by pagePos. -The new page is placed before pagePos page and on the same level. -\NULL could be specified for page to create an empty page. - - -\membersection{wxTreebook::InsertSubPage}\label{wxtreebookinsertsubpage} - -\func{bool}{InsertSubPage}{\param{size\_t }{pagePos}, \param{wxWindow* }{page}, \param{const wxString\& }{text}, \param{bool }{bSelect = false}, \param{int }{imageId = wxNOT\_FOUND}} - -Inserts a sub page under the specified page. - -\NULL could be specified for page to create an empty page. - - -\membersection{wxTreebook::IsNodeExpanded}\label{wxtreebookisnodeexpanded} - -\constfunc{bool}{IsNodeExpanded}{\param{size\_t }{pageId}} - -Gets the pagePos page state -- whether it is expanded or collapsed - - - -\membersection{wxTreebook::SetImageList}\label{wxtreebooksetimagelist} - -\func{void}{SetImageList}{\param{wxImageList* }{imageList}} - -Sets the image list for the page control. It does not take ownership of the image list, you must delete it yourself. - -\wxheading{See also} - -\helpref{wxImageList}{wximagelist}, \helpref{AssignImageList}{wxtreebookassignimagelist} - - - -\membersection{wxTreebook::SetPageImage}\label{wxtreebooksetpageimage} - -\func{bool}{SetPageImage}{\param{size\_t }{page}, \param{int }{imageId}} - -Sets the image index for the given page. ImageId is an index into the image list -which was set with \helpref{SetImageList}{wxtreebooksetimagelist}. - - - -\membersection{wxTreebook::SetPageText}\label{wxtreebooksetpagetext} - -\func{bool}{SetPageText}{\param{size\_t }{page}, \param{const wxString\& }{text}} - -Sets the text for the given page. - - - -\membersection{wxTreebook::SetSelection}\label{wxtreebooksetselection} - -\func{int}{SetSelection}{\param{size\_t }{n}} - -Sets the selection for the given page, returning the previous selection. - -The call to this function generates the page changing events. - -This function is deprecated and should not be used in new code. Please use the -\helpref{ChangeSelection}{wxtreebookchangeselection} function instead. - -\wxheading{See also} - -\helpref{wxTreebook::GetSelection}{wxtreebookgetselection} - - - -\membersection{wxTreebook::ChangeSelection}\label{wxtreebookchangeselection} - -\func{int}{ChangeSelection}{\param{size\_t}{ page}} - -Changes the selection for the given page, returning the previous selection. - -The call to this function \emph{does not} generate the page changing events. -This is the only difference with \helpref{SetSelection}{wxtreebooksetselection}. -See \helpref{this topic}{progevent} for more info. - diff --git a/docs/latex/wx/treebookevent.tex b/docs/latex/wx/treebookevent.tex deleted file mode 100644 index 3e5df7a396..0000000000 --- a/docs/latex/wx/treebookevent.tex +++ /dev/null @@ -1,84 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: treebookevent.tex -%% Purpose: wxTreebookEvent documentation -%% Author: Evgeniy Tarassov -%% Modified by: -%% Created: 2005-10-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org> -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTreebookEvent}}\label{wxtreebookevent} - -This class represents the events generated by a treebook control: currently, -there are four of them. The PAGE\_CHANGING and PAGE\_CHANGED - have exactly the same -behaviour as \helpref{wxNotebookEvent}{wxnotebookevent}. - -The other two NODE\_COLLAPSED and NODE\_EXPANDED are triggered when page node in the tree control -is collapsed/expanded. The page index could be retreived by calling -\helpref{wxTreebookEvent::GetSelection}{wxtreebookeventgetselection}. - - - -\wxheading{Derived from} - -wxBookCtrlBaseEvent\\ -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - - - -\wxheading{Include files} - -<wx/treebook.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - - -\input treebookevt.inc - - - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent}, \helpref{wxTreebook}{wxtreebook} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTreebookEvent::wxTreebookEvent}\label{wxtreebookeventwxtreebookevent} - -\func{}{wxTreebookEvent}{\param{wxEventType }{commandType = wxEVT\_NULL}, \param{int }{id = 0}, \param{int }{nSel = wxNOT\_FOUND}, \param{int }{nOldSel = wxNOT\_FOUND}} - -\wxheading{See also} - -\helpref{wxNotebookEvent}{wxnotebookevent} - - - -\membersection{wxTreebookEvent::GetOldSelection}\label{wxtreebookeventgetoldselection} - -\constfunc{int}{GetOldSelection}{\void} - -Returns the page that was selected before the change, wxNOT\_FOUND if none was selected. - - - -\membersection{wxTreebookEvent::GetSelection}\label{wxtreebookeventgetselection} - -\constfunc{int}{GetSelection}{\void} - -Returns the currently selected page, or wxNOT\_FOUND if none was selected. - -\wxheading{See also} - -\helpref{wxNotebookEvent::GetSelection}{wxnotebookeventgetselection} - diff --git a/docs/latex/wx/treebookevt.inc b/docs/latex/wx/treebookevt.inc deleted file mode 100644 index 5c3e3d8668..0000000000 --- a/docs/latex/wx/treebookevt.inc +++ /dev/null @@ -1,12 +0,0 @@ -\wxheading{Event handling} - -To process input from a treebook control, use the following event handler macros -to direct input to member functions that take a \helpref{wxTreebookEvent}{wxtreebookevent} argument. - -\twocolwidtha{10cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TREEBOOK\_PAGE\_CHANGED(id, func)}}{The page selection was changed. Processes a wxEVT\_COMMAND\_TREEBOOK\_PAGE\_CHANGED event.} -\twocolitem{{\bf EVT\_TREEBOOK\_PAGE\_CHANGING(id, func)}}{The page selection is about to be changed. Processes a wxEVT\_COMMAND\_TREEBOOK\_PAGE\_CHANGING event. This event can be \helpref{vetoed}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREEBOOK\_NODE\_COLLAPSED(id, func)}}{The page node is going to be collapsed. Processes a wxEVT\_COMMAND\_TREEBOOK\_NODE\_COLLAPSED event.} -\twocolitem{{\bf EVT\_TREEBOOK\_NODE\_EXPANDED(id, func)}}{The page node is going to be expanded. Processes a wxEVT\_COMMAND\_TREEBOOK\_NODE\_EXPANDED event.} -\end{twocollist} diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex deleted file mode 100644 index 48fed6862a..0000000000 --- a/docs/latex/wx/treectrl.tex +++ /dev/null @@ -1,1124 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: treectrl.tex -%% Purpose: wxTreeCtrl documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTreeCtrl}}\label{wxtreectrl} - -A tree control presents information as a hierarchy, with items that may be expanded -to show further items. Items in a tree control are referenced by wxTreeItemId handles, -which may be tested for validity by calling \helpref{wxTreeItemId::IsOk}{wxtreeitemidisok}. - -To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}. - -\wxheading{Derived from} - -\helpref{wxControl}{wxcontrol}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/treectrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxTR\_EDIT\_LABELS}}{Use this style -if you wish the user to be able to edit labels in the tree control.} -\twocolitem{\windowstyle{wxTR\_NO\_BUTTONS}}{For convenience -to document that no buttons are to be drawn.} -\twocolitem{\windowstyle{wxTR\_HAS\_BUTTONS}}{Use this style -to show + and - buttons to the left of parent items.} -\twocolitem{\windowstyle{wxTR\_NO\_LINES}}{Use this style -to hide vertical level connectors.} -\twocolitem{\windowstyle{wxTR\_FULL\_ROW\_HIGHLIGHT}}{Use this style to have the background -colour and the selection highlight extend over the entire horizontal -row of the tree control window. (This flag is ignored under Windows unless you -specify wxTR\_NO\_LINES as well.) } -\twocolitem{\windowstyle{wxTR\_LINES\_AT\_ROOT}}{Use this style -to show lines between root nodes. -Only applicable if wxTR\_HIDE\_ROOT is set and wxTR\_NO\_LINES is not set.} -\twocolitem{\windowstyle{wxTR\_HIDE\_ROOT}}{Use this style -to suppress the display of the root node, -effectively causing the first-level nodes -to appear as a series of root nodes.} -\twocolitem{\windowstyle{wxTR\_ROW\_LINES}}{Use this style -to draw a contrasting border between displayed rows.} -\twocolitem{\windowstyle{wxTR\_HAS\_VARIABLE\_ROW\_HEIGHT}}{Use this style -to cause row heights to be just big enough to fit the content. -If not set, all rows use the largest row height. -The default is that this flag is unset. -Generic only.} -\twocolitem{\windowstyle{wxTR\_SINGLE}}{For convenience -to document that only one item may be selected at a time. -Selecting another item causes the current selection, if any, -to be deselected. This is the default.} -\twocolitem{\windowstyle{wxTR\_MULTIPLE}}{Use this style -to allow a range of items to be selected. -If a second range is selected, the current range, if any, is deselected.} -\twocolitem{\windowstyle{wxTR\_DEFAULT\_STYLE}}{The set of flags that are -closest to the defaults for the native control for a particular toolkit.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Event handling} - -To process input from a tree control, use these event handler macros to direct input to member -functions that take a \helpref{wxTreeEvent}{wxtreeevent} argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{Begin dragging with the left mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{Begin dragging with the right mouse button.} -\twocolitem{{\bf EVT\_TREE\_END\_DRAG(id, func)}}{End dragging with the left or right mouse button.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{Finish editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{Delete an item.} -\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.} -\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_ACTIVATED(id, func)}}{The item has been activated, i.e. chosen by double clicking it with mouse or from keyboard} -\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSED(id, func)}}{The item has been collapsed.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSING(id, func)}}{The item is being collapsed. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{The item has been expanded.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{The item is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_RIGHT\_CLICK(id, func)}}{The user has clicked the item with the right mouse button.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_MIDDLE\_CLICK(id, func)}}{The user has clicked the item with the middle mouse button.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip -is being given to the application (call wxTreeEvent::SetToolTip). Windows only.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_MENU(id, func)}}{The context menu for the selected item has been requested, either by a right click or by using the menu key.} -\twocolitem{{\bf EVT\_TREE\_STATE\_IMAGE\_CLICK(id, func)}}{The state image has been clicked. Windows only.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{wxTreeCtrl overview}{wxtreectrloverview}, \helpref{wxListBox}{wxlistbox}, \helpref{wxListCtrl}{wxlistctrl},\rtfsp -\helpref{wxImageList}{wximagelist}, \helpref{wxTreeEvent}{wxtreeevent} - -\wxheading{Win32 notes} - -wxTreeCtrl class uses the standard common treeview control under Win32 -implemented in the system library {\tt comctl32.dll}. Some versions of this -library are known to have bugs with handling the tree control colours: the -usual symptom is that the expanded items leave black (or otherwise incorrectly -coloured) background behind them, especially for the controls using non-default background colour. The recommended solution is to upgrade the {\tt comctl32.dll} -to a newer version: see -\urlref{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}{http://www.microsoft.com/downloads/release.asp?ReleaseID=11916}. - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTreeCtrl::wxTreeCtrl}\label{wxtreectrlconstr} - -\func{}{wxTreeCtrl}{\void} - -Default constructor. - -\func{}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}} - -Constructor, creating and showing a tree control. - -\wxheading{Parameters} - -\docparam{parent}{Parent window. Must not be {\tt NULL}.} - -\docparam{id}{Window identifier. A value of -1 indicates a default value.} - -\docparam{pos}{Window position.} - -\docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized -appropriately.} - -\docparam{style}{Window style. See \helpref{wxTreeCtrl}{wxtreectrl}.} - -\docparam{validator}{Window validator.} - -\docparam{name}{Window name.} - -\wxheading{See also} - -\helpref{wxTreeCtrl::Create}{wxtreectrlcreate}, \helpref{wxValidator}{wxvalidator} - - -\membersection{wxTreeCtrl::\destruct{wxTreeCtrl}}\label{wxtreectrldtor} - -\func{void}{\destruct{wxTreeCtrl}}{\void} - -Destructor, destroying the tree control. - - -\membersection{wxTreeCtrl::AddRoot}\label{wxtreectrladdroot} - -\func{wxTreeItemId}{AddRoot}{\param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} - -Adds the root node to the tree, returning the new item. - -The {\it image} and {\it selImage} parameters are an index within -the normal image list specifying the image to use for unselected and -selected items, respectively. -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - - -\membersection{wxTreeCtrl::AppendItem}\label{wxtreectrlappenditem} - -\func{wxTreeItemId}{AppendItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} - -Appends an item to the end of the branch identified by {\it parent}, return a new item id. - -The {\it image} and {\it selImage} parameters are an index within -the normal image list specifying the image to use for unselected and -selected items, respectively. -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - - -\membersection{wxTreeCtrl::AssignButtonsImageList}\label{wxtreectrlassignbuttonsimagelist} - -\func{void}{AssignButtonsImageList}{\param{wxImageList*}{ imageList}} - -Sets the buttons image list. The button images assigned with this method will -be automatically deleted by wxTreeCtrl as appropriate -(i.e. it takes ownership of the list). - -Setting or assigning the button image list enables the display of image buttons. -Once enabled, the only way to disable the display of button images is to set -the button image list to {\tt NULL}. - -This function is only available in the generic version. - -See also \helpref{SetButtonsImageList}{wxtreectrlsetbuttonsimagelist}. - - -\membersection{wxTreeCtrl::AssignImageList}\label{wxtreectrlassignimagelist} - -\func{void}{AssignImageList}{\param{wxImageList*}{ imageList}} - -Sets the normal image list. Image list assigned with this method will -be automatically deleted by wxTreeCtrl as appropriate -(i.e. it takes ownership of the list). - -See also \helpref{SetImageList}{wxtreectrlsetimagelist}. - - -\membersection{wxTreeCtrl::AssignStateImageList}\label{wxtreectrlassignstateimagelist} - -\func{void}{AssignStateImageList}{\param{wxImageList*}{ imageList}} - -Sets the state image list. Image list assigned with this method will -be automatically deleted by wxTreeCtrl as appropriate -(i.e. it takes ownership of the list). - -See also \helpref{SetStateImageList}{wxtreectrlsetstateimagelist}. - - - -\membersection{wxTreeCtrl::Collapse}\label{wxtreectrlcollapse} - -\func{void}{Collapse}{\param{const wxTreeItemId\&}{ item}} - -Collapses the given item. - - -\membersection{wxTreeCtrl::CollapseAll}\label{wxtreectrlcollapseall} - -\func{void}{CollapseAll}{\void} - -Collapses the root item. - -\wxheading{See also} - -\helpref{ExpandAll}{wxtreectrlexpandall} - - -\membersection{wxTreeCtrl::CollapseAllChildren}\label{wxtreectrlcollapseallchildren} - -\func{void}{CollapseAllChildren}{\param{const wxTreeItemId\&}{ item}} - -Collapses this item and all of its children, recursively. - -\wxheading{See also} - -\helpref{ExpandAllChildren}{wxtreectrlexpandallchildren} - - -\membersection{wxTreeCtrl::CollapseAndReset}\label{wxtreectrlcollapseandreset} - -\func{void}{CollapseAndReset}{\param{const wxTreeItemId\&}{ item}} - -Collapses the given item and removes all children. - - -\membersection{wxTreeCtrl::Create}\label{wxtreectrlcreate} - -\func{bool}{wxTreeCtrl}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id},\rtfsp -\param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize},\rtfsp -\param{long}{ style = wxTR\_HAS\_BUTTONS}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``treeCtrl"}} - -Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr} for further details. - - -\membersection{wxTreeCtrl::Delete}\label{wxtreectrldelete} - -\func{void}{Delete}{\param{const wxTreeItemId\&}{ item}} - -Deletes the specified item. A {\tt EVT\_TREE\_DELETE\_ITEM} event will be -generated. - -This function may cause a subsequent call to GetNextChild to fail. - - -\membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems} - -\func{void}{DeleteAllItems}{\void} - -Deletes all items in the control. Note that this may not generate -{\tt EVT\_TREE\_DELETE\_ITEM} events under some Windows versions although -normally such event is generated for each removed item. - - -\membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren} - -\func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}} - -Deletes all children of the given item (but not the item itself). Note that -this will {\bf not} generate any events unlike -\helpref{Delete}{wxtreectrldelete} method. - -If you have called \helpref{wxTreeCtrl::SetItemHasChildren}{wxtreectrlsetitemhaschildren}, you -may need to call it again since {\it DeleteChildren} does not automatically -clear the setting. - - -\membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel} - -\func{void}{EditLabel}{\param{const wxTreeItemId\&}{ item}} - -Starts editing the label of the given item. This function generates a -EVT\_TREE\_BEGIN\_LABEL\_EDIT event which can be vetoed so that no -text control will appear for in-place editing. - -If the user changed the label (i.e. s/he does not press ESC or leave -the text control without changes, a EVT\_TREE\_END\_LABEL\_EDIT event -will be sent which can be vetoed as well. - -\wxheading{See also} - -\helpref{wxTreeCtrl::EndEditLabel}{wxtreectrlendeditlabel}, -\helpref{wxTreeEvent}{wxtreeevent} - - -\membersection{wxTreeCtrl::EndEditLabel}\label{wxtreectrlendeditlabel} - -\func{void}{EndEditLabel}{\param{bool }{cancelEdit}} - -Ends label editing. If {\it cancelEdit} is \true, the edit will be cancelled. - -This function is currently supported under Windows only. - -\wxheading{See also} - -\helpref{wxTreeCtrl::EditLabel}{wxtreectrleditlabel} - - -\membersection{wxTreeCtrl::EnsureVisible}\label{wxtreectrlensurevisible} - -\func{void}{EnsureVisible}{\param{const wxTreeItemId\&}{ item}} - -Scrolls and/or expands items to ensure that the given item is visible. - - -\membersection{wxTreeCtrl::Expand}\label{wxtreectrlexpand} - -\func{void}{Expand}{\param{const wxTreeItemId\&}{ item}} - -Expands the given item. - - -\membersection{wxTreeCtrl::ExpandAll}\label{wxtreectrlexpandall} - -\func{void}{ExpandAll}{\void} - -Expands all items in the tree. - - -\membersection{wxTreeCtrl::ExpandAllChildren}\label{wxtreectrlexpandallchildren} - -\func{void}{ExpandAllChildren}{\param{const wxTreeItemId\&}{ item}} - -Expands the given item and all its children recursively. - - -\membersection{wxTreeCtrl::GetBoundingRect}\label{wxtreectrlgetitemrect} - -\constfunc{bool}{GetBoundingRect}{\param{const wxTreeItemId\&}{ item}, \param{wxRect\& }{rect}, \param{bool }{textOnly = \false}} - -Retrieves the rectangle bounding the {\it item}. If {\it textOnly} is \true, -only the rectangle around the item's label will be returned, otherwise the -item's image is also taken into account. - -The return value is \true if the rectangle was successfully retrieved or \false -if it was not (in this case {\it rect} is not changed) -- for example, if the -item is currently invisible. - -Notice that the rectangle coordinates are logical, not physical ones. So, for -example, the x coordinate may be negative if the tree has a horizontal -scrollbar and its position is not $0$. - -\pythonnote{The wxPython version of this method requires only the -{\tt item} and {\tt textOnly} parameters. The return value is either a -{\tt wxRect} object or {\tt None}.} - -\perlnote{In wxPerl this method only takes the parameters {\tt item} and - {\tt textOnly}, and returns a Wx::Rect ( or undef ).} - - -\membersection{wxTreeCtrl::GetButtonsImageList}\label{wxtreectrlgetbuttonsimagelist} - -\constfunc{wxImageList*}{GetButtonsImageList}{\void} - -Returns the buttons image list (from which application-defined button images are taken). - -This function is only available in the generic version. - - -\membersection{wxTreeCtrl::GetChildrenCount}\label{wxtreectrlgetchildrencount} - -\constfunc{unsigned int}{GetChildrenCount}{\param{const wxTreeItemId\&}{ item}, \param{bool}{ recursively = \true}} - -Returns the number of items in the branch. If {\it recursively} is \true, returns the total number -of descendants, otherwise only one level of children is counted. - - -\membersection{wxTreeCtrl::GetCount}\label{wxtreectrlgetcount} - -\constfunc{unsigned int}{GetCount}{\void} - -Returns the number of items in the control. - - -\membersection{wxTreeCtrl::GetEditControl}\label{wxtreectrlgeteditcontrol} - -\constfunc{wxTextCtrl *}{GetEditControl}{\void} - -Returns the edit control being currently used to edit a label. Returns {\tt NULL} -if no label is being edited. - -{\bf NB:} It is currently only implemented for wxMSW. - - -\membersection{wxTreeCtrl::GetFirstChild}\label{wxtreectrlgetfirstchild} - -\constfunc{wxTreeItemId}{GetFirstChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}} - -Returns the first child; call \helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild} for the next child. - -For this enumeration function you must pass in a `cookie' parameter -which is opaque for the application but is necessary for the library -to make these functions reentrant (i.e. allow more than one -enumeration on one and the same object simultaneously). The cookie passed to -GetFirstChild and GetNextChild should be the same variable. - -Returns an invalid tree item (i.e. IsOk() returns \false) if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild}, -\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} - -\pythonnote{In wxPython the returned wxTreeItemId and the new cookie -value are both returned as a tuple containing the two values.} - -\perlnote{In wxPerl this method only takes the {\tt item} parameter, and - returns a 2-element list {\tt ( item, cookie )}.} - - -\membersection{wxTreeCtrl::GetFirstVisibleItem}\label{wxtreectrlgetfirstvisibleitem} - -\constfunc{wxTreeItemId}{GetFirstVisibleItem}{\void} - -Returns the first visible item. - - -\membersection{wxTreeCtrl::GetImageList}\label{wxtreectrlgetimagelist} - -\constfunc{wxImageList*}{GetImageList}{\void} - -Returns the normal image list. - - -\membersection{wxTreeCtrl::GetIndent}\label{wxtreectrlgetindent} - -\constfunc{int}{GetIndent}{\void} - -Returns the current tree control indentation. - - -\membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour} - -\constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}} - -Returns the background colour of the item. - - -\membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata} - -\constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}} - -Returns the tree item data associated with the item. - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata} - -\pythonnote{wxPython provides the following shortcut method: - -\indented{2cm}{\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf GetPyData(item)}}{Returns the Python Object -associated with the wxTreeItemData for the given item Id.} -\end{twocollist}} -}% - -\perlnote{wxPerl provides the following shortcut method: -\indented{2cm}{ -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf GetPlData( item )}}{Returns the Perl data -associated with the Wx::TreeItemData. It is just the same as -tree->GetItemData(item)->GetData().} -\end{twocollist}} -}% - -\membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont} - -\constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}} - -Returns the font of the item label. - - -\membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage} - -\constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item}, - \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} - -Gets the specified item image. The value of {\it which} may be: - -\begin{itemize}\itemsep=0pt -\item{wxTreeItemIcon\_Normal} to get the normal item image -\item{wxTreeItemIcon\_Selected} to get the selected item image (i.e. the image -which is shown when the item is currently selected) -\item{wxTreeItemIcon\_Expanded} to get the expanded image (this only -makes sense for items which have children - then this image is shown when the -item is expanded and the normal image is shown when it is collapsed) -\item{wxTreeItemIcon\_SelectedExpanded} to get the selected expanded image -(which is shown when an expanded item is currently selected) -\end{itemize} - - -\membersection{wxTreeCtrl::GetItemText}\label{wxtreectrlgetitemtext} - -\constfunc{wxString}{GetItemText}{\param{const wxTreeItemId\&}{ item}} - -Returns the item label. - - -\membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour} - -\constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}} - -Returns the colour of the item label. - - -\membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild} - -\constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}} - -Returns the last child of the item (or an invalid tree item if this item has no children). - -\wxheading{See also} - -\helpref{GetFirstChild}{wxtreectrlgetfirstchild}, -\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}, -\helpref{GetLastChild}{wxtreectrlgetlastchild} - - -\membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild} - -\constfunc{wxTreeItemId}{GetNextChild}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemIdValue \& }{cookie}} - -Returns the next child; call \helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} for the first child. - -For this enumeration function you must pass in a `cookie' parameter -which is opaque for the application but is necessary for the library -to make these functions reentrant (i.e. allow more than one -enumeration on one and the same object simultaneously). The cookie passed to -GetFirstChild and GetNextChild should be the same. - -Returns an invalid tree item if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetFirstChild}{wxtreectrlgetfirstchild} - -\pythonnote{In wxPython the returned wxTreeItemId and the new cookie -value are both returned as a tuple containing the two values.} - -\perlnote{In wxPerl this method returns a 2-element list - {\tt ( item, cookie )}, instead of modifying its parameters.} - - -\membersection{wxTreeCtrl::GetNextSibling}\label{wxtreectrlgetnextsibling} - -\constfunc{wxTreeItemId}{GetNextSibling}{\param{const wxTreeItemId\&}{ item}} - -Returns the next sibling of the specified item; call \helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} for the previous sibling. - -Returns an invalid tree item if there are no further siblings. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetPrevSibling}{wxtreectrlgetprevsibling} - - -\membersection{wxTreeCtrl::GetNextVisible}\label{wxtreectrlgetnextvisible} - -\constfunc{wxTreeItemId}{GetNextVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns the next visible item or an invalid item if this item is the last -visible one. - -Notice that the \arg{item} itself must be visible. - - -\membersection{wxTreeCtrl::GetItemParent}\label{wxtreectrlgetitemparent} - -\constfunc{wxTreeItemId}{GetItemParent}{\param{const wxTreeItemId\&}{ item}} - -Returns the item's parent. - - -\membersection{wxTreeCtrl::GetPrevSibling}\label{wxtreectrlgetprevsibling} - -\constfunc{wxTreeItemId}{GetPrevSibling}{\param{const wxTreeItemId\&}{ item}} - -Returns the previous sibling of the specified item; call \helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} for the next sibling. - -Returns an invalid tree item if there are no further children. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling} - - -\membersection{wxTreeCtrl::GetPrevVisible}\label{wxtreectrlgetprevvisible} - -\constfunc{wxTreeItemId}{GetPrevVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns the previous visible item or an invalid item if this item is the first -visible one. - -Notice that the \arg{item} itself must be visible. - - -\membersection{wxTreeCtrl::GetQuickBestSize}\label{wxtreectrlgetquickbestsize} - -\constfunc{bool}{GetQuickBestSize}{\void} - -Returns true if the control will use a quick calculation for the best size, -looking only at the first and last items. The default is false. - -\wxheading{See also} - -\helpref{wxTreeCtrl::SetQuickBestSize}{wxtreectrlsetquickbestsize} - - -\membersection{wxTreeCtrl::GetRootItem}\label{wxtreectrlgetrootitem} - -\constfunc{wxTreeItemId}{GetRootItem}{\void} - -Returns the root item for the tree control. - - -\membersection{wxTreeCtrl::GetItemSelectedImage}\label{wxtreectrlgetitemselectedimage} - -\constfunc{int}{GetItemSelectedImage}{\param{const wxTreeItemId\& }{item}} - -Gets the selected item image (this function is obsolete, use -{\tt GetItemImage(item, wxTreeItemIcon\_Selected)} instead). - - -\membersection{wxTreeCtrl::GetSelection}\label{wxtreectrlgetselection} - -\constfunc{wxTreeItemId}{GetSelection}{\void} - -Returns the selection, or an invalid item if there is no selection. -This function only works with the controls without wxTR\_MULTIPLE style, use -\helpref{GetSelections}{wxtreectrlgetselections} for the controls which do have -this style. - - -\membersection{wxTreeCtrl::GetSelections}\label{wxtreectrlgetselections} - -\constfunc{unsigned int}{GetSelections}{\param{wxArrayTreeItemIds\& }{selection}} - -Fills the array of tree items passed in with the currently selected items. This -function can be called only if the control has the wxTR\_MULTIPLE style. - -Returns the number of selected items. - -\pythonnote{The wxPython version of this method accepts no parameters -and returns a Python list of {\tt wxTreeItemId}s.} - -\perlnote{In wxPerl this method takes no parameters and returns a list of - {\tt Wx::TreeItemId}s.} - - -\membersection{wxTreeCtrl::GetStateImageList}\label{wxtreectrlgetstateimagelist} - -\constfunc{wxImageList*}{GetStateImageList}{\void} - -Returns the state image list (from which application-defined state images are taken). - - -\membersection{wxTreeCtrl::HitTest}\label{wxtreectrlhittest} - -\constfunc{wxTreeItemId}{HitTest}{\param{const wxPoint\& }{point}, \param{int\& }{flags}} - -Calculates which (if any) item is under the given point, returning the tree item -id at this point plus extra information {\it flags}. {\it flags} is a bitlist of the following: - -\twocolwidtha{5cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxTREE\_HITTEST\_ABOVE}{Above the client area.} -\twocolitem{wxTREE\_HITTEST\_BELOW}{Below the client area.} -\twocolitem{wxTREE\_HITTEST\_NOWHERE}{In the client area but below the last item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMBUTTON}{On the button associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMICON}{On the bitmap associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMINDENT}{In the indentation associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMLABEL}{On the label (string) associated with an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMRIGHT}{In the area to the right of an item.} -\twocolitem{wxTREE\_HITTEST\_ONITEMSTATEICON}{On the state icon for a tree view item that is in a user-defined state.} -\twocolitem{wxTREE\_HITTEST\_TOLEFT}{To the right of the client area.} -\twocolitem{wxTREE\_HITTEST\_TORIGHT}{To the left of the client area.} -\end{twocollist} - -\pythonnote{in wxPython both the wxTreeItemId and the flags are -returned as a tuple.} - -\perlnote{In wxPerl this method only takes the {\tt point} parameter - and returns a 2-element list {\tt ( item, flags )}.} - - -\membersection{wxTreeCtrl::InsertItem}\label{wxtreectrlinsertitem} - -\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} - -\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{size\_t}{ before}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} - -Inserts an item after a given one ({\it previous}) or before one identified by its position ({\it before}). -{\it before} must be less than the number of children. - -The {\it image} and {\it selImage} parameters are an index within -the normal image list specifying the image to use for unselected and -selected items, respectively. -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - -\pythonnote{The second form of this method is called -{\tt InsertItemBefore} in wxPython.} - - -\membersection{wxTreeCtrl::IsBold}\label{wxtreectrlisbold} - -\constfunc{bool}{IsBold}{\param{const wxTreeItemId\& }{item}} - -Returns \true if the given item is in bold state. - -See also: \helpref{SetItemBold}{wxtreectrlsetitembold} - - -\membersection{wxTreeCtrl::IsEmpty}\label{wxtreectrlisempty} - -\constfunc{bool}{IsEmpty}{} - -Returns \true if the control is empty (i.e. has no items, even no root one). - - -\membersection{wxTreeCtrl::IsExpanded}\label{wxtreectrlisexpanded} - -\constfunc{bool}{IsExpanded}{\param{const wxTreeItemId\&}{ item}} - -Returns \true if the item is expanded (only makes sense if it has children). - - -\membersection{wxTreeCtrl::IsSelected}\label{wxtreectrlisselected} - -\constfunc{bool}{IsSelected}{\param{const wxTreeItemId\&}{ item}} - -Returns \true if the item is selected. - - -\membersection{wxTreeCtrl::IsVisible}\label{wxtreectrlisvisible} - -\constfunc{bool}{IsVisible}{\param{const wxTreeItemId\&}{ item}} - -Returns \true if the item is visible on the screen. - - -\membersection{wxTreeCtrl::ItemHasChildren}\label{wxtreectrlitemhaschildren} - -\constfunc{bool}{ItemHasChildren}{\param{const wxTreeItemId\&}{ item}} - -Returns \true if the item has children. - - -\membersection{wxTreeCtrl::OnCompareItems}\label{wxtreectrloncompareitems} - -\func{int}{OnCompareItems}{\param{const wxTreeItemId\& }{item1}, \param{const wxTreeItemId\& }{item2}} - -Override this function in the derived class to change the sort order of the -items in the tree control. The function should return a negative, zero or -positive value if the first item is less than, equal to or greater than the -second one. - -Please note that you \textbf{must} use wxRTTI macros -\helpref{DECLARE\_DYNAMIC\_CLASS}{declaredynamicclass} and -\helpref{IMPLEMENT\_DYNAMIC\_CLASS}{implementdynamicclass} if you override this -function because otherwise the base class considers that it is not overridden -and uses the default comparison, i.e. sorts the items alphabetically, which -allows it optimize away the calls to the virtual function completely. - -See also: \helpref{SortChildren}{wxtreectrlsortchildren} - - -\membersection{wxTreeCtrl::PrependItem}\label{wxtreectrlprependitem} - -\func{wxTreeItemId}{PrependItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxString\&}{ text}, - \param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = {\tt NULL}}} - -Appends an item as the first child of {\it parent}, return a new item id. - -The {\it image} and {\it selImage} parameters are an index within -the normal image list specifying the image to use for unselected and -selected items, respectively. -If {\it image} > -1 and {\it selImage} is -1, the same image is used for -both selected and unselected items. - - -\membersection{wxTreeCtrl::ScrollTo}\label{wxtreectrlscrollto} - -\func{void}{ScrollTo}{\param{const wxTreeItemId\&}{ item}} - -Scrolls the specified item into view. - - -\membersection{wxTreeCtrl::SelectItem}\label{wxtreectrlselectitem} - -\func{void}{SelectItem}{\param{const wxTreeItemId\&}{ item}, \param{bool }{select = \true}} - -Selects the given item. In multiple selection controls, can be also used to -deselect a currently selected item if the value of \arg{select} is false. - - -\membersection{wxTreeCtrl::SetButtonsImageList}\label{wxtreectrlsetbuttonsimagelist} - -\func{void}{SetButtonsImageList}{\param{wxImageList*}{ imageList}} - -Sets the buttons image list (from which application-defined button images are taken). -The button images assigned with this method will -{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. - -Setting or assigning the button image list enables the display of image buttons. -Once enabled, the only way to disable the display of button images is to set -the button image list to {\tt NULL}. - -This function is only available in the generic version. - -See also \helpref{AssignButtonsImageList}{wxtreectrlassignbuttonsimagelist}. - - -\membersection{wxTreeCtrl::SetIndent}\label{wxtreectrlsetindent} - -\func{void}{SetIndent}{\param{int }{indent}} - -Sets the indentation for the tree control. - - -\membersection{wxTreeCtrl::SetImageList}\label{wxtreectrlsetimagelist} - -\func{void}{SetImageList}{\param{wxImageList*}{ imageList}} - -Sets the normal image list. Image list assigned with this method will -{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. - -See also \helpref{AssignImageList}{wxtreectrlassignimagelist}. - - - -\membersection{wxTreeCtrl::SetItemBackgroundColour}\label{wxtreectrlsetitembackgroundcolour} - -\func{void}{SetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}} - -Sets the colour of the item's background. - - -\membersection{wxTreeCtrl::SetItemBold}\label{wxtreectrlsetitembold} - -\func{void}{SetItemBold}{\param{const wxTreeItemId\& }{item}, \param{bool}{ bold = \true}} - -Makes item appear in bold font if {\it bold} parameter is \true or resets it to -the normal state. - -See also: \helpref{IsBold}{wxtreectrlisbold} - - -\membersection{wxTreeCtrl::SetItemData}\label{wxtreectrlsetitemdata} - -\func{void}{SetItemData}{\param{const wxTreeItemId\&}{ item}, \param{wxTreeItemData* }{data}} - -Sets the item client data. - -\pythonnote{wxPython provides the following shortcut method:\par -\indented{2cm}{\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf SetPyData(item, obj)}}{Associate the given Python -Object with the wxTreeItemData for the given item Id.} -\end{twocollist}} -}% - -\perlnote{wxPerl provides the following shortcut method: -\indented{2cm}{ -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf SetPlData( item, data )}}{Sets the Perl data -associated with the Wx::TreeItemData. It is just the same as -tree->GetItemData(item)->SetData(data).} -\end{twocollist}} -}% - -\membersection{wxTreeCtrl::SetItemDropHighlight}\label{wxtreectrlsetitemdrophighlight} - -\func{void}{SetItemDropHighlight}{\param{const wxTreeItemId\&}{ item}, \param{bool}{highlight = \true}} - -Gives the item the visual feedback for Drag'n'Drop actions, which is -useful if something is dragged from the outside onto the tree control -(as opposed to a DnD operation within the tree control, which already -is implemented internally). - -\membersection{wxTreeCtrl::SetItemFont}\label{wxtreectrlsetitemfont} - -\func{void}{SetItemFont}{\param{const wxTreeItemId\&}{ item}, \param{const wxFont\& }{font}} - -Sets the item's font. All items in the tree should have the same height to avoid -text clipping, so the fonts height should be the same for all of them, -although font attributes may vary. - -\wxheading{See also} - -\helpref{SetItemBold}{wxtreectrlsetitembold} - - -\membersection{wxTreeCtrl::SetItemHasChildren}\label{wxtreectrlsetitemhaschildren} - -\func{void}{SetItemHasChildren}{\param{const wxTreeItemId\&}{ item}, \param{bool }{hasChildren = \true}} - -Force appearance of the button next to the item. This is useful to -allow the user to expand the items which don't have any children now, -but instead adding them only when needed, thus minimizing memory -usage and loading time. - - -\membersection{wxTreeCtrl::SetItemImage}\label{wxtreectrlsetitemimage} - -\func{void}{SetItemImage}{\param{const wxTreeItemId\&}{ item}, - \param{int }{image}, \param{wxTreeItemIcon }{which = wxTreeItemIcon\_Normal}} - -Sets the specified item image. See \helpref{GetItemImage}{wxtreectrlgetitemimage} -for the description of the {\it which} parameter. - - -\membersection{wxTreeCtrl::SetItemSelectedImage}\label{wxtreectrlsetitemselectedimage} - -\func{void}{SetItemSelectedImage}{\param{const wxTreeItemId\&}{ item}, \param{int }{selImage}} - -Sets the selected item image (this function is obsolete, use -{\tt SetItemImage(item, wxTreeItemIcon\_Selected)} instead). - - -\membersection{wxTreeCtrl::SetItemText}\label{wxtreectrlsetitemtext} - -\func{void}{SetItemText}{\param{const wxTreeItemId\&}{ item}, \param{const wxString\& }{text}} - -Sets the item label. - - -\membersection{wxTreeCtrl::SetItemTextColour}\label{wxtreectrlsetitemtextcolour} - -\func{void}{SetItemTextColour}{\param{const wxTreeItemId\&}{ item}, \param{const wxColour\& }{col}} - -Sets the colour of the item's text. - - -\membersection{wxTreeCtrl::SetQuickBestSize}\label{wxtreectrlsetquickbestsize} - -\func{void}{SetQuickBestSize}{\param{bool}{ quickBestSize}} - -If true is passed, specifies that the control will use a quick calculation for the best size, -looking only at the first and last items. Otherwise, it will look at all items. -The default is false. - -\wxheading{See also} - -\helpref{wxTreeCtrl::GetQuickBestSize}{wxtreectrlgetquickbestsize} - - -\membersection{wxTreeCtrl::SetStateImageList}\label{wxtreectrlsetstateimagelist} - -\func{void}{SetStateImageList}{\param{wxImageList*}{ imageList}} - -Sets the state image list (from which application-defined state images are taken). -Image list assigned with this method will -{\bf not} be deleted by wxTreeCtrl's destructor, you must delete it yourself. - -See also \helpref{AssignStateImageList}{wxtreectrlassignstateimagelist}. - -\membersection{wxTreeCtrl::SetWindowStyle}\label{wxtreectrlsetwindowstyle} - -\func{void}{SetWindowStyle}{\param{long}{styles}} - -Sets the mode flags associated with the display of the tree control. -The new mode takes effect immediately. -(Generic only; MSW ignores changes.) - - -\membersection{wxTreeCtrl::SortChildren}\label{wxtreectrlsortchildren} - -\func{void}{SortChildren}{\param{const wxTreeItemId\&}{ item}} - -Sorts the children of the given item using -\helpref{OnCompareItems}{wxtreectrloncompareitems} method of wxTreeCtrl. You -should override that method to change the sort order (the default is ascending -case-sensitive alphabetical order). - -\wxheading{See also} - -\helpref{wxTreeItemData}{wxtreeitemdata}, \helpref{OnCompareItems}{wxtreectrloncompareitems} - - -\membersection{wxTreeCtrl::Toggle}\label{wxtreectrltoggle} - -\func{void}{Toggle}{\param{const wxTreeItemId\&}{ item}} - -Toggles the given item between collapsed and expanded states. - - -\membersection{wxTreeCtrl::ToggleItemSelection}\label{wxtreectrltoggleitemselection} - -\func{void}{ToggleItemSelection}{\param{const wxTreeItemId\&}{ item}} - -Toggles the given item between selected and unselected states. For -multiselection controls only. - - -\membersection{wxTreeCtrl::Unselect}\label{wxtreectrlunselect} - -\func{void}{Unselect}{\void} - -Removes the selection from the currently selected item (if any). - - -\membersection{wxTreeCtrl::UnselectAll}\label{wxtreectrlunselectall} - -\func{void}{UnselectAll}{\void} - -This function either behaves the same as \helpref{Unselect}{wxtreectrlunselect} -if the control doesn't have wxTR\_MULTIPLE style, or removes the selection from -all items if it does have this style. - - -\membersection{wxTreeCtrl::UnselectItem}\label{wxtreectrlunselectitem} - -\func{void}{UnselectItem}{\param{const wxTreeItemId\& }{item}} - -Unselects the given item. This works in multiselection controls only. - - - - - -%% the wxTreeItemId opaque class - - -\section{\class{wxTreeItemId}}\label{wxtreeitemid} - -An opaque reference to a tree item. - - -\wxheading{Derived from} - -None - -\wxheading{Include files} - -<wx/treebase.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxTreeItemData}{wxtreeitemdata},\\ -\helpref{wxTreeCtrl overview}{wxtreectrloverview} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeItemId::wxTreeItemId}\label{wxtreeitemidconstr} - -\func{}{wxTreeItemId}{\void} - -Default constructor. wxTreemItemIds are not meant to be constructed explicitly by -the user; they are returned by the \helpref{wxTreeCtrl}{wxtreectrl} functions instead. - - -\membersection{wxTreeItemId::IsOk}\label{wxtreeitemidisok} - -\constfunc{bool}{IsOk}{} - -Returns \true if this instance is referencing a valid tree item. - - -\membersection{Operators}\label{wxtreeitemidoperators} - -\constfunc{void}{operator $!$}{} - -Antonym of \helpref{IsOk}{wxtreeitemidisok}, i.e. returns \true only if the -item is not valid. - - -\constfunc{bool}{operator $==$}{\param{const wxTreeItemId\& }{item}} - -\constfunc{bool}{operator $!=$}{\param{const wxTreeItemId\& }{item}} - -Operators for comparison between \helpref{wxTreeItemId}{wxtreeitemid} objects. - diff --git a/docs/latex/wx/treedata.tex b/docs/latex/wx/treedata.tex deleted file mode 100644 index e1e07edfb4..0000000000 --- a/docs/latex/wx/treedata.tex +++ /dev/null @@ -1,78 +0,0 @@ -\section{\class{wxTreeItemData}}\label{wxtreeitemdata} - -wxTreeItemData is some (arbitrary) user class associated with some item. The -main advantage of having this class is that wxTreeItemData objects are -destroyed automatically by the tree and, as this class has virtual destructor, -it means that the memory and any other resources associated with a tree item -will be automatically freed when it is deleted. Note that we don't use wxObject -as the base class for wxTreeItemData because the size of this class is -critical: in many applications, each tree leaf will have wxTreeItemData -associated with it and the number of leaves may be quite big. - -Also please note that because the objects of this class are deleted by the tree -using the operator {\tt delete}, they must always be allocated on the heap -using {\tt new}. - -\wxheading{Derived from} - -\helpref{wxClientData}{wxclientdata} - -\wxheading{Include files} - -<wx/treectrl.h> - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeItemData::wxTreeItemData}\label{wxtreeitemdatactor} - -\func{}{wxTreeItemData}{\void} - -Default constructor. - -\pythonnote{The wxPython version of this constructor optionally -accepts any Python object as a parameter. This object is then -associated with the tree item using the wxTreeItemData as a -container. - -In addition, the following methods are added in wxPython for accessing -the object: - -\indented{2cm}{\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf GetData()}}{Returns a reference to the Python Object} -\twocolitem{{\bf SetData(obj)}}{Associates a new Python Object with the -wxTreeItemData} -\end{twocollist}} -} - -\perlnote{In wxPerl the constructor accepts as parameter an optional scalar, - and stores it as client data. You may retrieve this data by calling - {\bf GetData()}, and set it by calling {\bf SetData( data ).} -} - -\membersection{wxTreeItemData::\destruct{wxTreeItemData}}\label{wxtreeitemdatadtor} - -\func{void}{\destruct{wxTreeItemData}}{\void} - -Virtual destructor. - -\membersection{wxTreeItemData::GetId}\label{wxtreeitemdatagetid} - -\func{const wxTreeItemId\&}{GetId}{\void} - -Returns the item associated with this node. - -\membersection{wxTreeItemData::SetId}\label{wxtreeitemdatasetid} - -\func{void}{SetId}{\param{const wxTreeItemId\&}{ id}} - -Sets the item associated with this node. - - diff --git a/docs/latex/wx/treeevt.tex b/docs/latex/wx/treeevt.tex deleted file mode 100644 index 4471a2a85b..0000000000 --- a/docs/latex/wx/treeevt.tex +++ /dev/null @@ -1,123 +0,0 @@ -\section{\class{wxTreeEvent}}\label{wxtreeevent} - -A tree event holds information about events associated with wxTreeCtrl objects. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - -<wx/treectrl.h> - -\wxheading{Event table macros} - -To process input from a tree control, use these event handler macros to direct input to member -functions that take a wxTreeEvent argument. - -\twocolwidtha{9cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{The user has started dragging an item with the left mouse button. The event handler must call {\bf wxTreeEvent::Allow()} for the drag operation to continue.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{The user has started dragging an item with the right mouse button. The event handler must call {\bf wxTreeEvent::Allow()} for the drag operation to continue.} -\twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_END\_DRAG(id, func)}}{The user has released the mouse after dragging an item.} -\twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{The user has finished editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_DELETE\_ITEM(id, func)}}{A tree item has been deleted.} -% they're not very (or at all) useful currently -%\twocolitem{{\bf EVT\_TREE\_GET\_INFO(id, func)}}{Request information from the application.} -%\twocolitem{{\bf EVT\_TREE\_SET\_INFO(id, func)}}{Information is being supplied.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_ACTIVATED(id, func)}}{An item has been activated (e.g. double clicked).} -\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSED(id, func)}}{The item has been collapsed.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_COLLAPSING(id, func)}}{The item is being collapsed. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDED(id, func)}}{The item has been expanded.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_EXPANDING(id, func)}}{The item is being expanded. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_RIGHT\_CLICK(id, func)}}{The user has clicked the item with the right mouse button.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_MIDDLE\_CLICK(id, func)}}{The user has clicked the item with the middle mouse button.} -\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGED(id, func)}}{Selection has changed.} -\twocolitem{{\bf EVT\_TREE\_SEL\_CHANGING(id, func)}}{Selection is changing. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.} -\twocolitem{{\bf EVT\_TREE\_KEY\_DOWN(id, func)}}{A key has been pressed.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_GETTOOLTIP(id, func)}}{The opportunity to set the item tooltip -is being given to the application (call wxTreeEvent::SetToolTip). Windows only.} -\twocolitem{{\bf EVT\_TREE\_ITEM\_MENU(id, func)}}{The context menu for the selected item has been requested, either by a right click or by using the menu key.} -\twocolitem{{\bf EVT\_TREE\_STATE\_IMAGE\_CLICK(id, func)}}{The state image has been clicked. Windows only.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxTreeCtrl}{wxtreectrl} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTreeEvent::wxTreeEvent}\label{wxtreeeventctor} - -\func{}{wxTreeEvent}{\param{wxEventType }{commandType}, \param{wxTreeCtrl *}{tree}, \param{const wxTreeItemId\&}{item = wxTreeItemId()}} - -Constructor, used by wxWidgets itself only. - - -\membersection{wxTreeEvent::GetKeyCode}\label{wxtreeeventgetkeycode} - -\constfunc{int}{GetKeyCode}{} - -Returns the key code if the event is a key event. Use -\helpref{GetKeyEvent}{wxtreeeventgetkeyevent} to get the values of the -modifier keys for this event (i.e. Shift or Ctrl). - - -\membersection{wxTreeEvent::GetItem}\label{wxtreeeventgetitem} - -\constfunc{wxTreeItemId}{GetItem}{} - -Returns the item (valid for all events). - - -\membersection{wxTreeEvent::GetKeyEvent}\label{wxtreeeventgetkeyevent} - -\constfunc{const wxKeyEvent\&}{GetKeyEvent}{} - -Returns the key event for {\tt EVT\_TREE\_KEY\_DOWN} events. - - -\membersection{wxTreeEvent::GetLabel}\label{wxtreeeventgetlabel} - -\constfunc{const wxString\&}{GetLabel}{} - -Returns the label if the event is a begin or end edit label event. - - -\membersection{wxTreeEvent::GetOldItem}\label{wxtreeeventgetolditem} - -\constfunc{wxTreeItemId}{GetOldItem}{} - -Returns the old item index (valid for EVT\_TREE\_ITEM\_CHANGING and CHANGED events) - - -\membersection{wxTreeEvent::GetPoint}\label{wxtreeeventgetpoint} - -\constfunc{wxPoint}{GetPoint}{} - -Returns the position of the mouse pointer if the event is a drag or menu-context event. -In both cases the position is in client coordinates - i.e. relative to the wxTreeCtrl -window (so that you can pass it directly to e.g. \helpref{wxWindow::PopupMenu}{wxwindowpopupmenu}). - - -\membersection{wxTreeEvent::IsEditCancelled}\label{wxtreeeventiseditcancelled} - -\constfunc{bool}{IsEditCancelled}{} - -Returns true if the label edit was cancelled. This should be -called from within an EVT\_TREE\_END\_LABEL\_EDIT handler. - - -\membersection{wxTreeEvent::SetToolTip}\label{wxtreeeventsettooltip} - -\func{void}{SetToolTip}{\param{const wxString\&}{ tooltip}} - -Set the tooltip for the item (valid for EVT\_TREE\_ITEM\_GETTOOLTIP events). -Windows only. - diff --git a/docs/latex/wx/treetst.bmp b/docs/latex/wx/treetst.bmp deleted file mode 100644 index fd6103035f4403bedcad1c8a8a187e75f797b821..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14982 zcmeI1UuYc19mkzKxAeUw$z%KEQUX%yxH;%kA5uRzZH*p8WCHT4cBESw(VK^WpVEX< zh$$}7LmmtbAqBNsH;cL$LylrOM-h#DI*r$1QG}6oLNeA`-rJr2W_M@*%*@{Y<SI@Z zJmPj{cRu_5{(iHwJGZBw{`}&JV{v%}wm*Q+i_aW8HUpn$;E$J|rTx79Z2IAC#u)z~ z%AKd2c9foui*{I8d0YnOyC#MUEEC81%@0v}N6jtFP>k=rnctzf9laPFEsr0TbCG&S z%{fTlqvi<G_iN&!%J9n9HyW7c5A|$m9z=oF>>#)>@S7D=rlc1>9K~_qi_r_V7DiCq zz3I<ToU2b3j+XN9v7Cd{LvlL=r-$YGm2%~LZzH*iXAnQTG=5mlM*3no3#m8t$UOe? zU$-|jcqxymgT<S@H_vwKxUpbyJ221c(k|(Z1=hD8`n6o-1lIN=4EN8)?cSS{b@4^y z6Z3h<_w|}Q!q%M60-uF7+~5Ep4Clw(&Tzd`w_odM4AVpT_>Is%IvB1=*9eaLS2b3c z&rQ0D;zn-%9>tyd{FfLmB&^$DeifRH3+Fl*uEo}U49D2uU@*N$J>7K9#|18G*a{XV zDXrxq(y$Cl|E$X;%OhYca+b~Cpt!(qAviV`EEvnwBpTzQFB=<7@BVwdo}1DLrH3*- ze#NjH=6S{SFweikaM~-DBvQ%)!|`<&vwm<6vmS8{v%VdM^BoY?mn>fw`qA8)dHlx< zTEUWD(1rCwf04`F7OWpQ?%wwhTnOt?ov#DohX+XRQM3P}4~FN<^`c~5(1BULhvgVQ zK`ogc;eGLjH<a?f!8uA?;y^jRdM=7j#Bwg%6-H7md=ovl^465OgqOr%x6IwUaDJVr zP=O2M-mS&So`d0hqo>6(-$d`>OUA8+78LO%T;Lce-@wAfH<;b4$rqNlq`0C{u0?!b z8CSN;_7vZ&r`!-6UuK4t|3|K^Nl4_uml;uP(J0h9F1v<9xZRB<dZW-UnzCNMyF_&> zjm+)PPd*wJpPL%o`2xrFLmYRUUYZ#eU+Np}dRJzK<(qN`X_!hS@=du-1xODF&Pn!N zsFGVg+0V8)XL#**NF(cz8U>Ep&8nwg{`_;85jw5PG_vOvaNb+3$}}>LFvGQ5t`t?i zE8-&u6A&LlZ}SbW{q|fgAhj~RdFY4+Qg6Ns+=gxRf7K$KV~xD0+ybs^8{3yJFv2@r zzR?xnC~#|O2Ag-i_UH>55V$YE_q+2+U+^VlUA#xdDZqucv9m^!1B1TnG(}&r=DwFF z&aR1L$FIHB{EpZu)WCUH-gy6nIMlE9<w!ta!^@EPcy~Zx!^>Uo)2e*=*PDO<!wckU zCav-o;)@GO4<CZlKGJ2qR92}3=O{hp1K%{xEvKjKiG060j<#ntU+z?2YMX`<UiN&+ z<D)j2s^(xmrG?tFcSJj{g>R8FHSc>Wchepn5?`*j(*DJed~<Fr530~oeTQ@TO@ZY| z!7XnJ-%PJ!3HiFYK!jWqU&d)y)qEW+bLx61@-1_!`D1gzM!VU6MP!xLLN5zH=-N$s zJL?w>m4gR94T<O%wU#^i9FAL}^_<_eM`+Ixexg=<{ny*4`Y%^<*~t38h2>f;LNDvX za{Umer+F6eC=}lsj*&EWEVrHVQYCydJt_g|?qhR3q#khjvnxL*^L5f=Hj=ZjoOksu zz0oAOW!zGHEox2B1?9Vw!hP&o{5z2(mt9}xq&-vD{$kMU)toCh3cnc#2=25sanl}2 z&&sMSKA|@@e)aB3`&E(=NkitM+YqU%PU*+ymSR20HJ|t5;zvsg5+BHX(@7G+JkS-H z3+Hr{>KmFz%MEms87#8+(uMF5mUBIAfQp_=QQUzOBDoFgJ<V@AvhM@ZwI<ZZbDnRI z*xe`8YW7s?OfTj37_~0mYAB$N+ei3ru-6uv7;dofx3|AVYJEM3GjbIy&o>?3Ex67Y zZnMK2_WgRjwxcrqNH#91Z->-z=6Tw)-&@vW1wC^TxCzZAi_gq_nP~vmyi}*h;9pxk z`{KLxTno5;r<QxsSnghKay^}99^b3GD<{sp^9SH`w|dUShS8s(N^jBlfY`{K+t_Gd zV$u3l0i?Cebvj-942ycBqzp<N>)eO;6yU5nZh++2X?yzEv$cAw@bd&FzE#Ha9sIf` zU$z<l+!Vp2E*Cl9twV9_g?hcRpV*UqE4~ip^FBQh%RLZAQZ4)LOZ{T^331AsqwMRG zI3nd+Wd)agO|Hr#i1qHD_Z&eawX7G!{r)74>xALk3eIqm+_gH+1rz2Q)Zukr6knJ3 ztxnQ;Ugt&6T|e)AoHM*7bKwp@YVl2}=sER?rRNAKiNTJRQ?8nZ;}5@dEh%a$dWYfC zwSAag#2KzB71{StTs+ogK}C<}>XsS4_g`^Ny&h`;L-sveLS^5SqZlq?`zS8NaAf?( zPuS=6dgS!N++c)WuFHdr+2-|q?@Ar#xYwr}>O@e+#c_ji&4f`ozFw+NUzLL&przRO zuF5escf_3Lc2j*_{%;1gDDfSFV+5zioFnF3q+W@8{-k+Mb3OPyUcAqv?cO4+V#>I1 zrZla#d;2h;_1ts4U06M}Tu{g(3VRR0qn6tn5?^s5>{R5-b0|)P`6MmHSK=Zvgey!0 z9s)mAtH=I+j;_ys=?yNNxep94dTtTk3HZ+!i&Ns#=($zk;2(T}KQ$k#Rp|kD>!rRM zJTyoZ7hell&wCbd>}-mu@x|P}u^h)|)#x3ZTRA!VsW+I-UcZz)k~zS`;;HU*QsX+V za{O|=_$rGjQK6T*!IWrui#z~@69R(#2erm9+-EM1+q-5t7`+JTi{%F6xO~%B5oKJ8 z_YlMn_Y_Y<9Y2|44GYI{3ZwUgI7Sj9X{(IOH-<aCF276j)YW{c@@`(mA@$Zr30Ei= ljjxN-Tkb88vKHS{^;S+!tC)t<Kw7=093KI7oS)RV{0E?p3IYHC diff --git a/docs/latex/wx/treetst.gif b/docs/latex/wx/treetst.gif deleted file mode 100644 index e9f78419571c1da6b9befda415370027d05876d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2490 zcmV;r2}SltNk%w1VKV`B0e}Di00030|Nkri0000p0d)ZY0{)DTsmtvTqnxzbi?iOm z`wxcVNS5Y_rs~SJ?hD8AOxN~}=lag~{tpZahs2`sh)gP%%%<}RjY_A~s`Z)y1OVD? z*TDU1x!AH<MD~K$?DY2xk5|Npce^gn>mPKs*NwL)IJgy9czD=HxEQC{_4sJWIB7Lz zC}xRhN687b*$F!M8A>WQT8dhBn#xMG+6w#h8cUlrTZ>zCo68Hd+Y7w&8%%679GjL9 zS?qG$dg{#V5zPuM{X&fz29~_6cpZ|h?dOdr4(@PHx|~Rkhz_F8Nd~#yE(!l3&)Dr3 zNVhK^K3;a%m0J@~V8T7gF7><jPN0T`5hyaSxB#QX{)x>@SRB=Gqp^-9J}L+)a-<4+ zb^5t^V~<-sawugYuop98${QM$adW38s6n88z7hS`awm_TH<8{s`m|}(jOnH-#laMz zQ;0>wU~=T|WJa7xuVPJ+i7QZuR5gY5372h9vox}L8|pSH-l7Bf3T;bQhTWuJFFAzS z&0x(xH#5~-92o71tTh%=Cg|}DWDA#b_3Ug+9%x#h^&mdo7_806I`s)+sTZp1z#2y{ z6>GH+Ox9A-Op56@wX)43G1~S8RqChXzeg|^wsr5?=Y&jB%8C7<CgKvU^Ug<+`gc{n z$Ab@NUSYiS>Rq!(mr(rsD&ls}htF}~ePYo58sY@BA2=XIw-yBK1Q^PI4cxVhd<X`i z;BWxymJ@Cdu0z!(!4*^?S1vhtVGGOU1&Kc(k)_sOA!^oEc8S=x;5{3z$YNX<+;UKg zG-9FQ2D9Xd*N#{8=p!Go<t1b#7G`1OcC#fp1(6(p2;~n_PFdwRHWryBhP_SGWrACF zKxLRbjfth1&3(C^nu`=vlAG0`38tK{v00v-dB7Owl6ppoXP#yLnVEj&4N9nUfs)`A zO-`DVC~}4>>eqxNMr!4veWn;3rac%X*^yoy=qYq>p)jLPh?d%$ZIw#L>TRu|s@S8a z##+~;F|3MfjJJ|BYp<r3*`ctX{%ZbgDx@Y0%d*T?6YR5I@+$4I(N^0@TG&E6Ol>Gp zo2<45GV1HLl^tVTx#kLXEnzJo)~<xx*}5(Z;$HL<iTP4+kfrt7`=h?GjY{ySG7|Xj zN~`!QaJ+EA>TtqSp4e(~&H!1U#D{7~B*T~T`xL_(D;g1GurcQD9F7(?GP#Mh*)nHB zp@z`MV|<J<g>!Kkam<b7yVs>cV@#oC-1!U`s6j4`+r3D$I~|G*J3>~mPXn8(YFZ<8 z^3@$}t>V;90qCsPs3M7pj!ge_*S=<ldakB#qZb;VbCb&xhZRXc54Z>tt7@Ho|D8jz zq9Ggepk0@xMmaP6@!#O-DgN%XRw{aYq|b;h9#@XaWuCYWoL9_NqcWPVx#(pJ4EE|8 zuWE@km;ckRuIutT;Yp5}xI4X}3*$QCcdL7rv!D*YH*{rNjeL`$BiVeKOC2BmjXtC$ zd8y!HU%m9o%iaCB*Fzt^%H!Kze)8wb-R;|hA1FKD7-WxMrtieBzWL!oSn_K0-fRw< z=`3f$k{tY4N4qu<jcm^{;9Dw%Fr_7@fI?W7!CoY_rDaffiK5@VI%Xk=L5zYG3=0Gm zC@P?Bg@pW5m3DwL7pifJe$wzD2Z=W~8{QBwccY<PK!!XY1}}YdvR2Q^Cq&y3QHjqx zV)%SWz9sspggboV{t>7r#VVfZfk5;c6f@R7vwe|#VZ7QHNrb%*8ODEDjMW+86gHt{ zE=bHe<NYGYHPYz@TXuwz2>k~+fbdZXezX|qAXTkCD(8=C10SpGSh6&N&38`x6C^9i zq(m|SG?xs<B`<R{?QJrP_!=cC9ZAJgYSD<Q>?9_0=mb}WNS3mE5G`N%v|3iqin72Z z(rQ^V;aDy^z$`{F8Hhr${p*-`<l-tt8HKC~Gmy&!R0^9mvSKQ8lG^NrHmUXvVkWGc zq$Fn+&ACK$rc;$tP$v=HnLc<Tk)58PXFYY{J@*-b8f}E8%zTNB`7v>v&zu1O-zCfp zhEkINZN>uro7vFu!0;gl^^Z%g2vJ6csVgCqqrPZ(vU<E^gVeMWte$j-g$ibpeOaNK zOm{-GRc&WYEDIx3wb5pB({eP8n@=n%Kuf8VaB-YtGU10mxOuU62a8%$f2LHZ+Ovzp zIa^hy`p=8-1*p?R8FsKLP(C>3q1WswSmlS-PE9a3XQgUYWcrodIjXH$ZIT27x22)B zwLym5CJ*WAJi8vItH4=~JfVcU$pmqFfPE`t8#~3C5^$nmN!ww8VL<Mo5pAb4BN6T@ z$lmp{ULZvsOd%!OftpK)qzmm+FN@hByvjst#98WOYthoJv2k8}Q*TY9+SM{duY-gv zK8^nSS>z^Hxv6BXq?~I%=#CGgdqo0lCud#2ibtF&V;McEBhA?r6qdVcDFVl<&s~|8 zq$0g8ZD8<0ot~9Bn)N6$Bbv*APBx7ma&Kf@6;{XscmkvSF0lAUTq%ymzb3Vpbn9x> z2NQS&3~umBB&@#(V>o|`-SC7pj8_P=lQM8brFlmj)hmh5#MK+jPjMQ#npJowE`};u zIW<+LNa@BSY-OPk`C6G^&Yq=dN=z;2(o+`ss2%O=jFnQGhs7{uIV0PXQxfIidN^HL z-mrJ@i`*|?Sx(*=Gnw-QX60I@%N|B=(%Ni2_oSJ*@nJKZ>pW*VyT{BO6dauMgZ`yg zP<EQJ!{Bt*Nv3FVbcQPAX@S#QBteG|n}^=xE}M5aidFeAYimcL6+E%Av?!yswe&e7 z?WaYzjkA>o^+fchJAlB8j$d_i=v3S}^x^Q%N3>ZP|IE|09@MSC9-yb$7VKiby2&ph zpt1o?v^_q%PC=IOw51pANF?~$;#Kt!xt*a-!RBS)MvJaP%wcp#cD}I2)33G2=l{CU z-NZ(hnj<u9?`}G!TSa!5XVtfm$+yw=jkmldof{+<vXN?5babSK&{DJd-wPXClGoO0 z<E{>w9(`@?lKJmo<(tYd<o60kr(Ii@`@?x&`J`PQVS`KT(J;@X%4=ROqL~xa&NyFj z%X@zAp7ZSIH7~Ky<xF&#!*S44zBz{B<n2QqeaDriIk!1RQXL)LnR=w-*86AFW`Dge zFLX%K8$NcDr5$E#r*_*D{dT0s9nf>9d);k*_W<WT&U@E;---SA<V|!nC{4Snfo%1a zQ$3~9j{D+|ed(#c9P(#}E{u0O_mTrL@qzEW=RXhn(2IWbq%XbcPmlW4tA6z^C;$Ke EJB*;*_W%F@ diff --git a/docs/latex/wx/trefcount.tex b/docs/latex/wx/trefcount.tex deleted file mode 100644 index 01ed32c0a1..0000000000 --- a/docs/latex/wx/trefcount.tex +++ /dev/null @@ -1,98 +0,0 @@ -\section{Reference counting}\label{trefcount} - -\subsection{Why you shouldn't care about it}\label{refcount} - -Many wxWidgets objects use a technique known as \it{reference counting}, also known -as {\it copy on write} (COW). -This means that when an object is assigned to another, no copying really takes place: -only the reference count on the shared object data is incremented and both objects -share the same data (a very fast operation). - -But as soon as one of the two (or more) objects is modified, the data has to be -copied because the changes to one of the objects shouldn't be seen in the -others. As data copying only happens when the object is written to, this is -known as COW. - -What is important to understand is that all this happens absolutely -transparently to the class users and that whether an object is shared or not -is not seen from the outside of the class - in any case, the result of any -operation on it is the same. - -\subsection{Object comparison}\label{refcountequality} - -The $==$ and $!=$ operators of \helpref{wxWidgets COW objects}{refcountlist} -always do a {\tt deep} comparison. - -This means that the equality operator will return \true if two objects are -identic and not only if they share the same data. - -Note that wxWidgets follows the {\it STL philosophy}: when a comparison operator cannot -be implemented efficiently (like for e.g. wxImage's $==$ operator which would need to -compare pixel-by-pixel the entire image's data), it's not implemented at all. - -That's why not all reference-counted wxWidgets classes provide comparison operators. - -Also note that if you only need to do a {\tt shallow} comparison between two -\helpref{wxObject}{wxobject}-derived classes, you should not use the $==$ and $!=$ operators -but rather the \helpref{wxObject::IsSameAs}{wxobjectissameas} function. - - -\subsection{Object destruction}\label{refcountdestruct} - -When a COW object destructor is called, it may not delete the data: if it's shared, -the destructor will just decrement the shared data's reference count without destroying it. - -Only when the destructor of the last object owning the data is called, the data is really -destroyed. As for all other COW-things, this happens transparently to the class users so -that you shouldn't care about it. - - -\subsection{List of reference-counted wxWidgets classes}\label{refcountlist} - -The following classes in wxWidgets have efficient (i.e. fast) assignment operators -and copy constructors since they are reference-counted: - -\helpref{wxAcceleratorTable}{wxacceleratortable}\\ -\helpref{wxAnimation}{wxanimation}\\ -\helpref{wxBitmap}{wxbitmap}\\ -\helpref{wxBrush}{wxbrush}\\ -\helpref{wxCursor}{wxcursor}\\ -\helpref{wxFont}{wxfont}\\ -\helpref{wxIcon}{wxicon}\\ -\helpref{wxImage}{wximage}\\ -\helpref{wxMetafile}{wxmetafile}\\ -\helpref{wxPalette}{wxpalette}\\ -\helpref{wxPen}{wxpen}\\ -\helpref{wxRegion}{wxregion}\\ -\helpref{wxString}{wxstring}\\ -\helpref{wxVariant}{wxvariant}\\ -\helpref{wxVariantData}{wxvariantdata} - -Note that the list above reports the objects which are reference-counted in all ports of -wxWidgets; some ports may use this tecnique also for other classes. -\subsection{Make your own reference-counted class}\label{wxobjectoverview} - -Reference counting can be implemented easily using \helpref{wxObject}{wxobject} -and \helpref{wxObjectRefData}{wxobjectrefdata} classes. Alternatively, you -can also use the \helpref{wxObjectDataPtr<T>}{wxobjectdataptr} template. - -First, derive a new class from \helpref{wxObjectRefData}{wxobjectrefdata} and -put there the memory-consuming data. - -Then derive a new class from \helpref{wxObject}{wxobject} and implement there -the public interface which will be seen by the user of your class. -You'll probably want to add a function to your class which does the cast from -\helpref{wxObjectRefData}{wxobjectrefdata} to your class-specific shared data; e.g.: - -\begin{verbatim} - MyClassRefData *GetData() const { return wx_static_cast(MyClassRefData*, m_refData); } -\end{verbatim} - -in fact, all times you'll need to read the data from your wxObject-derived class, -you'll need to call such function. - -Very important, all times you need to actually modify the data placed inside your -wxObject-derived class, you must first call the wxObject::UnShare -function to be sure that the modifications won't affect other instances which are -eventually sharing your object's data. - diff --git a/docs/latex/wx/truntime.tex b/docs/latex/wx/truntime.tex deleted file mode 100644 index 04ee1e02a7..0000000000 --- a/docs/latex/wx/truntime.tex +++ /dev/null @@ -1,109 +0,0 @@ -\section{Runtime class information (aka RTTI) overview}\label{runtimeclassoverview} - -Classes: \helpref{wxObject}{wxobject}, \helpref{wxClassInfo}{wxclassinfo}. - -One of the failings of C++ used to be that no run-time information was provided -about a class and its position in the inheritance hierarchy. -Another, which still persists, is that instances of a class cannot be created -just by knowing the name of a class, which makes facilities such as persistent -storage hard to implement. - -Most C++ GUI frameworks overcome these limitations by means of a set of -macros and functions and wxWidgets is no exception. As it originated before the -addition of RTTI to the C++ standard and as support for it is still missing from -some (albeit old) compilers, wxWidgets doesn't (yet) use it, but provides its -own macro-based RTTI system. - -In the future, the standard C++ RTTI will be used though and you're encouraged -to use whenever possible the \helpref{wxDynamicCast()}{wxdynamiccast} macro which, -for the implementations that support it, is defined just as dynamic\_cast<> and -uses wxWidgets RTTI for all the others. This macro is limited to wxWidgets -classes only and only works with pointers (unlike the real dynamic\_cast<> which -also accepts references). - -Each class that you wish to be known to the type system should have -a macro such as DECLARE\_DYNAMIC\_CLASS just inside the class declaration. -The macro IMPLEMENT\_DYNAMIC\_CLASS should be in the implementation file. -Note that these are entirely optional; use them if you wish to check object -types, or create instances of classes using the class name. However, -it is good to get into the habit of adding these macros for all classes. - -Variations on these \helpref{macros}{rttimacros} are used for multiple inheritance, and abstract -classes that cannot be instantiated dynamically or otherwise. - -DECLARE\_DYNAMIC\_CLASS inserts a static wxClassInfo declaration into the -class, initialized by IMPLEMENT\_DYNAMIC\_CLASS. When initialized, the -wxClassInfo object inserts itself into a linked list (accessed through -wxClassInfo::first and wxClassInfo::next pointers). The linked list -is fully created by the time all global initialisation is done. - -IMPLEMENT\_DYNAMIC\_CLASS is a macro that not only initialises the static -wxClassInfo member, but defines a global function capable of creating a -dynamic object of the class in question. A pointer to this function is -stored in wxClassInfo, and is used when an object should be created -dynamically. - -\helpref{wxObject::IsKindOf}{wxobjectiskindof} uses the linked list of -wxClassInfo. It takes a wxClassInfo argument, so use CLASSINFO(className) -to return an appropriate wxClassInfo pointer to use in this function. - -The function \helpref{wxCreateDynamicObject}{wxcreatedynamicobject} can be used -to construct a new object of a given type, by supplying a string name. -If you have a pointer to the wxClassInfo object instead, then you -can simply call \helpref{wxClassInfo::CreateObject}{wxclassinfocreateobject}. - -\subsection{wxClassInfo}\label{wxclassinfooverview} - -\overview{Runtime class information (aka RTTI) overview}{runtimeclassoverview} - -Class: \helpref{wxClassInfo}{wxclassinfo} - -This class stores meta-information about classes. An application -may use macros such as DECLARE\_DYNAMIC\_CLASS and IMPLEMENT\_DYNAMIC\_CLASS -to record run-time information about a class, including: - -\begin{itemize}\itemsep=0pt -\item its position in the inheritance hierarchy; -\item the base class name(s) (up to two base classes are permitted); -\item a string representation of the class name; -\item a function that can be called to construct an instance of this class. -\end{itemize} - -The DECLARE\_... macros declare a static wxClassInfo variable in a class, which is initialized -by macros of the form IMPLEMENT\_... in the implementation C++ file. Classes whose instances may be -constructed dynamically are given a global constructor function which returns a new object. - -You can get the wxClassInfo for a class by using the CLASSINFO macro, e.g. CLASSINFO(wxFrame). -You can get the wxClassInfo for an object using wxObject::GetClassInfo. - -See also \helpref{wxObject}{wxobject} and \helpref{wxCreateDynamicObject}{wxcreatedynamicobject}. - -\subsection{Example}\label{runtimeclassinformationexample} - -In a header file frame.h: - -\begin{verbatim} -class wxFrame : public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxFrame) - -private: - wxString m_title; - -public: - ... -}; -\end{verbatim} - -In a C++ file frame.cpp: - -\begin{verbatim} -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) - -wxFrame::wxFrame() -{ -... -} -\end{verbatim} - - diff --git a/docs/latex/wx/tsamples.tex b/docs/latex/wx/tsamples.tex deleted file mode 100644 index 002e375756..0000000000 --- a/docs/latex/wx/tsamples.tex +++ /dev/null @@ -1,574 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tsamples.tex -%% Purpose: Samples description -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.11.99 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% NB: please keep the subsections in alphabetic order! - -\section{wxWidgets samples}\label{samples} - -Probably the best way to learn wxWidgets is by reading the source of some 50+ -samples provided with it. Many aspects of wxWidgets programming can be learnt -from them, but sometimes it is not simple to just choose the right sample to -look at. This overview aims at describing what each sample does/demonstrates to -make it easier to find the relevant one if a simple grep through all sources -didn't help. They also provide some notes about using the samples and what -features of wxWidgets are they supposed to test. - -There are currently more than 50 different samples as part of wxWidgets and -this list is not complete. You should start your tour of wxWidgets with the -\helpref{minimal sample}{sampleminimal} which is the wxWidgets version of -"Hello, world!". It shows the basic structure of wxWidgets program and is the -most commented sample of all - looking at its source code is recommended. - -The next most useful samples are probably \helpref{widgets}{samplewidgets} -and \helpref{controls}{samplecontrols} which show many of wxWidgets native and -generic controls, such as buttons, listboxes, checkboxes, comboboxes etc. - -Other, more complicated controls, have their own samples. In this category you -may find the following samples showing the corresponding controls: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxCalendarCtrl}{samplecalendar}}{Calendar a.k.a. date picker control} -\twocolitem{\helpref{wxListCtrl}{samplelistctrl}}{List view control} -\twocolitem{\helpref{wxTreeCtrl}{sampletreectrl}}{Tree view control} -\twocolitem{\helpref{wxGrid}{samplegrid}}{Grid control} -\end{twocollist} - -Finally, it might be helpful to do a search in the entire sample directory if -you can't find the sample showing the control you are interested in by -name. Most classes contained in wxWidgets occur in at least one of the samples. - - -\subsection{Minimal sample}\label{sampleminimal} - -The minimal sample is what most people will know under the term Hello World, -i.e. a minimal program that doesn't demonstrate anything apart from what is -needed to write a program that will display a "hello" dialog. This is usually -a good starting point for learning how to use wxWidgets. - - -\subsection{Animate sample}\label{sampleanimate} - -The {\tt animate} sample shows how you can use \helpref{wxAnimationCtrl}{wxanimationctrl} -control and shows concept of a platform-dependent animation encapsulated -in \helpref{wxAnimation}{wxanimation}. - - -\subsection{Art provider sample}\label{sampleartprovider} - -The {\tt artprov} sample shows how you can customize the look of standard -wxWidgets dialogs by replacing default bitmaps/icons with your own versions. -It also shows how you can use wxArtProvider to -get stock bitmaps for use in your application. - - -\subsection{Calendar sample}\label{samplecalendar} - -This font shows the \helpref{calendar control}{wxcalendarctrl} in action. It -shows how to configure the control (see the different options in the calendar -menu) and also how to process the notifications from it. - - -\subsection{Config sample}\label{sampleconfig} - -This sample demonstrates the \helpref{wxConfig}{wxconfigbase} classes in a platform -independent way, i.e. it uses text based files to store a given configuration under -Unix and uses the Registry under Windows. - -See \helpref{wxConfig overview}{wxconfigoverview} for the descriptions of all -features of this class. - - -\subsection{Controls sample}\label{samplecontrols} - -The controls sample is the main test program for most simple controls used in -wxWidgets. The sample tests their basic functionality, events, placement, -modification in terms of colour and font as well as the possibility to change -the controls programmatically, such as adding an item to a list box etc. Apart -from that, the sample uses a \helpref{wxNotebook}{wxnotebook} and tests most -features of this special control (using bitmap in the tabs, using -\helpref{wxSizers}{wxsizer} and \helpref{constraints}{wxlayoutconstraints} within -notebook pages, advancing pages programmatically and vetoing a page change -by intercepting the \helpref{wxNotebookEvent}{wxnotebookevent}. - -The various controls tested are listed here: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\helpref{wxButton}{wxbutton}}{Push button control, displaying text} -\twocolitem{\helpref{wxBitmapButton}{wxbitmapbutton}}{Push button control, displaying a bitmap} -\twocolitem{\helpref{wxCheckBox}{wxcheckbox}}{Checkbox control} -\twocolitem{\helpref{wxChoice}{wxchoice}}{Choice control (a combobox without the editable area)} -\twocolitem{\helpref{wxComboBox}{wxcombobox}}{A choice with an editable area} -\twocolitem{\helpref{wxGauge}{wxgauge}}{A control to represent a varying quantity, such as time remaining} -\twocolitem{\helpref{wxStaticBox}{wxstaticbox}}{A static, or group box for visually grouping related controls} -\twocolitem{\helpref{wxListBox}{wxlistbox}}{A list of strings for single or multiple selection} -\twocolitem{wxSpinCtrl}{A spin ctrl with a text field and a `up-down' control} -\twocolitem{\helpref{wxSpinButton}{wxspinbutton}}{A spin or `up-down' control} -\twocolitem{\helpref{wxStaticText}{wxstatictext}}{One or more lines of non-editable text} -\twocolitem{\helpref{wxStaticBitmap}{wxstaticbitmap}}{A control to display a bitmap} -\twocolitem{\helpref{wxRadioBox}{wxradiobox}}{A group of radio buttons} -\twocolitem{\helpref{wxRadioButton}{wxradiobutton}}{A round button to be used with others in a mutually exclusive way} -\twocolitem{\helpref{wxSlider}{wxslider}}{A slider that can be dragged by the user} -\end{twocollist} - - -\subsection{DebugRpt sample}\label{sampledebugrpt} - -This sample shows how to use \helpref{wxDebugReport}{wxdebugreport} class to -generate a debug report in case of a program crash or otherwise. On start up, -it proposes to either crash itself (by dereferencing a NULL pointer) or -generate debug report without doing it. Next it initializes the debug report -with standard information adding a custom file to it (just a timestamp) and -allows to view the information gathered using -\helpref{wxDebugReportPreview}{wxdebugreportpreview}. - -For the report processing part of the sample to work you should make available -a Web server accepting form uploads, otherwise -\helpref{wxDebugReportUpload}{wxdebugreportupload} will report an error. - - -\subsection{Dialogs sample}\label{sampledialogs} - -This sample shows how to use the common dialogs available from wxWidgets. These -dialogs are described in detail in the \helpref{Common dialogs overview}{commondialogsoverview}. - - -\subsection{Dialup sample}\label{sampledialup} - -This sample shows the \helpref{wxDialUpManager}{wxdialupmanager} -class. In the status bar, it displays the information gathered through its -interface: in particular, the current connection status (online or offline) and -whether the connection is permanent (in which case a string `LAN' appears in -the third status bar field - but note that you may be on a LAN not -connected to the Internet, in which case you will not see this) or not. - -Using the menu entries, you may also dial or hang up the line if you have a -modem attached and (this only makes sense for Windows) list the available -connections. - - -\subsection{DnD sample}\label{samplednd} - -This sample shows both clipboard and drag and drop in action. It is quite non -trivial and may be safely used as a basis for implementing the clipboard and -drag and drop operations in a real-life program. - -When you run the sample, its screen is split in several parts. On the top, -there are two listboxes which show the standard derivations of -\helpref{wxDropTarget}{wxdroptarget}: -\helpref{wxTextDropTarget}{wxtextdroptarget} and -\helpref{wxFileDropTarget}{wxfiledroptarget}. - -The middle of the sample window is taken by the log window which shows what is -going on (of course, this only works in debug builds) and may be helpful to see -the sequence of steps of data transfer. - -Finally, the last part is used for dragging text from it to either one of the -listboxes (only one will accept it) or another application. The last -functionality available from the main frame is to paste a bitmap from the -clipboard (or, in the case of the Windows version, also a metafile) - it will be -shown in a new frame. - -So far, everything we mentioned was implemented with minimal amount of code -using standard wxWidgets classes. The more advanced features are demonstrated -if you create a shape frame from the main frame menu. A shape is a geometric -object which has a position, size and color. It models some -application-specific data in this sample. A shape object supports its own -private \helpref{wxDataFormat}{wxdataformat} which means that you may cut and -paste it or drag and drop (between one and the same or different shapes) from -one sample instance to another (or the same). However, chances are that no -other program supports this format and so shapes can also be rendered as -bitmaps which allows them to be pasted/dropped in many other applications -(and, under Windows, also as metafiles which are supported by most of Windows -programs as well - try Write/Wordpad, for example). - -Take a look at DnDShapeDataObject class to see how you may use -\helpref{wxDataObject}{wxdataobject} to achieve this. - - -\subsection{Event sample}\label{sampleevent} - -The event sample demonstrates various features of the wxWidgets events. It -shows using dynamic events and connecting/disconnecting the event handlers -during run time and also using -\helpref{PushEventHandler()}{wxwindowpusheventhandler} and -\helpref{PopEventHandler()}{wxwindowpopeventhandler}. - - -\subsection{Except(ions) sample}\label{sampleexcept} - -This very simple sample shows how to use C++ exceptions in wxWidgets programs, -i.e. where to catch the exception which may be thrown by the program code. It -doesn't do anything very exciting by itself, you need to study its code to -understand what goes on. - -You need to build the library with \texttt{wxUSE\_EXCEPTIONS} being set to $1$ -and compile your code with C++ exceptions support to be able to build this -sample. - - -\subsection{Exec sample}\label{sampleexec} - -The exec sample demonstrates the \helpref{wxExecute}{wxexecute} and -\helpref{wxShell}{wxshell} functions. Both of them are used to execute the -external programs and the sample shows how to do this synchronously (waiting -until the program terminates) or asynchronously (notification will come later). - -It also shows how to capture the output of the child process in both -synchronous and asynchronous cases and how to kill the processes with -\helpref{wxProcess::Kill}{wxprocesskill} and test for their existence with -\helpref{wxProcess::Exists}{wxprocessexists}. - - -\subsection{Font sample}\label{samplefont} - -The font sample demonstrates \helpref{wxFont}{wxfont}, -\helpref{wxFontEnumerator}{wxfontenumerator} and -\helpref{wxFontMapper}{wxfontmapper} classes. It allows you to see the fonts -available (to wxWidgets) on the computer and shows all characters of the -chosen font as well. - - -\subsection{Grid sample}\label{samplegrid} - -TODO. - - -\subsection{HTML samples}\label{samplehtml} - -Eight HTML samples (you can find them in directory {\tt samples/html}) -cover all features of the HTML sub-library. - -{\bf Test} demonstrates how to create \helpref{wxHtmlWindow}{wxhtmlwindow} -and also shows most supported HTML tags. - -{\bf Widget} shows how you can embed ordinary controls or windows within an -HTML page. It also nicely explains how to write new tag handlers and extend -the library to work with unsupported tags. - -{\bf About} may give you an idea how to write good-looking About boxes. - -{\bf Zip} demonstrates use of virtual file systems in wxHTML. The zip archives -handler (ships with wxWidgets) allows you to access HTML pages stored -in a compressed archive as if they were ordinary files. - -{\bf Virtual} is yet another virtual file systems demo. This one generates pages at run-time. -You may find it useful if you need to display some reports in your application. - -{\bf Printing} explains use of \helpref{wxHtmlEasyPrinting}{wxhtmleasyprinting} -class which serves as as-simple-as-possible interface for printing HTML -documents without much work. In fact, only few function calls are sufficient. - -{\bf Help} and {\bf Helpview} are variations on displaying HTML help -(compatible with MS HTML Help Workshop). {\it Help} shows how to embed -\helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} in your application -while {\it Helpview} is a simple tool that only pops up the help window and -displays help books given at command line. - - -\subsection{Image sample}\label{sampleimage} - -The image sample demonstrates use of the \helpref{wxImage}{wximage} class -and shows how to download images in a variety of formats, currently PNG, GIF, -TIFF, JPEG, BMP, PNM and PCX. The top of the sample shows two rectangles, one -of which is drawn directly in the window, the other one is drawn into a -\helpref{wxBitmap}{wxbitmap}, converted to a wxImage, saved as a PNG image -and then reloaded from the PNG file again so that conversions between wxImage -and wxBitmap as well as loading and saving PNG files are tested. - -At the bottom of the main frame there is a test for using a monochrome bitmap by -drawing into a \helpref{wxMemoryDC}{wxmemorydc}. The bitmap is then drawn -specifying the foreground and background colours with -\helpref{wxDC::SetTextForeground}{wxdcsettextforeground} and -\helpref{wxDC::SetTextBackground}{wxdcsettextbackground} (on the left). The -bitmap is then converted to a wxImage and the foreground colour (black) is -replaced with red using \helpref{wxImage::Replace}{wximagereplace}. - -This sample also contains the code for testing the image rotation and resizing -and using raw bitmap access, see the corresponding menu commands. - - -\subsection{Internat(ionalization) sample}\label{sampleinternat} - -The not very clearly named internat sample demonstrates the wxWidgets -internationalization (i18n for short from now on) features. To be more -precise, it only shows localization support, i.e. support for translating the -program messages into another language while true i18n would also involve -changing the other aspects of the programs behaviour. - -More information about this sample can be found in the {\tt readme.txt} file in -its directory. Please see also \helpref{i18n overview}{internationalization}. - - -\subsection{Layout sample}\label{samplelayout} - -The layout sample demonstrates the two different layout systems offered -by wxWidgets. When starting the program, you will see a frame with some -controls and some graphics. The controls will change their size whenever -you resize the entire frame and the exact behaviour of the size changes -is determined using the \helpref{wxLayoutConstraints}{wxlayoutconstraints} -class. See also the \helpref{overview}{constraintsoverview} and the -\helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint} -class for further information. - -The menu in this sample offers two more tests, one showing how to use -a \helpref{wxBoxSizer}{wxboxsizer} in a simple dialog and the other one -showing how to use sizers in connection with a \helpref{wxNotebook}{wxnotebook} -class. See also \helpref{wxSizer}{wxsizer}. - - -\subsection{Listctrl sample}\label{samplelistctrl} - -This sample shows the \helpref{wxListCtrl}{wxlistctrl} control. Different modes -supported by the control (list, icons, small icons, report) may be chosen from -the menu. - -The sample also provides some timings for adding/deleting/sorting a lot of -(several thousands) items into the control. - - -\subsection{Mediaplayer sample}\label{samplemediaplayer} - -This sample demonstrates how to use all the features of -\helpref{wxMediaCtrl}{wxmediactrl} and play various types of sound, video, -and other files. - - -It replaces the old dynamic sample. - -\subsection{Notebook sample}\label{samplenotebook} - -This samples shows \helpref{wxBookCtrl}{wxbookctrloverview} family of controls. -Although initially it was written to demonstrate \helpref{wxNotebook}{wxnotebook} -only, it can now be also used to see \helpref{wxListbook}{wxlistbook}, -\helpref{wxChoicebook}{wxchoicebook} and \helpref{wxTreebook}{wxtreebook} in action. -Test each of the controls, their orientation, images and pages using commands through menu. - - - -\subsection{Render sample}\label{samplerender} - -This sample shows how to replace the default wxWidgets -\helpref{renderer}{wxrenderernative} and also how to write a shared library -(DLL) implementing a renderer and load and unload it during the run-time. - - - -\subsection{Scroll subwindow sample}\label{samplescrollsub} - -This sample demonstrates use of the \helpref{wxScrolledWindow}{wxscrolledwindow} -class including placing subwindows into it and drawing simple graphics. It uses the -\helpref{SetTargetWindow}{wxscrolledwindowsettargetwindow} method and thus the effect -of scrolling does not show in the scrolled window itself, but in one of its subwindows. - -Additionally, this samples demonstrates how to optimize drawing operations in wxWidgets, -in particular using the \helpref{wxWindow::IsExposed}{wxwindowisexposed} method with -the aim to prevent unnecessary drawing in the window and thus reducing or removing -flicker on screen. - - -\subsection{Sockets sample}\label{samplesockets} - -The sockets sample demonstrates how to use the communication facilities -provided by \helpref{wxSocket}{wxsocketbase}. There are two different -applications in this sample: a server, which is implemented using a -\helpref{wxSocketServer}{wxsocketserver} object, and a client, which -is implemented as a \helpref{wxSocketClient}{wxsocketclient}. - -The server binds to the local address, using TCP port number 3000, -sets up an event handler to be notified of incoming connection requests -({\bf wxSOCKET\_CONNECTION} events), and sits there, waiting for clients -({\it listening}, in socket parlance). For each accepted connection, -a new \helpref{wxSocketBase}{wxsocketbase} object is created. These -socket objects are independent from the server that created them, so -they set up their own event handler, and then request to be notified -of {\bf wxSOCKET\_INPUT} (incoming data) or {\bf wxSOCKET\_LOST} -(connection closed at the remote end) events. In the sample, the event -handler is the same for all connections; to find out which socket the -event is addressed to, the \helpref{GetSocket}{wxsocketeventgetsocket} function -is used. - -Although it might take some time to get used to the event-oriented -system upon which wxSocket is built, the benefits are many. See, for -example, that the server application, while being single-threaded -(and of course without using fork() or ugly select() loops) can handle -an arbitrary number of connections. - -The client starts up unconnected, so you can use the Connect... option -to specify the address of the server you are going to connect to (the -TCP port number is hard-coded as 3000). Once connected, a number of -tests are possible. Currently, three tests are implemented. They show -how to use the basic IO calls in \helpref{wxSocketBase}{wxsocketbase}, -such as \helpref{Read}{wxsocketbaseread}, \helpref{Write}{wxsocketbasewrite}, -\helpref{ReadMsg}{wxsocketbasereadmsg} and \helpref{WriteMsg}{wxsocketbasewritemsg}, -and how to set up the correct IO flags depending on what you are going to -do. See the comments in the code for more information. Note that because -both clients and connection objects in the server set up an event handler -to catch {\bf wxSOCKET\_LOST} events, each one is immediately notified -if the other end closes the connection. - -There is also a URL test which shows how to use -the \helpref{wxURL}{wxurl} class to fetch data from a given URL. - -The sockets sample is work in progress. Some things to do: - -\begin{itemize}\itemsep=0pt -\item More tests for basic socket functionality. -\item More tests for protocol classes (wxProtocol and its descendants). -\item Tests for the recently added (and still in alpha stage) datagram sockets. -\item New samples which actually do something useful (suggestions accepted). -\end{itemize} - - -\subsection{Sound sample}\label{samplesound} - -The {\tt sound} sample shows how to use \helpref{wxSound}{wxsound} for simple -audio output (e.g. notifications). - - -\subsection{Statbar sample}\label{samplestatbar} - -This sample shows how to create and use wxStatusBar. Although most of the -samples have a statusbar, they usually only create a default one and only -do it once. - -Here you can see how to recreate the statusbar (with possibly different number -of fields) and how to use it to show icons/bitmaps and/or put arbitrary -controls into it. - - -\subsection{Tab order sample}\label{sampletaborder} - -This sample allows to test keyboard navigation (mostly done using the -\texttt{\textsc{TAB}} key, hence the sample name) between different controls. -It shows the use of -\helpref{wxWindow::MoveBeforeInTabOrder()}{wxwindowmovebeforeintaborder} and -\helpref{MoveAfterInTabOrder()}{wxwindowmoveafterintaborder} methods to change -the default order of the windows in the navigation chain and of -\helpref{wxWindow::Navigate()}{wxwindownavigate} for moving focus along this -chain. - - -\subsection{Text sample}\label{sampletext} - -This sample demonstrates four features: firstly the use and many variants of -the \helpref{wxTextCtrl}{wxtextctrl} class (single line, multi line, read only, -password, ignoring TAB, ignoring ENTER). - -Secondly it shows how to intercept a \helpref{wxKeyEvent}{wxkeyevent} in both -the raw form using the {\tt EVT\_KEY\_UP} and {\tt EVT\_KEY\_DOWN} macros and the -higher level from using the {\tt EVT\_CHAR} macro. All characters will be logged -in a log window at the bottom of the main window. By pressing some of the function -keys, you can test some actions in the text ctrl as well as get statistics on the -text ctrls, which is useful for testing if these statistics actually are correct. - -Thirdly, on platforms which support it, the sample will offer to copy text to the -\helpref{wxClipboard}{wxclipboard} and to paste text from it. The GTK version will -use the so called PRIMARY SELECTION, which is the pseudo clipboard under X and -best known from pasting text to the XTerm program. - -Last not least: some of the text controls have tooltips and the sample also shows -how tooltips can be centrally disabled and their latency controlled. - - -\subsection{Thread sample}\label{samplethread} - -This sample demonstrates use of threads in connection with GUI programs. -There are two fundamentally different ways to use threads in GUI programs and -either way has to take care of the fact that the GUI library itself usually -is not multi-threading safe, i.e. that it might crash if two threads try to -access the GUI class simultaneously. One way to prevent that is have a normal -GUI program in the main thread and some worker threads which work in the -background. In order to make communication between the main thread and the -worker threads possible, wxWidgets offers the \helpref{wxPostEvent}{wxpostevent} -function and this sample makes use of this function. - -The other way to use a so called Mutex (such as those offered in the \helpref{wxMutex}{wxmutex} -class) that prevent threads from accessing the GUI classes as long as any other -thread accesses them. For this, wxWidgets has the \helpref{wxMutexGuiEnter}{wxmutexguienter} -and \helpref{wxMutexGuiLeave}{wxmutexguileave} functions, both of which are -used and tested in the sample as well. - -See also \helpref{Multithreading overview}{wxthreadoverview} and \helpref{wxThread}{wxthread}. - - -\subsection{Toolbar sample}\label{sampletoolbar} - -The toolbar sample shows the \helpref{wxToolBar}{wxtoolbar} class in action. - -The following things are demonstrated: - -\begin{itemize}\itemsep=0pt -\item Creating the toolbar using \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} -and \helpref{wxToolBar::AddControl}{wxtoolbaraddcontrol}: see -MyApp::InitToolbar in the sample. -\item Using {\tt EVT\_UPDATE\_UI} handler for automatically enabling/disabling -toolbar buttons without having to explicitly call EnableTool. This is done -in MyFrame::OnUpdateCopyAndCut. -\item Using \helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool} and -\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool} to dynamically update the -toolbar. -\end{itemize} - -Some buttons in the main toolbar are check buttons, i.e. they stay checked when -pressed. On the platforms which support it, the sample also adds a combobox -to the toolbar showing how you can use arbitrary controls and not only buttons -in it. - -If you toggle another toolbar in the sample (using {\tt Ctrl-A}) you will also -see the radio toolbar buttons in action: the first three buttons form a radio -group, i.e. checking any of them automatically unchecks the previously -checked one. - - -\subsection{Treectrl sample}\label{sampletreectrl} - -This sample demonstrates using the \helpref{wxTreeCtrl}{wxtreectrl} class. Here -you may see how to process various notification messages sent by this control -and also when they occur (by looking at the messages in the text control in -the bottom part of the frame). - -Adding, inserting and deleting items and branches from the tree as well as -sorting (in default alphabetical order as well as in custom one) is -demonstrated here as well - try the corresponding menu entries. - - -\subsection{Widgets sample}\label{samplewidgets} - -The widgets sample is the main presentation program for most simple and advanced -native controls and complex generic widgets provided by wxWidgets. -The sample tests their basic functionality, events, placement, modification -in terms of colour and font as well as the possibility to change -the controls programmatically, such as adding an item to a list box etc. -All widgets are categorized for easy browsing. - -\subsection{Wizard sample}\label{samplewizard} - -This sample shows the so-called wizard dialog (implemented using -\helpref{wxWizard}{wxwizard} and related classes). It shows almost all -features supported: - -\begin{itemize}\itemsep=0pt -\item Using bitmaps with the wizard and changing them depending on the page -shown (notice that wxValidationPage in the sample has a different image from -the other ones) -\item Using \helpref{TransferDataFromWindow}{wxwindowtransferdatafromwindow} -to verify that the data entered is correct before passing to the next page -(done in wxValidationPage which forces the user to check a checkbox before -continuing). -\item Using more elaborated techniques to allow returning to the previous -page, but not continuing to the next one or vice versa (in wxRadioboxPage) -\item This (wxRadioboxPage) page also shows how the page may process the {\tt -Cancel} button itself instead of relying on the wizard parent to do it. -\item Normally, the order of the pages in the wizard is known at compile-time, -but sometimes it depends on the user choices: wxCheckboxPage shows how to -dynamically decide which page to display next (see also -\helpref{wxWizardPage}{wxwizardpage}) -\end{itemize} - diff --git a/docs/latex/wx/tscroll.tex b/docs/latex/wx/tscroll.tex deleted file mode 100644 index eb383d1200..0000000000 --- a/docs/latex/wx/tscroll.tex +++ /dev/null @@ -1,90 +0,0 @@ -\section{Scrolling overview}\label{scrollingoverview} - -Classes: \helpref{wxWindow}{wxwindow}, \helpref{wxScrolledWindow}{wxscrolledwindow}, \helpref{wxIcon}{wxicon}, \helpref{wxScrollBar}{wxscrollbar}. - -Scrollbars come in various guises in wxWidgets. All windows have the potential -to show a vertical scrollbar and/or a horizontal scrollbar: it is a basic capability of a window. -However, in practice, not all windows do make use of scrollbars, such as a single-line wxTextCtrl. - -Because any class derived from \helpref{wxWindow}{wxwindow} may have scrollbars, -there are functions to manipulate the scrollbars and event handlers to intercept -scroll events. But just because a window generates a scroll event, doesn't mean -that the window necessarily handles it and physically scrolls the window. The base class -wxWindow in fact doesn't have any default functionality to handle scroll events. -If you created a wxWindow object with scrollbars, and then clicked on the scrollbars, nothing -at all would happen. This is deliberate, because the {\it interpretation} of scroll -events varies from one window class to another. - -\helpref{wxScrolledWindow}{wxscrolledwindow} (formerly wxCanvas) is an example of a window that -adds functionality to make scrolling really work. It assumes that scrolling happens in -consistent units, not different-sized jumps, and that page size is represented -by the visible portion of the window. It is suited to drawing applications, but perhaps -not so suitable for a sophisticated editor in which the amount scrolled may vary according -to the size of text on a given line. For this, you would derive from wxWindow and -implement scrolling yourself. \helpref{wxGrid}{wxgrid} is an example of a class -that implements its own scrolling, largely because columns and rows can vary in size. - -\wxheading{The scrollbar model} - -The function \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} gives a clue about -the way a scrollbar is modeled. This function takes the following arguments: - -\twocolwidtha{5cm}% -\begin{twocollist} -\twocolitem{orientation}{Which scrollbar: wxVERTICAL or wxHORIZONTAL.} -\twocolitem{position}{The position of the scrollbar in scroll units.} -\twocolitem{visible}{The size of the visible portion of the scrollbar, in scroll units.} -\twocolitem{range}{The maximum position of the scrollbar.} -\twocolitem{refresh}{Whether the scrollbar should be repainted.} -\end{twocollist}% - -{\it orientation} determines whether we're talking about -the built-in horizontal or vertical scrollbar. - -{\it position} is simply the position of the `thumb' (the bit you drag to scroll around). -It is given in scroll units, and so is relative to the total range of the scrollbar. - -{\it visible} gives the number of scroll units that represents the portion of the -window currently visible. Normally, a scrollbar is capable of indicating this visually -by showing a different length of thumb. - -{\it range} is the maximum value of the scrollbar, where zero is the start -position. You choose the units that suit you, -so if you wanted to display text that has 100 lines, you would set this to 100. -Note that this doesn't have to correspond to the number of pixels scrolled - it is -up to you how you actually show the contents of the window. - -{\it refresh} just indicates whether the scrollbar should be repainted immediately or not. - -\wxheading{An example} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - SetScrollbar(wxVERTICAL, 0, 16, 50); -\end{verbatim} -} - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from your \helpref{wxSizeEvent}{wxsizeevent} handler function. - -%\normalbox{{\bf For Windows programmers:} note that scrollbar range in wxWidgets has a different meaning -%from that in Windows. In native Windows scrollbar calls, range is the number of positions that the scrollbar -%can physically scroll through - in our example above, it would be 34. But it is easier -%to think in terms of the number of units that the whole scrollbar represents - the virtual -%window size - which is why wxWidgets does it differently.} - - diff --git a/docs/latex/wx/tsizer.tex b/docs/latex/wx/tsizer.tex deleted file mode 100644 index 5218b51ef8..0000000000 --- a/docs/latex/wx/tsizer.tex +++ /dev/null @@ -1,352 +0,0 @@ -\section{Sizer overview}\label{sizeroverview} - -Classes: \helpref{wxSizer}{wxsizer}, \helpref{wxGridSizer}{wxgridsizer}, -\helpref{wxFlexGridSizer}{wxflexgridsizer}, \helpref{wxBoxSizer}{wxboxsizer}, -\helpref{wxStaticBoxSizer}{wxstaticboxsizer}, -\helpref{CreateButtonSizer}{createbuttonsizer} - -Sizers, as represented by the wxSizer class and its descendants in -the wxWidgets class hierarchy, have become the method of choice to -define the layout of controls in dialogs in wxWidgets because of -their ability to create visually appealing dialogs independent of the -platform, taking into account the differences in size and style of -the individual controls. Unlike the original wxWidgets Dialog Editor, -editors such as wxDesigner, DialogBlocks, XRCed and wxWorkshop create dialogs based exclusively on sizers, -practically forcing the user to create platform independent layouts without compromises. - -The next section describes and shows what can be done with sizers. -The following sections briefly describe how to program with individual sizer classes. - -For information about the new wxWidgets resource system, which can describe -sizer-based dialogs, see the \helpref{XML-based resource system overview}{xrcoverview}. - -\subsection{The idea behind sizers}\label{ideabehindsizers} - -The layout algorithm used by sizers in wxWidgets is closely related to layout -systems in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is -based upon the idea of individual subwindows reporting their minimal required -size and their ability to get stretched if the size of the parent window has changed. -This will most often mean that the programmer does not set the start-up size of -a dialog, the dialog will rather be assigned a sizer and this sizer -will be queried about the recommended size. This sizer in turn will query its -children (which can be normal windows, empty space or other sizers) so that -a hierarchy of sizers can be constructed. Note that wxSizer does not derive from wxWindow -and thus does not interfere with tab ordering and requires very few resources compared -to a real window on screen. - -What makes sizers so well fitted for use in wxWidgets is the fact that every control -reports its own minimal size and the algorithm can handle differences in font sizes -or different window (dialog item) sizes on different platforms without problems. For example, if -the standard font as well as the overall design of Linux/GTK widgets requires more space than -on Windows, the initial dialog size will automatically be bigger on Linux/GTK than on Windows. - -There are currently five different kinds of sizers available in wxWidgets. Each represents -either a certain way to lay out dialog items in a dialog or it fulfills a special task -such as wrapping a static box around a dialog item (or another sizer). These sizers will -be discussed one by one in the text below. For more detailed information on how to use sizers -programmatically, please refer to the section \helpref{Programming with Sizers}{boxsizerprogramming}. - -\subsubsection{Common features}\label{sizerscommonfeatures} - -All sizers are containers, that is, they are used to lay out one dialog item (or several -dialog items), which they contain. Such items are sometimes referred to as the children -of the sizer. Independent of how the individual sizers lay out their children, all children -have certain features in common: - -{\bf A minimal size:} This minimal size is usually identical to -the initial size of the controls and may either be set explicitly in the wxSize field -of the control constructor or may be calculated by wxWidgets, typically by setting -the height and/or the width of the item to -1. Note that only some controls can -calculate their size (such as a checkbox) whereas others (such as a listbox) -don't have any natural width or height and thus require an explicit size. Some controls -can calculate their height, but not their width (e.g. a single line text control): - -\newcommand{\myimage}[1]{\mbox{\image{0cm;0cm}{#1}}} - -\begin{center} -\myimage{sizer03.eps}\gifsep -\myimage{sizer04.eps}\gifsep -\myimage{sizer05.eps} -\end{center} - -{\bf A border:} The border is just empty space and is used to separate dialog items -in a dialog. This border can either be all around, or at any combination of sides -such as only above and below the control. The thickness of this border must be set -explicitly, typically 5 points. The following samples show dialogs with only one -dialog item (a button) and a border of 0, 5, and 10 pixels around the button: - -\begin{center} -\myimage{sizer00.eps}\gifsep -\myimage{sizer01.eps}\gifsep -\myimage{sizer02.eps} -\end{center} - -{\bf An alignment:} Often, a dialog item is given more space than its minimal size -plus its border. Depending on what flags are used for the respective dialog -item, the dialog item can be made to fill out the available space entirely, i.e. -it will grow to a size larger than the minimal size, or it will be moved to either -the centre of the available space or to either side of the space. The following -sample shows a listbox and three buttons in a horizontal box sizer; one button -is centred, one is aligned at the top, one is aligned at the bottom: - -\begin{center} -\myimage{sizer06.eps} -\end{center} - -{\bf A stretch factor:} If a sizer contains more than one child and it is offered -more space than its children and their borders need, the question arises how to -distribute the surplus space among the children. For this purpose, a stretch -factor may be assigned to each child, where the default value of 0 indicates that the child -will not get more space than its requested minimum size. A value of more than zero -is interpreted in relation to the sum of all stretch factors in the children -of the respective sizer, i.e. if two children get a stretch factor of 1, they will -get half the extra space each {\it independent of whether one control has a minimal -sizer inferior to the other or not}. The following sample shows a dialog with -three buttons, the first one has a stretch factor of 1 and thus gets stretched, -whereas the other two buttons have a stretch factor of zero and keep their -initial width: - -\begin{center} -\myimage{sizer07.eps} -\end{center} - -Within wxDesigner, this stretch factor gets set from the {\it Option} menu. - -\subsubsection{Hiding controls using sizers}\label{sizershiding} - -You can hide controls contained in sizers the same way you would hide any control, -using the \helpref{wxWindow::Show}{wxwindowshow} method. - -However, wxSizer also offers a separate method which can tell the sizer not to -consider that control in its size calculations. To hide a window using the sizer, -call \helpref{wxSizer::Show}{wxsizershow}. You must then call Layout on the sizer -to force an update. - -This is useful when hiding parts of the interface, since you can avoid removing -the controls from the sizer and having to add them back later. - -Note: This is supported only by wxBoxSizer and wxFlexGridSizer. - -\wxheading{wxBoxSizer} - -\helpref{wxBoxSizer}{wxboxsizer} can lay out its children either vertically -or horizontally, depending on what flag is being used in its constructor. -When using a vertical sizer, each child can be centered, aligned to the -right or aligned to the left. Correspondingly, when using a horizontal -sizer, each child can be centered, aligned at the bottom or aligned at -the top. The stretch factor described in the last paragraph is used -for the main orientation, i.e. when using a horizontal box sizer, the -stretch factor determines how much the child can be stretched horizontally. -The following sample shows the same dialog as in the last sample, -only the box sizer is a vertical box sizer now: - -\begin{center} -\myimage{sizer08.eps} -\end{center} - -\wxheading{wxStaticBoxSizer} - -\helpref{wxStaticBoxSixer}{wxstaticboxsizer} is the same as a wxBoxSizer, but surrounded by a -static box. Here is a sample: - -\begin{center} -\myimage{sizer09.eps} -\end{center} - -\wxheading{wxGridSizer} - -\helpref{wxGridSizer}{wxgridsizer} is a two-dimensional sizer. All children are given the -same size, which is the minimal size required by the biggest child, in -this case the text control in the left bottom border. Either the number -of columns or the number or rows is fixed and the grid sizer will grow -in the respectively other orientation if new children are added: - -\begin{center} -\myimage{sizer10.eps} -\end{center} - -For programming information, see \helpref{wxGridSizer}{wxgridsizer}. - -\wxheading{wxFlexGridSizer} - -Another two-dimensional sizer derived from -wxGridSizer. The width of each column and the height of each row -are calculated individually according to the minimal requirements -from the respectively biggest child. Additionally, columns and -rows can be declared to be stretchable if the sizer is assigned -a size different from the one it requested. The following sample shows -the same dialog as the one above, but using a flex grid sizer: - -\begin{center} -\myimage{sizer11.eps} -\end{center} - -\subsection{Programming with wxBoxSizer}\label{boxsizerprogramming} - -The basic idea behind a \helpref{wxBoxSizer}{wxboxsizer} is that windows will most often be laid out in rather -simple basic geometry, typically in a row or a column or several hierarchies of either. - -As an example, we will construct a dialog that will contain a text field at the top and -two buttons at the bottom. This can be seen as a top-hierarchy column with the text at -the top and buttons at the bottom and a low-hierarchy row with an OK button to the left -and a Cancel button to the right. In many cases (particularly dialogs under Unix and -normal frames) the main window will be resizable by the user and this change of size -will have to get propagated to its children. In our case, we want the text area to grow -with the dialog, whereas the button shall have a fixed size. In addition, there will be -a thin border around all controls to make the dialog look nice and - to make matter worse - -the buttons shall be centred as the width of the dialog changes. - -It is the unique feature of a box sizer, that it can grow in both directions (height and -width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly} -among its children. In our example case, the vertical sizer is supposed to propagate all its -height changes to only the text area, not to the button area. This is determined by the {\it proportion} parameter -when adding a window (or another sizer) to a sizer. It is interpreted -as a weight factor, i.e. it can be zero, indicating that the window may not be resized -at all, or above zero. If several windows have a value above zero, the value is interpreted -relative to the sum of all weight factors of the sizer, so when adding two windows with -a value of 1, they will both get resized equally much and each half as much as the sizer -owning them. Then what do we do when a column sizer changes its width? This behaviour is -controlled by {\it flags} (the second parameter of the Add() function): Zero or no flag -indicates that the window will preserve it is original size, wxGROW flag (same as wxEXPAND) -forces the window to grow with the sizer, and wxSHAPED flag tells the window to change it is -size proportionally, preserving original aspect ratio. When wxGROW flag is not used, -the item can be aligned within available space. wxALIGN\_LEFT, wxALIGN\_TOP, wxALIGN\_RIGHT, -wxALIGN\_BOTTOM, wxALIGN\_CENTER\_HORIZONTAL and wxALIGN\_CENTER\_VERTICAL do what they say. -wxALIGN\_CENTRE (same as wxALIGN\_CENTER) is defined as (wxALIGN\_CENTER\_HORIZONTAL | -wxALIGN\_CENTER\_VERTICAL). Default alignment is wxALIGN\_LEFT | wxALIGN\_TOP. - -As mentioned above, any window belonging to a sizer may have a border, and it can be specified -which of the four sides may have this border, using the wxTOP, wxLEFT, wxRIGHT and wxBOTTOM -constants or wxALL for all directions (and you may also use wxNORTH, wxWEST etc instead). These -flags can be used in combination with the alignment flags above as the second parameter of the -Add() method using the binary or operator |. The sizer of the border also must be made known, -and it is the third parameter in the Add() method. This means, that the entire behaviour of -a sizer and its children can be controlled by the three parameters of the Add() method. - -\begin{verbatim} -// we want to get a dialog that is stretchable because it -// has a text ctrl at the top and two buttons at the bottom - -MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) - : wxDialog(parent, id, title, wxDefaultPosition, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) -{ - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // create text ctrl with minimal size 100x60 - topsizer->Add( - new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE), - 1, // make vertically stretchable - wxEXPAND | // make horizontally stretchable - wxALL, // and make border all around - 10 ); // set border width to 10 - - - wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL ); - button_sizer->Add( - new wxButton( this, wxID_OK, "OK" ), - 0, // make horizontally unstretchable - wxALL, // make border all around (implicit top alignment) - 10 ); // set border width to 10 - button_sizer->Add( - new wxButton( this, wxID_CANCEL, "Cancel" ), - 0, // make horizontally unstretchable - wxALL, // make border all around (implicit top alignment) - 10 ); // set border width to 10 - - topsizer->Add( - button_sizer, - 0, // make vertically unstretchable - wxALIGN_CENTER ); // no border and centre horizontally - - SetSizerAndFit(topsizer); // use the sizer for layout and size window - // accordingly and prevent it from being resized - // to smaller size -} -\end{verbatim} - -Note that the new way of specifying flags to wxSizer is via \helpref{wxSizerFlags}{wxsizerflags}. This class greatly eases the burden of passing flags to a wxSizer. - -Here's how you'd do the previous example with wxSizerFlags: - -\begin{verbatim} -// we want to get a dialog that is stretchable because it -// has a text ctrl at the top and two buttons at the bottom - -MyDialog::MyDialog(wxFrame *parent, wxWindowID id, const wxString &title ) - : wxDialog(parent, id, title, wxDefaultPosition, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) -{ - wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL ); - - // create text ctrl with minimal size 100x60 that is horizontally and - // vertically stretchable with a border width of 10 - topsizer->Add( - new wxTextCtrl( this, -1, "My text.", wxDefaultPosition, wxSize(100,60), wxTE_MULTILINE), - wxSizerFlags(1).Align().Expand().Border(wxALL, 10)); - - wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL ); - - //create two buttons that are horizontally unstretchable, - // with an all-around border with a width of 10 and implicit top alignment - button_sizer->Add( - new wxButton( this, wxID_OK, "OK" ), - wxSizerFlags(0).Align().Border(wxALL, 10)); - - button_sizer->Add( - new wxButton( this, wxID_CANCEL, "Cancel" ), - wxSizerFlags(0).Align().Border(wxALL, 10)); - - //create a sizer with no border and centered horizontally - topsizer->Add( - button_sizer, - wxSizerFlags(0).Center() ); - - SetSizerAndFit(topsizer); // use the sizer for layout and set size and hints -} -\end{verbatim} - - -\subsection{Programming with wxGridSizer}\label{gridsizerprogramming} - -\helpref{wxGridSizer}{wxgridsizer} is a sizer which lays out its children in a two-dimensional -table with all table fields having the same size, -i.e. the width of each field is the width of the widest child, -the height of each field is the height of the tallest child. - -\subsection{Programming with wxFlexGridSizer}\label{flexgridsizerprogramming} - -\helpref{wxFlexGridSizer}{wxflexgridsizer} is a sizer which lays out its children in a two-dimensional -table with all table fields in one row having the same -height and all fields in one column having the same width, but all -rows or all columns are not necessarily the same height or width as in -the \helpref{wxGridSizer}{wxgridsizer}. - -\subsection{Programming with wxStaticBoxSizer}\label{staticboxsizerprogramming} - -\helpref{wxStaticBoxSizer}{wxstaticboxsizer} is a sizer derived from wxBoxSizer but adds a static -box around the sizer. Note that this static box has to be created -separately. - -\subsection{CreateButtonSizer}\label{createbuttonsizer} - -As a convenience, CreateButtonSizer ( long flags ) can be used to create a standard button sizer -in which standard buttons are displayed. The following flags can be passed to this function: - - -\begin{verbatim} - wxYES_NO // Add Yes/No subpanel - wxYES // return wxID_YES - wxNO // return wxID_NO - wxNO_DEFAULT // make the wxNO button the default, otherwise wxYES or wxOK button will be default - - wxOK // return wxID_OK - wxCANCEL // return wxID_CANCEL - wxHELP // return wxID_HELP - - wxFORWARD // return wxID_FORWARD - wxBACKWARD // return wxID_BACKWARD - wxSETUP // return wxID_SETUP - wxMORE // return wxID_MORE - -\end{verbatim} diff --git a/docs/latex/wx/tsplittr.tex b/docs/latex/wx/tsplittr.tex deleted file mode 100644 index 963f3e392c..0000000000 --- a/docs/latex/wx/tsplittr.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{wxSplitterWindow overview}\label{wxsplitterwindowoverview} - -Classes: \helpref{wxSplitterWindow}{wxsplitterwindow} - -The following screenshot shows the appearance of a splitter window with a horizontal split. - -$$\image{8cm;0cm}{splitter.eps}$$ - -The style wxSP\_3D has been used to show a 3D border and 3D sash. - -\subsection{Example}\label{wxsplitterwindowexample} - -The following fragment shows how to create a splitter window, creating two -subwindows and hiding one of them. - -{\small -\begin{verbatim} - splitter = new wxSplitterWindow(this, -1, wxPoint(0, 0), wxSize(400, 400), wxSP_3D); - - leftWindow = new MyWindow(splitter); - leftWindow->SetScrollbars(20, 20, 50, 50); - - rightWindow = new MyWindow(splitter); - rightWindow->SetScrollbars(20, 20, 50, 50); - rightWindow->Show(false); - - splitter->Initialize(leftWindow); - - // Set this to prevent unsplitting -// splitter->SetMinimumPaneSize(20); -\end{verbatim} -} - -The next fragment shows how the splitter window can be manipulated after creation. - -{\small -\begin{verbatim} - void MyFrame::OnSplitVertical(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - leftWindow->Show(true); - rightWindow->Show(true); - splitter->SplitVertically( leftWindow, rightWindow ); - } - - void MyFrame::OnSplitHorizontal(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - leftWindow->Show(true); - rightWindow->Show(true); - splitter->SplitHorizontally( leftWindow, rightWindow ); - } - - void MyFrame::OnUnsplit(wxCommandEvent& event) - { - if ( splitter->IsSplit() ) - splitter->Unsplit(); - } -\end{verbatim} -} - diff --git a/docs/latex/wx/tstream.tex b/docs/latex/wx/tstream.tex deleted file mode 100644 index 7b456062a2..0000000000 --- a/docs/latex/wx/tstream.tex +++ /dev/null @@ -1,87 +0,0 @@ -\section{wxStreams overview}\label{wxstreamoverview} - -Classes: \helpref{wxStreamBase}{wxstreambase}, - \helpref{wxStreamBuffer}{wxstreambuffer}, \helpref{wxInputStream}{wxinputstream}, - \helpref{wxOutputStream}{wxoutputstream}, - \helpref{wxFilterInputStream}{wxfilterinputstream}, - \helpref{wxFilterOutputStream}{wxfilteroutputstream} - -\wxheading{Purpose of wxStream} - -Standard C++ streams can cause problems on several platforms: -they work quite well in most cases, but in the multi-threaded case, for example, -they have many problems. Some Borland compilers refuse to work at all -with them and using iostreams on Linux makes writing programs that are -binary compatible across different Linux distributions, impossible. - -Therefore, wxStreams have been added to wxWidgets so that applications can -reliably compile and run on all supported platforms without dependence on a -particular release of libg++. - -wxStreams is divided in two main parts: - -\begin{enumerate}\itemsep=0pt -\item the core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream, -wxFilterIn/OutputStream -\item the "IO" classes: wxSocketIn/OutputStream, wxDataIn/OutputStream, wxFileIn/OutputStream, ... -\end{enumerate} - -wxStreamBase is the base definition of a stream. It defines, for example, -the API of OnSysRead, OnSysWrite, OnSysSeek and OnSysTell. These functions -are really implemented by the "IO" classes. -wxInputStream and wxOutputStream inherit from it. - -wxStreamBuffer is a cache manager for wxStreamBase: it manages a stream buffer -linked to a stream. One stream can have multiple stream buffers but one stream -have always one autoinitialized stream buffer. - -wxInputStream is the base class for read-only streams. It implements Read, -SeekI (I for Input), and all read or IO generic related functions. -wxOutputStream does the same thing but it is for write-only streams. - -wxFilterIn/OutputStream is the base class definition for stream filtering. -Stream filtering means a stream which does no syscall but filters data -which are passed to it and then pass them to another stream. -For example, wxZLibInputStream is an inline stream decompressor. - -The "IO" classes implements the specific parts of the stream. This could be -nothing in the case of wxMemoryIn/OutputStream which bases itself on -wxStreamBuffer. This could also be a simple link to the a true syscall -(for example read(...), write(...)). - -\wxheading{Generic usage: an example} - -Usage is simple. We can take the example of wxFileInputStream and here is some sample -code: - -\begin{verbatim} - ... - // The constructor initializes the stream buffer and open the file descriptor - // associated to the name of the file. - wxFileInputStream in_stream("the_file_to_be_read"); - - // Ok, read some bytes ... nb_datas is expressed in bytes. - in_stream.Read(data, nb_datas); - if (in_stream.LastError() != wxSTREAM_NOERROR) { - // Oh oh, something bad happens. - // For a complete list, look into the documentation at wxStreamBase. - } - - // You can also inline all like this. - if (in_stream.Read(data, nb_datas).LastError() != wxSTREAM_NOERROR) { - // Do something. - } - - // You can also get the last number of bytes REALLY put into the buffer. - size_t really_read = in_stream.LastRead(); - - // Ok, moves to the beginning of the stream. SeekI returns the last position - // in the stream counted from the beginning. - off_t old_position = in_stream.SeekI(0, wxFromBeginning); - - // What is my current position ? - off_t position = in_stream.TellI(); - - // wxFileInputStream will close the file descriptor on destruction. -\end{verbatim} - diff --git a/docs/latex/wx/tstring.tex b/docs/latex/wx/tstring.tex deleted file mode 100644 index fa25faee5e..0000000000 --- a/docs/latex/wx/tstring.tex +++ /dev/null @@ -1,259 +0,0 @@ -\section{wxString overview}\label{wxstringoverview} - -Classes: \helpref{wxString}{wxstring}, \helpref{wxArrayString}{wxarraystring}, \helpref{wxStringTokenizer}{wxstringtokenizer} - -\subsection{Introduction}\label{introductiontowxstring} - -wxString is a class which represents a character string of arbitrary length (limited by -{\it MAX\_INT} which is usually 2147483647 on 32 bit machines) and containing -arbitrary characters. The ASCII NUL character is allowed, but be aware that -in the current string implementation some methods might not work correctly -in this case. - -wxString works with both ASCII (traditional, 7 or 8 bit, characters) as well as -Unicode (wide characters) strings. - -This class has all the standard operations you can expect to find in a string class: -dynamic memory management (string extends to accommodate new characters), -construction from other strings, C strings and characters, assignment operators, -access to individual characters, string concatenation and comparison, substring -extraction, case conversion, trimming and padding (with spaces), searching and -replacing and both C-like \helpref{Printf()}{wxstringprintf} and stream-like -insertion functions as well as much more - see \helpref{wxString}{wxstring} -for a list of all functions. - -\subsection{Comparison of wxString to other string classes}\label{otherstringclasses} - -The advantages of using a special string class instead of working directly with -C strings are so obvious that there is a huge number of such classes available. -The most important advantage is the need to always -remember to allocate/free memory for C strings; working with fixed size buffers almost -inevitably leads to buffer overflows. At last, C++ has a standard string class -(std::string). So why the need for wxString? - -There are several advantages: - -\begin{enumerate}\itemsep=0pt -\item {\bf Efficiency} This class was made to be as efficient as possible: both -in terms of size (each wxString objects takes exactly the same space as a {\it -char *} pointer, sing \helpref{reference counting}{wxstringrefcount}) and speed. -It also provides performance \helpref{statistics gathering code}{wxstringtuning} -which may be enabled to fine tune the memory allocation strategy for your -particular application - and the gain might be quite big. -\item {\bf Compatibility} This class tries to combine almost full compatibility -with the old wxWidgets 1.xx wxString class, some reminiscence to MFC CString -class and 90\% of the functionality of std::string class. -\item {\bf Rich set of functions} Some of the functions present in wxString are -very useful but don't exist in most of other string classes: for example, -\helpref{AfterFirst}{wxstringafterfirst}, -\helpref{BeforeLast}{wxstringbeforelast}, \helpref{operator<<}{wxstringoperatorout} -or \helpref{Printf}{wxstringprintf}. Of course, all the standard string -operations are supported as well. -\item {\bf Unicode} wxString is Unicode friendly: it allows to easily convert -to and from ANSI and Unicode strings in any build mode (see the -\helpref{Unicode overview}{unicode} for more details) and maps to either -{\tt string} or {\tt wstring} transparently depending on the current mode. -\item {\bf Used by wxWidgets} And, of course, this class is used everywhere -inside wxWidgets so there is no performance loss which would result from -conversions of objects of any other string class (including std::string) to -wxString internally by wxWidgets. -\end{enumerate} - -However, there are several problems as well. The most important one is probably -that there are often several functions to do exactly the same thing: for -example, to get the length of the string either one of -length(), \helpref{Len()}{wxstringlen} or -\helpref{Length()}{wxstringlength} may be used. The first function, as almost -all the other functions in lowercase, is std::string compatible. The second one -is "native" wxString version and the last one is wxWidgets 1.xx way. So the -question is: which one is better to use? And the answer is that: - -{\bf The usage of std::string compatible functions is strongly advised!} It will -both make your code more familiar to other C++ programmers (who are supposed to -have knowledge of std::string but not of wxString), let you reuse the same code -in both wxWidgets and other programs (by just typedefing wxString as std::string -when used outside wxWidgets) and by staying compatible with future versions of -wxWidgets which will probably start using std::string sooner or later too. - -In the situations where there is no corresponding std::string function, please -try to use the new wxString methods and not the old wxWidgets 1.xx variants -which are deprecated and may disappear in future versions. - -\subsection{Some advice about using wxString}\label{wxstringadvices} - -Probably the main trap with using this class is the implicit conversion operator to -{\it const char *}. It is advised that you use \helpref{c\_str()}{wxstringcstr} -instead to clearly indicate when the conversion is done. Specifically, the -danger of this implicit conversion may be seen in the following code fragment: - -\begin{verbatim} -// this function converts the input string to uppercase, output it to the screen -// and returns the result -const char *SayHELLO(const wxString& input) -{ - wxString output = input.Upper(); - - printf("Hello, %s!\n", output); - - return output; -} -\end{verbatim} - -There are two nasty bugs in these three lines. First of them is in the call to the -{\it printf()} function. Although the implicit conversion to C strings is applied -automatically by the compiler in the case of - -\begin{verbatim} - puts(output); -\end{verbatim} - -because the argument of {\it puts()} is known to be of the type {\it const char *}, -this is {\bf not} done for {\it printf()} which is a function with variable -number of arguments (and whose arguments are of unknown types). So this call may -do anything at all (including displaying the correct string on screen), although -the most likely result is a program crash. The solution is to use -\helpref{c\_str()}{wxstringcstr}: just replace this line with - -\begin{verbatim} - printf("Hello, %s!\n", output.c_str()); -\end{verbatim} - -The second bug is that returning {\it output} doesn't work. The implicit cast is -used again, so the code compiles, but as it returns a pointer to a buffer -belonging to a local variable which is deleted as soon as the function exits, -its contents is totally arbitrary. The solution to this problem is also easy: -just make the function return wxString instead of a C string. - -This leads us to the following general advice: all functions taking string -arguments should take {\it const wxString\&} (this makes assignment to the -strings inside the function faster because of -\helpref{reference counting}{wxstringrefcount}) and all functions returning -strings should return {\it wxString} - this makes it safe to return local -variables. - -\subsection{Other string related functions and classes}\label{relatedtostring} - -As most programs use character strings, the standard C library provides quite -a few functions to work with them. Unfortunately, some of them have rather -counter-intuitive behaviour (like strncpy() which doesn't always terminate the -resulting string with a NULL) and are in general not very safe (passing NULL -to them will probably lead to program crash). Moreover, some very useful -functions are not standard at all. This is why in addition to all wxString -functions, there are also a few global string functions which try to correct -these problems: \helpref{wxIsEmpty()}{wxisempty} verifies whether the string -is empty (returning {\tt true} for {\tt NULL} pointers), -\helpref{wxStrlen()}{wxstrlen} also handles NULLs correctly and returns 0 for -them and \helpref{wxStricmp()}{wxstricmp} is just a platform-independent -version of case-insensitive string comparison function known either as -stricmp() or strcasecmp() on different platforms. - -The {\tt <wx/string.h>} header also defines \helpref{wxSnprintf}{wxsnprintf} -and \helpref{wxVsnprintf}{wxvsnprintf} functions which should be used instead -of the inherently dangerous standard {\tt sprintf()} and which use {\tt -snprintf()} instead which does buffer size checks whenever possible. Of -course, you may also use \helpref{wxString::Printf}{wxstringprintf} which is -also safe. - -There is another class which might be useful when working with wxString: -\helpref{wxStringTokenizer}{wxstringtokenizer}. It is helpful when a string must -be broken into tokens and replaces the standard C library {\it -strtok()} function. - -And the very last string-related class is \helpref{wxArrayString}{wxarraystring}: it -is just a version of the "template" dynamic array class which is specialized to work -with strings. Please note that this class is specially optimized (using its -knowledge of the internal structure of wxString) for storing strings and so it is -vastly better from a performance point of view than a wxObjectArray of wxStrings. - -\subsection{Reference counting and why you shouldn't care about it}\label{wxstringrefcount} - -All considerations for wxObject-derived \helpref{reference counted}{trefcount} objects -are valid also for wxString, even if it does not derive from wxObject. - -Probably the unique case when you might want to think about reference -counting is when a string character is taken from a string which is not a -constant (or a constant reference). In this case, due to C++ rules, the -"read-only" {\it operator[]} (which is the same as -\helpref{GetChar()}{wxstringgetchar}) cannot be chosen and the "read/write" -{\it operator[]} (the same as -\helpref{GetWritableChar()}{wxstringgetwritablechar}) is used instead. As the -call to this operator may modify the string, its data is unshared (COW is done) -and so if the string was really shared there is some performance loss (both in -terms of speed and memory consumption). In the rare cases when this may be -important, you might prefer using \helpref{GetChar()}{wxstringgetchar} instead -of the array subscript operator for this reasons. Please note that -\helpref{at()}{wxstringat} method has the same problem as the subscript operator in -this situation and so using it is not really better. Also note that if all -string arguments to your functions are passed as {\it const wxString\&} (see the -section \helpref{Some advice}{wxstringadvices}) this situation will almost -never arise because for constant references the correct operator is called automatically. - -\subsection{Tuning wxString for your application}\label{wxstringtuning} - -\normalbox{{\bf Note:} this section is strictly about performance issues and is -absolutely not necessary to read for using wxString class. Please skip it unless -you feel familiar with profilers and relative tools. If you do read it, please -also read the preceding section about -\helpref{reference counting}{wxstringrefcount}.} - -For the performance reasons wxString doesn't allocate exactly the amount of -memory needed for each string. Instead, it adds a small amount of space to each -allocated block which allows it to not reallocate memory (a relatively -expensive operation) too often as when, for example, a string is constructed by -subsequently adding one character at a time to it, as for example in: - -\begin{verbatim} -// delete all vowels from the string -wxString DeleteAllVowels(const wxString& original) -{ - wxString result; - - size_t len = original.length(); - for ( size_t n = 0; n < len; n++ ) - { - if ( strchr("aeuio", tolower(original[n])) == NULL ) - result += original[n]; - } - - return result; -} -\end{verbatim} - -This is quite a common situation and not allocating extra memory at all would -lead to very bad performance in this case because there would be as many memory -(re)allocations as there are consonants in the original string. Allocating too -much extra memory would help to improve the speed in this situation, but due to -a great number of wxString objects typically used in a program would also -increase the memory consumption too much. - -The very best solution in precisely this case would be to use -\helpref{Alloc()}{wxstringalloc} function to preallocate, for example, len bytes -from the beginning - this will lead to exactly one memory allocation being -performed (because the result is at most as long as the original string). - -However, using Alloc() is tedious and so wxString tries to do its best. The -default algorithm assumes that memory allocation is done in granularity of at -least 16 bytes (which is the case on almost all of wide-spread platforms) and so -nothing is lost if the amount of memory to allocate is rounded up to the next -multiple of 16. Like this, no memory is lost and 15 iterations from 16 in the -example above won't allocate memory but use the already allocated pool. - -The default approach is quite conservative. Allocating more memory may bring -important performance benefits for programs using (relatively) few very long -strings. The amount of memory allocated is configured by the setting of {\it -EXTRA\_ALLOC} in the file string.cpp during compilation (be sure to understand -why its default value is what it is before modifying it!). You may try setting -it to greater amount (say twice nLen) or to 0 (to see performance degradation -which will follow) and analyse the impact of it on your program. If you do it, -you will probably find it helpful to also define WXSTRING\_STATISTICS symbol -which tells the wxString class to collect performance statistics and to show -them on stderr on program termination. This will show you the average length of -strings your program manipulates, their average initial length and also the -percent of times when memory wasn't reallocated when string concatenation was -done but the already preallocated memory was used (this value should be about -98\% for the default allocation policy, if it is less than 90\% you should -really consider fine tuning wxString for your application). - -It goes without saying that a profiler should be used to measure the precise -difference the change to EXTRA\_ALLOC makes to your program. - diff --git a/docs/latex/wx/tstyles.tex b/docs/latex/wx/tstyles.tex deleted file mode 100644 index ed5632d674..0000000000 --- a/docs/latex/wx/tstyles.tex +++ /dev/null @@ -1,25 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tstyles.tex -%% Purpose: Window styles documenation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Window styles}\label{windowstyles} - -Window styles are used to specify alternative behaviour and appearances for windows, when they are -created. The symbols are defined in such a way that they can be combined in a `bit-list' using the -C++ {\it bitwise-or} operator. For example: - -\begin{verbatim} - wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER -\end{verbatim} - -For the window styles specific to each window class, please see the documentation -for the window. Most windows can use the generic styles listed for \helpref{wxWindow}{wxwindow} in -addition to their own styles. - diff --git a/docs/latex/wx/ttab.tex b/docs/latex/wx/ttab.tex deleted file mode 100644 index b3b4112c82..0000000000 --- a/docs/latex/wx/ttab.tex +++ /dev/null @@ -1,190 +0,0 @@ -\section{wxTab classes overview}\label{wxtaboverview} - -Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview}, - \helpref{wxTabbedPanel}{wxtabbedpanel}, \helpref{wxTabbedDialog}{wxtabbeddialog}, - \helpref{wxTabControl}{wxtabcontrol} - -The tab classes provides a way to display rows of tabs (like file divider tabs), which can be -used to switch between panels or other information. Tabs are most -commonly used in dialog boxes where the number of options is too great -to fit on one dialog. - -{\bf Please note} that the preferred class for programming tabbed windows is \helpref{wxNotebook}{wxnotebook}. -The old tab classes are retained for backward compatibility and also to implement -wxNotebook on platforms that don't have native tab controls. - -\wxheading{The appearance and behaviour of a wxTabbedDialog} - -The following screenshot shows the appearance of the sample tabbed dialog application. - -$$\image{8cm;0cm}{wxtab1.eps}$$ - -By clicking on the tabs, the user can display a different set of controls. In the example, -the Close and Help buttons remain constant. These two buttons are children of the main dialog box, -whereas the other controls are children of panels which are shown and hidden according to -which tab is active. - -A tabbed dialog may have several layers (rows) of tabs, each being -offset vertically and horizontally from the previous. Tabs work in -columns, in that when a tab is pressed, it swaps place with the tab on -the first row of the same column, in order to give the effect of -displaying that tab. All tabs must be of the same width. -This is a constraint of the implementation, but it also -means that the user will find it easier to find tabs since there are -distinct tab columns. On some tabbed dialog implementations, tabs jump around -seemingly randomly because tabs have different widths. -In this implementation, a tab can always be found on the same column. - -Tabs are always drawn along the top of the view area; the implementation does -not allow for vertical tabs or any other configuration. - -\wxheading{Using tabs} - -The tab classes provide facilities for switching between contexts by -means of `tabs', which look like file divider tabs. - -You must create both a {\it view} to handle the tabs, and a {\it window} to display the tabs -and related information. The wxTabbedDialog and wxTabbedPanel classes are provided for -convenience, but you could equally well construct your own window class and derived -tab view. - -If you wish to display a tabbed dialog - the most common use - you should follow these steps. - -\begin{enumerate}\itemsep=0pt -\item Create a new wxTabbedDialog class, and any buttons you wish always to be displayed -(regardless of which tab is active). -\item Create a new wxPanelTabView, passing the dialog as the first argument. -\item Set the view rectangle with \helpref{wxTabView::SetViewRect}{wxtabviewsetviewrect}, -to specify the area in which child panels will be -shown. The tabs will sit on top of this view rectangle. -\item Call \helpref{wxTabView::CalculateTabWidth}{wxtabviewcalculatetabwidth} to calculate -the width of the tabs based on the view area. This is optional if, for example, you have one row -of tabs which does not extend the full width of the view area. -\item Call \helpref{wxTabView::AddTab}{wxtabviewaddtab} for each of the tabs you wish to create, passing -a unique identifier and a tab label. -\item Construct a number of windows, one for each tab, and call \helpref{wxPanelTabView::AddTabWindow}{wxpaneltabviewaddtabwindow} for -each of these, passing a tab identifier and the window. -\item Set the tab selection. -\item Show the dialog. -\end{enumerate} - -Under Motif, you may also need to size the dialog just before setting the tab selection, for unknown reasons. - -Some constraints you need to be aware of: - -\begin{itemize}\itemsep=0pt -\item All tabs must be of the same width. -\item Omit the wxTAB\_STYLE\_COLOUR\_INTERIOR flag to ensure that the dialog background -and tab backgrounds match. -\end{itemize} - -\subsection{Example} - -The following fragment is taken from the file test.cpp. - -{\small -\begin{verbatim} -void MyDialog::Init(void) -{ - int dialogWidth = 365; - int dialogHeight = 390; - - wxButton *okButton = new wxButton(this, wxID_OK, "Close", wxPoint(100, 330), wxSize(80, 25)); - wxButton *cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(185, 330), wxSize(80, 25)); - wxButton *HelpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(270, 330), wxSize(80, 25)); - okButton->SetDefault(); - - // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match - // with the panel background, and save a bit of time. - wxPanelTabView *view = new wxPanelTabView(this, wxTAB_STYLE_DRAW_BOX); - - wxRectangle rect; - rect.x = 5; - rect.y = 70; - // Could calculate the view width from the tab width and spacing, - // as below, but let's assume we have a fixed view width. -// rect.width = view->GetTabWidth()*4 + 3*view->GetHorizontalTabSpacing(); - rect.width = 326; - rect.height = 250; - - view->SetViewRect(rect); - - // Calculate the tab width for 4 tabs, based on a view width of 326 and - // the current horizontal spacing. Adjust the view width to exactly fit - // the tabs. - view->CalculateTabWidth(4, true); - - if (!view->AddTab(TEST_TAB_CAT, wxString("Cat"))) - return; - - if (!view->AddTab(TEST_TAB_DOG, wxString("Dog"))) - return; - if (!view->AddTab(TEST_TAB_GUINEAPIG, wxString("Guinea Pig"))) - return; - if (!view->AddTab(TEST_TAB_GOAT, wxString("Goat"))) - return; - if (!view->AddTab(TEST_TAB_ANTEATER, wxString("Ant-eater"))) - return; - if (!view->AddTab(TEST_TAB_SHEEP, wxString("Sheep"))) - return; - if (!view->AddTab(TEST_TAB_COW, wxString("Cow"))) - return; - if (!view->AddTab(TEST_TAB_HORSE, wxString("Horse"))) - return; - if (!view->AddTab(TEST_TAB_PIG, wxString("Pig"))) - return; - if (!view->AddTab(TEST_TAB_OSTRICH, wxString("Ostrich"))) - return; - if (!view->AddTab(TEST_TAB_AARDVARK, wxString("Aardvark"))) - return; - if (!view->AddTab(TEST_TAB_HUMMINGBIRD,wxString("Hummingbird"))) - return; - - // Add some panels - wxPanel *panel1 = new wxPanel(this, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220), wxTAB_TRAVERSAL); - (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); - (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - - view->AddTabWindow(TEST_TAB_CAT, panel1); - - wxPanel *panel2 = new wxPanel(this, -1, wxPoint(rect.x + 20, rect.y + 10), wxSize(290, 220)); - - wxString animals[] = { "Fox", "Hare", "Rabbit", "Sabre-toothed tiger", "T Rex" }; - (void)new wxListBox(panel2, -1, wxPoint(5, 5), wxSize(170, 80), 5, animals); - - (void)new wxTextCtrl(panel2, -1, "Some notes about the animals in this house", wxPoint(5, 100), wxSize(170, 100)), - wxTE_MULTILINE; - - view->AddTabWindow(TEST_TAB_DOG, panel2); - - // Don't know why this is necessary under Motif... -#ifdef wx_motif - this->SetSize(dialogWidth, dialogHeight-20); -#endif - - view->SetTabSelection(TEST_TAB_CAT); - - this->Centre(wxBOTH); -} -\end{verbatim} -} - -\section{wxTabView overview}\label{wxtabviewoverview} - -Classes: \helpref{wxTabView}{wxtabview}, \helpref{wxPanelTabView}{wxpaneltabview} - -A wxTabView manages and draws a number of tabs. Because it is separate -from the tabbed window implementation, it can be reused in a number of contexts. -This library provides tabbed dialog and panel classes to use with the -wxPanelTabView class, but an application could derive other kinds of -view from wxTabView. - -For example, a help application might draw a representation of a book on -a window, with a row of tabs along the top. The new tab view class might -be called wxCanvasTabView, for example, with the wxBookCanvas posting -the OnEvent function to the wxCanvasTabView before processing further, -application-specific event processing. - -A window class designed to work with a view class must call the view's -OnEvent and Draw functions at appropriate times. - diff --git a/docs/latex/wx/tthreads.tex b/docs/latex/wx/tthreads.tex deleted file mode 100644 index 794dd72778..0000000000 --- a/docs/latex/wx/tthreads.tex +++ /dev/null @@ -1,53 +0,0 @@ -\section{Multithreading overview}\label{wxthreadoverview} - -Classes: \helpref{wxThread}{wxthread}, \helpref{wxMutex}{wxmutex}, -\helpref{wxCriticalSection}{wxcriticalsection}, -\helpref{wxCondition}{wxcondition} - -wxWidgets provides a complete set of classes encapsulating objects necessary in -multithreaded (MT) programs: the \helpref{thread}{wxthread} class itself and different -synchronization objects: \helpref{mutexes}{wxmutex} and -\helpref{critical sections}{wxcriticalsection} with -\helpref{conditions}{wxcondition}. The thread API in wxWidgets resembles to -POSIX1.c threads API (a.k.a. pthreads), although several functions have -different names and some features inspired by Win32 thread API are there as -well. - -These classes will hopefully make writing MT programs easier and they also -provide some extra error checking (compared to the native (be it Win32 or Posix) -thread API), however it is still a non-trivial undertaking especially for large -projects. Before starting an MT application (or starting to add MT features to -an existing one) it is worth asking oneself if there is no easier and safer way -to implement the same functionality. Of course, in some situations threads -really make sense (classical example is a server application which launches a -new thread for each new client), but in others it might be a very poor choice -(example: launching a separate thread when doing a long computation to show a -progress dialog). Other implementation choices are available: for the progress -dialog example it is far better to do the calculations in the -\helpref{idle handler}{wxidleevent} or even simply do everything at once -but call \helpref{wxWindow::Update()}{wxwindowupdate} periodically to update -the screen. - -If you do decide to use threads in your application, it is strongly recommended -that no more than one thread calls GUI functions. The thread sample shows that -it {\it is} possible for many different threads to call GUI functions at once -(all the threads created in the sample access GUI), but it is a very poor design -choice for anything except an example. The design which uses one GUI thread and -several worker threads which communicate with the main one using events is much -more robust and will undoubtedly save you countless problems (example: under -Win32 a thread can only access GDI objects such as pens, brushes, \&c created by -itself and not by the other threads). - -For communication between secondary threads and the main thread, you may use -\helpref{wxEvtHandler::AddPendingEvent}{wxevthandleraddpendingevent} -or its short version \helpref{wxPostEvent}{wxpostevent}. These functions -have a thread-safe implementation so that they can be used as they are for -sending events from one thread to another. However there is no built in method -to send messages to the worker threads and you will need to use the available -synchronization classes to implement the solution which suits your needs -yourself. In particular, please note that it is \emph{not} enough to derive -your class from \helpref{wxThread}{wxthread} and -\helpref{wxEvtHandler}{wxevthandler} to send messages to it: in fact, this does -\emph{not} work at all. - - diff --git a/docs/latex/wx/ttips.tex b/docs/latex/wx/ttips.tex deleted file mode 100644 index 5ccde7a4f9..0000000000 --- a/docs/latex/wx/ttips.tex +++ /dev/null @@ -1,69 +0,0 @@ -\section{wxTipProvider overview}\label{tipsoverview} - -Many "modern" Windows programs have a feature (some would say annoyance) of -presenting the user tips at program startup. While this is probably useless to -the advanced users of the program, the experience shows that the tips may be -quite helpful for the novices and so more and more programs now do this. - -For a wxWidgets programmer, implementing this feature is extremely easy. To -show a tip, it is enough to just call \helpref{wxShowTip}{wxshowtip} function -like this: - -\begin{verbatim} - if ( ...show tips at startup?... ) - { - wxTipProvider *tipProvider = wxCreateFileTipProvider("tips.txt", 0); - wxShowTip(windowParent, tipProvider); - delete tipProvider; - } -\end{verbatim} - -Of course, you need to get the text of the tips from somewhere - in the example -above, the text is supposed to be in the file tips.txt from where it is read by -the {\it tip provider}. The tip provider is just an object of a class deriving -from \helpref{wxTipProvider}{wxtipprovider}. It has to implement one pure -virtual function of the base class: \helpref{GetTip}{wxtipprovidergettip}. -In the case of the tip provider created by -\helpref{wxCreateFileTipProvider}{wxcreatefiletipprovider}, the tips are just -the lines of the text file. - -If you want to implement your own tip provider (for example, if you wish to -hardcode the tips inside your program), you just have to derive another class -from wxTipProvider and pass a pointer to the object of this class to wxShowTip -- then you don't need wxCreateFileTipProvider at all. - -You will probably want to save somewhere the index of the tip last -shown - so that the program doesn't always show the same tip on startup. As you -also need to remember whether to show tips or not (you shouldn't do it if the -user unchecked "Show tips on startup" checkbox in the dialog), you will -probably want to store both the index of the -last shown tip (as returned by -\helpref{wxTipProvider::GetCurrentTip}{wxtipprovidergetcurrenttip} and the flag -telling whether to show the tips at startup at all. - -In a tips.txt file, lines that begin with a \# character are considered comments -and are automatically skipped. Blank lines and lines only having spaces are also -skipped. - -You can easily add runtime-translation capacity by placing each line of the -tips.txt file inside the usual translation macro. For example, your tips.txt -file would look like this: - -\begin{verbatim} -_("This is my first tip") -_("This is my second tip") -\end{verbatim} - -Now add your tips.txt file into the list of files that gettext searches -for translatable strings. The tips will thus get included into your -generated .po file catalog and be translated at runtime along with the rest of -your application's translatable strings. -Note1: Each line in the tips.txt file needs to strictly begin with exactly the -3 characters of underscore-parenthesis-doublequote, and end with -doublequote-parenthesis, as shown above. -Note2: Remember to escape any doublequote characters within the tip string with -a backslash-doublequote. - -See the dialogs program in your samples folder for a working example inside a -program. - diff --git a/docs/latex/wx/ttoolbar.tex b/docs/latex/wx/ttoolbar.tex deleted file mode 100644 index 37d533b03d..0000000000 --- a/docs/latex/wx/ttoolbar.tex +++ /dev/null @@ -1,287 +0,0 @@ -\section{Toolbar overview}\label{wxtoolbaroverview} - -Classes: \helpref{wxToolBar}{wxtoolbar} - -The toolbar family of classes allows an application to use toolbars -in a variety of configurations and styles. - -The toolbar is a popular user interface component and contains a set of bitmap -buttons or toggles. A toolbar gives faster access to an application's facilities than -menus, which have to be popped up and selected rather laboriously. - -Instead of supplying one toolbar class with a number -of different implementations depending on platform, wxWidgets separates -out the classes. This is because there are a number of different toolbar -styles that you may wish to use simultaneously, and also, future -toolbar implementations will emerge which -cannot all be shoe-horned into the one class. - -For each platform, the symbol {\bf wxToolBar} is defined to be one of the -specific toolbar classes. - -The following is a summary of the toolbar classes and their differences. - -\begin{itemize}\itemsep=0pt -\item {\bf wxToolBarBase.} This is a base class with pure virtual functions, -and should not be used directly. -\item {\bf wxToolBarSimple.} A simple toolbar class written entirely with generic wxWidgets -functionality. A simple 3D effect for buttons is possible, but it is not consistent -with the Windows look and feel. This toolbar can scroll, and you can have arbitrary -numbers of rows and columns. -\item {\bf wxToolBarMSW.} This class implements an old-style Windows toolbar, only on -Windows. There are small, three-dimensional buttons, which do not (currently) reflect -the current Windows colour settings: the buttons are grey. This is the default wxToolBar -on 16-bit windows. -\item {\bf wxToolBar95.} Uses the native Windows 95 toolbar class. It dynamically adjusts its -background and button colours according to user colour settings. -CreateTools must be called after the tools have been added. -No absolute positioning is supported but you can specify the number -of rows, and add tool separators with {\bf AddSeparator}. -Tooltips are supported. {\bf OnRightClick} is not supported. This is the default wxToolBar -on Windows 95, Windows NT 4 and above. With the style wxTB\_FLAT, the flat toolbar -look is used, with a border that is highlighted when the cursor moves over the buttons. -\end{itemize} - -A toolbar might appear as a single row of images under -the menubar, or it might be in a separate frame layout in several rows -and columns. The class handles the layout of the images, unless explicit -positioning is requested. - -A tool is a bitmap which can either be a button (there is no `state', -it just generates an event when clicked) or it can be a toggle. If a -toggle, a second bitmap can be provided to depict the `on' state; if -the second bitmap is omitted, either the inverse of the first bitmap -will be used (for monochrome displays) or a thick border is drawn -around the bitmap (for colour displays where inverting will not have -the desired result). - -The Windows-specific toolbar classes expect 16-colour bitmaps that are 16 pixels wide and 15 pixels -high. If you want to use a different size, call {\bf SetToolBitmapSize}\rtfsp -as the demo shows, before adding tools to the button bar. Don't supply more than -one bitmap for each tool, because the toolbar generates all three images (normal, -depressed and checked) from the single bitmap you give it. - -\subsection{Using the toolbar library}\label{usingtoolbarlibrary} - -Include {\tt "wx/toolbar.h"}, or if using a class directly, one of: - -\begin{itemize}\itemsep=0pt -\item {\tt "wx/msw/tbarmsw.h} for wxToolBarMSW -\item {\tt "wx/msw/tbar95.h} for wxToolBar95 -\item {\tt "wx/tbarsmpl.h} for wxToolBarSimple -\end{itemize} - -Example of toolbar use are given in the sample program ``toolbar''. The -source is given below. In fact it is out of date because recommended -practise is to use event handlers (using EVT\_MENU or EVT\_TOOL) instead of -overriding OnLeftClick. - -{\small -\begin{verbatim} -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: wxToolBar sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// License: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/toolbar.h" -#include <wx/log.h> - -#include "test.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#include "bitmaps/new.xpm" -#include "bitmaps/open.xpm" -#include "bitmaps/save.xpm" -#include "bitmaps/copy.xpm" -#include "bitmaps/cut.xpm" -#include "bitmaps/print.xpm" -#include "bitmaps/preview.xpm" -#include "bitmaps/help.xpm" -#endif - -IMPLEMENT_APP(MyApp) - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame* frame = new MyFrame((wxFrame *) NULL, -1, (const wxString) "wxToolBar Sample", - wxPoint(100, 100), wxSize(450, 300)); - - // Give it a status line - frame->CreateStatusBar(); - - // Give it an icon - frame->SetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *fileMenu = new wxMenu; - fileMenu->Append(wxID_EXIT, "E&xit", "Quit toolbar sample" ); - - wxMenu *helpMenu = new wxMenu; - helpMenu->Append(wxID_HELP, "&About", "About toolbar sample"); - - wxMenuBar* menuBar = new wxMenuBar; - - menuBar->Append(fileMenu, "&File"); - menuBar->Append(helpMenu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menuBar); - - // Create the toolbar - frame->CreateToolBar(wxBORDER\_NONE|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR); - - frame->GetToolBar()->SetMargins( 2, 2 ); - - InitToolbar(frame->GetToolBar()); - - // Force a resize. This should probably be replaced by a call to a wxFrame - // function that lays out default decorations and the remaining content window. - wxSizeEvent event(wxSize(-1, -1), frame->GetId()); - frame->OnSize(event); - frame->Show(true); - - frame->SetStatusText("Hello, wxWidgets"); - - SetTopWindow(frame); - - return true; -} - -bool MyApp::InitToolbar(wxToolBar* toolBar) -{ - // Set up toolbar - wxBitmap* toolBarBitmaps[8]; - -#ifdef __WXMSW__ - toolBarBitmaps[0] = new wxBitmap("icon1"); - toolBarBitmaps[1] = new wxBitmap("icon2"); - toolBarBitmaps[2] = new wxBitmap("icon3"); - toolBarBitmaps[3] = new wxBitmap("icon4"); - toolBarBitmaps[4] = new wxBitmap("icon5"); - toolBarBitmaps[5] = new wxBitmap("icon6"); - toolBarBitmaps[6] = new wxBitmap("icon7"); - toolBarBitmaps[7] = new wxBitmap("icon8"); -#else - toolBarBitmaps[0] = new wxBitmap( new_xpm ); - toolBarBitmaps[1] = new wxBitmap( open_xpm ); - toolBarBitmaps[2] = new wxBitmap( save_xpm ); - toolBarBitmaps[3] = new wxBitmap( copy_xpm ); - toolBarBitmaps[4] = new wxBitmap( cut_xpm ); - toolBarBitmaps[5] = new wxBitmap( preview_xpm ); - toolBarBitmaps[6] = new wxBitmap( print_xpm ); - toolBarBitmaps[7] = new wxBitmap( help_xpm ); -#endif - -#ifdef __WXMSW__ - int width = 24; -#else - int width = 16; -#endif - int currentX = 5; - - toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "New file"); - currentX += width + 5; - toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Open file"); - currentX += width + 5; - toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Save file"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Copy"); - currentX += width + 5; - toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Cut"); - currentX += width + 5; - toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Paste"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Print"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, false, currentX, -1, (wxObject *) NULL, "Help"); - - toolBar->Realize(); - - // Can delete the bitmaps since they're reference counted - int i; - for (i = 0; i < 8; i++) - delete toolBarBitmaps[i]; - - return true; -} - -// wxID_HELP will be processed for the 'About' menu and the toolbar help button. - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnQuit) - EVT_MENU(wxID_HELP, MyFrame::OnAbout) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick) - EVT_TOOL_ENTER(wxID_OPEN, MyFrame::OnToolEnter) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos, - const wxSize& size, long style): - wxFrame(parent, id, title, pos, size, style) -{ - m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE); -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(true); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxMessageBox("wxWidgets toolbar sample", "About wxToolBar"); -} - -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - Destroy(); -} - -void MyFrame::OnToolLeftClick(wxCommandEvent& event) -{ - wxString str; - str.Printf("Clicked on tool %d", event.GetId()); - SetStatusText(str); -} - -void MyFrame::OnToolEnter(wxCommandEvent& event) -{ - if (event.GetSelection() > -1) - { - wxString str; - str.Printf("This is tool number %d", event.GetSelection()); - SetStatusText(str); - } - else - SetStatusText(""); -} -\end{verbatim} -} - diff --git a/docs/latex/wx/ttreectl.tex b/docs/latex/wx/ttreectl.tex deleted file mode 100644 index 93bc9daf50..0000000000 --- a/docs/latex/wx/ttreectl.tex +++ /dev/null @@ -1,81 +0,0 @@ -\section{wxTreeCtrl overview}\label{wxtreectrloverview} - -Classes: \helpref{wxTreeCtrl}{wxtreectrl}, \helpref{wxImageList}{wximagelist} - -The tree control displays its items in a tree like structure. Each item has its -own (optional) icon and a label. An item may be either collapsed (meaning that -its children are not visible) or expanded (meaning that its children are -shown). Each item in the tree is identified by its {\it itemId} which is of -opaque data type {\it wxTreeItemId}. You can test whether an item is valid -by calling wxTreeItemId::IsOk. - -The items text and image may be retrieved and changed with -\helpref{GetItemText}{wxtreectrlgetitemtext}/\helpref{SetItemText}{wxtreectrlsetitemtext} -and -\helpref{GetItemImage}{wxtreectrlgetitemimage}/\helpref{SetItemImage}{wxtreectrlsetitemimage}. -In fact, an item may even have two images associated with it: the normal one -and another one for selected state which is set/retrieved with -\helpref{SetItemSelectedImage}{wxtreectrlsetitemselectedimage}/\helpref{GetItemSelectedImage}{wxtreectrlgetitemselectedimage} -functions, but this functionality might be unavailable on some platforms. - -Tree items have several attributes: an item may be selected or not, visible or -not, bold or not. It may also be expanded or collapsed. All these attributes -may be retrieved with the corresponding functions: -\helpref{IsSelected}{wxtreectrlisselected}, -\helpref{IsVisible}{wxtreectrlisvisible}, \helpref{IsBold}{wxtreectrlisbold} -and \helpref{IsExpanded}{wxtreectrlisexpanded}. Only one item at a time may be -selected, selecting another one (with -\helpref{SelectItem}{wxtreectrlselectitem}) automatically unselects the -previously selected one. - -In addition to its icon and label, a user-specific data structure may be associated -with all tree items. If you wish to do it, you should derive a class from {\it -wxTreeItemData} which is a very simple class having only one function {\it -GetId()} which returns the id of the item this data is associated with. This -data will be freed by the control itself when the associated item is deleted -(all items are deleted when the control is destroyed), so you shouldn't delete -it yourself (if you do it, you should call -\helpref{SetItemData(NULL)}{wxtreectrlsetitemdata} to prevent the tree from -deleting the pointer second time). The associated data may be retrieved with -\helpref{GetItemData()}{wxtreectrlgetitemdata} function. - -Working with trees is relatively straightforward if all the items are added to -the tree at the moment of its creation. However, for large trees it may be -very inefficient. To improve the performance you may want to delay adding the -items to the tree until the branch containing the items is expanded: so, in the -beginning, only the root item is created (with -\helpref{AddRoot}{wxtreectrladdroot}). Other items are added when -EVT\_TREE\_ITEM\_EXPANDING event is received: then all items lying immediately -under the item being expanded should be added, but, of course, only when this -event is received for the first time for this item - otherwise, the items would -be added twice if the user expands/collapses/re-expands the branch. - -The tree control provides functions for enumerating its items. There are 3 -groups of enumeration functions: for the children of a given item, for the -sibling of the given item and for the visible items (those which are currently -shown to the user: an item may be invisible either because its branch is -collapsed or because it is scrolled out of view). Child enumeration functions -require the caller to give them a {\it cookie} parameter: it is a number which -is opaque to the caller but is used by the tree control itself to allow -multiple enumerations to run simultaneously (this is explicitly allowed). The -only thing to remember is that the {\it cookie} passed to -\helpref{GetFirstChild}{wxtreectrlgetfirstchild} and to -\helpref{GetNextChild}{wxtreectrlgetnextchild} should be the same variable (and -that nothing should be done with it by the user code). - -Among other features of the tree control are: item sorting with -\helpref{SortChildren}{wxtreectrlsortchildren} which uses the user-defined comparison -function \helpref{OnCompareItems}{wxtreectrloncompareitems} (by default the -comparison is the alphabetic comparison of tree labels), hit testing -(determining to which portion of the control the given point belongs, useful -for implementing drag-and-drop in the tree) with -\helpref{HitTest}{wxtreectrlhittest} and editing of the tree item labels in -place (see \helpref{EditLabel}{wxtreectrleditlabel}). - -Finally, the tree control has a keyboard interface: the cursor navigation (arrow) keys -may be used to change the current selection. <HOME> and <END> are used to go to -the first/last sibling of the current item. '+', '-' and '*' expand, collapse -and toggle the current branch. Note, however, that <DEL> and <INS> keys do -nothing by default, but it is common to associate them with deleting an item from -a tree and inserting a new one into it. - diff --git a/docs/latex/wx/tunicode.tex b/docs/latex/wx/tunicode.tex deleted file mode 100644 index 17d5a3303c..0000000000 --- a/docs/latex/wx/tunicode.tex +++ /dev/null @@ -1,207 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: tunicode.tex -%% Purpose: Overview of the Unicode support in wxWidgets -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 22.09.99 -%% RCS-ID: $Id$ -%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -%% Licence: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{Unicode support in wxWidgets}\label{unicode} - -This section briefly describes the state of the Unicode support in wxWidgets. -Read it if you want to know more about how to write programs able to work with -characters from languages other than English. - -\subsection{What is Unicode?}\label{whatisunicode} - -wxWidgets has support for compiling in Unicode mode -on the platforms which support it. Unicode is a standard for character -encoding which addresses the shortcomings of the previous, 8 bit standards, by -using at least 16 (and possibly 32) bits for encoding each character. This -allows to have at least 65536 characters (what is called the BMP, or basic -multilingual plane) and possible $2^{32}$ of them instead of the usual 256 and -is sufficient to encode all of the world languages at once. More details about -Unicode may be found at \urlref{http://www.unicode.org}{http://www.unicode.org}. - -% TODO expand on it, say that Unicode extends ASCII, mention ISO8859, ... - -As this solution is obviously preferable to the previous ones (think of -incompatible encodings for the same language, locale chaos and so on), many -modern operating systems support it. The probably first example is Windows NT -which uses only Unicode internally since its very first version. - -Writing internationalized programs is much easier with Unicode and, as the -support for it improves, it should become more and more so. Moreover, in the -Windows NT/2000 case, even the program which uses only standard ASCII can profit -from using Unicode because they will work more efficiently - there will be no -need for the system to convert all strings the program uses to/from Unicode -each time a system call is made. - -\subsection{Unicode and ANSI modes}\label{unicodeandansi} - -As not all platforms supported by wxWidgets support Unicode (fully) yet, in -many cases it is unwise to write a program which can only work in Unicode -environment. A better solution is to write programs in such way that they may -be compiled either in ANSI (traditional) mode or in the Unicode one. - -This can be achieved quite simply by using the means provided by wxWidgets. -Basically, there are only a few things to watch out for: - -\begin{itemize} -\item Character type ({\tt char} or {\tt wchar\_t}) -\item Literal strings (i.e. {\tt "Hello, world!"} or {\tt '*'}) -\item String functions ({\tt strlen()}, {\tt strcpy()}, ...) -\item Special preprocessor tokens ({\tt \_\_FILE\_\_}, {\tt \_\_DATE\_\_} -and {\tt \_\_TIME\_\_}) -\end{itemize} - -Let's look at them in order. First of all, each character in an Unicode -program takes 2 bytes instead of usual one, so another type should be used to -store the characters ({\tt char} only holds 1 byte usually). This type is -called {\tt wchar\_t} which stands for {\it wide-character type}. - -Also, the string and character constants should be encoded using wide -characters ({\tt wchar\_t} type) which typically take $2$ or $4$ bytes instead -of {\tt char} which only takes one. This is achieved by using the standard C -(and C++) way: just put the letter {\tt 'L'} after any string constant and it -becomes a {\it long} constant, i.e. a wide character one. To make things a bit -more readable, you are also allowed to prefix the constant with {\tt 'L'} -instead of putting it after it. - -Of course, the usual standard C functions don't work with {\tt wchar\_t} -strings, so another set of functions exists which do the same thing but accept -{\tt wchar\_t *} instead of {\tt char *}. For example, a function to get the -length of a wide-character string is called {\tt wcslen()} (compare with -{\tt strlen()} - you see that the only difference is that the "str" prefix -standing for "string" has been replaced with "wcs" standing for "wide-character -string"). - -And finally, the standard preprocessor tokens enumerated above expand to ANSI -strings but it is more likely that Unicode strings are wanted in the Unicode -build. wxWidgets provides the macros {\tt \_\_TFILE\_\_}, {\tt \_\_TDATE\_\_} -and {\tt \_\_TTIME\_\_} which behave exactly as the standard ones except that -they produce ANSI strings in ANSI build and Unicode ones in the Unicode build. - -To summarize, here is a brief example of how a program which can be compiled -in both ANSI and Unicode modes could look like: - -\begin{verbatim} -#ifdef __UNICODE__ - wchar_t wch = L'*'; - const wchar_t *ws = L"Hello, world!"; - int len = wcslen(ws); - - wprintf(L"Compiled at %s\n", __TDATE__); -#else // ANSI - char ch = '*'; - const char *s = "Hello, world!"; - int len = strlen(s); - - printf("Compiled at %s\n", __DATE__); -#endif // Unicode/ANSI -\end{verbatim} - -Of course, it would be nearly impossibly to write such programs if it had to -be done this way (try to imagine the number of {\tt \#ifdef UNICODE} an average -program would have had!). Luckily, there is another way - see the next -section. - -\subsection{Unicode support in wxWidgets}\label{unicodeinsidewxw} - -In wxWidgets, the code fragment from above should be written instead: - -\begin{verbatim} - wxChar ch = wxT('*'); - wxString s = wxT("Hello, world!"); - int len = s.Len(); -\end{verbatim} - -What happens here? First of all, you see that there are no more {\tt \#ifdef}s -at all. Instead, we define some types and macros which behave differently in -the Unicode and ANSI builds and allow us to avoid using conditional -compilation in the program itself. - -We have a {\tt wxChar} type which maps either on {\tt char} or {\tt wchar\_t} -depending on the mode in which program is being compiled. There is no need for -a separate type for strings though, because the standard -\helpref{wxString}{wxstring} supports Unicode, i.e. it stores either ANSI or -Unicode strings depending on the compile mode. - -Finally, there is a special \helpref{wxT()}{wxt} macro which should enclose all -literal strings in the program. As it is easy to see comparing the last -fragment with the one above, this macro expands to nothing in the (usual) ANSI -mode and prefixes {\tt 'L'} to its argument in the Unicode mode. - -The important conclusion is that if you use {\tt wxChar} instead of -{\tt char}, avoid using C style strings and use {\tt wxString} instead and -don't forget to enclose all string literals inside \helpref{wxT()}{wxt} macro, your -program automatically becomes (almost) Unicode compliant! - -Just let us state once again the rules: - -\begin{itemize} -\item Always use {\tt wxChar} instead of {\tt char} -\item Always enclose literal string constants in \helpref{wxT()}{wxt} macro -unless they're already converted to the right representation (another standard -wxWidgets macro \helpref{\_()}{underscore} does it, for example, so there is no -need for {\tt wxT()} in this case) or you intend to pass the constant directly -to an external function which doesn't accept wide-character strings. -\item Use {\tt wxString} instead of C style strings. -\end{itemize} - -\subsection{Unicode and the outside world}\label{unicodeoutsidewxw} - -We have seen that it was easy to write Unicode programs using wxWidgets types -and macros, but it has been also mentioned that it isn't quite enough. -Although everything works fine inside the program, things can get nasty when -it tries to communicate with the outside world which, sadly, often expects -ANSI strings (a notable exception is the entire Win32 API which accepts either -Unicode or ANSI strings and which thus makes it unnecessary to ever perform -any conversions in the program). GTK 2.0 only accepts UTF-8 strings. - -To get an ANSI string from a wxString, you may use the -mb\_str() function which always returns an ANSI -string (independently of the mode - while the usual -\helpref{c\_str()}{wxstringcstr} returns a pointer to the internal -representation which is either ASCII or Unicode). More rarely used, but still -useful, is wc\_str() function which always returns -the Unicode string. - -Sometimes it is also necessary to go from ANSI strings to wxStrings. -In this case, you can use the converter-constructor, as follows: - -\begin{verbatim} - const char* ascii_str = "Some text"; - wxString str(ascii_str, wxConvUTF8); -\end{verbatim} - -This code also compiles fine under a non-Unicode build of wxWidgets, -but in that case the converter is ignored. - -For more information about converters and Unicode see -the \helpref{wxMBConv classes overview}{mbconvclasses}. - -% TODO describe fn_str(), wx_str(), wxCharBuf classes, ... - -\subsection{Unicode-related compilation settings}\label{unicodesettings} - -You should define {\tt wxUSE\_UNICODE} to $1$ to compile your program in -Unicode mode. This currently works for wxMSW, wxGTK, wxMac and wxX11. If you -compile your program in ANSI mode you can still define {\tt wxUSE\_WCHAR\_T} -to get some limited support for {\tt wchar\_t} type. - -This will allow your program to perform conversions between Unicode strings and -ANSI ones (using \helpref{wxMBConv classes}{mbconvclasses}) -and construct wxString objects from Unicode strings (presumably read -from some external file or elsewhere). - -\subsection{Traps for the unwary} - -\begin{itemize} - \item Casting c\_str() to void* is now char*, not wxChar* - \item Passing c\_str(), mb\_str() or wc\_str() to variadic functions -doesn't work -\end{itemize} diff --git a/docs/latex/wx/tusage.tex b/docs/latex/wx/tusage.tex deleted file mode 100644 index df65058a03..0000000000 --- a/docs/latex/wx/tusage.tex +++ /dev/null @@ -1,22 +0,0 @@ -\section{Notes on using the reference}\label{referencenotes} - -In the descriptions of the wxWidgets classes and their member -functions, note that descriptions of inherited member functions are not -duplicated in derived classes unless their behaviour is different. So in -using a class such as wxScrolledWindow, be aware that wxWindow functions may be -relevant. - -Note also that arguments with default values may be omitted from a -function call, for brevity. Size and position arguments may usually be -given a value of -1 (the default), in which case wxWidgets will choose a -suitable value. - -Most strings are returned as wxString objects. However, for remaining -char * return values, the strings are allocated and -deallocated by wxWidgets. Therefore, return values should always be -copied for long-term use, especially since the same buffer is often -used by wxWidgets. - -The member functions are given in alphabetical order except for -constructors and destructors which appear first. - diff --git a/docs/latex/wx/tvalidat.tex b/docs/latex/wx/tvalidat.tex deleted file mode 100644 index 93105606a5..0000000000 --- a/docs/latex/wx/tvalidat.tex +++ /dev/null @@ -1,122 +0,0 @@ -\section{wxValidator overview}\label{validatoroverview} - -Classes: \helpref{wxValidator}{wxvalidator}, \helpref{wxTextValidator}{wxtextvalidator}, -\helpref{wxGenericValidator}{wxgenericvalidator} - -The aim of the validator concept is to make dialogs very much easier to write. -A validator is an object that can be plugged into a control (such as a wxTextCtrl), and -mediates between C++ data and the control, transferring the data in either direction -and validating it. It also is able to intercept events generated -by the control, providing filtering behaviour without the need to derive a new control class. - -You can use a stock validator, such as \helpref{wxTextValidator}{wxtextvalidator} (which does text -control data transfer, validation and filtering) and -\helpref{wxGenericValidator}{wxgenericvalidator} (which does data transfer for a range of controls); -or you can write your own. - -\wxheading{Example} - -Here is an example of wxTextValidator usage. - -\begin{verbatim} - wxTextCtrl *txt1 = new wxTextCtrl(this, -1, wxT(""), - wxPoint(10, 10), wxSize(100, 80), 0, - wxTextValidator(wxFILTER_ALPHA, &g_data.m_string)); -\end{verbatim} - -In this example, the text validator object provides the following functionality: - -\begin{enumerate}\itemsep=0pt -\item It transfers the value of g\_data.m\_string (a wxString variable) to the wxTextCtrl when -the dialog is initialised. -\item It transfers the wxTextCtrl data back to this variable when the dialog is dismissed. -\item It filters input characters so that only alphabetic characters are allowed. -\end{enumerate} - -The validation and filtering of input is accomplished in two ways. When a character is input, -wxTextValidator checks the character against the allowed filter flag (wxFILTER\_ALPHA in this case). If -the character is inappropriate, it is vetoed (does not appear) and a warning beep sounds. -The second type of validation is performed when the dialog is about to be dismissed, so if -the default string contained invalid characters already, a dialog box is shown giving the -error, and the dialog is not dismissed. - -\wxheading{Anatomy of a validator} - -A programmer creating a new validator class should provide the following functionality. - -A validator constructor is responsible for allowing the programmer to specify the kind -of validation required, and perhaps a pointer to a C++ variable that is used for storing the -data for the control. If such a variable address is not supplied by the user, then -the validator should store the data internally. - -The \helpref{wxValidator::Validate}{wxvalidatorvalidate} member function should return -true if the data in the control (not the C++ variable) is valid. It should also show -an appropriate message if data was not valid. - -The \helpref{wxValidator::TransferToWindow}{wxvalidatortransfertowindow} member function should -transfer the data from the validator or associated C++ variable to the control. - -The \helpref{wxValidator::TransferFromWindow}{wxvalidatortransferfromwindow} member function should -transfer the data from the control to the validator or associated C++ variable. - -There should be a copy constructor, and a \helpref{wxValidator::Clone}{wxvalidatorclone} function -which returns a copy of the validator object. This is important because validators -are passed by reference to window constructors, and must therefore be cloned internally. - -You can optionally define event handlers for the validator, to implement filtering. These handlers -will capture events before the control itself does. - -For an example implementation, see the valtext.h and valtext.cpp files in the wxWidgets library. - -\wxheading{How validators interact with dialogs} - -For validators to work correctly, validator functions must be called at the right times during -dialog initialisation and dismissal. - -When a \helpref{wxDialog::Show}{wxdialogshow} is called (for a modeless dialog) -or \helpref{wxDialog::ShowModal}{wxdialogshowmodal} is called (for a modal dialog), -the function \helpref{wxWindow::InitDialog}{wxwindowinitdialog} is automatically called. -This in turn sends an initialisation event to the dialog. The default handler for -the wxEVT\_INIT\_DIALOG event is defined in the wxWindow class to simply call -the function \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. This -function finds all the validators in the window's children and calls the TransferToWindow -function for each. Thus, data is transferred from C++ variables to the dialog -just as the dialog is being shown. - -\normalbox{If you are using a window or panel instead of a dialog, you will need to -call \helpref{wxWindow::InitDialog}{wxwindowinitdialog} explicitly before showing the -window.} - -When the user clicks on a button, for example the OK button, the application should -first call \helpref{wxWindow::Validate}{wxwindowvalidate}, which returns false if -any of the child window validators failed to validate the window data. The button handler -should return immediately if validation failed. Secondly, the application should -call \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow} and -return if this failed. It is then safe to end the dialog by calling EndModal (if modal) -or Show (if modeless). - -In fact, wxDialog contains a default command event handler for the wxID\_OK button. It goes like -this: - -\begin{verbatim} -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(false); - } - } -} -\end{verbatim} - -So if using validators and a normal OK button, you may not even need to write any -code for handling dialog dismissal. - -If you load your dialog from a resource file, you will need to iterate through the controls -setting validators, since validators can't be specified in a dialog resource. - diff --git a/docs/latex/wx/twindowid.tex b/docs/latex/wx/twindowid.tex deleted file mode 100644 index e654db4ef7..0000000000 --- a/docs/latex/wx/twindowid.tex +++ /dev/null @@ -1,63 +0,0 @@ -\section{Window IDs overview}\label{windowidsoverview} - -\wxheading{See Also} - -\helpref{wxIdManager}{wxidmanager} -\helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -\helpref{wxWindow::UnreserveControlId}{wxwindowunreservecontrolid} - -\subsection{Introduction}\label{windowidsoverviewintro} - -Various contols and other parts of wxWidgets need an ID. Sometimes the -ID may be directly provided by the use or have a predefined value, such as -\texttt{wxID\_OPEN}. Often, however, the value of the ID is unimportant and is -created automatically by calling \helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -or by passing \texttt{wxID\_ANY} as the ID of an object. - -There are two ways to generate an ID. One way, is to start at a negative number, -and for each new ID, return the next smallest number. This is fine for systems -that can used the full range of negative numbers for an ID, as this provides -more than enough IDs and it would take a very very long time to run out and -wrap around. However, some systems can not use the full range of the ID value. -Windows, for example, can only use 16 bit IDs, and only has about 32000 possible -automatic IDs that can be generated by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid}. -If the program runs long enough, depending on the program itself, using this first -method would cause the IDs to wrap around into the positive ID range and cause possible -clashes with any directly specified ID values. - -The other way is to keep track of the IDs returned by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -and don't return them again until the ID is completely free and not being used by -any other objects. This will make sure that the ID values do not clash with one -another. This is accomplished by keeping a reference count for each of the IDs -that can possibly be returned by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid}. -Other IDs are not reference counted. - -\subsection{Data types}\label{windowidsoverviewtypes} - -A wxWindowID is just the integer type for a window ID. It should be used almost -everywhere. To help keep track of the count for the automatically generated IDs, -a new type, wxWindowIDRef exists, that can take the place of wxWindowID where needed. -When an ID is first created, it is marked as reserved. When assigning it to a -wxWindowIDRef, the usage count of the ID is increased, or set to 1 if it is currently -reserved. Assigning the same ID to several wxWindowIDRefs will keep track of the count. -As the wxWindowIDRef gets destroyed or its value changes, it will decrease the count -of the used ID. When there are no more wxWindowIDRef types with the created ID, the -ID is considered free and can then be used again by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid}. - -If a created ID is not assigned to a wxWindowIDRef, then it remains reserved until it -is unreserved manually with \helpref{wxWindow::UnreserveControlId}{wxwindowunreservecontrolid}. -However, if it is assigned to a wxWindowIDRef, then it will be unreserved automatically -and will be considered free when the count is 0, and should NOT be manually unreserved. - -wxWindowIDRef can store both automatic IDs from \helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -as well as normal IDs. Reference counting is only done for the automatic IDs. Also, -wxWindowIDRef has conversion operators that allow it to be treated just like a wxWindowID. - -\subsection{Using wxWindowIDRef}\label{windowidsoverviewusing} - -A wxWindowIDRef should be used in place of a wxWindowID where you want to make sure the -ID is not created again by \helpref{wxWindow::NewControlId}{wxwindownewcontrolid} -at least until the wxWindowIDRef is destroyed, usually when the associated object is destroyed. -This is done already for windows, menu items, and tool bar items. -It should only be used in the main thread, as it is not thread safe. - diff --git a/docs/latex/wx/twinsizes.tex b/docs/latex/wx/twinsizes.tex deleted file mode 100644 index dd6d3b612e..0000000000 --- a/docs/latex/wx/twinsizes.tex +++ /dev/null @@ -1,102 +0,0 @@ -\section{Window Sizing Overview}\label{windowsizingoverview} - - - - -It can sometimes be confusing to keep track of the various -size-related attributes of a \helpref{wxWindow}{wxwindow}, how they -relate to each other, and how they interact with sizers. This document -will attempt to clear the fog a little, and give some simple -explanations of things. - -{\bf BestSize}: The best size of a widget depends on what kind of widget it -is, and usually also on the contents of the widget. For example a -\helpref{wxListBox}{wxlistbox}'s best size will be calculated based on -how many items it has, up to a certain limit, or a -\helpref{wxButton}{wxbutton}'s best size will be calculated based on -its label size, but normally won't be smaller than the platform -default button size (unless a style flag overrides that). Get the -picture? There is a special virtual method in the C++ window classes -called \texttt{DoGetBestSize()} that a class needs to override if it -wants to calculate its own best size based on its content. The default -\texttt{DoGetBestSize()} is designed for use in container windows, -such as \helpref{wxPanel}{wxpanel}, and works something like this: - -\begin{enumerate} - \item{If the window has a sizer then it is used to calculate the best size.} - \item{Otherwise if the window has layout constraints then that is used to calculate the best size.} - \item{Otherwise if the window has children then the best size is set to be large enough to show all the children.} - \item{Otherwise if there are no children then the window's min size will be used for the best size.} - \item{Otherwise if there is no min size set, then the current size is used for the best size.} -\end{enumerate} - -{\bf MinSize}: The min size of a widget is a size that is normally -explicitly set by the programmer either with the \texttt{SetMinSize()} -method or the \texttt{SetSizeHints()} method. Most controls will also -set the min size to the size given in the control's constructor if a -non-default value is passed. Top-level windows such as -\helpref{wxFrame}{wxframe} will not allow the user to resize the frame -below the min size. - -{\bf Size}: The size of a widget can be explicitly set or fetched with -the \texttt{SetSize()} or \texttt{GetSize()} methods. This size value -is the size that the widget is currently using on screen and is the -way to change the size of something that is not being managed by a -sizer. - -{\bf ClientSize}: The client size represents the widget's area inside -of any borders belonging to the widget and is the area that can be -drawn upon in a \texttt{EVT\_PAINT} event. If a widget doesn't have a -border then its client size is the same as its size. - -{\bf InitialSize}: The initial size of a widget is the size given to -the constructor of the widget, if any. As mentioned above most -controls will also set this size value as the control's min size. If -the size passed to the constructor is the default -\texttt{wxDefaultSize}, or if the size is not fully specified (such as -\texttt{wxSize(150,-1)}) then most controls will fill in the missing -size components using the best size and will set the initial size of -the control to the resulting size. - -{\bf GetEffectiveMinSize()}: (formerly \texttt{GetBestFittingSize}) A -blending of the widget's min size and best size, giving precedence to -the min size. For example, if a widget's min size is set to (150, -1) -and the best size is (80, 22) then the best fitting size is (150, -22). If the min size is (50, 20) then the best fitting size is (50, -20). This method is what is called by the sizers when determining what -the requirements of each item in the sizer is, and is used for -calculating the overall minimum needs of the sizer. - -{\bf SetInitialSize(size)}: (formerly \texttt{SetBestFittingSize}) -This is a little different than the typical size setters. Rather than -just setting an "initial size" attribute it actually sets the minsize -to the value passed in, blends that value with the best size, and then -sets the size of the widget to be the result. So you can consider this -method to be a "Smart SetSize". This method is what is called by the -constructor of most controls to set the minsize and initial size of -the control. - -{\bf window.Fit()}: The \texttt{Fit()} method sets the size of a -window to fit around its children. If it has no children then nothing -is done, if it does have children then the size of the window is set -to the window's best size. - -{\bf sizer.Fit(window)}: This sets the size of the window to be large -enough to accommodate the minimum size needed by the sizer, (along with -a few other constraints...) If the sizer is the one that is assigned -to the window then this should be equivalent to \texttt{window.Fit()}. - -{\bf sizer.Layout()}: Recalculates the minimum space needed by each -item in the sizer, and then lays out the items within the space -currently allotted to the sizer. - -{\bf window.Layout()}: If the window has a sizer then it sets the -space given to the sizer to the current size of the window, which -results in a call to \texttt{sizer.Layout()}. If the window has layout -constraints instead of a sizer then the constraints algorithm is -run. The \texttt{Layout()} method is what is called by the default -\texttt{EVT\_SIZE} handler for container windows. - - - - diff --git a/docs/latex/wx/txrc.tex b/docs/latex/wx/txrc.tex deleted file mode 100644 index 3a11b955d7..0000000000 --- a/docs/latex/wx/txrc.tex +++ /dev/null @@ -1,632 +0,0 @@ -% Note: -e/C++ header generation documentation added by -% Eduardo Marques <edrdo@netcabo.pt> -% -\section{XML-based resource system overview}\label{xrcoverview} - -Classes: \helpref{wxXmlResource}{wxxmlresource}, \helpref{wxXmlResourceHandler}{wxxmlresourcehandler} - -The XML-based resource system, known as XRC, allows user interface elements such as -dialogs, menu bars and toolbars, to be stored in text files and loaded into -the application at run-time. XRC files can also be compiled into binary XRS files or C++ -code (the former makes it possible to store all resources in a single file and the latter -is useful when you want to embed the resources into the executable). - -There are several advantages to using XRC resources. - -\begin{itemize}\itemsep=0pt -\item Recompiling and linking an application is not necessary if the -resources change. -\item If you use a dialog designer that generates C++ code, it can be hard -to reintegrate this into existing C++ code. Separation of resources and code -is a more elegant solution. -\item You can choose between different alternative resource files at run time, if necessary. -\item The XRC format uses sizers for flexibility, allowing dialogs to be resizable -and highly portable. -\item The XRC format is a wxWidgets standard, -and can be generated or postprocessed by any program that understands it. As it is based -on the XML standard, existing XML editors can be used for simple editing purposes. -\end{itemize} - -XRC was written by Vaclav Slavik. - -\subsection{XRC concepts}\label{xrcconcepts} - -These are the typical steps for using XRC files in your application. - -\begin{itemize}\itemsep=0pt -\item Include the appropriate headers: normally "wx/xrc/xmlres.h" will suffice; -\item If you are going to use \helpref{XRS files}{binaryresourcefiles}, install -wxFileSystem archive handler first with {\tt wxFileSystem::AddHandler(new wxArchiveFSHandler);} -\item call {\tt wxXmlResource::Get()->InitAllHandlers()} from your wxApp::OnInit function, -and then call {\tt wxXmlResource::Get()->Load("myfile.xrc")} to load the resource file; -\item to create a dialog from a resource, create it using the default constructor, and then -load it using for example {\tt wxXmlResource::Get()->LoadDialog(\&dlg, this, "dlg1");} -\item set up event tables as usual but use the {\tt XRCID(str)} macro to translate from XRC string names -to a suitable integer identifier, for example {\tt EVT\_MENU(XRCID("quit"), MyFrame::OnQuit)}. -\end{itemize} - -To create an XRC file, you can use one of the following methods. - -\begin{itemize}\itemsep=0pt -\item Create the file by hand; -\item use \urlref{wxDesigner}{http://www.roebling.de}, a commercial dialog designer/RAD tool; -\item use \urlref{DialogBlocks}{http://www.anthemion.co.uk/dialogblocks}, a commercial dialog editor; -\item use \urlref{XRCed}{http://xrced.sf.net}, a wxPython-based -dialog editor that you can find in the {\tt wxPython/tools} subdirectory of the wxWidgets -CVS archive; -\item use \urlref{wxGlade}{http://wxglade.sf.net}, a GUI designer written in wxPython. At the moment it can generate Python, C++ and XRC; -\end{itemize} - -A complete list of third-party tools that write to XRC can be found at \urlref{www.wxwidgets.org/lnk\_tool.htm}{http://www.wxwidgets.org/lnk\_tool.htm}. - -It is highly recommended that you use a resource editing tool, since it's fiddly writing -XRC files by hand. - -You can use \helpref{wxXmlResource::Load}{wxxmlresourceload} in a number of ways. -You can pass an XRC file (XML-based text resource file) -or a \helpref{zip-compressed file}{binaryresourcefiles} (extension ZIP or XRS) containing other XRC. - -You can also use \helpref{embedded C++ resources}{embeddedresource} - -\subsection{Using binary resource files}\label{binaryresourcefiles} - -To compile binary resource files, use the command-line wxrc utility. It takes one or more file parameters -(the input XRC files) and the following switches and options: -\begin{itemize}\itemsep=0pt -\item -h (--help): show a help message -\item -v (--verbose): show verbose logging information -\item -c (--cpp-code): write C++ source rather than a XRS file -\item -e (--extra-cpp-code): if used together with -c, generates C++ header file -containing class definitions for the windows defined by the XRC file (see special subsection) -\item -u (--uncompressed): do not compress XML files (C++ only) -\item -g (--gettext): output underscore-wrapped strings that poEdit or gettext can scan. Outputs to stdout, or a file if -o is used -\item -n (--function) <name>: specify C++ function name (use with -c) -\item -o (--output) <filename>: specify the output file, such as resource.xrs or resource.cpp -\item -l (--list-of-handlers) <filename>: output a list of necessary handlers to this file -\end{itemize} - -For example: -\begin{verbatim} - % wxrc resource.xrc - % wxrc resource.xrc -o resource.xrs - % wxrc resource.xrc -v -c -o resource.cpp -\end{verbatim} - -\wxheading{Note} - -XRS file is essentially a renamed ZIP archive which means that you can manipulate -it with standard ZIP tools. Note that if you are using XRS files, you have -to initialize the \helpref{wxFileSystem}{wxfilesystem} archive handler first! It is a simple -thing to do: - -\begin{verbatim} - #include <wx/filesys.h> - #include <wx/fs_arc.h> - ... - wxFileSystem::AddHandler(new wxArchiveFSHandler); -\end{verbatim} - -\subsection{Using embedded resources}\label{embeddedresource} - -It is sometimes useful to embed resources in the executable itself instead -of loading an external file (e.g. when your app is small and consists only of one -exe file). XRC provides means to convert resources into regular C++ file that -can be compiled and included in the executable. - -Use the {\tt -c} switch to -{\tt wxrc} utility to produce C++ file with embedded resources. This file will -contain a function called {\it InitXmlResource} (unless you override this with -a command line switch). Use it to load the resource: - -\begin{verbatim} - extern void InitXmlResource(); // defined in generated file - ... - wxXmlResource::Get()->InitAllHandlers(); - InitXmlResource(); - ... -\end{verbatim} - -\subsection{XRC C++ sample}\label{xrccppsample} - -This is the C++ source file (xrcdemo.cpp) for the XRC sample. - -\begin{verbatim} -#include "wx/wx.h" -#include "wx/image.h" -#include "wx/xrc/xmlres.h" - -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) - #include "rc/appicon.xpm" -#endif - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// Define a new application type, each program should derive a class from wxApp -class MyApp : public wxApp -{ -public: - // override base class virtuals - // ---------------------------- - - // this one is called on application startup and is a good place for the app - // initialization (doing it here and not in the ctor allows to have an error - // return: if OnInit() returns false, the application terminates) - virtual bool OnInit(); -}; - -// Define a new frame type: this is going to be our main frame -class MyFrame : public wxFrame -{ -public: - // ctor(s) - MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); - - // event handlers (these functions should _not_ be virtual) - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnDlg1(wxCommandEvent& event); - void OnDlg2(wxCommandEvent& event); - -private: - // any class wishing to process wxWidgets events must use this macro - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWidgets -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(XRCID("menu_quit"), MyFrame::OnQuit) - EVT_MENU(XRCID("menu_about"), MyFrame::OnAbout) - EVT_MENU(XRCID("menu_dlg1"), MyFrame::OnDlg1) - EVT_MENU(XRCID("menu_dlg2"), MyFrame::OnDlg2) -END_EVENT_TABLE() - -IMPLEMENT_APP(MyApp) - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// 'Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - wxImage::AddHandler(new wxGIFHandler); - wxXmlResource::Get()->InitAllHandlers(); - wxXmlResource::Get()->Load("rc/resource.xrc"); - - MyFrame *frame = new MyFrame("XML resources demo", - wxPoint(50, 50), wxSize(450, 340)); - frame->Show(true); - return true; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - SetIcon(wxICON(appicon)); - - SetMenuBar(wxXmlResource::Get()->LoadMenuBar("mainmenu")); - SetToolBar(wxXmlResource::Get()->LoadToolBar(this, "toolbar")); -} - -// event handlers -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - // true is to force the frame to close - Close(true); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxString msg; - msg.Printf( _T("This is the about dialog of XML resources demo.\n") - _T("Welcome to %s"), wxVERSION_STRING); - - wxMessageBox(msg, "About XML resources demo", wxOK | wxICON_INFORMATION, this); -} - -void MyFrame::OnDlg1(wxCommandEvent& WXUNUSED(event)) -{ - wxDialog dlg; - wxXmlResource::Get()->LoadDialog(&dlg, this, "dlg1"); - dlg.ShowModal(); -} - -void MyFrame::OnDlg2(wxCommandEvent& WXUNUSED(event)) -{ - wxDialog dlg; - wxXmlResource::Get()->LoadDialog(&dlg, this, "dlg2"); - dlg.ShowModal(); -} -\end{verbatim} - -\subsection{XRC resource file sample}\label{xrcsample} - -This is the XML file (resource.xrc) for the XRC sample. - -\begin{verbatim} -<?xml version="1.0"?> -<resource version="2.3.0.1"> - <object class="wxMenuBar" name="mainmenu"> - <style>wxMB_DOCKABLE</style> - <object class="wxMenu" name="menu_file"> - <label>_File</label> - <style>wxMENU_TEAROFF</style> - <object class="wxMenuItem" name="menu_about"> - <label>_About...</label> - <bitmap>filesave.gif</bitmap> - </object> - <object class="separator"/> - <object class="wxMenuItem" name="menu_dlg1"> - <label>Dialog 1</label> - </object> - <object class="wxMenuItem" name="menu_dlg2"> - <label>Dialog 2</label> - </object> - <object class="separator"/> - <object class="wxMenuItem" name="menu_quit"> - <label>E_xit\tAlt-X</label> - </object> - </object> - </object> - <object class="wxToolBar" name="toolbar"> - <style>wxTB_FLAT|wxTB_DOCKABLE</style> - <margins>2,2</margins> - <object class="tool" name="menu_open"> - <bitmap>fileopen.gif</bitmap> - <tooltip>Open catalog</tooltip> - </object> - <object class="tool" name="menu_save"> - <bitmap>filesave.gif</bitmap> - <tooltip>Save catalog</tooltip> - </object> - <object class="tool" name="menu_update"> - <bitmap>update.gif</bitmap> - <tooltip>Update catalog - synchronize it with sources</tooltip> - </object> - <separator/> - <object class="tool" name="menu_quotes"> - <bitmap>quotes.gif</bitmap> - <toggle>1</toggle> - <tooltip>Display quotes around the string?</tooltip> - </object> - <object class="separator"/> - <object class="tool" name="menu_fuzzy"> - <bitmap>fuzzy.gif</bitmap> - <tooltip>Toggled if selected string is fuzzy translation</tooltip> - <toggle>1</toggle> - </object> - </object> - <object class="wxDialog" name="dlg1"> - <object class="wxBoxSizer"> - <object class="sizeritem"> - <object class="wxBitmapButton"> - <bitmap>fuzzy.gif</bitmap> - <focus>fileopen.gif</focus> - </object> - </object> - <object class="sizeritem"> - <object class="wxPanel"> - <object class="wxStaticText"> - <label>fdgdfgdfgdfg</label> - </object> - <style>wxBORDER\_SUNKEN</style> - </object> - <flag>wxALIGN_CENTER</flag> - </object> - <object class="sizeritem"> - <object class="wxButton"> - <label>Buttonek</label> - </object> - <border>10d</border> - <flag>wxALL</flag> - </object> - <object class="sizeritem"> - <object class="wxHtmlWindow"> - <htmlcode><h1>Hi,</h1>man</htmlcode> - <size>100,45d</size> - </object> - </object> - <object class="sizeritem"> - <object class="wxNotebook"> - <object class="notebookpage"> - <object class="wxPanel"> - <object class="wxBoxSizer"> - <object class="sizeritem"> - <object class="wxHtmlWindow"> - <htmlcode>Hello, we are inside a <u>NOTEBOOK</u>...</htmlcode> - <size>50,50d</size> - </object> - <option>1</option> - </object> - </object> - </object> - <label>Page</label> - </object> - <object class="notebookpage"> - <object class="wxPanel"> - <object class="wxBoxSizer"> - <object class="sizeritem"> - <object class="wxHtmlWindow"> - <htmlcode>Hello, we are inside a <u>NOTEBOOK</u>...</htmlcode> - <size>50,50d</size> - </object> - </object> - </object> - </object> - <label>Page 2</label> - </object> - <usenotebooksizer>1</usenotebooksizer> - </object> - <flag>wxEXPAND</flag> - </object> - <orient>wxVERTICAL</orient> - </object> - </object> - <object class="wxDialog" name="dlg2"> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem" name="dfgdfg"> - <object class="wxTextCtrl"> - <size>200,200d</size> - <style>wxTE_MULTILINE|wxBORDER_SUNKEN</style> - <value>Hello, this is an ordinary multiline\n textctrl....</value> - </object> - <option>1</option> - <flag>wxEXPAND|wxALL</flag> - <border>10</border> - </object> - <object class="sizeritem"> - <object class="wxBoxSizer"> - <object class="sizeritem"> - <object class="wxButton" name="wxID_OK"> - <label>Ok</label> - <default>1</default> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="wxID_CANCEL"> - <label>Cancel</label> - </object> - <border>10</border> - <flag>wxLEFT</flag> - </object> - </object> - <flag>wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_RIGHT</flag> - <border>10</border> - </object> - </object> - <title>Second testing dialog - - -\end{verbatim} - -\subsection{XRC file format}\label{xrcfileformat} - -Please see Technical Note 14 (docs/tech/tn0014.txt) in your wxWidgets -distribution. - -\subsection{C++ header file generation}\label{xrccppheader} - -Using the {\tt -e} switch together with {\tt -c}, a C++ header file is written -containing class definitions for the GUI windows defined in the XRC file. -This code generation can make it easier to use XRC and automate program -development. -The classes can be used as basis for development, freeing the -programmer from dealing with most of the XRC specifics (e.g. {\tt XRCCTRL}). - -For each top level window defined in the XRC file a C++ class definition is -generated, containing as class members the named widgets of the window. -A default constructor for each class is also generated. Inside the constructor -all XRC loading is done and all class members representing widgets are initialized. - -A simple example will help understand how the scheme works. Suppose you have -a XRC file defining a top level window {\tt TestWnd\_Base}, which subclasses {\tt wxFrame} (any -other class like {\tt wxDialog} will do also), and has subwidgets {\tt wxTextCtrl} A and {\tt wxButton} B. -The XRC file and corresponding class definition in the header file will be something like: - -\begin{verbatim} - - - - -1,-1 - Test - - wxHORIZONTAL - - - - - - - - - - - - - - - -class TestWnd_Base : public wxFrame { -protected: - wxTextCtrl* A; - wxButton* B; - -private: - void InitWidgetsFromXRC(){ - wxXmlResource::Get()->LoadObject(this,NULL,"TestWnd","wxFrame"); - A = XRCCTRL(*this,"A",wxTextCtrl); - B = XRCCTRL(*this,"B",wxButton); - } -public: -TestWnd::TestWnd(){ - InitWidgetsFromXRC(); - } -}; -\end{verbatim} - -The generated window class can be used as basis for the full window class. The -class members which represent widgets may be accessed by name instead of using -{\tt XRCCTRL} every time you wish to reference them (note that they are {\tt protected} class members), -though you must still use {\tt XRCID} to refer to widget IDs in the event -table. - -Example: - -\begin{verbatim} -#include "resource.h" - -class TestWnd : public TestWnd_Base { - public: - TestWnd(){ - // A, B already initialised at this point - A->SetValue("Updated in TestWnd::TestWnd"); - B->SetValue("Nice :)"); - } - void OnBPressed(wxEvent& event){ - Close(); - } - DECLARE_EVENT_TABLE(); -}; - -BEGIN_EVENT_TABLE(TestWnd,TestWnd_Base) -EVT_BUTTON(XRCID("B"),TestWnd::OnBPressed) -END_EVENT_TABLE() - -\end{verbatim} - -It is also possible to access the wxSizerItem of a sizer that is part of -a resource. This can be done using {\tt XRCSIZERITEM} as shown. The -resource file can have something like this for a sizer item. - -\begin{verbatim} - - 400, 300 - -\end{verbatim} - -The code can then access the sizer item by using {\tt XRCSIZERITEM} and -{\tt XRCID} together. - -\begin{verbatim} -wxSizerItem* item = XRCSIZERITEM(*this, "area"); -\end{verbatim} - -\subsection{Adding new resource handlers}\label{newresourcehandlers} - -Adding a new resource handler is pretty easy. -Typically, to add an handler for the {\tt MyControl} class, you'll want to create -the {\tt xh\_mycontrol.h} {\tt xh\_mycontrol.cpp} files. - -The header needs to contains the {\tt MyControlXmlHandler} class definition: - -\begin{verbatim} -class MyControlXmlHandler : public wxXmlResourceHandler -{ -public: - - // Constructor. - MyControlXmlHandler(); - - // Creates the control and returns a pointer to it. - virtual wxObject *DoCreateResource(); - - // Returns true if we know how to create a control for the given node. - virtual bool CanHandle(wxXmlNode *node); - - // Register with wxWidgets' dynamic class subsystem. - DECLARE_DYNAMIC_CLASS(MyControlXmlHandler) -}; -\end{verbatim} - -The implementation of your custom XML handler will typically look as: - -\begin{verbatim} -// Register with wxWidgets' dynamic class subsystem. -IMPLEMENT_DYNAMIC_CLASS(MyControlXmlHandler, wxXmlResourceHandler) - -MyControlXmlHandler::MyControlXmlHandler() -{ - // this call adds support for all wxWindows class styles - // (e.g. wxBORDER_SIMPLE, wxBORDER_SUNKEN, wxWS_EX_* etc etc) - AddWindowStyles(); - - // if MyControl class supports e.g. MYCONTROL_DEFAULT_STYLE - // you should use: - // XRC_ADD_STYLE(MYCONTROL_DEFAULT_STYLE); -} - -wxObject *MyControlXmlHandler::DoCreateResource() -{ - // the following macro will init a pointer named "control" - // with a new instance of the MyControl class, but will NOT - // Create() it! - XRC_MAKE_INSTANCE(control, MyControl) - - // this is the point where you'll typically need to do the most - // important changes: here the control is created and initialized. - // You'll want to use the wxXmlResourceHandler's getters to - // do most of your work. - // If e.g. the MyControl::Create function looks like: - // - // bool MyControl::Create(wxWindow *parent, int id, - // const wxBitmap &first, const wxPoint &posFirst, - // const wxBitmap &second, const wxPoint &posSecond, - // const wxString &theTitle, const wxFont &titleFont, - // const wxPoint &pos, const wxSize &size, - // long style = MYCONTROL_DEFAULT_STYLE, - // const wxString &name = wxT("MyControl")); - // - // then the XRC for your component should look like: - // - // - // first.xpm - // text.xpm - // 3,3 - // 4,4 - // a title - // - // - // - // - // - // - // and the code to read your custom tags from the XRC file is just: - control->Create(m_parentAsWindow, GetID(), - GetBitmap(wxT("first-bitmap")), - GetPosition(wxT("first-pos")), - GetBitmap(wxT("second-bitmap")), - GetPosition(wxT("second-pos")), - GetText(wxT("the-title")), - GetFont(wxT("title-font")), - GetPosition(), GetSize(), GetStyle(), GetName()); - - SetupWindow(control); - - return control; -} - -bool MyControlXmlHandler::CanHandle(wxXmlNode *node) -{ - // this function tells XRC system that this handler can parse - // the tags - return IsOfClass(node, wxT("MyControl")); -} -\end{verbatim} - -You may want to check the \helpref{wxXmlResourceHandler}{wxxmlresourcehandler} documentation -to see how many built-in getters it contains. It's very easy to retrieve also complex structures -out of XRC files using them. - diff --git a/docs/latex/wx/txtdatob.tex b/docs/latex/wx/txtdatob.tex deleted file mode 100644 index bcd4d9be20..0000000000 --- a/docs/latex/wx/txtdatob.tex +++ /dev/null @@ -1,85 +0,0 @@ -\section{\class{wxTextDataObject}}\label{wxtextdataobject} - -wxTextDataObject is a specialization of wxDataObject for text data. It can be -used without change to paste data into the \helpref{wxClipboard}{wxclipboard} -or a \helpref{wxDropSource}{wxdropsource}. A user may wish to derive a new -class from this class for providing text on-demand in order to minimize memory -consumption when offering data in several formats, such as plain text and RTF -because by default the text is stored in a string in this class, but it might -as well be generated when requested. For this, -\helpref{GetTextLength}{wxtextdataobjectgettextlength} and -\helpref{GetText}{wxtextdataobjectgettext} will have to be overridden. - -Note that if you already have the text inside a string, you will not achieve -any efficiency gain by overriding these functions because copying wxStrings is -already a very efficient operation (data is not actually copied because -wxStrings are reference counted). - -\pythonnote{If you wish to create a derived wxTextDataObject class in -wxPython you should derive the class from wxPyTextDataObject -in order to get Python-aware capabilities for the various virtual -methods.} - -\wxheading{Virtual functions to override} - -This class may be used as is, but all of the data transfer functions may be -overridden to increase efficiency. - -\wxheading{Derived from} - -\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview}, -\helpref{wxDataObject}{wxdataobject}, -\helpref{wxDataObjectSimple}{wxdataobjectsimple}, -\helpref{wxFileDataObject}{wxfiledataobject}, -\helpref{wxBitmapDataObject}{wxbitmapdataobject} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextDataObject::wxTextDataObject}\label{wxtextdataobjectwxtextdataobject} - -\func{}{wxTextDataObject}{\param{const wxString\& }{text = wxEmptyString}} - -Constructor, may be used to initialise the text (otherwise -\helpref{SetText}{wxtextdataobjectsettext} should be used later). - -\membersection{wxTextDataObject::GetTextLength}\label{wxtextdataobjectgettextlength} - -\constfunc{virtual size\_t}{GetTextLength}{\void} - -Returns the data size. By default, returns the size of the text data -set in the constructor or using \helpref{SetText}{wxtextdataobjectsettext}. -This can be overridden to provide text size data on-demand. It is recommended -to return the text length plus 1 for a trailing zero, but this is not -strictly required. - -\membersection{wxTextDataObject::GetText}\label{wxtextdataobjectgettext} - -\constfunc{virtual wxString}{GetText}{\void} - -Returns the text associated with the data object. You may wish to override -this method when offering data on-demand, but this is not required by -wxWidgets' internals. Use this method to get data in text form from -the \helpref{wxClipboard}{wxclipboard}. - -\membersection{wxTextDataObject::SetText}\label{wxtextdataobjectsettext} - -\func{virtual void}{SetText}{\param{const wxString\& }{strText}} - -Sets the text associated with the data object. This method is called -when the data object receives the data and, by default, copies the text into -the member variable. If you want to process the text on the fly you may wish to -override this function. - diff --git a/docs/latex/wx/txtdrptg.tex b/docs/latex/wx/txtdrptg.tex deleted file mode 100644 index 7039b5808a..0000000000 --- a/docs/latex/wx/txtdrptg.tex +++ /dev/null @@ -1,54 +0,0 @@ -\section{\class{wxTextDropTarget}}\label{wxtextdroptarget} - -A predefined drop target for dealing with text data. - -\wxheading{Derived from} - -\helpref{wxDropTarget}{wxdroptarget} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Drag and drop overview}{wxdndoverview}, \helpref{wxDropSource}{wxdropsource}, -\helpref{wxDropTarget}{wxdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextDropTarget::wxTextDropTarget}\label{wxtextdroptargetwxtextdroptarget} - -\func{}{wxTextDropTarget}{\void} - -Constructor. - -\membersection{wxTextDropTarget::OnDrop}\label{wxtextdroptargetondrop} - -\func{virtual bool}{OnDrop}{\param{long }{x}, \param{long }{y}, \param{const void }{*data}, \param{size\_t }{size}} - -See \helpref{wxDropTarget::OnDrop}{wxdroptargetondrop}. This function is implemented -appropriately for text, and calls \helpref{wxTextDropTarget::OnDropText}{wxtextdroptargetondroptext}. - -\membersection{wxTextDropTarget::OnDropText}\label{wxtextdroptargetondroptext} - -\func{virtual bool}{OnDropText}{\param{wxCoord }{x}, \param{wxCoord }{y}, \param{const wxString\&}{ data}} - -Override this function to receive dropped text. - -\wxheading{Parameters} - -\docparam{x}{The x coordinate of the mouse.} - -\docparam{y}{The y coordinate of the mouse.} - -\docparam{data}{The data being dropped: a wxString.} - -\wxheading{Return value} - -Return true to accept the data, false to veto the operation. - diff --git a/docs/latex/wx/txtstrm.tex b/docs/latex/wx/txtstrm.tex deleted file mode 100644 index 3a6a48f350..0000000000 --- a/docs/latex/wx/txtstrm.tex +++ /dev/null @@ -1,304 +0,0 @@ -% ---------------------------------------------------------------------------- -% wxTextInputStream -% ---------------------------------------------------------------------------- -\section{\class{wxTextInputStream}}\label{wxtextinputstream} - -This class provides functions that read text datas using an input stream. -So, you can read {\it text} floats, integers. - -The wxTextInputStream correctly reads text files (or streams) in DOS, Macintosh -and Unix formats and reports a single newline char as a line ending. - -Operator >> is overloaded and you can use this class like a standard C++ iostream. -Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc -and on a typical 32-bit computer, none of these match to the "long" type (wxInt32 -is defined as int on 32-bit architectures) so that you cannot use long. To avoid -problems (here and elsewhere), make use of wxInt32, wxUint32 and similar types. - -If you're scanning through a file using wxTextInputStream, you should check for EOF {\bf before} -reading the next item (word / number), because otherwise the last item may get lost. -You should however be prepared to receive an empty item (empty string / zero number) at the -end of file, especially on Windows systems. This is unavoidable because most (but not all) files end -with whitespace (i.e. usually a newline). - -For example: - -\begin{verbatim} - wxFileInputStream input( "mytext.txt" ); - wxTextInputStream text( input ); - wxUint8 i1; - float f2; - wxString line; - - text >> i1; // read a 8 bit integer. - text >> i1 >> f2; // read a 8 bit integer followed by float. - text >> line; // read a text line -\end{verbatim} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTextInputStream::wxTextInputStream}\label{wxtextinputstreamctor} - -\func{}{wxTextInputStream}{\param{wxInputStream\&}{ stream}, \param{const wxString\&}{ sep=" $\backslash$t"}, - \param{const wxMBConv\&}{ conv = wxConvAuto()} } - -Constructs a text stream associated to the given input stream. - -\wxheading{Parameters} - -\docparam{stream}{The underlying input stream.} - -\docparam{sep}{The initial string separator characters.} - -\docparam{conv}{{\it In Unicode build only:} The encoding converter used to convert the bytes in the - underlying input stream to characters.} - - -\membersection{wxTextInputStream::\destruct{wxTextInputStream}}\label{wxtextinputstreamdtor} - -\func{}{\destruct{wxTextInputStream}}{\void} - -Destroys the wxTextInputStream object. - - -\membersection{wxTextInputStream::Read8}\label{wxtextinputstreamread8} - -\func{wxUint8}{Read8}{\param{int}{ base = 10}} - -Reads a single unsigned byte from the stream, given in base {\it base}. - -The value of {\it base} must be comprised between $2$ and $36$, inclusive, or -be a special value $0$ which means that the usual rules of {\tt C} numbers are -applied: if the number starts with {\tt 0x} it is considered to be in base -$16$, if it starts with {\tt 0} - in base $8$ and in base $10$ otherwise. Note -that you may not want to specify the base $0$ if you are parsing the numbers -which may have leading zeroes as they can yield unexpected (to the user not -familiar with C) results. - - -\membersection{wxTextInputStream::Read8S}\label{wxtextinputstreamread8s} - -\func{wxInt8}{Read8S}{\param{int}{ base = 10}} - -Reads a single signed byte from the stream. - -See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the -description of the {\it base} parameter. - - -\membersection{wxTextInputStream::Read16}\label{wxtextinputstreamread16} - -\func{wxUint16}{Read16}{\param{int}{ base = 10}} - -Reads a unsigned 16 bit integer from the stream. - -See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the -description of the {\it base} parameter. - - -\membersection{wxTextInputStream::Read16S}\label{wxtextinputstreamread16s} - -\func{wxInt16}{Read16S}{\param{int}{ base = 10}} - -Reads a signed 16 bit integer from the stream. - -See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the -description of the {\it base} parameter. - - -\membersection{wxTextInputStream::Read32}\label{wxtextinputstreamread32} - -\func{wxUint32}{Read32}{\param{int}{ base = 10}} - -Reads a 32 bit unsigned integer from the stream. - -See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the -description of the {\it base} parameter. - - -\membersection{wxTextInputStream::Read32S}\label{wxtextinputstreamread32s} - -\func{wxInt32}{Read32S}{\param{int}{ base = 10}} - -Reads a 32 bit signed integer from the stream. - -See \helpref{wxTextInputStream::Read8}{wxtextinputstreamread8} for the -description of the {\it base} parameter. - - -\membersection{wxTextInputStream::GetChar}\label{wxtextinputstreamgetchar} - -\func{wxChar}{GetChar}{\void} - -Reads a character, returns $0$ if there are no more characters in the stream. - - -\membersection{wxTextInputStream::ReadDouble}\label{wxtextinputstreamreaddouble} - -\func{double}{ReadDouble}{\void} - -Reads a double (IEEE encoded) from the stream. - - -\membersection{wxTextInputStream::ReadLine}\label{wxtextinputstreamreadline} - -\func{wxString}{ReadLine}{\void} - -Reads a line from the input stream and returns it (without the end of line -character). - - -\membersection{wxTextInputStream::ReadString}\label{wxtextinputstreamreadstring} - -\func{wxString}{ReadString}{\void} - -{\bf NB:} This method is deprecated, use \helpref{ReadLine}{wxtextinputstreamreadline} -or \helpref{ReadWord}{wxtextinputstreamreadword} instead. - -Same as \helpref{ReadLine}{wxtextinputstreamreadline}. - - -\membersection{wxTextInputStream::ReadWord}\label{wxtextinputstreamreadword} - -\func{wxString}{ReadWord}{\void} - -Reads a word (a sequence of characters until the next separator) from the -input stream. - -\wxheading{See also} - -\helpref{SetStringSeparators}{wxtextinputstreamsetstringseparators} - - -\membersection{wxTextInputStream::SetStringSeparators}\label{wxtextinputstreamsetstringseparators} - -\func{void}{SetStringSeparators}{\param{const wxString\& }{sep}} - -Sets the characters which are used to define the word boundaries in -\helpref{ReadWord}{wxtextinputstreamreadword}. - -The default separators are the space and {\tt TAB} characters. - -% ---------------------------------------------------------------------------- -% wxTextOutputStream -% ---------------------------------------------------------------------------- - -\section{\class{wxTextOutputStream}}\label{wxtextoutputstream} - -This class provides functions that write text datas using an output stream. -So, you can write {\it text} floats, integers. - -You can also simulate the C++ cout class: - -\begin{verbatim} - wxFFileOutputStream output( stderr ); - wxTextOutputStream cout( output ); - - cout << "This is a text line" << endl; - cout << 1234; - cout << 1.23456; -\end{verbatim} - -The wxTextOutputStream writes text files (or streams) on DOS, Macintosh -and Unix in their native formats (concerning the line ending). - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxTextOutputStream::wxTextOutputStream}\label{wxtextoutputstreamctor} - -\func{}{wxTextOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxEOL}{ mode = wxEOL\_NATIVE}, \param{const wxMBConv\&}{ conv = wxConvAuto()}} - -Constructs a text stream object associated to the given output stream. - -\wxheading{Parameters} - -\docparam{stream}{The output stream.} - -\docparam{mode}{The end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}.} - -\docparam{conv}{{\it In Unicode build only:} The object used to convert -Unicode text into ASCII characters written to the output stream.} - - -\membersection{wxTextOutputStream::\destruct{wxTextOutputStream}}\label{wxtextoutputstreamdtor} - -\func{}{\destruct{wxTextOutputStream}}{\void} - -Destroys the wxTextOutputStream object. - - -\membersection{wxTextOutputStream::GetMode}\label{wxtextoutputstreamgetmode} - -\func{wxEOL}{GetMode}{\void} - -Returns the end-of-line mode. One of {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}. - - -\membersection{wxTextOutputStream::PutChar}\label{wxtextoutputstreamputchar} - -\func{void}{PutChar}{{\param wxChar }{c}} - -Writes a character to the stream. - - -\membersection{wxTextOutputStream::SetMode}\label{wxtextoutputstreamsetmode} - -\func{void}{SetMode}{{\param wxEOL}{ mode = wxEOL\_NATIVE}} - -Set the end-of-line mode. One of {\bf wxEOL\_NATIVE}, {\bf wxEOL\_DOS}, {\bf wxEOL\_MAC} and {\bf wxEOL\_UNIX}. - - -\membersection{wxTextOutputStream::Write8}\label{wxtextoutputstreamwrite8} - -\func{void}{Write8}{{\param wxUint8 }{i8}} - -Writes the single byte {\it i8} to the stream. - - -\membersection{wxTextOutputStream::Write16}\label{wxtextoutputstreamwrite16} - -\func{void}{Write16}{{\param wxUint16 }{i16}} - -Writes the 16 bit integer {\it i16} to the stream. - - -\membersection{wxTextOutputStream::Write32}\label{wxtextoutputstreamwrite32} - -\func{void}{Write32}{{\param wxUint32 }{i32}} - -Writes the 32 bit integer {\it i32} to the stream. - - -\membersection{wxTextOutputStream::WriteDouble}\label{wxtextoutputstreamwritedouble} - -\func{virtual void}{WriteDouble}{{\param double }{f}} - -Writes the double {\it f} to the stream using the IEEE format. - - -\membersection{wxTextOutputStream::WriteString}\label{wxtextoutputstreamwritestring} - -\func{virtual void}{WriteString}{{\param const wxString\& }{string}} - -Writes {\it string} as a line. Depending on the end-of-line mode the end of -line ('$\backslash$n') characters in the string are converted to the correct -line ending terminator. - diff --git a/docs/latex/wx/up.gif b/docs/latex/wx/up.gif deleted file mode 100644 index 870c89e80a826e3b225cc8fe9a30edf9c5a66c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 998 zcmZ?wbhEHbbYM_m_|5fj;(a}CV`%O8V#mmmJDyQBv znOUrUdY)b7p%TfE - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Event table macros} - -To process an update event, use these event handler macros to direct input to member -functions that take a wxUpdateUIEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf EVT\_UPDATE\_UI(id, func)}}{Process a wxEVT\_UPDATE\_UI event for the command with the given id.} -\twocolitem{{\bf EVT\_UPDATE\_UI\_RANGE(id1, id2, func)}}{Process a wxEVT\_UPDATE\_UI event for any command with id included in the given range.} -\end{twocollist} - -\wxheading{Remarks} - -Without update UI events, an application has to work hard to check/uncheck, enable/disable, -show/hide, and set the text for elements such as menu items and toolbar buttons. -The code for doing this has to be mixed up with the code that is invoked when -an action is invoked for a menu item or button. - -With update UI events, you define an event handler to look at the state of -the application and change UI elements accordingly. wxWidgets will call your -member functions in idle time, so you don't have to worry where to call this code. -In addition to being a clearer and more declarative method, it also means you -don't have to worry whether you're updating a toolbar or menubar identifier. -The same handler can update a menu item and toolbar button, if the identifier is the same. - -Instead of directly manipulating the menu or button, you call functions in the event -object, such as \helpref{wxUpdateUIEvent::Check}{wxupdateuieventcheck}. wxWidgets -will determine whether such a call has been made, and which UI element to update. - -These events will work for popup menus as well as menubars. Just before a menu is popped -up, \helpref{wxMenu::UpdateUI}{wxmenuupdateui} is called to process any UI events for -the window that owns the menu. - -If you find that the overhead of UI update processing is affecting -your application, you can do one or both of the following: - -\begin{enumerate} -\item Call \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} with -a value of wxUPDATE\_UI\_PROCESS\_SPECIFIED, and set the extra style -wxWS\_EX\_PROCESS\_UI\_UPDATES for every window that should receive update events. -No other windows will receive update events. -\item Call \helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval} with -a millisecond value to set the delay between updates. You may need -to call \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui} at critical -points, for example when a dialog is about to be shown, in case the user -sees a slight delay before windows are updated. -\end{enumerate} - -Note that although events are sent in idle time, defining a wxIdleEvent -handler for a window does not affect this because the events are sent from \helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle} -which is {\bf always} called in idle time. - -wxWidgets tries to optimize update events on some platforms. On Windows -and GTK+, events for menubar items are only sent when the menu is about -to be shown, and not in idle time. - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxUpdateUIEvent::wxUpdateUIEvent}\label{wxupdateuieventctor} - -\func{}{wxUpdateUIEvent}{\param{wxWindowID }{commandId = 0}} - -Constructor. - -\membersection{wxUpdateUIEvent::CanUpdate}\label{wxupdateuieventcanupdate} - -\func{static bool}{CanUpdate}{\param{wxWindow*}{ window}} - -Returns {\tt true} if it is appropriate to update (send UI update events to) -this window. - -This function looks at the mode used (see \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode}), -the wxWS\_EX\_PROCESS\_UI\_UPDATES flag in {\it window}, -the time update events were last sent in idle time, and -the update interval, to determine whether events should be sent to -this window now. By default this will always return {\tt true} because -the update mode is initially wxUPDATE\_UI\_PROCESS\_ALL and -the interval is set to 0; so update events will be sent as -often as possible. You can reduce the frequency that events -are sent by changing the mode and/or setting an update interval. - -\wxheading{See also} - -\helpref{wxUpdateUIEvent::ResetUpdateTime}{wxupdateuieventresetupdatetime}, -\helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval}, -\helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} - -\membersection{wxUpdateUIEvent::Check}\label{wxupdateuieventcheck} - -\func{void}{Check}{\param{bool}{ check}} - -Check or uncheck the UI element. - -\membersection{wxUpdateUIEvent::Enable}\label{wxupdateuieventenable} - -\func{void}{Enable}{\param{bool}{ enable}} - -Enable or disable the UI element. - -\membersection{wxUpdateUIEvent::Show}\label{wxupdateuieventshow} - -\func{void}{Show}{\param{bool}{ show}} - -Show or hide the UI element. - -\membersection{wxUpdateUIEvent::GetChecked}\label{wxupdateuieventgetchecked} - -\constfunc{bool}{GetChecked}{\void} - -Returns true if the UI element should be checked. - -\membersection{wxUpdateUIEvent::GetEnabled}\label{wxupdateuieventgetenabled} - -\constfunc{bool}{GetEnabled}{\void} - -Returns true if the UI element should be enabled. - -\membersection{wxUpdateUIEvent::GetShown}\label{wxupdateuieventgetshown} - -\constfunc{bool}{GetShown}{\void} - -Returns true if the UI element should be shown. - -\membersection{wxUpdateUIEvent::GetSetChecked}\label{wxupdateuieventgetsetchecked} - -\constfunc{bool}{GetSetChecked}{\void} - -Returns true if the application has called \helpref{wxUpdateUIEvent::Check}{wxupdateuieventcheck}. For wxWidgets internal use only. - -\membersection{wxUpdateUIEvent::GetSetEnabled}\label{wxupdateuieventgetsetenabled} - -\constfunc{bool}{GetSetEnabled}{\void} - -Returns true if the application has called \helpref{wxUpdateUIEvent::Enable}{wxupdateuieventenable}. For wxWidgets internal use only. - -\membersection{wxUpdateUIEvent::GetSetShown}\label{wxupdateuieventgetsetshown} - -\constfunc{bool}{GetSetShown}{\void} - -Returns true if the application has called \helpref{wxUpdateUIEvent::Show}{wxupdateuieventshow}. For wxWidgets internal use only. - -\membersection{wxUpdateUIEvent::GetSetText}\label{wxupdateuieventgetsettext} - -\constfunc{bool}{GetSetText}{\void} - -Returns true if the application has called \helpref{wxUpdateUIEvent::SetText}{wxupdateuieventsettext}. For wxWidgets internal use only. - -\membersection{wxUpdateUIEvent::GetText}\label{wxupdateuieventgettext} - -\constfunc{wxString}{GetText}{\void} - -Returns the text that should be set for the UI element. - -\membersection{wxUpdateUIEvent::GetMode}\label{wxupdateuieventgetmode} - -\func{static wxUpdateUIMode}{GetMode}{\void} - -Static function returning a value specifying how wxWidgets -will send update events: to all windows, or only to those which specify that they -will process the events. - -See \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode}. - -\membersection{wxUpdateUIEvent::GetUpdateInterval}\label{wxupdateuieventgetupdateinterval} - -\func{static long}{GetUpdateInterval}{\void} - -Returns the current interval between updates in milliseconds. --1 disables updates, 0 updates as frequently as possible. - -See \helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval}. - -\membersection{wxUpdateUIEvent::ResetUpdateTime}\label{wxupdateuieventresetupdatetime} - -\func{static void}{ResetUpdateTime}{\void} - -Used internally to reset the last-updated time to the -current time. It is assumed that update events are -normally sent in idle time, so this is called at the end of -idle processing. - -\wxheading{See also} - -\helpref{wxUpdateUIEvent::CanUpdate}{wxupdateuieventcanupdate}, -\helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval}, -\helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} - -\membersection{wxUpdateUIEvent::SetMode}\label{wxupdateuieventsetmode} - -\func{static void}{SetMode}{\param{wxUpdateUIMode }{mode}} - -Specify how wxWidgets will send update events: to -all windows, or only to those which specify that they -will process the events. - -{\it mode} may be one of the following values. -The default is wxUPDATE\_UI\_PROCESS\_ALL. - -\begin{verbatim} -enum wxUpdateUIMode -{ - // Send UI update events to all windows - wxUPDATE_UI_PROCESS_ALL, - - // Send UI update events to windows that have - // the wxWS_EX_PROCESS_UI_UPDATES flag specified - wxUPDATE_UI_PROCESS_SPECIFIED -}; -\end{verbatim} - -\membersection{wxUpdateUIEvent::SetText}\label{wxupdateuieventsettext} - -\func{void}{SetText}{\param{const wxString\&}{ text}} - -Sets the text for this UI element. - -\membersection{wxUpdateUIEvent::SetUpdateInterval}\label{wxupdateuieventsetupdateinterval} - -\func{static void}{SetUpdateInterval}{\param{long }{updateInterval}} - -Sets the interval between updates in milliseconds. -Set to -1 to disable updates, or to 0 to update as frequently as possible. -The default is 0. - -Use this to reduce the overhead of UI update events if your application -has a lot of windows. If you set the value to -1 or greater than 0, -you may also need to call \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui} -at appropriate points in your application, such as when a dialog -is about to be shown. - diff --git a/docs/latex/wx/uri.tex b/docs/latex/wx/uri.tex deleted file mode 100644 index 3789d27395..0000000000 --- a/docs/latex/wx/uri.tex +++ /dev/null @@ -1,379 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: uri.tex -%% Purpose: wxURI docs -%% Author: Ryan Norton -%% Modified by: -%% Created: 7/7/2004 -%% RCS-ID: $Id$ -%% Copyright: (c) Ryan Norton -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxURI}}\label{wxuri} - -wxURI is used to extract information from -a URI (Uniform Resource Identifier). - -For information about URIs, see -\urlref{RFC 3986}{http://www.ietf.org/rfc/rfc3986.txt}. - -In short, a URL \em{is} a URI. In other -words, URL is a subset of a URI - all -acceptable URLs are also acceptable URIs. - -wxURI automatically escapes invalid characters in a string, -so there is no chance of wxURI "failing" on construction/creation. - -wxURI supports copy construction and standard assignment -operators. wxURI can also be inherited from to provide -furthur functionality. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxURL}{wxurl} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{Obtaining individual components}\label{obtainingwxuricomponents} - -To obtain individual components you can use -one of the following methods - -\helpref{GetScheme}{wxurigetscheme}\\ -\helpref{GetUserInfo}{wxurigetuserinfo}\\ -\helpref{GetServer}{wxurigetserver}\\ -\helpref{GetPort}{wxurigetport}\\ -\helpref{GetPath}{wxurigetpath}\\ -\helpref{GetQuery}{wxurigetquery}\\ -\helpref{GetFragment}{wxurigetfragment} - -However, you should check HasXXX before -calling a get method, which determines whether or not the component referred -to by the method is defined according to RFC 2396. - -Consider an undefined component equivalent to a -NULL C string.\\ -\\ -\helpref{HasScheme}{wxurihasscheme}\\ -\helpref{HasUserInfo}{wxurihasuserinfo}\\ -\helpref{HasServer}{wxurihasserver}\\ -\helpref{HasPort}{wxurihasserver}\\ -\helpref{HasPath}{wxurihaspath}\\ -\helpref{HasQuery}{wxurihasquery}\\ -\helpref{HasFragment}{wxurihasfragment} - -Example: -\begin{verbatim} -//protocol will hold the http protocol (i.e. "http") -wxString protocol; -wxURI myuri(wxT("http://mysite.com")); -if(myuri.HasScheme()) - protocol = myuri.GetScheme(); -\end{verbatim} - -\membersection{Deviations from the RFC}\label{deviationsfromrfc} - -Note that on URIs with a "file" scheme wxURI does not -parse the userinfo, server, or port portion. This is to keep -compatability with wxFileSystem, the old wxURL, and older url specifications. - -\membersection{wxURI::wxURI}\label{wxuriwxuri} - -\func{}{wxURI}{\void} - -Creates an empty URI. - -\func{}{wxURI}{\param{const wxChar* }{uri}} - -Constructor for quick creation. - -\docparam{uri}{string to initialize with} - -\func{}{wxURI}{\param{const wxURI\& }{uri}} - -Copies this URI from another URI. - -\docparam{uri}{URI (Uniform Resource Identifier) to initialize with} - - -\membersection{wxURI::BuildURI}\label{wxuribuilduri} - -\constfunc{wxString}{BuildURI}{\void} - -Builds the URI from its individual components and adds proper separators. - -If the URI is not a reference or is not resolved, -the URI that is returned from Get is the same one -passed to Create. - - -\membersection{wxURI::BuildUnescapedURI}\label{wxuribuildunescapeduri} - -\constfunc{wxString}{BuildUnescapedURI}{\void} - -Builds the URI from its individual components, adds proper separators, and -returns escape sequences to normal characters. - -Note that it is preferred to call this over Unescape(BuildURI()) since -\helpref{BuildUnescapedURI}{wxuribuildunescapeduri} performs some optimizations over the plain method. - - -\membersection{wxURI::Create}\label{wxuricreate} - -\func{const wxChar*}{Create}{\param{const wxString&}{uri}} - -Creates this URI from the string \arg{uri}. - -Returns the position at which parsing stopped (there -is no such thing as an "invalid" wxURI). - -\docparam{uri}{string to initialize from} - - -\membersection{wxURI::GetFragment}\label{wxurigetfragment} - -\constfunc{const wxString&}{GetFragment}{\void} - -Obtains the fragment of this URI. - -The fragment of a URI is the last value of the URI, -and is the value after a '#' character after the path -of the URI. - -\tt{http://mysite.com/mypath\#} - -\membersection{wxURI::GetHostType}\label{wxurigethosttype} - -\constfunc{const HostType\&}{GetHostType}{\void} - -Obtains the host type of this URI, which is of type -wxURI::HostType: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf wxURI\_REGNAME}}{Server is a host name, or the Server component itself is undefined.} -\twocolitem{{\bf wxURI\_IPV4ADDRESS}}{Server is a IP version 4 address (XXX.XXX.XXX.XXX)} -\twocolitem{{\bf wxURI\_IPV6ADDRESS}}{Server is a IP version 6 address ((XXX:)XXX::(XXX)XXX:XXX} -\twocolitem{{\bf wxURI\_IPVFUTURE}}{Server is an IP address, but not versions 4 or 6} -\end{twocollist} - - -\membersection{wxURI::GetPassword}\label{wxurigetpassword} - -\constfunc{const wxString&}{GetPassword}{\void} - -Returns the password part of the userinfo component of -this URI. Note that this is explicitly depreciated by -RFC 1396 and should generally be avoided if possible. - -\tt{http://:@mysite.com/mypath} - - -\membersection{wxURI::GetPath}\label{wxurigetpath} - -\constfunc{const wxString&}{GetPath}{\void} - -Returns the (normalized) path of the URI. - -The path component of a URI comes -directly after the scheme component -if followed by zero or one slashes ('/'), -or after the server/port component. - -Absolute paths include the leading '/' -character. - -\tt{http://mysite.com} - -\membersection{wxURI::GetPort}\label{wxurigetport} - -\constfunc{const wxString&}{GetPort}{\void} - -Returns a string representation of the URI's port. - -The Port of a URI is a value after the server, and -must come after a colon (:). - -\tt{http://mysite.com:} - -Note that you can easily get the numeric value of the port -by using wxAtoi or wxString::Format. - -\membersection{wxURI::GetQuery}\label{wxurigetquery} - -\constfunc{const wxString&}{GetQuery}{\void} - -Returns the Query component of the URI. - -The query component is what is commonly passed to a -cgi application, and must come after the path component, -and after a '?' character. - -\tt{http://mysite.com/mypath?} - - -\membersection{wxURI::GetScheme}\label{wxurigetscheme} - -\constfunc{const wxString&}{GetScheme}{\void} - -Returns the Scheme component of the URI. - -The first part of the uri. - -\tt{://mysite.com} - - -\membersection{wxURI::GetServer}\label{wxurigetserver} - -\constfunc{const wxString&}{GetServer}{\void} - -Returns the Server component of the URI. - -The server of the uri can be a server name or -a type of ip address. See -\helpref{GetHostType}{wxurigethosttype} for the -possible values for the host type of the -server component. - -\tt{http:///mypath} - - -\membersection{wxURI::GetUser}\label{wxurigetuser} - -\constfunc{const wxString&}{GetUser}{\void} - -Returns the username part of the userinfo component of -this URI. Note that this is explicitly depreciated by -RFC 1396 and should generally be avoided if possible. - -\tt{http://:@mysite.com/mypath} - - -\membersection{wxURI::GetUserInfo}\label{wxurigetuserinfo} - -\constfunc{const wxString&}{GetUserInfo}{\void} - -Returns the UserInfo component of the URI. - -The component of a URI before the server component -that is postfixed by a '@' character. - -\tt{http://@mysite.com/mypath} - - -\membersection{wxURI::HasFragment}\label{wxurihasfragment} - -\constfunc{bool}{HasFragment}{\void} - -Returns \true if the Fragment component of the URI exists. - - -\membersection{wxURI::HasPath}\label{wxurihaspath} - -\constfunc{bool}{HasPath}{\void} - -Returns \true if the Path component of the URI exists. - - -\membersection{wxURI::HasPort}\label{wxurihasport} - -\constfunc{bool}{HasPort}{\void} - -Returns \true if the Port component of the URI exists. - - -\membersection{wxURI::HasQuery}\label{wxurihasquery} - -\constfunc{bool}{HasQuery}{\void} - -Returns \true if the Query component of the URI exists. - - -\membersection{wxURI::HasScheme}\label{wxurihasscheme} - -\constfunc{bool}{HasScheme}{\void} - -Returns \true if the Scheme component of the URI exists. - - -\membersection{wxURI::HasServer}\label{wxurihasserver} - -\constfunc{bool}{HasServer}{\void} - -Returns \true if the Server component of the URI exists. - - -\membersection{wxURI::HasUser}\label{wxurihasuserinfo} - -\constfunc{bool}{HasUser}{\void} - -Returns \true if the User component of the URI exists. - - -\membersection{wxURI::IsReference}\label{wxuriisreference} - -\constfunc{bool}{IsReference}{\void} - -Returns \true if a valid [absolute] URI, otherwise this URI -is a URI reference and not a full URI, and IsReference -returns \false. - - -\membersection{wxURI::operator ==}\label{wxurioperatorcompare} - -\func{void}{operator ==}{\param{const wxURI\& }{uricomp}} - -Compares this URI to another URI, and returns \true if -this URI equals \arg{uricomp}, otherwise it returns \false. - -\docparam{uricomp}{URI to compare to} - - -\membersection{wxURI::Resolve}\label{wxuriresolve} - -\func{void}{Resolve}{\param{const wxURI\& }{base}, \param{int }{flags = \texttt{wxURI\_STRICT}}} - -Inherits this URI from a base URI - components that do not -exist in this URI are copied from the base, and if this URI's -path is not an absolute path (prefixed by a '/'), then this URI's -path is merged with the base's path. - -For instance, resolving "../mydir" from "http://mysite.com/john/doe" -results in the scheme (http) and server (mysite.com) being copied into -this URI, since they do not exist. In addition, since the path -of this URI is not absolute (does not begin with '/'), the path -of the base's is merged with this URI's path, resulting in the URI -"http://mysite.com/john/mydir". - -\docparam{base}{Base URI to inherit from. Must be a full URI and not a reference} -\docparam{flags}{Currently either \texttt{wxURI\_STRICT} or $0$, in non-strict -mode some compatibility layers are enabled to allow loopholes from RFCs prior -to 2396} - -\membersection{wxURI::Unescape}\label{wxuriunescape} - -\func{wxString}{Unescape}{\param{const wxString\& }{uri}} - -Translates all escape sequences (% hex hex) of \arg{uri} into -normal characters and returns the result. - -This is the preferred over deprecated wxURL::ConvertFromURI. - -If you want to unescape an entire wxURI, use \helpref{BuildUnescapedURI}{wxuribuildunescapeduri} instead, -as it performs some optimizations over this method. - -\docparam{uri}{string with escaped characters to convert} - - diff --git a/docs/latex/wx/url.tex b/docs/latex/wx/url.tex deleted file mode 100644 index 4bb08b7256..0000000000 --- a/docs/latex/wx/url.tex +++ /dev/null @@ -1,174 +0,0 @@ -\section{\class{wxURL}}\label{wxurl} - -wxURL is a specialization of \helpref{wxURI}{wxuri} for parsing URLs. -Please look at \helpref{wxURI}{wxuri} documentation for more info about the functions -you can use to retrieve the various parts of the URL (scheme, server, port, etc). - -Supports standard assignment operators, copy constructors, -and comparison operators. - -\wxheading{Derived from} - -\helpref{wxURI}{wxuri}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxNet}{librarieslist} - -\wxheading{See also} - -\helpref{wxSocketBase}{wxsocketbase}, \helpref{wxProtocol}{wxprotocol} - -% ---------------------------------------------------------------------------- -% Members -% ---------------------------------------------------------------------------- - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxURL::wxURL}\label{wxurlctor} - -\func{}{wxURL}{\param{const wxString\&}{ url = wxEmptyString}} - -Constructs a URL object from the string. The URL must be valid according -to RFC 1738. In particular, file URLs must be of the format -{\tt file://hostname/path/to/file} otherwise \helpref{GetError}{wxurlgeterror} -will return a value different from {\tt wxURL\_NOERR}. - -It is valid to leave out the hostname but slashes must remain in place - -i.e. a file URL without a hostname must contain three consecutive slashes -(e.g. {\tt file:///somepath/myfile}). - -\wxheading{Parameters} - -\docparam{url}{Url string to parse.} - -\membersection{wxURL::\destruct{wxURL}}\label{wxurldtor} - -\func{}{\destruct{wxURL}}{\void} - -Destroys the URL object. - -% -% GetProtocol -% -\membersection{wxURL::GetProtocol}\label{wxurlgetprotocol} - -\func{wxProtocol\&}{GetProtocol}{\void} - -Returns a reference to the protocol which will be used to get the URL. - -% -% GetError -% -\membersection{wxURL::GetError}\label{wxurlgeterror} - -\constfunc{wxURLError}{GetError}{\void} - -Returns the last error. This error refers to the URL parsing or to the protocol. -It can be one of these errors: - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=0pt% -\twocolitem{{\bf wxURL\_NOERR}}{No error.} -\twocolitem{{\bf wxURL\_SNTXERR}}{Syntax error in the URL string.} -\twocolitem{{\bf wxURL\_NOPROTO}}{Found no protocol which can get this URL.} -\twocolitem{{\bf wxURL\_NOHOST}}{A host name is required for this protocol.} -\twocolitem{{\bf wxURL\_NOPATH}}{A path is required for this protocol.} -\twocolitem{{\bf wxURL\_CONNERR}}{Connection error.} -\twocolitem{{\bf wxURL\_PROTOERR}}{An error occurred during negotiation.} -\end{twocollist}% - -% -% GetInputStream -% -\membersection{wxURL::GetInputStream}\label{wxurlgetinputstream} - -\func{wxInputStream *}{GetInputStream}{\void} - -Creates a new input stream on the specified URL. You can use all but seek -functionality of wxStream. Seek isn't available on all streams. For example, -HTTP or FTP streams don't deal with it. - -Note that this method is somewhat deprecated, all future wxWidgets applications -should really use \helpref{wxFileSystem}{wxfilesystem} instead. - -Example: - -\begin{verbatim} - wxURL url("http://a.host/a.dir/a.file"); - if (url.GetError() == wxURL_NOERR) - { - wxInputStream *in_stream; - - in_stream = url.GetInputStream(); - // Then, you can use all IO calls of in_stream (See wxStream) - } -\end{verbatim} - -\wxheading{Return value} - -Returns the initialized stream. You will have to delete it yourself. - -\wxheading{See also} - -\helpref{wxInputStream}{wxinputstream} - - -% -% IsOk -% -\membersection{wxURL::IsOk}\label{wxurlgetisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if this object is correctly initialized, i.e. if -\helpref{GetError}{wxurlgeterror} returns {\tt wxURL\_NOERR}. - - -% -% SetDefaultProxy -% -\membersection{wxURL::SetDefaultProxy}\label{wxurlsetdefaultproxy} - -\func{static void}{SetDefaultProxy}{\param{const wxString\&}{ url\_proxy}} - -Sets the default proxy server to use to get the URL. The string specifies -the proxy like this: :. - -\wxheading{Parameters} - -\docparam{url\_proxy}{Specifies the proxy to use} - -\wxheading{See also} - -\helpref{wxURL::SetProxy}{wxurlsetproxy} - -% -% SetProxy -% -\membersection{wxURL::SetProxy}\label{wxurlsetproxy} - -\func{void}{SetProxy}{\param{const wxString\&}{ url\_proxy}} - -Sets the proxy to use for this URL. - -\wxheading{See also} - -\helpref{wxURL::SetDefaultProxy}{wxurlsetdefaultproxy} - - -% -% SetURL -% -\membersection{wxURL::SetURL}\label{wxurlseturl} - -\func{wxURLError}{SetURL}{\param{const wxString\&}{ url}} - -Initializes this object with the given URL and returns {\tt wxURL\_NOERR} -if it's valid (see \helpref{GetError}{wxurlgeterror} for more info). - diff --git a/docs/latex/wx/urldataob.tex b/docs/latex/wx/urldataob.tex deleted file mode 100644 index a478b39591..0000000000 --- a/docs/latex/wx/urldataob.tex +++ /dev/null @@ -1,75 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: urldataob.tex -%% Purpose: wxURLDataObject documentation -%% Author: Vadim Zeitlin -%% Created: 2006-08-23 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxURLDataObject}}\label{wxurldataobject} - -wxURLDataObject is a \helpref{wxDataObject}{wxdataobject} containing an URL -and can be used e.g. when you need to put an URL on or retrieve it from the -clipboard: -\begin{verbatim} - wxTheClipboard->SetData(new wxURLDataObject(url)); -\end{verbatim} - - -\wxheading{Derived from} - -Under MSW: - -\helpref{wxDataObjectComposite}{wxdataobjectcomposite}\\ -\helpref{wxDataObject}{wxdataobject} - -Under GTK+ - -\helpref{wxDataObjectComposite}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -Under the other platforms: - -\helpref{wxTextDataObject}{wxtextdataobject}\\ -\helpref{wxDataObjectSimple}{wxdataobjectsimple}\\ -\helpref{wxDataObject}{wxdataobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Clipboard and drag and drop overview}{wxdndoverview},\\ -\helpref{wxDataObject}{wxdataobject} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxURLDataObject::wxURLDataObject}\label{wxurldataobjectctor} - -\func{}{wxURLDataObject}{\param{const wxString\& }{url = wxEmptyString}} - -Constructor, may be used to initialize the URL. If \arg{url} is empty, -\helpref{SetURL}{wxurldataobjectseturl} can be used later. - - -\membersection{wxURLDataObject::GetURL}\label{wxurldataobjectgeturl} - -\constfunc{wxString}{GetURL}{\void} - -Returns the URL stored by this object, as a string. - - -\membersection{wxURLDataObject::SetURL}\label{wxurldataobjectseturl} - -\func{void}{SetURL}{\param{const wxString\& }{url}} - -Sets the URL stored by this object. - diff --git a/docs/latex/wx/valgen.tex b/docs/latex/wx/valgen.tex deleted file mode 100644 index 367d17a8ee..0000000000 --- a/docs/latex/wx/valgen.tex +++ /dev/null @@ -1,96 +0,0 @@ -\section{\class{wxGenericValidator}}\label{wxgenericvalidator} - -wxGenericValidator performs data transfer (but not validation or filtering) for the following -basic controls: wxButton, wxCheckBox, wxListBox, wxStaticText, wxRadioButton, wxRadioBox, -wxChoice, wxComboBox, wxGauge, wxSlider, wxScrollBar, wxSpinButton, wxTextCtrl, wxCheckListBox. - -It checks the type of the window and uses an appropriate type for that window. For example, -wxButton and wxTextCtrl transfer data to and from a wxString variable; wxListBox uses a -wxArrayInt; wxCheckBox uses a bool. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\wxheading{Derived from} - -\helpref{wxValidator}{wxvalidator}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator}, -\helpref{wxTextValidator}{wxtextvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxGenericValidator::wxGenericValidator}\label{wxgenericvalidatorctor} - -\func{}{wxGenericValidator}{\param{const wxGenericValidator\&}{ validator}} - -Copy constructor. - -\func{}{wxGenericValidator}{\param{bool*}{ valPtr}} - -Constructor taking a bool pointer. This will be used for wxCheckBox, -wxRadioButton, wxToggleButton and wxBitmapToggleButton. - -\func{}{wxGenericValidator}{\param{wxString*}{ valPtr}} - -Constructor taking a wxString pointer. This will be used for wxButton, -wxComboBox, wxStaticText, wxTextCtrl. - -\func{}{wxGenericValidator}{\param{int*}{ valPtr}} - -Constructor taking an integer pointer. This will be used for wxChoice, -wxGauge, wxScrollBar, wxRadioBox, wxSlider, wxSpinButton and -wxSpinCtrl. - -\func{}{wxGenericValidator}{\param{wxArrayInt*}{ valPtr}} - -Constructor taking a wxArrayInt pointer. This will be used for wxListBox, wxCheckListBox. - -\func{}{wxGenericValidator}{\param{wxDateTime*}{ valPtr}} - -Constructor taking a \helpref{wxDateTime}{wxdatetime} pointer. This will be -used for \helpref{wxDatePickerCtrl}{wxdatepickerctrl}. - -\wxheading{Parameters} - -\docparam{validator}{Validator to copy.} - -\docparam{valPtr}{A pointer to a variable that contains the value. This variable -should have a lifetime equal to or longer than the validator lifetime (which is usually -determined by the lifetime of the window).} - -\membersection{wxGenericValidator::\destruct{wxGenericValidator}}\label{wxgenericvalidatordtor} - -\func{}{\destruct{wxGenericValidator}}{\void} - -Destructor. - -\membersection{wxGenericValidator::Clone}\label{wxgenericvalidatorclone} - -\constfunc{virtual wxValidator*}{Clone}{\void} - -Clones the generic validator using the copy constructor. - -\membersection{wxGenericValidator::TransferFromWindow}\label{wxgenericvalidatortransferfromwindow} - -\func{virtual bool}{TransferFromWindow}{} - -Transfers the value from the window to the appropriate data type. - -\membersection{wxGenericValidator::TransferToWindow}\label{wxgenericvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{} - -Transfers the value to the window. - diff --git a/docs/latex/wx/validatr.tex b/docs/latex/wx/validatr.tex deleted file mode 100644 index 8ab80c677c..0000000000 --- a/docs/latex/wx/validatr.tex +++ /dev/null @@ -1,110 +0,0 @@ -\section{\class{wxValidator}}\label{wxvalidator} - -wxValidator is the base class for a family of validator classes that mediate -between a class of control, and application data. - -A validator has three major roles: - -\begin{enumerate}\itemsep=0pt -\item to transfer data from a C++ variable or own storage to and from a control; -\item to validate data in a control, and show an appropriate error message; -\item to filter events (such as keystrokes), thereby changing the behaviour of the -associated control. -\end{enumerate} - -Validators can be plugged into controls dynamically. - -To specify a default, `null' validator, use the symbol {\bf wxDefaultValidator}. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\pythonnote{If you wish to create a validator class in wxPython you should -derive the class from {\tt wxPyValidator} in order to get Python-aware -capabilities for the various virtual methods.} - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, -\helpref{wxTextValidator}{wxtextvalidator}, -\helpref{wxGenericValidator}{wxgenericvalidator}, - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxValidator::wxValidator}\label{wxvalidatorctor} - -\func{}{wxValidator}{\void} - -Constructor. - -\membersection{wxValidator::\destruct{wxValidator}}\label{wxvalidatordtor} - -\func{}{\destruct{wxValidator}}{\void} - -Destructor. - -\membersection{wxValidator::Clone}\label{wxvalidatorclone} - -\constfunc{virtual wxObject*}{Clone}{\void} - -All validator classes must implement the {\bf Clone} function, which returns -an identical copy of itself. This is because validators are passed to control -constructors as references which must be copied. Unlike objects such as pens -and brushes, it does not make sense to have a reference counting scheme -to do this cloning, because all validators should have separate -data. - -This base function returns NULL. - -\membersection{wxValidator::GetWindow}\label{wxvalidatorgetwindow} - -\constfunc{wxWindow*}{GetWindow}{\void} - -Returns the window associated with the validator. - -\membersection{wxValidator::SetBellOnError}\label{wxvalidatorsetbellonerror} - -\func{void}{SetBellOnError}{\param{bool}{ doIt = true}} - -This functions switches on or turns off the error sound produced by the -validators if an invalid key is pressed. - -\membersection{wxValidator::SetWindow}\label{wxvalidatorsetwindow} - -\func{void}{SetWindow}{\param{wxWindow*}{ window}} - -Associates a window with the validator. - -\membersection{wxValidator::TransferFromWindow}\label{wxvalidatortransferfromwindow} - -\func{virtual bool}{TransferToWindow}{} - -This overridable function is called when the value in the window must be -transferred to the validator. Return false if there is a problem. - -\membersection{wxValidator::TransferToWindow}\label{wxvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{} - -This overridable function is called when the value associated with the validator must be -transferred to the window. Return false if there is a problem. - -\membersection{wxValidator::Validate}\label{wxvalidatorvalidate} - -\func{virtual bool}{Validate}{\param{wxWindow*}{ parent}} - -This overridable function is called when the value in the associated window must be validated. -Return false if the value in the window is not valid; you may pop up an error dialog. - diff --git a/docs/latex/wx/valtext.tex b/docs/latex/wx/valtext.tex deleted file mode 100644 index 8bb922d0cc..0000000000 --- a/docs/latex/wx/valtext.tex +++ /dev/null @@ -1,136 +0,0 @@ -\section{\class{wxTextValidator}}\label{wxtextvalidator} - -wxTextValidator validates text controls, providing a variety of filtering behaviours. - -For more information, please see \helpref{Validator overview}{validatoroverview}. - -\wxheading{Derived from} - -\helpref{wxValidator}{wxvalidator}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{Validator overview}{validatoroverview}, \helpref{wxValidator}{wxvalidator}, -\helpref{wxGenericValidator}{wxgenericvalidator} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextValidator::wxTextValidator}\label{wxtextvalidatorctor} - -\func{}{wxTextValidator}{\param{const wxTextValidator\&}{ validator}} - -Copy constructor. - -\func{}{wxTextValidator}{\param{long}{ style = wxFILTER\_NONE}, \param{wxString* }{valPtr = NULL}} - -Constructor, taking a style and optional pointer to a wxString variable. - -\wxheading{Parameters} - -\docparam{style}{A bitlist of flags, which can be: - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf wxFILTER\_NONE}}{No filtering takes place.} -\twocolitem{{\bf wxFILTER\_ASCII}}{Non-ASCII characters are filtered out.} -\twocolitem{{\bf wxFILTER\_ALPHA}}{Non-alpha characters are filtered out.} -\twocolitem{{\bf wxFILTER\_ALPHANUMERIC}}{Non-alphanumeric characters are filtered out.} -\twocolitem{{\bf wxFILTER\_NUMERIC}}{Non-numeric characters are filtered out.} -\twocolitem{{\bf wxFILTER\_INCLUDE\_LIST}}{Use an include list. The validator -checks if the user input is on the list, complaining if not. See -\helpref{wxTextValidator::SetIncludes}{wxtextvalidatorsetincludes}.} -\twocolitem{{\bf wxFILTER\_EXCLUDE\_LIST}}{Use an exclude list. The validator -checks if the user input is on the list, complaining if it is. See -\helpref{wxTextValidator::SetExcludes}{wxtextvalidatorsetexcludes}.} -\twocolitem{{\bf wxFILTER\_INCLUDE\_CHAR\_LIST}}{Use an include list. The validator -checks if each input character is in the list (one character per list element), complaining if not. -See \helpref{wxTextValidator::SetIncludes}{wxtextvalidatorsetincludes}.} -\twocolitem{{\bf wxFILTER\_EXCLUDE\_CHAR\_LIST}}{Use an include list. The validator -checks if each input character is in the list (one character per list element), complaining if it is. -See \helpref{wxTextValidator::SetExcludes}{wxtextvalidatorsetexcludes}.} -\end{twocollist} -} - -\docparam{valPtr}{A pointer to a wxString variable that contains the value. This variable -should have a lifetime equal to or longer than the validator lifetime (which is usually -determined by the lifetime of the window). % If NULL, the validator uses its own internal storage for the value. NOT true -} - -\membersection{wxTextValidator::Clone}\label{wxtextvalidatorclone} - -\constfunc{virtual wxValidator*}{Clone}{\void} - -Clones the text validator using the copy constructor. - -\membersection{wxTextValidator::GetExcludes}\label{wxtextvalidatorgetexcludes} - -\constfunc{wxArrayString\&}{GetExcludes}{\void} - -Returns a reference to the exclude list (the list of invalid values). - -\membersection{wxTextValidator::GetIncludes}\label{wxtextvalidatorgetincludes} - -\constfunc{wxArrayString\&}{GetIncludes}{\void} - -Returns a reference to the include list (the list of valid values). - -\membersection{wxTextValidator::GetStyle}\label{wxtextvalidatorgetstyle} - -\constfunc{long}{GetStyle}{\void} - -Returns the validator style. - -\membersection{wxTextValidator::OnChar}\label{wxtextvalidatoronchar} - -\func{void}{OnChar}{\param{wxKeyEvent\&}{ event}} - -Receives character input from the window and filters it according to the -current validator style. - -\membersection{wxTextValidator::SetExcludes}\label{wxtextvalidatorsetexcludes} - -\func{void}{SetExcludes}{\param{const wxArrayString\&}{ stringList}} - -Sets the exclude list (invalid values for the user input). - -\membersection{wxTextValidator::SetIncludes}\label{wxtextvalidatorsetincludes} - -\func{void}{SetIncludes}{\param{const wxArrayString\&}{ stringList}} - -Sets the include list (valid values for the user input). - -\membersection{wxTextValidator::SetStyle}\label{wxtextvalidatorsetstyle} - -\func{void}{SetStyle}{\param{long}{ style}} - -Sets the validator style. - -\membersection{wxTextValidator::TransferFromWindow}\label{wxtextvalidatortransferfromwindow} - -\func{virtual bool}{TransferFromWindow}{} - -Transfers the value in the text control to the string. - -\membersection{wxTextValidator::TransferToWindow}\label{wxtextvalidatortransfertowindow} - -\func{virtual bool}{TransferToWindow}{} - -Transfers the string value to the text control. - -\membersection{wxTextValidator::Validate}\label{wxtextvalidatorvalidate} - -\func{virtual bool}{Validate}{\param{wxWindow*}{ parent}} - -Validates the window contents against the include or exclude lists, depending -on the validator style. - diff --git a/docs/latex/wx/varhscrollhelper.tex b/docs/latex/wx/varhscrollhelper.tex deleted file mode 100644 index 123f8dd4e6..0000000000 --- a/docs/latex/wx/varhscrollhelper.tex +++ /dev/null @@ -1,182 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: varhscrollhelper.tex -%% Purpose: wxVarHScrollHelper Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVarHScrollHelper}}\label{wxvarhscrollhelper} - -This class provides functions wrapping the -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} class, targeted for -horizontal-specific scrolling using \helpref{wxHScrolledWindow}{wxhscrolledwindow}. - -Like wxVarScrollHelperBase, this class is mostly only useful to those classes -built into wxWidgets deriving from here, and this documentation is mostly -only provided for referencing those functions provided. You will likely want -to derive your window from wxHScrolledWindow rather than from here directly. - -\wxheading{Derived from} - -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxVarHScrollHelper::wxVarHScrollHelper}\label{wxvarhscrollhelperwxvarhscrollhelper} - -\func{}{wxVarHScrollHelper}{\param{wxWindow* }{winToScroll}} - -Constructor taking the target window to be scrolled by this helper class. -This will attach scroll event handlers to the target window to catch and -handle scroll events appropriately. - - -\membersection{wxVarHScrollHelper::EstimateTotalWidth}\label{wxvarhscrollhelperestimatetotalwidth} - -\constfunc{virtual wxCoord}{EstimateTotalWidth}{\void} - -This class forwards calls from -\helpref{wxVarScrollHelperBase::EstimateTotalSize}{wxvarscrollhelperbaseestimatetotalsize} -to this function so derived classes can override either just the height or -the width estimation, or just estimate both differently if desired in any -\helpref{wxHVScrolledWindow}{wxhvscrolledwindow} derived class. - -Please note that this function will not be called if {\tt EstimateTotalSize()} -is overridden in your derived class. - - -\membersection{wxVarHScrollHelper::GetColumnCount}\label{wxvarhscrollhelpergetcolumncount} - -\constfunc{size\_t}{GetColumnCount}{\void} - -Returns the number of columns the target window contains. - -\wxheading{See also} - -\helpref{SetColumnCount()}{wxvarhscrollhelpersetcolumncount} - - -\membersection{wxVarHScrollHelper::GetVisibleColumnsBegin}\label{wxvarhscrollhelpergetvisiblecolumnsbegin} - -\constfunc{size\_t}{GetVisibleColumnsBegin}{\void} - -Returns the index of the first visible column based on the scroll position. - - -\membersection{wxVarHScrollHelper::GetVisibleColumnsEnd}\label{wxvarhscrollhelpergetvisiblecolumnsend} - -\constfunc{size\_t}{GetVisibleColumnsEnd}{\void} - -Returns the index of the last visible column based on the scroll position. This -includes the last column even if it is only partially visible. - - -\membersection{wxVarHScrollHelper::IsColumnVisible}\label{wxvarhscrollhelperiscolumnvisible} - -\constfunc{bool}{IsColumnVisible}{\param{size\_t }{column}} - -Returns {\tt true} if the given column is currently visible (even if only -partially visible) or {\tt false} otherwise. - - -\membersection{wxVarHScrollHelper::OnGetColumnWidth}\label{wxvarhscrollhelperongetcolumnwidth} - -\constfunc{virtual wxCoord}{OnGetColumnWidth}{\param{size\_t }{column}} - -This function must be overridden in the derived class, and should return the -width of the given column in pixels. - - -\membersection{wxVarHScrollHelper::OnGetColumnsWidthHint}\label{wxvarhscrollhelperongetcolumnswidthhint} - -\constfunc{virtual void}{OnGetColumnsWidthHint}{\param{size\_t }{columnMin}, \param{size\_t }{columnMax}} - -This function doesn't have to be overridden but it may be useful to do so if -calculating the columns' sizes is a relatively expensive operation as it gives -your code a chance to calculate several of them at once and cache the result -if necessary. - -{\tt OnGetColumnsWidthHint()} is normally called just before -\helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} but you -shouldn't rely on the latter being called for all columns in the interval -specified here. It is also possible that OnGetColumnWidth() will be called for -units outside of this interval, so this is really just a hint, not a promise. - -Finally, note that columnMin is inclusive, while columnMax is exclusive. - - -\membersection{wxVarHScrollHelper::RefreshColumn}\label{wxvarhscrollhelperrefreshcolumn} - -\func{virtual void}{RefreshColumn}{\param{size\_t }{column}} - -Triggers a refresh for just the given column's area of the window if it's visible. - - -\membersection{wxVarHScrollHelper::RefreshColumns}\label{wxvarhscrollhelperrefreshcolumns} - -\func{virtual void}{RefreshColumns}{\param{size\_t }{from}, \param{size\_t }{to}} - -Triggers a refresh for the area between the specified range of columns given -(inclusively). - - -\membersection{wxVarHScrollHelper::ScrollColumnPages}\label{wxvarhscrollhelperscrollcolumnpages} - -\func{virtual bool}{ScrollColumnPages}{\param{int }{pages}} - -Scroll by the specified number of pages which may be positive (to scroll right) -or negative (to scroll left). - - -\membersection{wxVarHScrollHelper::ScrollColumns}\label{wxvarhscrollhelperscrollcolumns} - -\func{virtual bool}{ScrollColumns}{\param{int }{columns}} - -Scroll by the specified number of columns which may be positive (to scroll right) -or negative (to scroll left). - -Returns {\tt true} if the window was scrolled, {\tt false} otherwise (for -example, if we're trying to scroll right but we are already showing the last -column). - - -\membersection{wxVarHScrollHelper::ScrollToColumn}\label{wxvarhscrollhelperscrolltocolumn} - -\func{bool}{ScrollToColumn}{\param{size\_t }{column}} - -Scroll to the specified column. It will become the first visible column in the window. - -Returns {\tt true} if we scrolled the window, {\tt false} if nothing was done. - - -\membersection{wxVarHScrollHelper::SetColumnCount}\label{wxvarhscrollhelpersetcolumncount} - -\func{void}{SetColumnCount}{\param{size\_t }{columnCount}} - -Set the number of columns the window contains. The derived class must provide -the widths for all columns with indices up to the one given here in it's -\helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} implementation. - -\wxheading{See also} - -\helpref{GetColumnCount()}{wxvarhscrollhelpergetcolumncount} - diff --git a/docs/latex/wx/varhvscrollhelper.tex b/docs/latex/wx/varhvscrollhelper.tex deleted file mode 100644 index 2f19bd43a0..0000000000 --- a/docs/latex/wx/varhvscrollhelper.tex +++ /dev/null @@ -1,177 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: varhvscrollhelper.tex -%% Purpose: wxVarHVScrollHelper Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVarHVScrollHelper}}\label{wxvarhvscrollhelper} - -This class provides functions wrapping the -\helpref{wxVarHScrollHelper}{wxvarhscrollhelper} and -\helpref{wxVarVScrollHelper}{wxvarvscrollhelper} classes, targeted for -scrolling a window in both axis using -\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}. Since this class is also -the join class of the horizontal and vertical scrolling functionality, it -also addresses some wrappers that help avoid the need to specify class scope -in your wxHVScrolledWindow-derived class when using wxVarScrollHelperBase -functionality. - -Like all three of it's scroll helper base classes, this class is mostly only -useful to those classes built into wxWidgets deriving from here, and this -documentation is mostly only provided for referencing those functions -provided. You will likely want to derive your window from wxHVScrolledWindow -rather than from here directly. - -\wxheading{Derived from} - -\helpref{wxVarVScrollHelper}{wxvarvscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\helpref{wxVarHScrollHelper}{wxvarhscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxVarHVScrollHelper::wxVarHVScrollHelper}\label{wxvarhvscrollhelperwxvarhvscrollhelper} - -\func{}{wxVarHVScrollHelper}{\param{wxWindow* }{winToScroll}} - -Constructor taking the target window to be scrolled by this helper class. -This will attach scroll event handlers to the target window to catch and -handle scroll events appropriately. - - -\membersection{wxVarHVScrollHelper::EnablePhysicalScrolling}\label{wxvarhvscrollhelperenablephysicalscrolling} - -\func{void}{EnablePhysicalScrolling}{\param{bool }{vscrolling = true}, \param{bool }{hscrolling = true}} - -With physical scrolling on (when this is {\tt true}), the device origin is -changed properly when a \rtfsp\helpref{wxPaintDC}{wxpaintdc} is prepared, -children are actually moved and laid out properly, and the contents of the -window (pixels) are actually moved. When this is {\tt false}, you are -responsible for repainting any invalidated areas of the window yourself to -account for the new scroll position. - -\wxheading{Parameters} - -\docparam{vscrolling}{Specifies if physical scrolling should be turned on when scrolling vertically.} - -\docparam{hscrolling}{Specifies if physical scrolling should be turned on when scrolling horizontally.} - - -\membersection{wxVarHVScrollHelper::GetRowColumnCount}\label{wxvarhvscrollhelpergetrowcolumncount} - -\constfunc{wxSize}{GetRowColumnCount}{\void} - -Returns the number of columns and rows the target window contains. - -\wxheading{See also} - -\helpref{SetRowColumnCount()}{wxvarhvscrollhelpersetrowcolumncount} - - -\membersection{wxVarHVScrollHelper::GetVisibleBegin}\label{wxvarhvscrollhelpergetvisiblebegin} - -\constfunc{wxPosition}{GetVisibleBegin}{\void} - -Returns the index of the first visible column and row based on the current -scroll position. - - -\membersection{wxVarHVScrollHelper::GetVisibleEnd}\label{wxvarhvscrollhelpergetvisibleend} - -\constfunc{wxPosition}{GetVisibleEnd}{\void} - -Returns the index of the last visible column and row based on the scroll -position. This includes any partially visible columns or rows. - - -\membersection{wxVarHVScrollHelper::VirtualHitTest}\label{wxvarhvscrollhelpervirtualhittest} - -\constfunc{wxPosition}{VirtualHitTest}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -\constfunc{wxPosition}{VirtualHitTest}{\param{const wxPoint\& }{pos}} - -Returns the virtual scroll unit under the device unit given accounting for -scroll position or {\tt wxNOT\_FOUND} (for the row, column, or possibly both -values) if none. - - -\membersection{wxVarHVScrollHelper::IsVisible}\label{wxvarhvscrollhelperisvisible} - -\constfunc{bool}{IsVisible}{\param{size\_t }{row}, \param{size\_t }{column}} - -\constfunc{bool}{IsVisible}{\param{const wxPosition\& }{pos}} - -Returns {\tt true} if both the given row and column are currently visible -(even if only partially visible) or {\tt false} otherwise. - - -\membersection{wxVarHVScrollHelper::RefreshRowColumn}\label{wxvarhvscrollhelperrefreshrowcolumn} - -\func{virtual void}{RefreshRowColumn}{\param{size\_t }{row}, \param{size\_t }{column}} - -\func{virtual void}{RefreshRowColumn}{\param{const wxPosition\& }{pos}} - -Triggers a refresh for just the area shared between the given row and column -of the window if it is visible. - - -\membersection{wxVarHVScrollHelper::RefreshRowsColumns}\label{wxvarhvscrollhelperrefreshrowscolumns} - -\func{virtual void}{RefreshRowsColumns}{\param{size\_t }{fromRow}, \param{size\_t }{toRow}, \param{size\_t }{fromColumn}, \param{size\_t }{toColumn}} - -\func{virtual void}{RefreshRowsColumns}{\param{const wxPosition\& }{from}, \param{const wxPosition\& }{to}} - -Triggers a refresh for the visible area shared between all given rows and -columns (inclusive) of the window. If the target window for both orientations -is the same, the rectangle of cells is refreshed; if the target windows -differ, the entire client size opposite the orientation direction is -refreshed between the specified limits. - - -\membersection{wxVarHVScrollHelper::ScrollToRowColumn}\label{wxvarhvscrollhelperscrolltorowcolumn} - -\func{bool}{ScrollToRowColumn}{\param{size\_t }{row}, \param{size\_t }{column}} - -\func{bool}{ScrollToRowColumn}{\param{const wxPosition\& }{pos}} - -Scroll to the specified row and column. It will become the first visible row -and column in the window. Returns {\tt true} if we scrolled the window, -{\tt false} if nothing was done. - - -\membersection{wxVarHVScrollHelper::SetRowColumnCount}\label{wxvarhvscrollhelpersetrowcolumncount} - -\func{void}{SetRowColumnCount}{\param{size\_t }{rowCount}, \param{size\_t }{columnCount}} - -Set the number of rows and columns the target window will contain. The -derived class must provide the sizes for all rows and columns with indices up -to the ones given here in it's \helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight} -and \helpref{OnGetColumnWidth()}{wxvarhscrollhelperongetcolumnwidth} implementations, -respectively. - -\wxheading{See also} - -\helpref{GetRowColumnCount()}{wxvarhvscrollhelpergetrowcolumncount} - diff --git a/docs/latex/wx/variant.tex b/docs/latex/wx/variant.tex deleted file mode 100644 index 5ede86d940..0000000000 --- a/docs/latex/wx/variant.tex +++ /dev/null @@ -1,637 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: variant.tex -%% Purpose: wxVariant docs -%% Author: wxWidgets Team -%% Modified by: -%% Created: 01/30/2005 -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVariant}}\label{wxvariant} - -The {\bf wxVariant} class represents a container for any type. -A variant's value can be changed at run time, possibly to a different type of value. - -As standard, wxVariant can store values of type bool, wxChar, double, long, string, -string list, time, date, void pointer, list of strings, and list of variants. -However, an application can extend wxVariant's capabilities by deriving from the -class \helpref{wxVariantData}{wxvariantdata} and using the wxVariantData form of -the wxVariant constructor or assignment operator to assign this data to a variant. -Actual values for user-defined types will need to be accessed via the wxVariantData -object, unlike the case for basic data types where convenience functions such as -\helpref{GetLong}{wxvariantgetlong} can be used. - -Pointers to any \helpref{wxObject}{wxobject} derived class can also easily be stored -in a wxVariant. wxVariant will then use wxWidgets' built-in RTTI system to set the -type name (returned by \helpref{GetType}{wxvariantgettype}) and to perform -type-safety checks at runtime. - -This class is useful for reducing the programming for certain tasks, such as an editor -for different data types, or a remote procedure call protocol. - -An optional name member is associated with a wxVariant. This might be used, for example, -in CORBA or OLE automation classes, where named parameters are required. - -Note that as of wxWidgets 2.7.1, wxVariant is \helpref{reference counted}{trefcount}. -Additionally, the convenience macros {\bf DECLARE\_VARIANT\_OBJECT} and -{\bf IMPLEMENT\_VARIANT\_OBJECT} were added so that adding (limited) support -for conversion to and from wxVariant can be very easily implemented without modifying -either wxVariant or the class to be stored by wxVariant. Since assignment operators -cannot be declared outside the class, the shift left operators are used like this: - -\begin{verbatim} - // in the header file - DECLARE_VARIANT_OBJECT(MyClass) - - // in the implementation file - IMPLEMENT_VARIANT_OBJECT(MyClass) - - // in the user code - wxVariant variant; - MyClass value; - variant << value; - - // or - value << variant; -\end{verbatim} - -For this to work, MyClass must derive from \helpref{wxObject}{wxobject}, implement -the \helpref{wxWidgets RTTI system}{runtimeclassoverview} -and support the assignment operator and equality operator for itself. Ideally, it -should also be reference counted to make copying operations cheap and fast. This -can be most easily implemented using the reference counting support offered by -\helpref{wxObject}{wxobject} itself. By default, wxWidgets already implements -the shift operator conversion for a few of its drawing related classes: - -\begin{verbatim} -IMPLEMENT_VARIANT_OBJECT(wxColour) -IMPLEMENT_VARIANT_OBJECT(wxImage) -IMPLEMENT_VARIANT_OBJECT(wxIcon) -IMPLEMENT_VARIANT_OBJECT(wxBitmap) -\end{verbatim} - -Note that as of wxWidgets 2.9.0, wxVariantData no longer inherits from wxObject -and wxVariant no longer uses the type-unsafe wxList class for list -operations but the type-safe wxVariantList class. Also, wxVariantData now -supports the Clone function for implementing the \helpref{wxVariant::Unshare}{wxvariantunshare} function. -Clone is implemented automatically by IMPLEMENT\_VARIANT\_OBJECT. - -Since wxVariantData no longer derives from wxObject, any code that tests the type -of the data using wxDynamicCast will require adjustment. You can use the macro -wxDynamicCastVariantData with the same arguments as wxDynamicCast, to use C++ RTTI -type information instead of wxWidgets RTTI. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxVariantData}{wxvariantdata} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxVariant::wxVariant}\label{wxvariantctor} - -\func{}{wxVariant}{\void} - -Default constructor. - -\func{}{wxVariant}{\param{const wxVariant\& }{variant}} - -Copy constructor, uses \helpref{reference counting}{trefcount}. - -\func{}{wxVariant}{\param{const wxChar*}{ value}, \param{const wxString\& }{name = ``"}} - -\func{}{wxVariant}{\param{const wxString\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a string value. - -\func{}{wxVariant}{\param{wxChar}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a character value. - -\func{}{wxVariant}{\param{long}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from an integer value. You may need to cast to (long) to -avoid confusion with other constructors (such as the bool constructor). - -\func{}{wxVariant}{\param{bool}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a boolean value. - -\func{}{wxVariant}{\param{double}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a double-precision floating point value. - -\func{}{wxVariant}{\param{const wxVariantList\&}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a list of wxVariant objects. This constructor -copies {\it value}, the application is still responsible for -deleting {\it value} and its contents. - -\func{}{wxVariant}{\param{void*}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a void pointer. - -\func{}{wxVariant}{\param{wxObject*}{ value}, \param{const wxString\& }{name = ``"}} - -Construction from a wxObject pointer. - -\func{}{wxVariant}{\param{wxVariantData*}{ data}, \param{const wxString\& }{name = ``"}} - -Construction from user-defined data. The variant holds onto the {\it data} pointer. - -\func{}{wxVariant}{\param{wxDateTime\&}{ val}, \param{const wxString\& }{name = ``"}} - -Construction from a \helpref{wxDateTime}{wxdatetime}. - -\func{}{wxVariant}{\param{wxArrayString\&}{ val}, \param{const wxString\& }{name = ``"}} - -Construction from an array of strings. This constructor copies {\it value} and its contents. - -\func{}{wxVariant}{\param{DATE\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}} - -Construction from a ODBC date value. Represented internally by a \helpref{wxDateTime}{wxdatetime} value. - -\func{}{wxVariant}{\param{TIME\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}} - -Construction from a ODBC time value. Represented internally by a \helpref{wxDateTime}{wxdatetime} value. - -\func{}{wxVariant}{\param{TIMESTAMP\_STRUCT*}{ val}, \param{const wxString\& }{name = ``"}} - -Construction from a ODBC timestamp value. Represented internally by a \helpref{wxDateTime}{wxdatetime} value. - -\membersection{wxVariant::\destruct{wxVariant}}\label{wxvariantdtor} - -\func{}{\destruct{wxVariant}}{\void} - -Destructor. - -Note that destructor is protected, so wxVariantData cannot usually -be deleted. Instead, \helpref{DecRef}{wxvariantdatadecref} should be called. -See \helpref{reference-counted object destruction}{refcountdestruct} for more info. - - -\membersection{wxVariant::Append}\label{wxvariantappend} - -\func{void}{Append}{\param{const wxVariant\&}{ value}} - -Appends a value to the list. - -\membersection{wxVariant::Clear}\label{wxvariantclear} - -\func{void}{Clear}{\void} - -Makes the variant null by deleting the internal data and -set the name to {\it wxEmptyString}. - -\membersection{wxVariant::ClearList}\label{wxvariantclearlist} - -\func{void}{ClearList}{\void} - -Deletes the contents of the list. - - -\membersection{wxVariant::Convert}\label{wxvariantconvert} - -\constfunc{bool}{Convert}{\param{long*}{ value}} - -\constfunc{bool}{Convert}{\param{bool*}{ value}} - -\constfunc{bool}{Convert}{\param{double*}{ value}} - -\constfunc{bool}{Convert}{\param{wxString*}{ value}} - -\constfunc{bool}{Convert}{\param{wxChar*}{ value}} - -\constfunc{bool}{Convert}{\param{wxDateTime*}{ value}} - -Retrieves and converts the value of this variant to the type that {\it value} is. - - -\membersection{wxVariant::GetCount}\label{wxvariantgetcount} - -\constfunc{size\_t}{GetCount}{\void} - -Returns the number of elements in the list. - -\membersection{wxVariant::Delete}\label{wxvariantdelete} - -\func{bool}{Delete}{\param{size\_t }{item}} - -Deletes the zero-based {\it item} from the list. - -\membersection{wxVariant::GetArrayString}\label{wxvariantgetarraystring} - -\constfunc{wxArrayString}{GetArrayString}{\void} - -Returns the string array value. - -\membersection{wxVariant::GetBool}\label{wxvariantgetbool} - -\constfunc{bool}{GetBool}{\void} - -Returns the boolean value. - -\membersection{wxVariant::GetChar}\label{wxvariantgetchar} - -\constfunc{wxChar}{GetChar}{\void} - -Returns the character value. - -\membersection{wxVariant::GetData}\label{wxvariantgetdata} - -\constfunc{wxVariantData*}{GetData}{\void} - -Returns a pointer to the internal variant data. To take ownership -of this data, you must call its \helpref{IncRef}{wxvariantdataincref} -method. When you stop using it, \helpref{DecRef}{wxvariantdatadecref} -must be likewise called. - -\membersection{wxVariant::GetDateTime}\label{wxvariantgetdatetime} - -\constfunc{wxDateTime}{GetDateTime}{\void} - -Returns the date value. - -\membersection{wxVariant::GetDouble}\label{wxvariantgetdouble} - -\constfunc{double}{GetDouble}{\void} - -Returns the floating point value. - -\membersection{wxVariant::GetList}\label{wxvariantgetlist} - -\constfunc{wxVariantList &}{GetList}{\void} - -Returns a reference to the wxVariantList class used by -wxVariant if this wxVariant is currently a list of variants. - -\membersection{wxVariant::GetLong}\label{wxvariantgetlong} - -\constfunc{long}{GetLong}{\void} - -Returns the integer value. - -\membersection{wxVariant::GetName}\label{wxvariantgetname} - -\constfunc{const wxString\&}{GetName}{\void} - -Returns a constant reference to the variant name. - -\membersection{wxVariant::GetString}\label{wxvariantgetstring} - -\constfunc{wxString}{GetString}{\void} - -Gets the string value. - -\membersection{wxVariant::GetType}\label{wxvariantgettype} - -\constfunc{wxString}{GetType}{\void} - -Returns the value type as a string. The built-in types are: bool, char, datetime, double, list, long, string, arrstring, void*. - -If the variant is null, the value type returned is the string ``null" (not the empty string). - -\membersection{wxVariant::GetVoidPtr}\label{wxvariantgetvoidptr} - -\constfunc{void*}{GetVoidPtr}{\void} - -Gets the void pointer value. - -\membersection{wxVariant::GetWxObjectPtr}\label{wxvariantgetwxobjectptr} - -\constfunc{wxObject*}{GetWxObjectPtr}{\void} - -Gets the wxObject pointer value. - -\membersection{wxVariant::Insert}\label{wxvariantinsert} - -\func{void}{Insert}{\param{const wxVariant\&}{ value}} - -Inserts a value at the front of the list. - -\membersection{wxVariant::IsNull}\label{wxvariantisnull} - -\constfunc{bool}{IsNull}{\void} - -Returns true if there is no data associated with this variant, false if there is data. - -\membersection{wxVariant::IsType}\label{wxvariantistype} - -\constfunc{bool}{IsType}{\param{const wxString\&}{ type}} - -Returns true if {\it type} matches the type of the variant, false otherwise. - -\membersection{wxVariant::IsValueKindOf}\label{wxvariantisvaluekindof} - -\constfunc{bool}{IsValueKindOf}{\param{const wxClassInfo* type}{ type}} - -Returns true if the data is derived from the class described by {\it type}, false otherwise. - -\membersection{wxVariant::MakeNull}\label{wxvariantmakenull} - -\func{void}{MakeNull}{\void} - -Makes the variant null by deleting the internal data. - -\membersection{wxVariant::MakeString}\label{wxvariantmakestring} - -\constfunc{wxString}{MakeString}{\void} - -Makes a string representation of the variant value (for any type). - -\membersection{wxVariant::Member}\label{wxvariantmember} - -\constfunc{bool}{Member}{\param{const wxVariant\&}{ value}} - -Returns true if {\it value} matches an element in the list. - -\membersection{wxVariant::NullList}\label{wxvariantnulllist} - -\func{void}{NullList}{\void} - -Makes an empty list. This differs from a null variant which has no data; a null list -is of type list, but the number of elements in the list is zero. - -\membersection{wxVariant::SetData}\label{wxvariantsetdata} - -\func{void}{SetData}{\param{wxVariantData*}{ data}} - -Sets the internal variant data, deleting the existing data if there is any. - -\membersection{wxVariant::Unshare}\label{wxvariantunshare} - -\func{bool}{Unshare}{\void} - -Makes sure that any data associated with this variant is not shared with other -variants. For this to work, \helpref{wxVariantData::Clone}{wxvariantdataclone} must -be implemented for the data types you are working with. Clone is implemented -for all the default data types. - -\membersection{wxVariant::operator $=$}\label{wxvariantassignment} - -\func{void}{operator $=$}{\param{const wxVariant\& }{value}} - -\func{void}{operator $=$}{\param{wxVariantData* }{value}} - -\func{void}{operator $=$}{\param{const wxString\& }{value}} - -\func{void}{operator $=$}{\param{const wxChar* }{value}} - -\func{void}{operator $=$}{\param{wxChar }{value}} - -\func{void}{operator $=$}{\param{const long }{value}} - -\func{void}{operator $=$}{\param{const bool }{value}} - -\func{void}{operator $=$}{\param{const double }{value}} - -\func{void}{operator $=$}{\param{void* }{value}} - -\func{void}{operator $=$}{\param{wxObject* }{value}} - -\func{void}{operator $=$}{\param{const wxVariantList\& }{value}} - -\func{void}{operator $=$}{\param{const wxDateTime\& }{value}} - -\func{void}{operator $=$}{\param{const wxArrayString\& }{value}} - -\func{void}{operator $=$}{\param{const DATE\_STRUCT* }{value}} - -\func{void}{operator $=$}{\param{const TIME\_STRUCT* }{value}} - -\func{void}{operator $=$}{\param{const TIMESTAMP\_STRUCT* }{value}} - -Assignment operators, using \helpref{reference counting}{trefcount} when possible. - -\membersection{wxVariant::operator $==$}\label{wxvarianteq} - -\constfunc{bool}{operator $==$}{\param{const wxVariant\& }{value}} - -\constfunc{bool}{operator $==$}{\param{const wxString\& }{value}} - -\constfunc{bool}{operator $==$}{\param{const wxChar* }{value}} - -\constfunc{bool}{operator $==$}{\param{wxChar }{value}} - -\constfunc{bool}{operator $==$}{\param{const long }{value}} - -\constfunc{bool}{operator $==$}{\param{const bool }{value}} - -\constfunc{bool}{operator $==$}{\param{const double }{value}} - -\constfunc{bool}{operator $==$}{\param{void* }{value}} - -\constfunc{bool}{operator $==$}{\param{wxObject* }{value}} - -\constfunc{bool}{operator $==$}{\param{const wxVariantList\& }{value}} - -\constfunc{bool}{operator $==$}{\param{const wxArrayString\& }{value}} - -\constfunc{bool}{operator $==$}{\param{const wxDateTime\& }{value}} - -Equality test operators. - -\membersection{wxVariant::operator $!=$}\label{wxvariantneq} - -\constfunc{bool}{operator $!=$}{\param{const wxVariant\& }{value}} - -\constfunc{bool}{operator $!=$}{\param{const wxString\& }{value}} - -\constfunc{bool}{operator $!=$}{\param{const wxChar* }{value}} - -\constfunc{bool}{operator $!=$}{\param{wxChar }{value}} - -\constfunc{bool}{operator $!=$}{\param{const long }{value}} - -\constfunc{bool}{operator $!=$}{\param{const bool }{value}} - -\constfunc{bool}{operator $!=$}{\param{const double }{value}} - -\constfunc{bool}{operator $!=$}{\param{void* }{value}} - -\constfunc{bool}{operator $!=$}{\param{wxObject* }{value}} - -\constfunc{bool}{operator $!=$}{\param{const wxVariantList\& }{value}} - -\constfunc{bool}{operator $!=$}{\param{const wxArrayString\& }{value}} - -\constfunc{bool}{operator $!=$}{\param{const wxDateTime\& }{value}} - -Inequality test operators. - -\membersection{wxVariant::operator $[]$}\label{wxvariantarray} - -\constfunc{wxVariant}{operator $[]$}{\param{size\_t }{idx}} - -Returns the value at {\it idx} (zero-based). - -\func{wxVariant\&}{operator $[]$}{\param{size\_t }{idx}} - -Returns a reference to the value at {\it idx} (zero-based). This can be used -to change the value at this index. - -\membersection{wxVariant::operator wxChar}\label{wxvariantchar} - -\constfunc{char}{operator wxChar}{\void} - -Operator for implicit conversion to a wxChar, using \helpref{wxVariant::GetChar}{wxvariantgetchar}. - -\membersection{wxVariant::operator double}\label{wxvariantdouble} - -\constfunc{double}{operator double}{\void} - -Operator for implicit conversion to a double, using \helpref{wxVariant::GetDouble}{wxvariantgetdouble}. - -\constfunc{long}{operator long}{\void} - -Operator for implicit conversion to a long, using \helpref{wxVariant::GetLong}{wxvariantgetlong}. - -\membersection{wxVariant::operator wxString}\label{wxvariantwxstring} - -\constfunc{wxString}{operator wxString}{\void} - -Operator for implicit conversion to a string, using \helpref{wxVariant::MakeString}{wxvariantmakestring}. - -\membersection{wxVariant::operator void*}\label{wxvariantvoid} - -\constfunc{void*}{operator void*}{\void} - -Operator for implicit conversion to a pointer to a void, using \helpref{wxVariant::GetVoidPtr}{wxvariantgetvoidptr}. - -\membersection{wxVariant::operator wxDateTime}\label{wxvariantdatetime} - -\constfunc{void*}{operator wxDateTime}{\void} - -Operator for implicit conversion to a pointer to a \helpref{wxDateTime}{wxdatetime}, using \helpref{wxVariant::GetDateTime}{wxvariantgetdatetime}. - - - -%% wxVariantData - - -\section{\class{wxVariantData}}\label{wxvariantdata} - -The {\bf wxVariantData} class is used to implement a new type for \helpref{wxVariant}{wxvariant}. -Derive from wxVariantData, and override the pure virtual functions. - -wxVariantData is \helpref{reference counted}{refcount}, but you don't normally have to care about this, -as wxVariant manages the count automatically. However, in case your application needs to take -ownership of wxVariantData, be aware that the object is created with reference count of 1, -and passing it to wxVariant will not increase this. In other words, \helpref{IncRef}{wxvariantdataincref} -needs to be called only if you both take ownership of wxVariantData and pass it to a wxVariant. -Also note that the destructor is protected, so you can never explicitly delete a wxVariantData -instance. Instead, \helpref{DecRef}{wxvariantdatadecref} will delete the object automatically -when the reference count reaches zero. - -\wxheading{Include files} - - - -\wxheading{Derived from} - -No base class - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{wxVariant}{wxvariant} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxVariantData::wxVariantData}\label{wxvariantdatactor} - -\func{}{wxVariantData}{\void} - -Default constructor. - -\membersection{wxVariantData::Clone}\label{wxvariantdataclone} - -\constfunc{wxVariantData*}{Clone}{\void} - -This function can be overridden to clone the data. -Implement Clone if you wish \helpref{wxVariant::Unshare}{wxvariantunshare} to work -for your data. This function is implemented for all built-in data types. - -\membersection{wxVariantData::DecRef}\label{wxvariantdatadecref} - -\func{void}{DecRef}{\void} - -Decreases reference count. If the count reaches zero, the object is -automatically deleted. - -Note that destructor of wxVariantData is protected, so delete -cannot be used as normal. Instead, \helpref{DecRef}{wxvariantdatadecref} should be called. - - -\membersection{wxVariantData::Eq}\label{wxvariantdataeq} - -\constfunc{bool}{Eq}{\param{wxVariantData\&}{ data}} - -Returns true if this object is equal to {\it data}. - -\membersection{wxVariantData::GetType}\label{wxvariantdatagettype} - -\constfunc{wxString}{GetType}{\void} - -Returns the string type of the data. - -\membersection{wxVariantData::GetValueClassInfo}\label{wxvariantdatagetvalueclassinfo} - -\constfunc{wxClassInfo*}{GetValueClassInfo}{\void} - -If the data is a wxObject returns a pointer to the objects wxClassInfo structure, if -the data isn't a wxObject the method returns NULL. - -\membersection{wxVariantData::IncRef}\label{wxvariantdataincref} - -\func{void}{IncRef}{\void} - -Increases reference count. Note that initially wxVariantData has reference count of 1. - -\membersection{wxVariantData::Read}\label{wxvariantdataread} - -\func{bool}{Read}{\param{ostream\&}{ stream}} - -\func{bool}{Read}{\param{wxString\&}{ string}} - -Reads the data from {\it stream} or {\it string}. - -\membersection{wxVariantData::Write}\label{wxvariantdatawrite} - -\constfunc{bool}{Write}{\param{ostream\&}{ stream}} - -\constfunc{bool}{Write}{\param{wxString\&}{ string}} - -Writes the data to {\it stream} or {\it string}. - - -\membersection{wxGetVariantCast}\label{wxgetvariantcast} - -\func{classname *}{wxGetVariantCast}{wxVariant\&, classname} - -This macro returns the data stored in {\it variant} cast to the type {\it classname *} if -the data is of this type (the check is done during the run-time) or -{\tt NULL} otherwise. - - -\wxheading{See also} - -\helpref{RTTI overview}{runtimeclassoverview}\\ -\helpref{wxDynamicCast}{wxdynamiccast} - diff --git a/docs/latex/wx/varscrollhelperbase.tex b/docs/latex/wx/varscrollhelperbase.tex deleted file mode 100644 index e781d4511e..0000000000 --- a/docs/latex/wx/varscrollhelperbase.tex +++ /dev/null @@ -1,248 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: varscrollhelperbase.tex -%% Purpose: wxVarScrollHelperBase Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVarScrollHelperBase}}\label{wxvarscrollhelperbase} - -This class provides all common base functionality for scroll calculations -shared among all variable scrolled window implementations as well as -automatic scrollbar functionality, saved scroll positions, controlling -target windows to be scrolled, as well as defining all required virtual -functions that need to be implemented for any orientation specific work. - -Documentation of this class is provided specifically for referencing use -of the functions provided by this class for use with the variable scrolled -windows that derive from here. You will likely want to derive your window -from one of the already implemented variable scrolled windows rather than -from wxVarScrollHelperBase directly. - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxVarScrollHelperBase::wxVarScrollHelperBase}\label{wxvarscrollhelperbasewxvarscrollhelperbase} - -\func{}{wxVarScrollHelperBase}{\param{wxWindow* }{winToScroll}} - -Constructor taking the target window to be scrolled by this helper class. -This will attach scroll event handlers to the target window to catch and -handle scroll events appropriately. - - -\membersection{wxVarScrollHelperBase::\destruct{wxVarScrollHelperBase}}\label{wxvarscrollhelperbasedtor} - -\func{virtual }{\destruct{wxVarScrollHelperBase}}{\void} - -Virtual destructor for detaching scroll event handlers attached with this -helper class. - - -\membersection{wxVarScrollHelperBase::CalcScrolledPosition}\label{wxvarscrollhelperbasecalcscrolledposition} - -\constfunc{int}{CalcScrolledPosition}{\param{int }{coord}} - -Translates the logical coordinate given to the current device coordinate. -For example, if the window is scrolled 10 units and each scroll unit -represents 10 device units (which may not be the case since this class allows -for variable scroll unit sizes), a call to this function with a coordinate of -15 will return -85. - -\wxheading{See also} - -\helpref{CalcUnscrolledPosition()}{wxvarscrollhelperbasecalcunscrolledposition} - - -\membersection{wxVarScrollHelperBase::CalcUnscrolledPosition}\label{wxvarscrollhelperbasecalcunscrolledposition} - -\constfunc{int}{CalcUnscrolledPosition}{\param{int }{coord}} - -Translates the device coordinate given to the corresponding logical -coordinate. For example, if the window is scrolled 10 units and each scroll -unit represents 10 device units (which may not be the case since this class -allows for variable scroll unit sizes), a call to this function with a -coordinate of 15 will return 115. - -\wxheading{See also} - -\helpref{CalcScrolledPosition()}{wxvarscrollhelperbasecalcscrolledposition} - - -\membersection{wxVarScrollHelperBase::EnablePhysicalScrolling}\label{wxvarscrollhelperbaseenablephysicalscrolling} - -\func{void}{EnablePhysicalScrolling}{\param{bool }{scrolling = true}} - -With physical scrolling on (when this is {\tt true}), the device origin is -changed properly when a \rtfsp\helpref{wxPaintDC}{wxpaintdc} is prepared, -children are actually moved and laid out properly, and the contents of the -window (pixels) are actually moved. When this is {\tt false}, you are -responsible for repainting any invalidated areas of the window yourself to -account for the new scroll position. - - -\membersection{wxVarScrollHelperBase::EstimateTotalSize}\label{wxvarscrollhelperbaseestimatetotalsize} - -\constfunc{virtual wxCoord}{EstimateTotalSize}{\void} - -When the number of scroll units change, we try to estimate the total size of -all units when the full window size is needed (i.e. to calculate the scrollbar -thumb size). This is a rather expensive operation in terms of unit access, so -if the user code may estimate the average size better or faster than we do, it -should override this function to implement its own logic. This function should -return the best guess for the total virtual window size. - -Note that although returning a totally wrong value would still work, it risks -resulting in very strange scrollbar behaviour so this function should really -try to make the best guess possible. - - -\membersection{wxVarScrollHelperBase::GetNonOrientationTargetSize}\label{wxvarscrollhelperbasegetnonorientationtargetsize} - -\constfunc{virtual int}{GetNonOrientationTargetSize}{\void} - -This function needs to be overridden in the in the derived class to return the -window size with respect to the opposing orientation. If this is a vertical -scrolled window, it should return the height. - -\wxheading{See also} - -\helpref{GetOrientationTargetSize()}{wxvarscrollhelperbasegetorientationtargetsize} - - -\membersection{wxVarScrollHelperBase::GetOrientation}\label{wxvarscrollhelperbasegetorientation} - -\constfunc{virtual wxOrientation}{GetOrientation}{\void} - -This function need to be overridden to return the orientation that this helper -is working with, either {\tt wxHORIZONTAL} or {\tt wxVERTICAL}. - - -\membersection{wxVarScrollHelperBase::GetOrientationTargetSize}\label{wxvarscrollhelperbasegetorientationtargetsize} - -\constfunc{virtual int}{GetOrientationTargetSize}{\void} - -This function needs to be overridden in the in the derived class to return the -window size with respect to the orientation this helper is working with. If -this is a vertical scrolled window, it should return the width. - -\wxheading{See also} - -\helpref{GetNonOrientationTargetSize()}{wxvarscrollhelperbasegetnonorientationtargetsize} - - -\membersection{wxVarScrollHelperBase::GetTargetWindow}\label{wxvarscrollhelperbasegettargetwindow} - -\constfunc{wxWindow*}{GetTargetWindow}{\void} - -This function will return the target window this helper class is currently -scrolling. - -\wxheading{See also} - -\helpref{SetTargetWindow()}{wxvarscrollhelperbasesettargetwindow} - - -\membersection{wxVarScrollHelperBase::GetVisibleBegin}\label{wxvarscrollhelperbasegetvisiblebegin} - -\constfunc{size\_t}{GetVisibleBegin}{\void} - -Returns the index of the first visible unit based on the scroll position. - - -\membersection{wxVarScrollHelperBase::GetVisibleEnd}\label{wxvarscrollhelperbasegetvisibleend} - -\constfunc{size\_t}{GetVisibleEnd}{\void} - -Returns the index of the last visible unit based on the scroll position. This -includes the last unit even if it is only partially visible. - - -\membersection{wxVarScrollHelperBase::VirtualHitTest}\label{wxvarscrollhelperbasevirtualhittest} - -\constfunc{int}{VirtualHitTest}{\param{wxCoord }{coord}} - -Returns the virtual scroll unit under the device unit given accounting for -scroll position or {\tt wxNOT\_FOUND} if none (i.e. if it is below the last -item). - - -\membersection{wxVarScrollHelperBase::IsVisible}\label{wxvarscrollhelperbaseisvisible} - -\constfunc{bool}{IsVisible}{\param{size\_t }{unit}} - -Returns {\tt true} if the given scroll unit is currently visible (even if only -partially visible) or {\tt false} otherwise. - - -\membersection{wxVarScrollHelperBase::OnGetUnitSize}\label{wxvarscrollhelperbaseongetunitsize} - -\constfunc{virtual wxCoord}{OnGetUnitSize}{\param{size\_t }{unit}} - -This function must be overridden in the derived class, and should return the -size of the given unit in pixels. - - -\membersection{wxVarScrollHelperBase::OnGetUnitsSizeHint}\label{wxvarscrollhelperbaseongetunitssizehint} - -\constfunc{virtual void}{OnGetUnitsSizeHint}{\param{size\_t }{unitMin}, \param{size\_t }{unitMax}} - -This function doesn't have to be overridden but it may be useful to do so if -calculating the units' sizes is a relatively expensive operation as it gives -your code a chance to calculate several of them at once and cache the result -if necessary. - -{\tt OnGetUnitsSizeHint()} is normally called just before -\helpref{OnGetUnitSize()}{wxvarscrollhelperbaseongetunitsize} but you -shouldn't rely on the latter being called for all units in the interval -specified here. It is also possible that OnGetUnitSize() will be called for -units outside of this interval, so this is really just a hint, not a promise. - -Finally, note that unitMin is inclusive, while unitMax is exclusive. - - -\membersection{wxVarScrollHelperBase::RefreshAll}\label{wxvarscrollhelperbaserefreshall} - -\func{virtual void}{RefreshAll}{\void} - -Recalculate all parameters and repaint all units. - - -\membersection{wxVarScrollHelperBase::SetTargetWindow}\label{wxvarscrollhelperbasesettargetwindow} - -\func{void}{SetTargetWindow}{\param{wxWindow* }{target}} - -Normally the window will scroll itself, but in some rare occasions you might -want it to scroll (part of) another window (e.g. a child of it in order to -scroll only a portion the area between the scrollbars like a spreadsheet where -only the cell area will move). - -\wxheading{See also} - -\helpref{GetTargetWindow()}{wxvarscrollhelperbasegettargetwindow} - - -\membersection{wxVarScrollHelperBase::UpdateScrollbar}\label{wxvarscrollhelperbaseupdatescrollbar} - -\func{virtual void}{UpdateScrollbar}{\void} - -Update the thumb size shown by the scrollbar. - diff --git a/docs/latex/wx/varvscrollhelper.tex b/docs/latex/wx/varvscrollhelper.tex deleted file mode 100644 index ec69bbdbed..0000000000 --- a/docs/latex/wx/varvscrollhelper.tex +++ /dev/null @@ -1,182 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: varvscrollhelper.tex -%% Purpose: wxVarVScrollHelper Documentation -%% Author: Bryan Petty -%% Modified by: -%% Created: 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVarVScrollHelper}}\label{wxvarvscrollhelper} - -This class provides functions wrapping the -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} class, targeted for -vertical-specific scrolling using \helpref{wxVScrolledWindow}{wxvscrolledwindow}. - -Like wxVarScrollHelperBase, this class is mostly only useful to those classes -built into wxWidgets deriving from here, and this documentation is mostly -only provided for referencing those functions provided. You will likely want -to derive your window from wxVScrolledWindow rather than from here directly. - -\wxheading{Derived from} - -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxHVScrolledWindow}{wxhvscrolledwindow}, -\rtfsp\helpref{wxVScrolledWindow}{wxvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxVarVScrollHelper::wxVarVScrollHelper}\label{wxvarvscrollhelperwxvarvscrollhelper} - -\func{}{wxVarVScrollHelper}{\param{wxWindow* }{winToScroll}} - -Constructor taking the target window to be scrolled by this helper class. -This will attach scroll event handlers to the target window to catch and -handle scroll events appropriately. - - -\membersection{wxVarVScrollHelper::EstimateTotalHeight}\label{wxvarvscrollhelperestimatetotalheight} - -\constfunc{virtual wxCoord}{EstimateTotalHeight}{\void} - -This class forwards calls from -\helpref{wxVarScrollHelperBase::EstimateTotalSize}{wxvarscrollhelperbaseestimatetotalsize} -to this function so derived classes can override either just the height or -the width estimation, or just estimate both differently if desired in any -\helpref{wxHVScrolledWindow}{wxhvscrolledwindow} derived class. - -Please note that this function will not be called if {\tt EstimateTotalSize()} -is overridden in your derived class. - - -\membersection{wxVarVScrollHelper::GetRowCount}\label{wxvarvscrollhelpergetrowcount} - -\constfunc{size\_t}{GetRowCount}{\void} - -Returns the number of rows the target window contains. - -\wxheading{See also} - -\helpref{SetRowCount()}{wxvarvscrollhelpersetrowcount} - - -\membersection{wxVarVScrollHelper::GetVisibleRowsBegin}\label{wxvarvscrollhelpergetvisiblerowsbegin} - -\constfunc{size\_t}{GetVisibleRowsBegin}{\void} - -Returns the index of the first visible row based on the scroll position. - - -\membersection{wxVarVScrollHelper::GetVisibleRowsEnd}\label{wxvarvscrollhelpergetvisiblerowsend} - -\constfunc{size\_t}{GetVisibleRowsEnd}{\void} - -Returns the index of the last visible row based on the scroll position. This -includes the last row even if it is only partially visible. - - -\membersection{wxVarVScrollHelper::IsRowVisible}\label{wxvarvscrollhelperisrowvisible} - -\constfunc{bool}{IsRowVisible}{\param{size\_t }{row}} - -Returns {\tt true} if the given row is currently visible (even if only -partially visible) or {\tt false} otherwise. - - -\membersection{wxVarVScrollHelper::OnGetRowHeight}\label{wxvarvscrollhelperongetrowheight} - -\constfunc{virtual wxCoord}{OnGetRowHeight}{\param{size\_t }{row}} - -This function must be overridden in the derived class, and should return the -height of the given row in pixels. - - -\membersection{wxVarVScrollHelper::OnGetRowsHeightHint}\label{wxvarvscrollhelperongetrowsheighthint} - -\constfunc{virtual void}{OnGetRowsHeightHint}{\param{size\_t }{rowMin}, \param{size\_t }{rowMax}} - -This function doesn't have to be overridden but it may be useful to do so if -calculating the rows' sizes is a relatively expensive operation as it gives -your code a chance to calculate several of them at once and cache the result -if necessary. - -{\tt OnGetRowsHeightHint()} is normally called just before -\helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight} but you -shouldn't rely on the latter being called for all rows in the interval -specified here. It is also possible that OnGetRowHeight() will be called for -units outside of this interval, so this is really just a hint, not a promise. - -Finally, note that rowMin is inclusive, while rowMax is exclusive. - - -\membersection{wxVarVScrollHelper::RefreshRow}\label{wxvarvscrollhelperrefreshrow} - -\func{virtual void}{RefreshRow}{\param{size\_t }{row}} - -Triggers a refresh for just the given row's area of the window if it's visible. - - -\membersection{wxVarVScrollHelper::RefreshRows}\label{wxvarvscrollhelperrefreshrows} - -\func{virtual void}{RefreshRows}{\param{size\_t }{from}, \param{size\_t }{to}} - -Triggers a refresh for the area between the specified range of rows given -(inclusively). - - -\membersection{wxVarVScrollHelper::ScrollRowPages}\label{wxvarvscrollhelperscrollrowpages} - -\func{virtual bool}{ScrollRowPages}{\param{int }{pages}} - -Scroll by the specified number of pages which may be positive (to scroll down) -or negative (to scroll up). - - -\membersection{wxVarVScrollHelper::ScrollRows}\label{wxvarvscrollhelperscrollrows} - -\func{virtual bool}{ScrollRows}{\param{int }{rows}} - -Scroll by the specified number of rows which may be positive (to scroll down) -or negative (to scroll up). - -Returns {\tt true} if the window was scrolled, {\tt false} otherwise (for -example, if we're trying to scroll down but we are already showing the last -row). - - -\membersection{wxVarVScrollHelper::ScrollToRow}\label{wxvarvscrollhelperscrolltorow} - -\func{bool}{ScrollToRow}{\param{size\_t }{row}} - -Scroll to the specified row. It will become the first visible row in the window. - -Returns {\tt true} if we scrolled the window, {\tt false} if nothing was done. - - -\membersection{wxVarVScrollHelper::SetRowCount}\label{wxvarvscrollhelpersetrowcount} - -\func{void}{SetRowCount}{\param{size\_t }{rowCount}} - -Set the number of rows the window contains. The derived class must provide the -heights for all rows with indices up to the one given here in it's -\helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight} implementation. - -\wxheading{See also} - -\helpref{GetRowCount()}{wxvarvscrollhelpergetrowcount} - diff --git a/docs/latex/wx/vector.tex b/docs/latex/wx/vector.tex deleted file mode 100644 index 4929a8074e..0000000000 --- a/docs/latex/wx/vector.tex +++ /dev/null @@ -1,152 +0,0 @@ -\section{\class{wxVector}}\label{wxvector} - -wxVector is a template class which implements most of the std::vector -class and can be used like it. If wxWidgets is compiled in STL mode, -wxVector will just be a typedef to std::vector. Just like for std::vector, -objects stored in wxVector need to be {\it assignable} but don't have to -be {\it default constructible}. - -You can refer to the STL documentation for further information. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{Container classes overview}{wxcontaineroverview}, -\helpref{wxList}{wxlist}, -\helpref{wxArray}{wxarray} - -\membersection{wxVector::wxVector}\label{wxvectorwxvector} - -\func{}{wxVector}{\void} - -\func{}{wxVector}{\param{const wxVector\& }{c}} - -Constructor. - -\membersection{wxVector::\destruct{wxVector}}\label{wxvectordtor} - -\func{}{\destruct{wxVector}}{\void} - -Destructor. - -\membersection{wxVector::operator=}\label{wxvectoroperatorassign} - -\func{wxVector\& operator}{operator=}{\param{const wxVector\& }{vb}} - -Assignment operator. - -\membersection{wxVector::at}\label{wxvectorat} - -\constfunc{const value\_type\&}{at}{\param{size\_type }{idx}} - -\func{value\_type\&}{at}{\param{size\_type }{idx}} - -Returns item at position {\it idx}. - -\membersection{wxVector::back}\label{wxvectorback} - -\constfunc{const value\_type\&}{back}{\void} - -\func{value\_type\&}{back}{\void} - -Return last item. - -\membersection{wxVector::begin}\label{wxvectorbegin} - -\constfunc{const\_iterator}{begin}{\void} - -\func{iterator}{begin}{\void} - -Return iterator to beginning of the vector. - -\membersection{wxVector::capacity}\label{wxvectorcapacity} - -\constfunc{size\_type}{capacity}{\void} - - -\membersection{wxVector::clear}\label{wxvectorclear} - -\func{void}{clear}{\void} - -Clears the vector. - -\membersection{wxVector::empty}\label{wxvectorempty} - -\constfunc{bool}{empty}{\void} - -Returns true if the vector is empty. - -\membersection{wxVector::end}\label{wxvectorend} - -\constfunc{const\_iterator}{end}{\void} - -\func{iterator}{end}{\void} - -Returns iterator to the end of the vector. - -\membersection{wxVector::erase}\label{wxvectorerase} - -\func{iterator}{erase}{\param{iterator }{it}} - -\func{iterator}{erase}{\param{iterator }{first}, \param{iterator }{last}} - -Erase items. When using values other than built-in integrals -or classes with reference counting this can be an inefficient -operation. - -\membersection{wxVector::front}\label{wxvectorfront} - -\constfunc{const value\_type\&}{front}{\void} - -\func{value\_type\&}{front}{\void} - -Returns first item. - -\membersection{wxVector::insert}\label{wxvectorinsert} - -\func{iterator}{insert}{\param{iterator }{it}, \param{const value\_type\& }{v = value\_type()}} - -Insert an item. When using values other than built-in integrals -or classes with reference counting this can be an inefficient -operation. - -\membersection{wxVector::operator[]}\label{wxvectoroperatorunknown} - -\constfunc{const value\_type\&}{operator[]}{\param{size\_type }{idx}} - -\func{value\_type\&}{operator[]}{\param{size\_type }{idx}} - -Returns item at position {\it idx}. - -\membersection{wxVector::pop\_back}\label{wxvectorpopback} - -\func{void}{pop\_back}{\void} - -Removes the last item. - -\membersection{wxVector::push\_back}\label{wxvectorpushback} - -\func{void}{push\_back}{\param{const value\_type\& }{v}} - -Adds an item to the end of the vector. - -\membersection{wxVector::reserve}\label{wxvectorreserve} - -\func{void}{reserve}{\param{size\_type }{n}} - -Reserves more memory of {\it n} is greater then -\helpref{size}{wxvectorsize}. Other this call has -no effect. - -\membersection{wxVector::size}\label{wxvectorsize} - -\constfunc{size\_type}{size}{\void} - -Returns the size of the vector. diff --git a/docs/latex/wx/view.tex b/docs/latex/wx/view.tex deleted file mode 100644 index d2f90a297c..0000000000 --- a/docs/latex/wx/view.tex +++ /dev/null @@ -1,216 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: view.tex -%% Purpose: wxView documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxView}}\label{wxview} - -The view class can be used to model the viewing and editing component of -an application's file-based data. It is part of the document/view framework supported by wxWidgets, -and cooperates with the \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate} -and \helpref{wxDocManager}{wxdocmanager} classes. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxView overview}{wxviewoverview}, \helpref{wxDocument}{wxdocument}, \helpref{wxDocTemplate}{wxdoctemplate},\rtfsp -\helpref{wxDocManager}{wxdocmanager} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxView::m\_viewDocument}\label{wxviewmviewdocument} - -\member{wxDocument*}{m\_viewDocument} - -The document associated with this view. There may be more than one view per -document, but there can never be more than one document for one view. - -\membersection{wxView::m\_viewFrame}\label{wxviewmviewframe} - -\member{wxFrame*}{m\_viewFrame} - -Frame associated with the view, if any. - -\membersection{wxView::m\_viewTypeName}\label{wxviewmviewtypename} - -\member{wxString}{m\_viewTypeName} - -The view type name given to the wxDocTemplate constructor, copied to this -variable when the view is created. Not currently used by the framework. - -\membersection{wxView::wxView}\label{wxviewctor} - -\func{}{wxView}{\void} - -Constructor. Define your own default constructor to initialize application-specific -data. - -\membersection{wxView::\destruct{wxView}}\label{wxviewdtor} - -\func{}{\destruct{wxView}}{\void} - -Destructor. Removes itself from the document's list of views. - -\membersection{wxView::Activate}\label{wxviewactivate} - -\func{virtual void}{Activate}{\param{bool}{ activate}} - -Call this from your view frame's OnActivate member to tell the framework which view is -currently active. If your windowing system doesn't call OnActivate, you may need to -call this function from any place where you know the view must -be active, and the framework will need to get the current view. - -The prepackaged view frame wxDocChildFrame calls wxView::Activate from its OnActivate member. - -This function calls wxView::OnActivateView. - -\membersection{wxView::Close}\label{wxviewclose} - -\func{virtual bool}{Close}{\param{bool}{ deleteWindow = true}} - -Closes the view by calling OnClose. If {\it deleteWindow} is true, this function should -delete the window associated with the view. - -\membersection{wxView::GetDocument}\label{wxviewgetdocument} - -\constfunc{wxDocument*}{GetDocument}{\void} - -Gets a pointer to the document associated with the view. - -\membersection{wxView::GetDocumentManager}\label{wxviewgetdocumentmanager} - -\constfunc{wxDocManager*}{GetDocumentManager}{\void} - -Returns a pointer to the document manager instance associated with this view. - -\membersection{wxView::GetFrame}\label{wxviewgetframe} - -\func{wxWindow *}{GetFrame}{\void} - -Gets the frame associated with the view (if any). Note that this ``frame'' is -not a wxFrame at all in the generic MDI implementation which uses the notebook -pages instead of the frames and this is why this method returns a wxWindow and -not a wxFrame. - -\membersection{wxView::GetViewName}\label{wxviewgetviewname} - -\constfunc{wxString}{GetViewName}{\void} - -Gets the name associated with the view (passed to the wxDocTemplate constructor). -Not currently used by the framework. - -\membersection{wxView::OnActivateView}\label{wxviewonactivateview} - -\func{virtual void}{OnActivateView}{\param{bool }{activate}, \param{wxView *}{activeView}, \param{wxView *}{deactiveView}} - -Called when a view is activated by means of wxView::Activate. The default implementation does -nothing. - -\membersection{wxView::OnChangeFilename}\label{wxviewonchangefilename} - -\func{virtual void}{OnChangeFilename}{\void} - -Called when the filename has changed. The default implementation constructs a -suitable title and sets the title of the view frame (if any). - -\membersection{wxView::OnClose}\label{wxviewonclose} - -\func{virtual bool}{OnClose}{\param{bool}{ deleteWindow}} - -Implements closing behaviour. The default implementation calls wxDocument::Close -to close the associated document. Does not delete the view. The application -may wish to do some cleaning up operations in this function, {\it if} a -call to wxDocument::Close succeeded. For example, if your views -all share the same window, you need to disassociate the window from the view -and perhaps clear the window. If {\it deleteWindow} is true, delete the -frame associated with the view. - -\membersection{wxView::OnClosingDocument}\label{wxviewonclosingdocument} - -\func{virtual void}{OnClosingDocument}{\void} - -Override this to clean up the view when the document is being -closed. - -\membersection{wxView::OnCreate}\label{wxviewoncreate} - -\func{virtual bool}{OnCreate}{\param{wxDocument* }{doc}, \param{long}{ flags}} - -wxDocManager or wxDocument creates a wxView via a wxDocTemplate. -Just after the wxDocTemplate creates the wxView, it calls -wxView::OnCreate. In its OnCreate member function, the wxView can create a wxDocChildFrame -or a derived class. This wxDocChildFrame provides user interface -elements to view and/or edit the contents of the wxDocument. - -By default, simply returns true. If the function returns false, the -view will be deleted. - -\membersection{wxView::OnCreatePrintout}\label{wxviewoncreateprintout} - -\func{virtual wxPrintout*}{OnCreatePrintout}{\void} - -If the printing framework is enabled in the library, this function returns a -\rtfsp\helpref{wxPrintout}{wxprintout} object for the purposes of printing. It should create a new object -every time it is called; the framework will delete objects it creates. - -By default, this function returns an instance of wxDocPrintout, which prints -and previews one page by calling wxView::OnDraw. - -Override to return an instance of a class other than wxDocPrintout. - -\membersection{wxView::OnDraw}\label{onviewondraw} - -\func{virtual void}{OnDraw}{\param{wxDC* }{dc}} - -Override this function to render the view on the given device context. - -\membersection{wxView::OnUpdate}\label{onviewonupdate} - -\func{virtual void}{OnUpdate}{\param{wxView* }{sender}, \param{wxObject* }{hint}} - -Called when the view should be updated. {\it sender} is a pointer to the view -that sent the update request, or NULL if no single view requested the update (for instance, -when the document is opened). {\it hint} is as yet unused but may in future contain -application-specific information for making updating more efficient. - -\membersection{wxView::SetDocument}\label{wxviewsetdocument} - -\func{void}{SetDocument}{\param{wxDocument* }{doc}} - -Associates the given document with the view. Normally called by the -framework. - -\membersection{wxView::SetFrame}\label{wxviewsetframe} - -\func{void}{SetFrame}{\param{wxWindow* }{frame}} - -Sets the frame associated with this view. The application should call this -if possible, to tell the view about the frame. - -See \helpref{GetFrame}{wxviewgetframe} for the explanation about the mismatch -between the ``Frame'' in the method name and the type of its parameter. - -\membersection{wxView::SetViewName}\label{wxviewsetviewname} - -\func{void}{SetViewName}{\param{const wxString\& }{name}} - -Sets the view type name. Should only be called by the framework. - diff --git a/docs/latex/wx/vlbox.tex b/docs/latex/wx/vlbox.tex deleted file mode 100644 index 81e19d5966..0000000000 --- a/docs/latex/wx/vlbox.tex +++ /dev/null @@ -1,397 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: vlbox.tex -%% Purpose: wxVListBox documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 01.06.03 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVListBox}}\label{wxvlistbox} - -wxVListBox is a listbox-like control with the following two main differences -from a regular listbox: it can have an arbitrarily huge number of items because -it doesn't store them itself but uses \helpref{OnDrawItem()}{wxvlistboxondrawitem} -callback to draw them (so it is a {\Large V}irtual listbox) and its items can -have variable height as determined by -\helpref{OnMeasureItem()}{wxvlistboxonmeasureitem} (so it is also a listbox -with the lines of {\Large V}ariable height). - -Also, as a consequence of its virtual nature, it doesn't have any methods to -append or insert items in it as it isn't necessary to do it: you just have to -call \helpref{SetItemCount()}{wxvlistboxsetitemcount} to tell the control how -many items it should display. Of course, this also means that you will never -use this class directly because it has pure virtual functions, but will need to -derive your own class, such as \helpref{wxHtmlListBox}{wxhtmllistbox}, from it. - -However it emits the same events as \helpref{wxListBox}{wxlistbox} and the same -event macros may be used with it. Since wxVListBox does not store its items -itself, the events will only contain the index, not any contents such as the -string of an item. - -\wxheading{Derived from} - -\helpref{wxVScrolledWindow}{wxvscrolledwindow}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxSimpleHtmlListBox}{wxsimplehtmllistbox}, \helpref{wxHtmlListBox}{wxhtmllistbox} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxVListBox::wxVListBox}\label{wxvlistboxctor} - -\func{}{wxVListBox}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{size\_t }{countItems = 0}, \param{long }{style = 0}, \param{const wxString\& }{name = wxVListBoxNameStr}} - -Normal constructor which calls \helpref{Create()}{wxvlistboxcreate} internally. - -\func{}{wxVListBox}{\void} - -Default constructor, you must call \helpref{Create()}{wxvlistboxcreate} later. - - -\membersection{wxVListBox::Clear}\label{wxvlistboxclear} - -\func{void}{Clear}{\void} - -Deletes all items from the control. - - -\membersection{wxVListBox::Create}\label{wxvlistboxcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxVListBoxNameStr}} - -Creates the control. To finish creating it you also should call -\helpref{SetItemCount()}{wxvlistboxsetitemcount} to let it know about the -number of items it contains. - -The only special style which may be used with wxVListBox is {\tt wxLB\_MULTIPLE} -which indicates that the listbox should support multiple selection. - -Returns {\tt true} on success or {\tt false} if the control couldn't be created - - -\membersection{wxVListBox::DeselectAll}\label{wxvlistboxdeselectall} - -\func{bool}{DeselectAll}{\void} - -Deselects all the items in the listbox. - -Returns {\tt true} if any items were changed, i.e. if there had been any -selected items before, or {\tt false} if all the items were already deselected. - -This method is only valid for multi selection listboxes. - -\wxheading{See also} - -\helpref{SelectAll}{wxvlistboxselectall}, \helpref{Select}{wxvlistboxselect} - - -\membersection{wxVListBox::GetFirstSelected}\label{wxvlistboxgetfirstselected} - -\constfunc{int}{GetFirstSelected}{\param{unsigned long\& }{cookie}} - -Returns the index of the first selected item in the listbox or -{\tt wxNOT\_FOUND} if no items are currently selected. - -\arg{cookie} is an opaque parameter which should be passed to the subsequent -calls to \helpref{GetNextSelected}{wxvlistboxgetnextselected}. It is needed in -order to allow parallel iterations over the selected items. - -Here is a typical example of using these functions: -\begin{verbatim} -unsigned long cookie; -int item = hlbox->GetFirstSelected(cookie); -while ( item != wxNOT_FOUND ) -{ - ... process item ... - item = hlbox->GetNextSelected(cookie); -} -\end{verbatim} - -This method is only valid for multi selection listboxes. - - -\membersection{wxVListBox::GetItemCount}\label{wxvlistboxgetitemcount} - -\constfunc{size\_t}{GetItemCount}{\void} - -Get the number of items in the control. - -\wxheading{See also} - -\helpref{SetItemCount()}{wxvlistboxsetitemcount} - - -\membersection{wxVListBox::GetMargins}\label{wxvlistboxgetmargins} - -\constfunc{wxPoint}{GetMargins}{\void} - -Returns the margins used by the control. The {\tt x} field of the returned -point is the horizontal margin and the {\tt y} field is the vertical one. - -\wxheading{See also} - -\helpref{SetMargins}{wxvlistboxsetmargins} - - -\membersection{wxVListBox::GetNextSelected}\label{wxvlistboxgetnextselected} - -\constfunc{int}{GetNextSelected}{\param{unsigned long\& }{cookie}} - -Returns the index of the next selected item or {\tt wxNOT\_FOUND} if there are -no more. - -This method is only valid for multi selection listboxes. - -\wxheading{See also} - -\helpref{GetFirstSelected}{wxvlistboxgetfirstselected} - - -\membersection{wxVListBox::GetSelectedCount}\label{wxvlistboxgetselectedcount} - -\constfunc{size\_t}{GetSelectedCount}{\void} - -Returns the number of the items currently selected. - -It is valid for both single and multi selection controls. In the former case it -may only return $0$ or $1$ however. - -\wxheading{See also} - -\helpref{IsSelected}{wxvlistboxisselected},\\ -\helpref{GetFirstSelected}{wxvlistboxgetfirstselected},\\ -\helpref{GetNextSelected}{wxvlistboxgetnextselected} - - -\membersection{wxVListBox::GetSelection}\label{wxvlistboxgetselection} - -\constfunc{int}{GetSelection}{\void} - -Get the currently selected item or {\tt wxNOT\_FOUND} if there is no selection. - - -\membersection{wxVListBox::GetSelectionBackground}\label{wxvlistboxgetselectionbackground} - -\constfunc{const wxColour\&}{GetSelectionBackground}{\void} - -Returns the background colour used for the selected cells. By default the -standard system colour is used. - -\wxheading{See also} - -\helpref{wxSystemSettings::GetColour}{wxsystemsettingsgetcolour},\\ -\helpref{SetSelectionBackground}{wxvlistboxsetselectionbackground} - - -\membersection{wxVListBox::HasMultipleSelection}\label{wxvlistboxishasmultipleselection} - -\constfunc{bool}{HasMultipleSelection}{\void} - -Returns {\tt true} if the listbox was created with {\tt wxLB\_MULTIPLE} style -and so supports multiple selection or {\tt false} if it is a single selection -listbox. - - -\membersection{wxVListBox::IsCurrent}\label{wxvlistboxiscurrent} - -\constfunc{bool}{IsCurrent}{\param{size\_t }{item}} - -Returns {\tt true} if this item is the current one, {\tt false} otherwise. - -Current item is always the same as selected one for the single selection -listbox and in this case this method is equivalent to -\helpref{IsSelected}{wxvlistboxisselected} but they are different for multi -selection listboxes where many items may be selected but only one (at most) is -current. - - -\membersection{wxVListBox::IsSelected}\label{wxvlistboxisselected} - -\constfunc{bool}{IsSelected}{\param{size\_t }{item}} - -Returns {\tt true} if this item is selected, {\tt false} otherwise. - - -\membersection{wxVListBox::OnDrawBackground}\label{wxvlistboxondrawbackground} - -\constfunc{void}{OnDrawBackground}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{size\_t }{n}} - -This method is used to draw the items background and, maybe, a border -around it. - -The base class version implements a reasonable default behaviour which -consists in drawing the selected item with the standard background -colour and drawing a border around the item if it is either selected or -current. - - -\membersection{wxVListBox::OnDrawItem}\label{wxvlistboxondrawitem} - -\constfunc{void}{OnDrawItem}{\param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{size\_t }{n}} - -The derived class must implement this function to actually draw the item -with the given index on the provided DC. - -\wxheading{Parameters} - -\docparam{dc}{The device context to use for drawing} - -\docparam{rect}{The bounding rectangle for the item being drawn (DC clipping -region is set to this rectangle before calling this function)} - -\docparam{n}{The index of the item to be drawn} - - -\membersection{wxVListBox::OnDrawSeparator}\label{wxvlistboxondrawseparator} - -\constfunc{void}{OnDrawSeparator}{\param{wxDC\& }{dc}, \param{wxRect\& }{rect}, \param{size\_t }{n}} - -This method may be used to draw separators between the lines. The rectangle -passed to it may be modified, typically to deflate it a bit before passing to -\helpref{OnDrawItem()}{wxvlistboxondrawitem}. - -The base class version of this method doesn't do anything. - -\wxheading{Parameters} - -\docparam{dc}{The device context to use for drawing} - -\docparam{rect}{The bounding rectangle for the item} - -\docparam{n}{The index of the item} - - -\membersection{wxVListBox::OnMeasureItem}\label{wxvlistboxonmeasureitem} - -\constfunc{wxCoord}{OnMeasureItem}{\param{size\_t }{n}} - -The derived class must implement this method to return the height of the -specified item (in pixels). - - -\membersection{wxVListBox::Select}\label{wxvlistboxselect} - -\func{bool}{Select}{\param{size\_t }{item}, \param{bool }{select = true}} - -Selects or deselects the specified item which must be valid (i.e. not -equal to {\tt wxNOT\_FOUND}). - -Return {\tt true} if the items selection status has changed or {\tt false} -otherwise. - -This function is only valid for the multiple selection listboxes, use -\helpref{SetSelection}{wxvlistboxsetselection} for the single selection ones. - - -\membersection{wxVListBox::SelectAll}\label{wxvlistboxselectall} - -\func{bool}{SelectAll}{\void} - -Selects all the items in the listbox. - -Returns {\tt true} if any items were changed, i.e. if there had been any -unselected items before, or {\tt false} if all the items were already selected. - -This method is only valid for multi selection listboxes. - -\wxheading{See also} - -\helpref{DeselectAll}{wxvlistboxdeselectall}, \helpref{Select}{wxvlistboxselect} - - -\membersection{wxVListBox::SelectRange}\label{wxvlistboxselectrange} - -\func{bool}{SelectRange}{\param{size\_t }{from}, \param{size\_t }{to}} - -Selects all items in the specified range which may be given in any order. - -Return {\tt true} if the items selection status has changed or {\tt false} -otherwise. - -This method is only valid for multi selection listboxes. - -\wxheading{See also} - -\helpref{SelectAll}{wxvlistboxselectall}, \helpref{Select}{wxvlistboxselect} - -\membersection{wxVListBox::SetItemCount}\label{wxvlistboxsetitemcount} - -\func{void}{SetItemCount}{\param{size\_t }{count}} - -Set the number of items to be shown in the control. - -This is just a synonym for -\helpref{wxVScrolledWindow::SetRowCount()}{wxvarvscrollhelpersetrowcount}. - - -\membersection{wxVListBox::SetMargins}\label{wxvlistboxsetmargins} - -\func{void}{SetMargins}{\param{const wxPoint\& }{pt}} - -\func{void}{SetMargins}{\param{wxCoord }{x}, \param{wxCoord }{y}} - -Set the margins: horizontal margin is the distance between the window -border and the item contents while vertical margin is half of the -distance between items. - -By default both margins are $0$. - - -\membersection{wxVListBox::SetSelection}\label{wxvlistboxsetselection} - -\func{void}{SetSelection}{\param{int }{selection}} - -Set the selection to the specified item, if it is $-1$ the selection is -unset. The selected item will be automatically scrolled into view if it isn't -currently visible. - -This method may be used both with single and multiple selection listboxes. - - -\membersection{wxVListBox::SetSelectionBackground}\label{wxvlistboxsetselectionbackground} - -\func{void}{SetSelectionBackground}{\param{const wxColour\& }{col}} - -Sets the colour to be used for the selected cells background. The background of -the standard cells may be changed by simply calling -\helpref{SetBackgroundColour}{wxwindowsetbackgroundcolour}. - -Notice that using non-default background colour may result in control having -appearance different from the similar native controls and so should in general -be avoided. - -\wxheading{See also} - -\helpref{GetSelectionBackground}{wxvlistboxgetselectionbackground} - - -\membersection{wxVListBox::Toggle}\label{wxvlistboxtoggle} - -\func{void}{Toggle}{\param{size\_t }{item}} - -Toggles the state of the specified \arg{item}, i.e. selects it if it was -unselected and deselects it if it was selected. - -This method is only valid for multi selection listboxes. - -\wxheading{See also} - -\helpref{Select}{wxvlistboxselect} - diff --git a/docs/latex/wx/vscrolledwindow.tex b/docs/latex/wx/vscrolledwindow.tex deleted file mode 100644 index e571ab1131..0000000000 --- a/docs/latex/wx/vscrolledwindow.tex +++ /dev/null @@ -1,182 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: vscrolledwindow.tex (moved from vscroll.tex) -%% Purpose: wxVScrolledWindow Documentation -%% Author: Vadim Zeitlin, Bryan Petty -%% Modified by: -%% Created: 2003-05-30, modified 2007-04-04 -%% RCS-ID: $Id$ -%% Copyright: (c) 2003, 2007 wxWidgets Team -%% License: wxWindows Licence -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxVScrolledWindow}}\label{wxvscrolledwindow} - -In the name of this class, "V" may stand for "variable" because it can be -used for scrolling rows of variable heights; "virtual", because it is not -necessary to know the heights of all rows in advance -- only those which -are shown on the screen need to be measured; or even "vertical", because -this class only supports scrolling vertically. - -In any case, this is a generalization of the -\helpref{wxScrolledWindow}{wxscrolledwindow} class which can be only used when -all rows have the same heights. It lacks some other wxScrolledWindow features -however, notably it can't scroll only a rectangle of the window and not its -entire client area. - -To use this class, you need to derive from it and implement the -\helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight} pure virtual -method. You also must call \helpref{SetRowCount}{wxvarvscrollhelpersetrowcount} -to let the base class know how many rows it should display, but from that -moment on the scrolling is handled entirely by wxVScrolledWindow. You only -need to draw the visible part of contents in your {\tt OnPaint()} method as -usual. You should use \helpref{GetVisibleRowsBegin()}{wxvarvscrollhelpergetvisiblerowsbegin} -and \helpref{GetVisibleRowsEnd()}{wxvarvscrollhelpergetvisiblerowsend} to -select the lines to display. Note that the device context origin is not shifted -so the first visible row always appears at the point $(0, 0)$ in physical as -well as logical coordinates. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\helpref{wxVarVScrollHelper}{wxvarvscrollhelper}\\ -\helpref{wxVarScrollHelperBase}{wxvarscrollhelperbase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxHScrolledWindow}{wxhscrolledwindow}, -\rtfsp\helpref{wxHVScrolledWindow}{wxhvscrolledwindow} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% wxVarVScrollLegacyAdapter Compatibility Functions -%% This section will need to be removed when 2.8 compatibility is removed. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\membersection{wxWidgets 2.6 and 2.8 Compatibility Functions}\label{wxvscrolledwindowbackwardcompatibility} - -The following functions provide backwards compatibility for applications -originally built using wxVScrolledWindow in 2.6 or 2.8. Originally, -wxVScrolledWindow referred to scrolling "lines". We now use "units" in -wxVarScrollHelperBase to avoid implying any orientation (since the functions -are used for both horizontal and vertical scrolling in derived classes). And -in the new wxVScrolledWindow and wxHScrolledWindow classes, we refer to them -as "rows" and "columns", respectively. This is to help clear some confusion -in not only those classes, but also in wxHVScrolledWindow where functions -are inherited from both. - -You are encouraged to update any existing code using these function to use -the new replacements mentioned below, and avoid using these functions for -any new code as they are deprecated. - -\constfunc{size\_t}{GetFirstVisibleLine}{\void} - -Deprecated for \helpref{GetVisibleRowsBegin()}{wxvarvscrollhelpergetvisiblerowsbegin}. - -\constfunc{size\_t}{GetLastVisibleLine}{\void} - -Deprecated for \helpref{GetVisibleRowsEnd()}{wxvarvscrollhelpergetvisiblerowsend}. - -This function originally had a slight design flaw in that it was possible to -return \texttt{(size\_t)-1} (ie: a large positive number) if the scroll -position was 0 and the first line wasn't completely visible. - -\constfunc{size\_t}{GetLineCount}{\void} - -Deprecated for \helpref{GetRowCount()}{wxvarvscrollhelpergetrowcount}. - -\constfunc{int}{HitTest}{\param{wxCoord }{x}, \param{wxCoord }{y}} -\constfunc{int}{HitTest}{\param{const wxPoint\& }{pt}} - -Deprecated for \helpref{VirtualHitTest()}{wxvarscrollhelperbasevirtualhittest}. - -\constfunc{virtual wxCoord}{OnGetLineHeight}{\param{size\_t }{line}} - -Deprecated for \helpref{OnGetRowHeight()}{wxvarvscrollhelperongetrowheight}. - -\constfunc{virtual void}{OnGetLinesHint}{\param{size\_t }{lineMin}, \param{size\_t }{lineMax}} - -Deprecated for \helpref{OnGetRowsHeightHint()}{wxvarvscrollhelperongetrowsheighthint}. - -\func{virtual void}{RefreshLine}{\param{size\_t }{line}} - -Deprecated for \helpref{RefreshRow()}{wxvarvscrollhelperrefreshrow}. - -\func{virtual void}{RefreshLines}{\param{size\_t }{from}, \param{size\_t }{to}} - -Deprecated for \helpref{RefreshRows()}{wxvarvscrollhelperrefreshrows}. - -\func{virtual bool}{ScrollLines}{\param{int }{lines}} - -Deprecated for \helpref{ScrollRows()}{wxvarvscrollhelperscrollrows}. - -\func{virtual bool}{ScrollPages}{\param{int }{pages}} - -Deprecated for \helpref{ScrollRowPages()}{wxvarvscrollhelperscrollrowpages}. - -\func{bool}{ScrollToLine}{\param{size\_t }{line}} - -Deprecated for \helpref{ScrollToRow()}{wxvarvscrollhelperscrolltorow}. - -\func{void}{SetLineCount}{\param{size\_t }{count}} - -Deprecated for \helpref{SetRowCount()}{wxvarvscrollhelpersetrowcount}. - -%%%%%%%%%%%%%%%%%%%%%%% END COMPATIBILITY FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\membersection{wxVScrolledWindow::wxVScrolledWindow}\label{wxvscrolledwindowwxvscrolledwindow} - -\func{}{wxVScrolledWindow}{\void} - -Default constructor, you must call \helpref{Create()}{wxvscrolledwindowcreate} -later. - -\func{}{wxVScrolledWindow}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -This is the normal constructor, no need to call {\tt Create()} after using this one. - -Note that {\tt wxVSCROLL} is always automatically added to our style, there is -no need to specify it explicitly. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, must not be {\tt NULL}} - -\docparam{id}{The identifier of this window, {\tt wxID\_ANY} by default} - -\docparam{pos}{The initial window position} - -\docparam{size}{The initial window size} - -\docparam{style}{The window style. There are no special style bits defined for -this class.} - -\docparam{name}{The name for this window; usually not used} - - -\membersection{wxVScrolledWindow::Create}\label{wxvscrolledwindowcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = wxID\_ANY}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{long }{style = 0}, \param{const wxString\& }{name = wxPanelNameStr}} - -Same as the \helpref{non-default constuctor}{wxvscrolledwindowwxvscrolledwindow} -but returns status code: {\tt true} if ok, {\tt false} if the window couldn't -be created. - -Just as with the constructor above, the {\tt wxVSCROLL} style is always used, -there is no need to specify it explicitly. - diff --git a/docs/latex/wx/weakref.tex b/docs/latex/wx/weakref.tex deleted file mode 100644 index ad01dcf198..0000000000 --- a/docs/latex/wx/weakref.tex +++ /dev/null @@ -1,152 +0,0 @@ -\section{\class{wxWeakRef}}\label{wxweakref} - -wxWeakRef is a template class for weak references to wxWidgets objects, -such as \helpref{wxEvtHandler}{wxevthandler}, \helpref{wxWindow}{wxwindow} and -\helpref{wxObject}{wxobject}. A weak reference behaves much like an ordinary -pointer, but when the object pointed is destroyed, the weak reference is -automatically reset to a NULL pointer. - -wxWeakRef can be used whenever one must keep a pointer to an object -that one does not directly own, and that may be destroyed before the object -holding the reference. - -wxWeakRef is a small object and the mechanism behind it is fast -(\textbf{O(1)}). So the overall cost of using it is small. - - -\wxheading{Example} - -\begin{verbatim} - wxWindow *wnd = new wxWindow( parent, wxID_ANY, "wxWindow" ); - wxWeakRef wr = wnd; - wxWindowRef wr2 = wnd; // Same as above, but using a typedef - // Do things with window - wnd->Show( true ); - // Weak ref is used like an ordinary pointer - wr->Show( false ); - wnd->Destroy(); - // Now the weak ref has been reset, so we don't risk accessing - // a dangling pointer: - wxASSERT( wr==NULL ); -\end{verbatim} - -wxWeakRef works for any objects that are derived from \helpref{wxTrackable}{wxtrackable}. -By default, wxEvtHandler and wxWindow derive from wxTrackable. However, -wxObject does not, so types like \helpref{wxFont}{wxfont} and -\helpref{wxColour}{wxcolour} are not trackable. The example below shows how to -create a wxObject derived class that is trackable: - -\begin{verbatim} - class wxMyTrackableObject : public wxObject, public wxTrackable { - // ... other members here - }; -\end{verbatim} - -\wxheading{Predefined types} - -The following types of weak references are predefined: - -\begin{verbatim} -typedef wxWeakRef wxEvtHandlerRef; -typedef wxWeakRef wxWindowRef; -\end{verbatim} - - -\wxheading{Derived from} - -wxTrackerNode - -\wxheading{Include files} - - - -\wxheading{See also} - -\helpref{wxSharedPtr}{wxsharedptr}, \helpref{wxScopedPtr}{wxscopedptrtemplate} - -\wxheading{Data structures} - -{\small% -\begin{verbatim} -typedef T element_type -\end{verbatim} -}% - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxWeakRef::wxWeakRef}\label{wxweakrefwxweakref} - -\func{}{wxWeakRef}{\param{T* }{pobj = NULL}} - -Constructor. The weak reference is initialized to {\it pobj}. - - -\membersection{wxWeakRef::\destruct{wxWeakRef}}\label{wxweakrefdtor} - -\func{}{\destruct{wxWeakRef}}{\void} - -Destructor. - - -\membersection{wxWeakRef::get}\label{wxweakrefget} - -\constfunc{T *}{get}{\void} - -Returns pointer to the tracked object or NULL. - -\membersection{wxWeakRef::operator T*}\label{wxweakrefoperatorconvt} - -\constfunc{T*}{operator*}{\void} - -Implicit conversion to T*. Returns pointer to the tracked -object or NULL. - -\membersection{wxWeakRef::operator*}\label{wxweakrefoperatorreft} - -\constfunc{T \&}{operator*}{\void} - -Returns a reference to the tracked object. If the internal pointer is NULL -this method will cause an assert in debug mode. - - -\membersection{wxWeakRef::operator->}\label{wxweakrefoperatorderef} - -\func{T*}{operator->}{\void} - -Smart pointer member access. Returns a pointer to the -tracked object. If the internal pointer is NULL this -method will cause an assert in debug mode. - - -\membersection{wxWeakRef::operator=}\label{wxweakrefoperatorassign} - -\func{T*}{operator=}{\param{T* }{pobj}} - -Releases the currently tracked object and starts tracking {\it pobj}. -A weak reference may be reset by passing {\it NULL} as {\it pobj}. - - -\membersection{wxWeakRef::operator =}\label{wxweakrefoperatorassign2} - -\func{T*}{operator =}{\param{wxWeakRef\& }{wr}} - -Release currently tracked object and start tracking the same object as -the wxWeakRef {\it wr}. - - -\membersection{wxWeakRef::Release}\label{wxweakrefrelease} - -\func{void}{Release}{\void} - -Release currently tracked object and rests object reference. - - -\membersection{wxWeakRef::OnObjectDestroy}\label{wxweakrefonobjectdestroy} - -\func{virtual void}{OnObjectDestroy}{\void} - -Called when the tracked object is destroyed. Be default sets -internal pointer to NULL. - diff --git a/docs/latex/wx/weakrefdynamic.tex b/docs/latex/wx/weakrefdynamic.tex deleted file mode 100644 index 43604ec61f..0000000000 --- a/docs/latex/wx/weakrefdynamic.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxWeakRefDynamic}}\label{wxweakrefdynamic} - -wxWeakRefDynamic is a template class for weak references that is used in -the same way as wxWeakRef. The only difference is that wxWeakRefDynamic -defaults to using \texttt{dynamic\_cast<>} for establishing the object -reference (while wxWeakRef defaults to \texttt{static\_cast<>}). - -So, wxWeakRef will detect a type mismatch during compile time and will -have a little better run-time performance. The role of wxWeakRefDynamic -is to handle objects which derived type one does not know. - -\textbf{Note:} wxWeakRef selects an implementation based on the static type -of T. If T does not have wxTrackable statically, it defaults to to a mixed- -mode operation, where it uses \texttt{dynamic\_cast<>} as the last measure (if -available from the compiler and enabled when building wxWidgets). - -For general cases, wxWeakRef is the better choice. - -For API documentation, see: \helpref{wxWeakRef}{wxweakref} - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxWeakRefDynamic::wxWeakRefDynamic}\label{wxweakrefdynamicwxweakrefdynamic} - -\func{}{wxWeakRefDynamic}{\void} - -TOWRITE. diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex deleted file mode 100644 index 41cc692700..0000000000 --- a/docs/latex/wx/window.tex +++ /dev/null @@ -1,4164 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: window.tex -%% Purpose: wxWindow documentation -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWindow}}\label{wxwindow} - -wxWindow is the base class for all windows and represents any visible object on -screen. All controls, top level windows and so on are windows. Sizers and -device contexts are not, however, as they don't appear on screen themselves. - -Please note that all children of the window will be deleted automatically by -the destructor before the window itself is deleted which means that you don't -have to worry about deleting them manually. Please see the \helpref{window -deletion overview}{windowdeletionoverview} for more information. - -Also note that in this, and many others, wxWidgets classes some -\texttt{GetXXX()} methods may be overloaded (as, for example, -\helpref{GetSize}{wxwindowgetsize} or -\helpref{GetClientSize}{wxwindowgetclientsize}). In this case, the overloads -are non-virtual because having multiple virtual functions with the same name -results in a virtual function name hiding at the derived class level (in -English, this means that the derived class has to override all overloaded -variants if it overrides any of them). To allow overriding them in the derived -class, wxWidgets uses a unique protected virtual \texttt{DoGetXXX()} method -and all \texttt{GetXXX()} ones are forwarded to it, so overriding the former -changes the behaviour of the latter. - -\wxheading{Derived from} - -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{Window styles} - -The following styles can apply to all windows, although they will not always make sense for a particular -window class or on all platforms. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxBORDER\_DEFAULT}}{The window class will decide the kind of border to show, if any.} -\twocolitem{\windowstyle{wxBORDER\_SIMPLE}}{Displays a thin border around the window. wxSIMPLE\_BORDER is the old name -for this style. } -\twocolitem{\windowstyle{wxBORDER\_SUNKEN}}{Displays a sunken border. wxSUNKEN\_BORDER is the old name for this style.} -\twocolitem{\windowstyle{wxBORDER\_RAISED}}{Displays a raised border. wxRAISED\_BORDER is the old name for this style. } -\twocolitem{\windowstyle{wxBORDER\_STATIC}}{Displays a border suitable for a static control. wxSTATIC\_BORDER is the old name for this style. Windows only. } -\twocolitem{\windowstyle{wxBORDER\_THEME}}{Displays a native border suitable for a control, on the current platform. On Windows XP or Vista, this will be a themed border; on most other platforms -a sunken border will be used. For more information for themed borders on Windows, please see \helpref{Themed borders on Windows}{wxmswthemedborders}.} -\twocolitem{\windowstyle{wxBORDER\_NONE}}{Displays no border, overriding the default border style for the window. wxNO\_BORDER is the old name for this style.} -\twocolitem{\windowstyle{wxBORDER\_DOUBLE}}{This style is obsolete and should not be used.} -\twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint -events. Windows only.} -\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.} -\twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that -the window wants to get all char/key events for all keys - even for -keys like TAB or ENTER which are usually used for dialog navigation -and which wouldn't be generated without this style. If you need to -use this style in order to get the arrows or etc., but would still like -to have normal keyboard navigation take place, you should call -\helpref{Navigate}{wxwindownavigate} in response to the key events for -Tab and Shift-Tab.} -\twocolitem{\windowstyle{wxNO\_FULL\_REPAINT\_ON\_RESIZE}}{On Windows, this style used to disable repainting -the window completely when its size is changed. Since this behaviour is now the default, the style is now obsolete -and no longer has an effect.} -\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical -scrollbar. Notice that this style cannot be used with native controls -which don't support scrollbars nor with top-level windows in most ports.} -\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal -scrollbar. The same limitations as for wxVSCROLL apply to this style.} -\twocolitem{\windowstyle{wxALWAYS\_SHOW\_SB}}{If a window has scrollbars, -disable them instead of hiding them when they are not needed (i.e. when the -size of the window is big enough to not require the scrollbars to navigate it). -This style is currently implemented for wxMSW, wxGTK and wxUniversal and does -nothing on the other platforms.} -\twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being -repainted, then children being painted over them. Windows only.} -\twocolitem{\windowstyle{wxFULL\_REPAINT\_ON\_RESIZE}}{Use this style to force -a complete redraw of the window whenever it is resized instead of redrawing -just the part of the window affected by resizing. Note that this was the -behaviour by default before 2.5.1 release and that if you experience redraw -problems with code which previously used to work you may want to try this. -Currently this style applies on GTK+ 2 and Windows only, and full repainting is always -done on other platforms.} -\end{twocollist} - -See also \helpref{window styles overview}{windowstyles}. - -\wxheading{Extra window styles} - -The following are extra styles, set using \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle}. - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxWS\_EX\_VALIDATE\_RECURSIVELY}}{By default, Validate/TransferDataTo/FromWindow() -only work on direct children of the window (compatible behaviour). Set this flag to make them recursively -descend into all subwindows.} -\twocolitem{\windowstyle{wxWS\_EX\_BLOCK\_EVENTS}}{wxCommandEvents and the objects of the derived classes are forwarded to the -parent window and so on recursively by default. Using this flag for the -given window allows to block this propagation at this window, i.e. prevent -the events from being propagated further upwards. Dialogs have this -flag on by default.} -\twocolitem{\windowstyle{wxWS\_EX\_TRANSIENT}}{Don't use this window as an implicit parent for the other windows: this must -be used with transient windows as otherwise there is the risk of creating a -dialog/frame with this window as a parent which would lead to a crash if the -parent is destroyed before the child.} -\twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_IDLE}}{This window should always process idle events, even -if the mode set by \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} is wxIDLE\_PROCESS\_SPECIFIED.} -\twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_UI\_UPDATES}}{This window should always process UI update events, -even if the mode set by \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} is wxUPDATE\_UI\_PROCESS\_SPECIFIED.} -\end{twocollist} - -\wxheading{See also} - -\helpref{Event handling overview}{eventhandlingoverview}\\ -\helpref{Window sizing overview}{windowsizingoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxWindow::wxWindow}\label{wxwindowctor} - -\func{}{wxWindow}{\void} - -Default constructor. - -\func{}{wxWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id}, - \param{const wxPoint\& }{pos = wxDefaultPosition}, - \param{const wxSize\& }{size = wxDefaultSize}, - \param{long }{style = 0}, - \param{const wxString\& }{name = wxPanelNameStr}} - -Constructs a window, which can be a child of a frame, dialog or any other non-control window. - -\wxheading{Parameters} - -\docparam{parent}{Pointer to a parent window.} - -\docparam{id}{Window identifier. If wxID\_ANY, will automatically create an identifier.} - -\docparam{pos}{Window position. wxDefaultPosition indicates that wxWidgets -should generate a default position for the window. If using the wxWindow class directly, supply -an actual position.} - -\docparam{size}{Window size. wxDefaultSize indicates that wxWidgets -should generate a default size for the window. If no suitable size can be found, the -window will be sized to 20x20 pixels so that the window is visible but obviously not -correctly sized. } - -\docparam{style}{Window style. For generic window styles, please see \helpref{wxWindow}{wxwindow}.} - -\docparam{name}{Window name.} - - -\membersection{wxWindow::\destruct{wxWindow}}\label{wxwindowdtor} - -\func{}{\destruct{wxWindow}}{\void} - -Destructor. Deletes all sub-windows, then deletes itself. Instead of using -the {\bf delete} operator explicitly, you should normally -use \helpref{wxWindow::Destroy}{wxwindowdestroy} so that wxWidgets -can delete a window only when it is safe to do so, in idle time. - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent} - - -\membersection{wxWindow::AcceptsFocus}\label{wxwindowacceptsfocus} - -\constfunc{bool}{AcceptsFocus}{\void} - -This method may be overridden in the derived classes to return \false to -indicate that this control doesn't accept input at all (i.e. behaves like e.g. -\helpref{wxStaticText}{wxstatictext}) and so doesn't need focus. - -\wxheading{See also} - -\helpref{AcceptsFocusFromKeyboard}{wxwindowacceptsfocusfromkeyboard} - - -\membersection{wxWindow::AcceptsFocusFromKeyboard}\label{wxwindowacceptsfocusfromkeyboard} - -\constfunc{bool}{AcceptsFocusFromKeyboard}{\void} - -This method may be overridden in the derived classes to return \false to -indicate that while this control can, in principle, have focus if the user -clicks it with the mouse, it shouldn't be included in the TAB traversal chain -when using the keyboard. - - -\membersection{wxWindow::AddChild}\label{wxwindowaddchild} - -\func{virtual void}{AddChild}{\param{wxWindow* }{child}} - -Adds a child window. This is called automatically by window creation -functions so should not be required by the application programmer. - -Notice that this function is mostly internal to wxWidgets and shouldn't be -called by the user code. - -\wxheading{Parameters} - -\docparam{child}{Child window to add.} - - -\membersection{wxWindow::AlwaysShowScrollbars}\label{wxwindowalwaysshowscrollbars} - -\func{void}{AlwaysShowScrollbars}{\param{bool}{ hflag}, \param{bool}{ vflag}} - -Call this function to force one or both scrollbars to be always shown, even if -the window is big enough to show its entire contents without scrolling. - -\newsince{2.9.0} - -\wxheading{Parameters} - -\docparam{hflag}{Whether the horizontal scroll bar should always be visible.} - -\docparam{vflag}{Whether the vertical scroll bar should always be visible.} - -\wxheading{Remarks} - -This function is currently only implemented under Mac/Carbon. - - -\membersection{wxWindow::CacheBestSize}\label{wxwindowcachebestsize} - -\constfunc{void}{CacheBestSize}{\param{const wxSize\& }{size}} - -Sets the cached best size value. - - -\membersection{wxWindow::CanSetTransparent}\label{wxwindowcansettransparent} - -\func{bool}{CanSetTransparent}{\void} - -Returns \true if the system supports transparent windows and calling -\helpref{SetTransparent}{wxwindowsettransparent} may succeed. If this function -returns \false, transparent windows are definitely not supported by the current -system. - - -\membersection{wxWindow::CaptureMouse}\label{wxwindowcapturemouse} - -\func{virtual void}{CaptureMouse}{\void} - -Directs all mouse input to this window. Call \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse} to -release the capture. - -Note that wxWidgets maintains the stack of windows having captured the mouse -and when the mouse is released the capture returns to the window which had had -captured it previously and it is only really released if there were no previous -window. In particular, this means that you must release the mouse as many times -as you capture it, unless the window receives -the \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} event. - -Any application which captures the mouse in the beginning of some operation -{\em must} handle \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} -and cancel this operation when it receives the event. The event handler must -not recapture mouse. - -\wxheading{See also} - -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse} -\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} - - -\membersection{wxWindow::Center}\label{wxwindowcenter} - -\func{void}{Center}{\param{int}{ direction}} - -A synonym for \helpref{Centre}{wxwindowcentre}. - - -\membersection{wxWindow::CenterOnParent}\label{wxwindowcenteronparent} - -\func{void}{CenterOnParent}{\param{int}{ direction}} - -A synonym for \helpref{CentreOnParent}{wxwindowcentreonparent}. - - -\membersection{wxWindow::Centre}\label{wxwindowcentre} - -\func{void}{Centre}{\param{int}{ direction = wxBOTH}} - -Centres the window. - -\wxheading{Parameters} - -\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp -or {\tt wxBOTH}. It may also include {\tt wxCENTRE\_ON\_SCREEN} flag -if you want to center the window on the entire screen and not on its -parent window.} - -The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer -(it has no effect). - -\wxheading{Remarks} - -If the window is a top level one (i.e. doesn't have a parent), it will be -centered relative to the screen anyhow. - -\wxheading{See also} - -\helpref{wxWindow::Center}{wxwindowcenter} - - -\membersection{wxWindow::CentreOnParent}\label{wxwindowcentreonparent} - -\func{void}{CentreOnParent}{\param{int}{ direction = wxBOTH}} - -Centres the window on its parent. This is a more readable synonym for -\helpref{Centre}{wxwindowcentre}. - -\wxheading{Parameters} - -\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp -or {\tt wxBOTH}.} - -\wxheading{Remarks} - -This methods provides for a way to center top level windows over their -parents instead of the entire screen. If there is no parent or if the -window is not a top level window, then behaviour is the same as -\helpref{wxWindow::Centre}{wxwindowcentre}. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::CentreOnScreen}{wxtoplevelwindowcenteronscreen} - - -\membersection{wxWindow::ClearBackground}\label{wxwindowclearbackground} - -\func{void}{ClearBackground}{\void} - -Clears the window by filling it with the current background colour. Does not -cause an erase background event to be generated. - - -\membersection{wxWindow::ClientToScreen}\label{wxwindowclienttoscreen} - -\constfunc{virtual void}{ClientToScreen}{\param{int* }{x}, \param{int* }{y}} - -\perlnote{In wxPerl this method returns a 2-element list instead of -modifying its parameters.} - -\constfunc{virtual wxPoint}{ClientToScreen}{\param{const wxPoint\&}{ pt}} - -Converts to screen coordinates from coordinates relative to this window. - -\docparam{x}{A pointer to a integer value for the x coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.} - -\docparam{y}{A pointer to a integer value for the y coordinate. Pass the client coordinate in, and -a screen coordinate will be passed out.} - -\docparam{pt}{The client position for the second form of the function.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf ClientToScreen(point)}}{Accepts and returns a wxPoint} -\twocolitem{{\bf ClientToScreenXY(x, y)}}{Returns a 2-tuple, (x, y)} -\end{twocollist}} -} - -\membersection{wxWindow::ClientToWindowSize}\label{wxwindowclienttowindowsize} - -\func{virtual wxSize}{ClientToWindowSize}{\param{const wxSize\&}{ size}} - -Converts client area size \arg{size} to corresponding window size. In other -words, the returned value is what would \helpref{GetSize}{wxwindowgetsize} -return if this window had client area of given size. -Components with $wxDefaultCoord$ value are left unchanged. - -Note that the conversion is not always exact, it assumes that non-client area -doesn't change and so doesn't take into account things like menu bar -(un)wrapping or (dis)appearance of the scrollbars. - -\wxheading{See also} - -\helpref{wxWindow::WindowToClientSize}{wxwindowwindowtoclientsize} - - -\membersection{wxWindow::Close}\label{wxwindowclose} - -\func{bool}{Close}{\param{bool}{ force = {\tt false}}} - -This function simply generates a \helpref{wxCloseEvent}{wxcloseevent} whose -handler usually tries to close the window. It doesn't close the window itself, -however. - -\wxheading{Parameters} - -\docparam{force}{{\tt false} if the window's close handler should be able to veto the destruction -of this window, {\tt true} if it cannot.} - -\wxheading{Remarks} - -Close calls the \helpref{close handler}{wxcloseevent} for the window, providing -an opportunity for the window to choose whether to destroy the window. -Usually it is only used with the top level windows (wxFrame and wxDialog -classes) as the others are not supposed to have any special OnClose() logic. - -The close handler should check whether the window is being deleted forcibly, -using \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto}, in which case it -should destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}. - -{\it Note} that calling Close does not guarantee that the window will be -destroyed; but it provides a way to simulate a manual close of a window, which -may or may not be implemented by destroying the window. The default -implementation of wxDialog::OnCloseWindow does not necessarily delete the -dialog, since it will simply simulate an wxID\_CANCEL event which is handled by -the appropriate button event handler and may do anything at all. - -To guarantee that the window will be destroyed, call -\helpref{wxWindow::Destroy}{wxwindowdestroy} instead - -\wxheading{See also} - -\helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -\helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp -\helpref{wxCloseEvent}{wxcloseevent} - - -\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels} - -\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}} - -\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}} - -Converts a point or size from dialog units to pixels. - -For the x dimension, the dialog units are multiplied by the average character width -and then divided by 4. - -For the y dimension, the dialog units are multiplied by the average character height -and then divided by 8. - -\wxheading{Remarks} - -Dialog units are used for maintaining a dialog's proportions even if the font changes. - -You can also use these functions programmatically. A convenience macro is defined: - -{\small -\begin{verbatim} -#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint} -\twocolitem{{\bf ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize} -\end{twocollist}} - -Additionally, the following helper functions are defined:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf wxDLG\_PNT(win, point)}}{Converts a wxPoint from dialog -units to pixels} -\twocolitem{{\bf wxDLG\_SZE(win, size)}}{Converts a wxSize from dialog -units to pixels} -\end{twocollist}} -} - - - -\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog} - -\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}} - -\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}} - -Converts a point or size from pixels to dialog units. - -For the x dimension, the pixels are multiplied by 4 and then divided by the average -character width. - -For the y dimension, the pixels are multiplied by 8 and then divided by the average -character height. - -\wxheading{Remarks} - -Dialog units are used for maintaining a dialog's proportions even if the font changes. - -\wxheading{See also} - -\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels} - -\pythonnote{In place of a single overloaded method name, wxPython implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint} -\twocolitem{{\bf ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize} -\end{twocollist}} -} - - -\membersection{wxWindow::Destroy}\label{wxwindowdestroy} - -\func{virtual bool}{Destroy}{\void} - -Destroys the window safely. Use this function instead of the delete operator, since -different window classes can be destroyed differently. Frames and dialogs -are not destroyed immediately when this function is called -- they are added -to a list of windows to be deleted on idle time, when all the window's events -have been processed. This prevents problems with events being sent to non-existent -windows. - -\wxheading{Return value} - -{\tt true} if the window has either been successfully deleted, or it has been added -to the list of windows pending real deletion. - - -\membersection{wxWindow::DestroyChildren}\label{wxwindowdestroychildren} - -\func{virtual void}{DestroyChildren}{\void} - -Destroys all children of a window. Called automatically by the destructor. - - -\membersection{wxWindow::Disable}\label{wxwindowdisable} - -\func{bool}{Disable}{\void} - -Disables the window, same as \helpref{Enable({\tt false})}{wxwindowenable}. - -\wxheading{Return value} - -Returns {\tt true} if the window has been disabled, {\tt false} if it had been -already disabled before the call to this function. - - -\membersection{wxWindow::DoGetBestSize}\label{wxwindowdogetbestsize} - -\constfunc{virtual wxSize}{DoGetBestSize}{\void} - -Gets the size which best suits the window: for a control, it would be -the minimal size which doesn't truncate the control, for a panel - the -same size as it would have after a call to \helpref{Fit()}{wxwindowfit}. - - -\membersection{wxWindow::DoUpdateWindowUI}\label{wxwindowdoupdatewindowui} - -\func{virtual void}{DoUpdateWindowUI}{\param{wxUpdateUIEvent\&}{ event}} - -Does the window-specific updating after processing the update event. -This function is called by \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui} -in order to check return values in the \helpref{wxUpdateUIEvent}{wxupdateuievent} and -act appropriately. For example, to allow frame and dialog title updating, wxWidgets -implements this function as follows: - -\begin{verbatim} -// do the window-specific processing after processing the update event -void wxTopLevelWindowBase::DoUpdateWindowUI(wxUpdateUIEvent& event) -{ - if ( event.GetSetEnabled() ) - Enable(event.GetEnabled()); - - if ( event.GetSetText() ) - { - if ( event.GetText() != GetTitle() ) - SetTitle(event.GetText()); - } -} -\end{verbatim} - - - -\membersection{wxWindow::DragAcceptFiles}\label{wxwindowdragacceptfiles} - -\func{virtual void}{DragAcceptFiles}{\param{bool}{ accept}} - -Enables or disables eligibility for drop file events (OnDropFiles). - -\wxheading{Parameters} - -\docparam{accept}{If {\tt true}, the window is eligible for drop file events. If {\tt false}, the window -will not accept drop file events.} - -\wxheading{Remarks} - -Windows only. - - -\membersection{wxWindow::Enable}\label{wxwindowenable} - -\func{virtual bool}{Enable}{\param{bool}{ enable = {\tt true}}} - -Enable or disable the window for user input. Note that when a parent window is -disabled, all of its children are disabled as well and they are reenabled again -when the parent is. - -\wxheading{Parameters} - -\docparam{enable}{If {\tt true}, enables the window for input. If {\tt false}, disables the window.} - -\wxheading{Return value} - -Returns {\tt true} if the window has been enabled or disabled, {\tt false} if -nothing was done, i.e. if the window had already been in the specified state. - -\wxheading{See also} - -\helpref{wxWindow::IsEnabled}{wxwindowisenabled},\rtfsp -\helpref{wxWindow::Disable}{wxwindowdisable},\rtfsp -\helpref{wxRadioBox::Enable}{wxradioboxenable} - - -\membersection{wxWindow::FindFocus}\label{wxwindowfindfocus} - -\func{static wxWindow*}{FindFocus}{\void} - -Finds the window or control which currently has the keyboard focus. - -\wxheading{Remarks} - -Note that this is a static function, so it can be called without needing a wxWindow pointer. - -\wxheading{See also} - -\helpref{wxWindow::SetFocus}{wxwindowsetfocus}, -\helpref{wxWindow::HasFocus}{wxwindowhasfocus} - - - -\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow} - -\constfunc{wxWindow*}{FindWindow}{\param{long}{ id}} - -Find a child of this window, by identifier. - -\constfunc{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}} - -Find a child of this window, by name. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf FindWindowById(id)}}{Accepts an integer} -\twocolitem{{\bf FindWindowByName(name)}}{Accepts a string} -\end{twocollist}} -} - - -\membersection{wxWindow::FindWindowById}\label{wxwindowfindwindowbyid} - -\func{static wxWindow*}{FindWindowById}{\param{long}{ id}, \param{wxWindow*}{ parent = NULL}} - -Find the first window with the given {\it id}. - -If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -\wxheading{See also} - -\helpref{FindWindow}{wxwindowfindwindow} - - -\membersection{wxWindow::FindWindowByLabel}\label{wxwindowfindwindowbylabel} - -\func{static wxWindow*}{FindWindowByLabel}{\param{const wxString\&}{ label}, \param{wxWindow*}{ parent = NULL}} - -Find a window by its label. Depending on the type of window, the label may be a window title -or panel item label. If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -\wxheading{See also} - -\helpref{FindWindow}{wxwindowfindwindow} - - -\membersection{wxWindow::FindWindowByName}\label{wxwindowfindwindowbyname} - -\func{static wxWindow*}{FindWindowByName}{\param{const wxString\&}{ name}, \param{wxWindow*}{ parent = NULL}} - -Find a window by its name (as given in a window constructor or {\bf Create} function call). -If {\it parent} is NULL, the search will start from all top-level -frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy. -The search is recursive in both cases. - -If no window with such name is found, -\helpref{FindWindowByLabel}{wxwindowfindwindowbylabel} is called. - -\wxheading{See also} - -\helpref{FindWindow}{wxwindowfindwindow} - - -\membersection{wxWindow::Fit}\label{wxwindowfit} - -\func{virtual void}{Fit}{\void} - -Sizes the window so that it fits around its subwindows. This function won't do -anything if there are no subwindows and will only really work correctly if -sizers are used for the subwindows layout. Also, if the window has exactly one -subwindow it is better (faster and the result is more precise as Fit adds some -margin to account for fuzziness of its calculations) to call - -\begin{verbatim} - window->SetClientSize(child->GetSize()); -\end{verbatim} - -instead of calling Fit. - - -\membersection{wxWindow::FitInside}\label{wxwindowfitinside} - -\func{virtual void}{FitInside}{\void} - -Similar to \helpref{Fit}{wxwindowfit}, but sizes the interior (virtual) size -of a window. Mainly useful with scrolled windows to reset scrollbars after -sizing changes that do not trigger a size event, and/or scrolled windows without -an interior sizer. This function similarly won't do anything if there are no -subwindows. - - -\membersection{wxWindow::Freeze}\label{wxwindowfreeze} - -\func{virtual void}{Freeze}{\void} - -Freezes the window or, in other words, prevents any updates from taking place -on screen, the window is not redrawn at all. \helpref{Thaw}{wxwindowthaw} must -be called to reenable window redrawing. Calls to these two functions may be -nested but to ensure that the window is properly repainted again, you must thaw -it exactly as many times as you froze it. - -This method is useful for visual appearance optimization (for example, it -is a good idea to use it before doing many large text insertions in a row into -a wxTextCtrl under wxGTK) but is not implemented on all platforms nor for all -controls so it is mostly just a hint to wxWidgets and not a mandatory -directive. - -\wxheading{See also} - -\helpref{wxWindowUpdateLocker}{wxwindowupdatelocker} - - -\membersection{wxWindow::GetAcceleratorTable}\label{wxwindowgetacceleratortable} - -\constfunc{wxAcceleratorTable*}{GetAcceleratorTable}{\void} - -Gets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}. - - -\membersection{wxWindow::GetAccessible}\label{wxwindowgetaccessible} - -\func{wxAccessible*}{GetAccessible}{\void} - -Returns the accessible object for this window, if any. - -See also \helpref{wxAccessible}{wxaccessible}. - - -\membersection{wxWindow::GetAdjustedBestSize}\label{wxwindowgetadjustedbestsize} - -\constfunc{wxSize}{GetAdjustedBestSize}{\void} - -This method is deprecated, use \helpref{GetEffectiveMinSize}{wxwindowgeteffectiveminsize} -instead. - - -\membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour} - -\constfunc{virtual wxColour}{GetBackgroundColour}{\void} - -Returns the background colour of the window. - -\wxheading{See also} - -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour} - -\membersection{wxWindow::GetBackgroundStyle}\label{wxwindowgetbackgroundstyle} - -\constfunc{virtual wxBackgroundStyle}{GetBackgroundStyle}{\void} - -Returns the background style of the window. The background style can be one of: -\begin{twocollist}\itemsep=0pt -\twocolitem{wxBG\_STYLE\_SYSTEM}{Use the default background, as determined by -the system or the current theme.} -\twocolitem{wxBG\_STYLE\_COLOUR}{Use a solid colour for the background, this -style is set automatically if you call -\helpref{SetBackgroundColour}{wxwindowsetbackgroundcolour} so you only need to -set it explicitly if you had changed the background style to something else -before.} -\twocolitem{wxBG\_STYLE\_CUSTOM}{Don't draw the background at all, it's -supposed that it is drawn by the user-defined erase background event handler. -This style should be used to avoid flicker when the background is entirely -custom-drawn.} -\twocolitem{wxBG\_STYLE\_TRANSPARET}{The background is (partially) transparent, -this style is automatically set if you call -\helpref{SetTransparent}{wxwindowsettransparent} which is used to set the -transparency level.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::SetBackgroundStyle}{wxwindowsetbackgroundstyle},\rtfsp -\helpref{wxWindow::SetTransparent}{wxwindowsettransparent} - - -\membersection{wxWindow::GetEffectiveMinSize}\label{wxwindowgeteffectiveminsize} - -\constfunc{wxSize}{GetEffectiveMinSize}{\void} - -Merges the window's best size into the min size and returns the -result. This is the value used by sizers to determine the appropriate -ammount of space to allocate for the widget. - -\wxheading{See also} - -\helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp -\helpref{wxWindow::SetInitialSize}{wxwindowsetinitialsize} - - -\membersection{wxWindow::GetBestSize}\label{wxwindowgetbestsize} - -\constfunc{wxSize}{GetBestSize}{\void} - -This functions returns the best acceptable minimal size for the window. For -example, for a static control, it will be the minimal size such that the -control label is not truncated. For windows containing subwindows (typically -\helpref{wxPanel}{wxpanel}), the size returned by this function will be the -same as the size the window would have had after calling -\helpref{Fit}{wxwindowfit}. - - -\membersection{wxWindow::GetCapture}\label{wxwindowgetcapture} - -\func{static wxWindow *}{GetCapture}{\void} - -Returns the currently captured window. - -\wxheading{See also} - -\helpref{wxWindow::HasCapture}{wxwindowhascapture}, -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}, -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}, -\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} -\helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent} - - -\membersection{wxWindow::GetCaret}\label{wxwindowgetcaret} - -\constfunc{wxCaret *}{GetCaret}{\void} - -Returns the \helpref{caret}{wxcaret} associated with the window. - - -\membersection{wxWindow::GetCharHeight}\label{wxwindowgetcharheight} - -\constfunc{virtual int}{GetCharHeight}{\void} - -Returns the character height for this window. - - -\membersection{wxWindow::GetCharWidth}\label{wxwindowgetcharwidth} - -\constfunc{virtual int}{GetCharWidth}{\void} - -Returns the average character width for this window. - - -\membersection{wxWindow::GetChildren}\label{wxwindowgetchildren} - -\func{wxWindowList\&}{GetChildren}{\void} - -\constfunc{const wxWindowList\&}{GetChildren}{\void} - -Returns a reference to the list of the window's children. \texttt{wxWindowList} -is a type-safe \helpref{wxList}{wxlist}-like class whose elements are of type -\texttt{wxWindow *}. - - -\membersection{wxWindow::GetClassDefaultAttributes}\label{wxwindowgetclassdefaultattributes} - -\func{static wxVisualAttributes}{GetClassDefaultAttributes}{\param{wxWindowVariant}{ variant = \texttt{wxWINDOW\_VARIANT\_NORMAL}}} - -Returns the default font and colours which are used by the control. This is -useful if you want to use the same font or colour in your own control as in a -standard control -- which is a much better idea than hard coding specific -colours or fonts which might look completely out of place on the users -system, especially if it uses themes. - -The \arg{variant} parameter is only relevant under Mac currently and is -ignore under other platforms. Under Mac, it will change the size of the -returned font. See \helpref{wxWindow::SetWindowVariant}{wxwindowsetwindowvariant} -for more about this. - -This static method is ``overridden'' in many derived classes and so calling, -for example, \helpref{wxButton}{wxbutton}::GetClassDefaultAttributes() will typically -return the values appropriate for a button which will be normally different -from those returned by, say, \helpref{wxListCtrl}{wxlistctrl}::GetClassDefaultAttributes(). - -The \texttt{wxVisualAttributes} structure has at least the fields -\texttt{font}, \texttt{colFg} and \texttt{colBg}. All of them may be invalid -if it was not possible to determine the default control appearance or, -especially for the background colour, if the field doesn't make sense as is -the case for \texttt{colBg} for the controls with themed background. - -\wxheading{See also} - -\helpref{InheritAttributes}{wxwindowinheritattributes} - - -\membersection{wxWindow::GetClientSize}\label{wxwindowgetclientsize} - -\constfunc{void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}} - -\perlnote{In wxPerl this method takes no parameter and returns -a 2-element list {\tt (width, height)}.} - -\constfunc{wxSize}{GetClientSize}{\void} - -Returns the size of the window `client area' in pixels. The client area is the -area which may be drawn on by the programmer, excluding title bar, border, -scrollbars, etc. - -Note that if this window is a top-level one and it is currently minimized, the -return size is empty (both width and height are $0$). - -\wxheading{Parameters} - -\docparam{width}{Receives the client width in pixels.} - -\docparam{height}{Receives the client height in pixels.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetClientSizeTuple()}}{Returns a 2-tuple of (width, height)} -\twocolitem{{\bf GetClientSize()}}{Returns a wxSize object} -\end{twocollist}} -} - -\wxheading{See also} - -\helpref{GetSize}{wxwindowgetsize},\rtfsp -\helpref{GetVirtualSize}{wxwindowgetvirtualsize} - - - -\membersection{wxWindow::GetConstraints}\label{wxwindowgetconstraints} - -\constfunc{wxLayoutConstraints*}{GetConstraints}{\void} - -Returns a pointer to the window's layout constraints, or NULL if there are none. - - -\membersection{wxWindow::GetContainingSizer}\label{wxwindowgetcontainingsizer} - -\constfunc{const wxSizer *}{GetContainingSizer}{\void} - -Return the sizer that this window is a member of, if any, otherwise -{\tt NULL}. - - -\membersection{wxWindow::GetCursor}\label{wxwindowgetcursor} - -\constfunc{const wxCursor\&}{GetCursor}{\void} - -Return the cursor associated with this window. - -\wxheading{See also} - -\helpref{wxWindow::SetCursor}{wxwindowsetcursor} - - -\membersection{wxWindow::GetDefaultAttributes}\label{wxwindowgetdefaultattributes} - -\constfunc{virtual wxVisualAttributes}{GetDefaultAttributes}{\void} - -Currently this is the same as calling -\helpref{GetClassDefaultAttributes}{wxwindowgetclassdefaultattributes}(\helpref{GetWindowVariant}{wxwindowgetwindowvariant}()). - -One advantage of using this function compared to the static version is that -the call is automatically dispatched to the correct class (as usual with -virtual functions) and you don't have to specify the class name explicitly. - -The other one is that in the future this function could return different -results, for example it might return a different font for an ``Ok'' button -than for a generic button if the users GUI is configured to show such buttons -in bold font. Of course, the down side is that it is impossible to call this -function without actually having an object to apply it to whereas the static -version can be used without having to create an object first. - - -\membersection{wxWindow::GetDropTarget}\label{wxwindowgetdroptarget} - -\constfunc{wxDropTarget*}{GetDropTarget}{\void} - -Returns the associated drop target, which may be NULL. - -\wxheading{See also} - -\helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget}, -\helpref{Drag and drop overview}{wxdndoverview} - - -\membersection{wxWindow::GetEventHandler}\label{wxwindowgeteventhandler} - -\constfunc{wxEvtHandler*}{GetEventHandler}{\void} - -Returns the event handler for this window. By default, the window is its -own event handler. - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler}\rtfsp - - -\membersection{wxWindow::GetExtraStyle}\label{wxwindowgetextrastyle} - -\constfunc{long}{GetExtraStyle}{\void} - -Returns the extra style bits for the window. - - -\membersection{wxWindow::GetFont}\label{wxwindowgetfont} - -\constfunc{wxFont}{GetFont}{\void} - -Returns the font for this window. - -\wxheading{See also} - -\helpref{wxWindow::SetFont}{wxwindowsetfont} - - -\membersection{wxWindow::GetForegroundColour}\label{wxwindowgetforegroundcolour} - -\func{virtual wxColour}{GetForegroundColour}{\void} - -Returns the foreground colour of the window. - -\wxheading{Remarks} - -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all. - -\wxheading{See also} - -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour} - - -\membersection{wxWindow::GetGrandParent}\label{wxwindowgetgrandparent} - -\constfunc{wxWindow*}{GetGrandParent}{\void} - -Returns the grandparent of a window, or NULL if there isn't one. - - -\membersection{wxWindow::GetHandle}\label{wxwindowgethandle} - -\constfunc{void*}{GetHandle}{\void} - -Returns the platform-specific handle of the physical window. Cast it to an appropriate -handle, such as {\bf HWND} for Windows, {\bf Widget} for Motif, {\bf GtkWidget} for GTK or {\bf WinHandle} for PalmOS. - -\pythonnote{This method will return an integer in wxPython.} - -\perlnote{This method will return an integer in wxPerl.} - - -\membersection{wxWindow::GetHelpTextAtPoint}\label{wxwindowgethelptextatpoint} - -\constfunc{virtual wxString}{GetHelpTextAtPoint}{\param{const wxPoint &}{point}, \param{wxHelpEvent::Origin }{origin}} - -Gets the help text to be used as context-sensitive help for this window. This -method should be overridden if the help message depends on the position inside -the window, otherwise \helpref{GetHelpText}{wxwindowgethelptext} can be used. - -\wxheading{Parameters} - -\docparam{point}{Coordinates of the mouse at the moment of help event emission.} - -\docparam{origin}{Help event origin, see also \helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin}.} - -\newsince{2.7.0} - - -\membersection{wxWindow::GetHelpText}\label{wxwindowgethelptext} - -\constfunc{virtual wxString}{GetHelpText}{\void} - -Gets the help text to be used as context-sensitive help for this window. - -Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation, -and not in the window object itself. - -\wxheading{See also} - -\helpref{SetHelpText}{wxwindowsethelptext}, \helpref{GetHelpTextAtPoint}{wxwindowgethelptextatpoint}, \helpref{wxHelpProvider}{wxhelpprovider} - - -\membersection{wxWindow::GetId}\label{wxwindowgetid} - -\constfunc{int}{GetId}{\void} - -Returns the identifier of the window. - -\wxheading{Remarks} - -Each window has an integer identifier. If the application has not provided one -(or the default wxID\_ANY) an unique identifier with a negative value will be generated. - -\wxheading{See also} - -\helpref{wxWindow::SetId}{wxwindowsetid},\rtfsp -\helpref{Window identifiers}{windowids} - - -\membersection{wxWindow::GetLabel}\label{wxwindowgetlabel} - -\constfunc{virtual wxString }{GetLabel}{\void} - -Generic way of getting a label from any window, for -identification purposes. - -\wxheading{Remarks} - -The interpretation of this function differs from class to class. -For frames and dialogs, the value returned is the title. For buttons or static text controls, it is -the button text. This function can be useful for meta-programs (such as testing -tools or special-needs access programs) which need to identify windows -by name. - - -\membersection{wxWindow::GetMaxClientSize}\label{wxwindowgetmaxclientsize} - -\constfunc{wxSize}{GetMaxClientSize}{\void} - -Returns the maximum size of window's client area. -This is an indication to the sizer layout mechanism that this is the maximum -possible size as well as the upper bound on window's size settable using -\helpref{SetClientSize}{wxwindowsetclientsize}. - -\wxheading{See also} - -\helpref{wxWindow::GetMaxSize}{wxwindowgetmaxsize} - - -\membersection{wxWindow::GetMaxSize}\label{wxwindowgetmaxsize} - -\constfunc{wxSize}{GetMaxSize}{\void} - -Returns the maximum size of the window. This is an indication to the sizer -layout mechanism that this is the maximum possible size as well as the upper -bound on window's size settable using \helpref{SetSize}{wxwindowsetsize}. - -\wxheading{See also} - -\helpref{wxWindow::GetMaxClientSize}{wxwindowgetmaxclientsize} - - -\membersection{wxWindow::GetMinSize}\label{wxwindowgetminsize} - -\constfunc{virtual wxSize}{GetMinSize}{\void} - -Returns the minimum size of the window, an indication to the sizer layout mechanism -that this is the minimum required size. It normally just returns the value set -by \helpref{SetMinSize}{wxwindowsetminsize}, but it can be overridden to do the -calculation on demand. - -\wxheading{See also} - -\helpref{wxWindow::GetMinClientSize}{wxwindowgetminclientsize} - - -\membersection{wxWindow::GetMinClientSize}\label{wxwindowgetminclientsize} - -\constfunc{virtual wxSize}{GetMinClientSize}{\void} - -Returns the minimum size of window's client area, an indication to the sizer -layout mechanism that this is the minimum required size of its client area. It -normally just returns the value set by -\helpref{SetMinClientSize}{wxwindowsetminclientsize}, but it can be overridden -to do the calculation on demand. - -\wxheading{See also} - -\helpref{wxWindow::GetMinSize}{wxwindowgetminsize} - - -\membersection{wxWindow::GetName}\label{wxwindowgetname} - -\constfunc{virtual wxString }{GetName}{\void} - -Returns the window's name. - -\wxheading{Remarks} - -This name is not guaranteed to be unique; it is up to the programmer to supply an appropriate -name in the window constructor or via \helpref{wxWindow::SetName}{wxwindowsetname}. - -\wxheading{See also} - -\helpref{wxWindow::SetName}{wxwindowsetname} - - -\membersection{wxWindow::GetNextSibling}\label{wxwindowgetnextsibling} - -\constfunc{wxWindow *}{GetNextSibling}{\void} - -Returns the next window after this one among the parent children or \NULL if -this window is the last child. - -\newsince{2.8.8} - -\wxheading{See also} - -\helpref{GetPrevSibling}{wxwindowgetprevsibling} - - -\membersection{wxWindow::GetParent}\label{wxwindowgetparent} - -\constfunc{virtual wxWindow*}{GetParent}{\void} - -Returns the parent of the window, or NULL if there is no parent. - - -\membersection{wxWindow::GetPopupMenuSelectionFromUser}\label{wxwindowgetpopupmenuselectionfromuser} - -\func{int}{GetPopupMenuSelectionFromUser}{\param{wxMenu\&}{ menu}, \param{const wxPoint\&}{ pos}} - -\func{int}{GetPopupMenuSelectionFromUser}{\param{wxMenu\&}{ menu}, \param{int}{ x}, \param{int}{ y}} - -This function shows a popup menu at the given position in this window and -returns the selected id. It can be more convenient than the general purpose -\helpref{PopupMenu}{wxwindowpopupmenu} function for simple menus proposing a -choice in a list of strings to the user. - -\wxheading{Parameters} - -\docparam{menu}{The menu to show} - -\docparam{pos}{The position at which to show the menu in client coordinates} - -\docparam{x}{The horizontal position of the menu} - -\docparam{y}{The vertical position of the menu} - -\wxheading{Return value} - -The selected menu item id or \texttt{wxID\_NONE} if none selected or an error -occurred. - - -\membersection{wxWindow::GetPosition}\label{wxwindowgetposition} - -\constfunc{virtual void}{GetPosition}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{wxPoint}{GetPosition}{\void} - -This gets the position of the window in pixels, relative to the parent window -for the child windows or relative to the display origin for the top level -windows. - -\wxheading{Parameters} - -\docparam{x}{Receives the x position of the window if non-\NULL.} - -\docparam{y}{Receives the y position of the window if non-\NULL.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetPosition()}}{Returns a wxPoint} -\twocolitem{{\bf GetPositionTuple()}}{Returns a tuple (x, y)} -\end{twocollist}} -} - -\perlnote{In wxPerl there are two methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetPosition()}}{Returns a Wx::Point} -\twocolitem{{\bf GetPositionXY()}}{Returns a 2-element list - {\tt ( x, y )}} -\end{twocollist} -}} - - -\wxheading{See also} - -\helpref{GetScreenPosition}{wxwindowgetscreenposition} - - -\membersection{wxWindow::GetPrevSibling}\label{wxwindowgetprevsibling} - -\constfunc{wxWindow *}{GetPrevSibling}{\void} - -Returns the previous window before this one among the parent children or \NULL if -this window is the first child. - -\newsince{2.8.8} - -\wxheading{See also} - -\helpref{GetNextSibling}{wxwindowgetnextsibling} - - -\membersection{wxWindow::GetRect}\label{wxwindowgetrect} - -\constfunc{virtual wxRect}{GetRect}{\void} - -Returns the position and size of the window as a \helpref{wxRect}{wxrect} object. - -\wxheading{See also} - -\helpref{GetScreenRect}{wxwindowgetscreenrect} - - -\membersection{wxWindow::GetScreenPosition}\label{wxwindowgetscreenposition} - -\constfunc{virtual void}{GetScreenPosition}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{wxPoint}{GetScreenPosition}{\void} - -Returns the window position in screen coordinates, whether the window is a -child window or a top level one. - -\wxheading{Parameters} - -\docparam{x}{Receives the x position of the window on the screen if non-\NULL.} - -\docparam{y}{Receives the y position of the window on the screen if non-\NULL.} - -\wxheading{See also} - -\helpref{GetPosition}{wxwindowgetposition} - - -\membersection{wxWindow::GetScreenRect}\label{wxwindowgetscreenrect} - -\constfunc{virtual wxRect}{GetScreenRect}{\void} - -Returns the position and size of the window on the screen as a -\helpref{wxRect}{wxrect} object. - -\wxheading{See also} - -\helpref{GetRect}{wxwindowgetrect} - - -\membersection{wxWindow::GetScrollPos}\label{wxwindowgetscrollpos} - -\func{virtual int}{GetScrollPos}{\param{int }{orientation}} - -Returns the built-in scrollbar position. - -\wxheading{See also} - -See \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - - -\membersection{wxWindow::GetScrollRange}\label{wxwindowgetscrollrange} - -\func{virtual int}{GetScrollRange}{\param{int }{orientation}} - -Returns the built-in scrollbar range. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - - -\membersection{wxWindow::GetScrollThumb}\label{wxwindowgetscrollthumb} - -\func{virtual int}{GetScrollThumb}{\param{int }{orientation}} - -Returns the built-in scrollbar thumb size. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar} - - -\membersection{wxWindow::GetSize}\label{wxwindowgetsize} - -\constfunc{void}{GetSize}{\param{int* }{width}, \param{int* }{height}} - -\constfunc{wxSize}{GetSize}{\void} - -Returns the size of the entire window in pixels, including title bar, border, -scrollbars, etc. - -Note that if this window is a top-level one and it is currently minimized, the -returned size is the restored window size, not the size of the window icon. - -\wxheading{Parameters} - -\docparam{width}{Receives the window width.} - -\docparam{height}{Receives the window height.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetSize()}}{Returns a wxSize} -\twocolitem{{\bf GetSizeTuple()}}{Returns a 2-tuple (width, height)} -\end{twocollist}} -} - -\perlnote{In wxPerl there are two methods instead of a single overloaded -method:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetSize()}}{Returns a Wx::Size} -\twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list - {\tt ( width, height )}} -\end{twocollist} -}} - -\wxheading{See also} - -\helpref{GetClientSize}{wxwindowgetclientsize},\rtfsp -\helpref{GetVirtualSize}{wxwindowgetvirtualsize} - - -\membersection{wxWindow::GetSizer}\label{wxwindowgetsizer} - -\constfunc{wxSizer *}{GetSizer}{\void} - -Return the sizer associated with the window by a previous call to -\helpref{SetSizer()}{wxwindowsetsizer} or {\tt NULL}. - - -\membersection{wxWindow::GetTextExtent}\label{wxwindowgettextextent} - -\constfunc{virtual void}{GetTextExtent}{\param{const wxString\& }{string}, \param{int* }{w}, \param{int* }{h}, - \param{int* }{descent = NULL}, \param{int* }{externalLeading = NULL}, - \param{const wxFont* }{font = NULL}, \param{bool}{ use16 = {\tt false}}} - -\constfunc{wxSize}{GetTextExtent}{\param{const wxString\& }{string}} - -Gets the dimensions of the string as it would be drawn on the -window with the currently selected font. - -The text extent is returned in \arg{w} and \arg{h} pointers (first form) or as a -\helpref{wxSize}{wxsize} object (second form). - -\wxheading{Parameters} - -\docparam{string}{String whose extent is to be measured.} - -\docparam{w}{Return value for width.} - -\docparam{h}{Return value for height.} - -\docparam{descent}{Return value for descent (optional).} - -\docparam{externalLeading}{Return value for external leading (optional).} - -\docparam{font}{Font to use instead of the current window font (optional).} - -\docparam{use16}{If {\tt true}, {\it string} contains 16-bit characters. The default is {\tt false}.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf GetTextExtent(string)}}{Returns a 2-tuple, (width, height)} -\twocolitem{{\bf GetFullTextExtent(string, font=NULL)}}{Returns a -4-tuple, (width, height, descent, externalLeading) } -\end{twocollist}} -} - -\perlnote{In wxPerl this method takes only the {\tt string} and optionally - {\tt font} parameters, and returns a 4-element list - {\tt ( x, y, descent, externalLeading )}.} - - -\membersection{wxWindow::GetToolTip}\label{wxwindowgettooltip} - -\constfunc{wxToolTip*}{GetToolTip}{\void} - -Get the associated tooltip or NULL if none. - - -\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion} - -\constfunc{virtual wxRegion}{GetUpdateRegion}{\void} - -Returns the region specifying which parts of the window have been damaged. Should -only be called within an \helpref{wxPaintEvent}{wxpaintevent} handler. - -\wxheading{See also} - -\helpref{wxRegion}{wxregion},\rtfsp -\helpref{wxRegionIterator}{wxregioniterator} - - -\membersection{wxWindow::GetValidator}\label{wxwindowgetvalidator} - -\constfunc{wxValidator*}{GetValidator}{\void} - -Returns a pointer to the current validator for the window, or NULL if there is none. - - -\membersection{wxWindow::GetVirtualSize}\label{wxwindowgetvirtualsize} - -\constfunc{void}{GetVirtualSize}{\param{int* }{width}, \param{int* }{height}} - -\constfunc{wxSize}{GetVirtualSize}{\void} - -This gets the virtual size of the window in pixels. By default it -returns the client size of the window, but after a call to -\helpref{SetVirtualSize}{wxwindowsetvirtualsize} it will return -that size. - -\wxheading{Parameters} - -\docparam{width}{Receives the window virtual width.} - -\docparam{height}{Receives the window virtual height.} - -\helpref{GetSize}{wxwindowgetsize},\rtfsp -\helpref{GetClientSize}{wxwindowgetclientsize} - - -\membersection{wxWindow::GetWindowBorderSize}\label{wxwindowgetwindowbordersize} - -\constfunc{wxSize}{GetWindowBorderSize}{\void} - -Returns the size of the left/right and top/bottom borders of this window in x -and y components of the result respectively. - - -\membersection{wxWindow::GetWindowStyleFlag}\label{wxwindowgetwindowstyleflag} - -\constfunc{long}{GetWindowStyleFlag}{\void} - -Gets the window style that was passed to the constructor or {\bf Create} -method. {\bf GetWindowStyle()} is another name for the same function. - - -\membersection{wxWindow::GetWindowVariant}\label{wxwindowgetwindowvariant} - -\constfunc{wxWindowVariant}{GetWindowVariant}{\void} - -Returns the value previously passed to -\helpref{wxWindow::SetWindowVariant}{wxwindowsetwindowvariant}. - - -\membersection{wxWindow::HandleAsNavigationKey}\label{wxwindowhandleasnavigationkey} - -\func{bool}{HandleAsNavigationKey}{\param{const wxKeyEvent\&}{ event}} - -This function will generate the appropriate call to -\helpref{Navigate}{wxwindownavigate} if the key event is one normally used for -keyboard navigation and return \true in this case. - -\wxheading{Return value} - -Returns \true if the key pressed was for navigation and was handled, \false -otherwise. - -\wxheading{See also} - -\helpref{Navigate}{wxwindownavigate} - - -\membersection{wxWindow::HandleWindowEvent}\label{wxwindowhandlewindowevent} - -\func{bool}{HandleWindowEvent}{\param{wxEvent\& }{event}} - -Shorthand for \texttt{\helpref{GetEventHandler}{wxwindowgeteventhandler}()->\helpref{SafelyProcessEvent}{wxevthandlersafelyprocessevent}(event)}. - - -\membersection{wxWindow::HasCapture}\label{wxwindowhascapture} - -\constfunc{virtual bool}{HasCapture}{\void} - -Returns {\tt true} if this window has the current mouse capture. - -\wxheading{See also} - -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}, -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}, -\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} -\helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent} - - -\membersection{wxWindow::HasExtraStyle}\label{wxwindowhasextrastyle} - -\constfunc{bool}{HasExtraStyle}{\param{int }{exFlag}} - -Returns \texttt{true} if the window has the given \arg{exFlag} bit set in its -extra styles. - -\wxheading{See also} - -\helpref{SetExtraStyle}{wxwindowsetextrastyle} - - -\membersection{wxWindow::HasFlag}\label{wxwindowhasflag} - -\constfunc{bool}{HasFlag}{\param{int }{flag}} - -Returns \texttt{true} if the window has the given \arg{flag} bit set. - - -\membersection{wxWindow::HasFocus}\label{wxwindowhasfocus} - -\constfunc{virtual bool}{HasFocus}{\void} - -Returns \true if the window (or in case of composite controls, its main -child window) has focus. - -\wxheading{See also} - -\helpref{FindFocus}{wxwindowfindfocus} - - -\membersection{wxWindow::HasMultiplePages}\label{wxwindowhasmultiplepages} - -\constfunc{virtual bool}{HasMultiplePages}{\void} - -This method should be overridden to return \texttt{true} if this window has -multiple pages. All standard class with multiple pages such as -\helpref{wxNotebook}{wxnotebook}, \helpref{wxListbook}{wxlistbook} and -\helpref{wxTreebook}{wxtreebook} already override it to return \texttt{true} -and user-defined classes with similar behaviour should do it as well to allow -the library to handle such windows appropriately. - - -\membersection{wxWindow::HasScrollbar}\label{wxwindowhasscrollbar} - -\constfunc{virtual bool}{HasScrollbar}{\param{int }{orient}} - -Returns {\tt true} if this window has a scroll bar for this orientation. - -\wxheading{Parameters} - -\docparam{orient}{Orientation to check, either {\tt wxHORIZONTAL} or {\tt wxVERTICAL}.} - - -\membersection{wxWindow::HasTransparentBackground}\label{wxwindowhastransparentbackground} - -\constfunc{virtual bool}{HasTransparentBackground}{\void} - -Returns \true if this window background is transparent (as, for example, for -wxStaticText) and should show the parent window background. - -This method is mostly used internally by the library itself and you normally -shouldn't have to call it. You may, however, have to override it in your -wxWindow-derived class to ensure that background is painted correctly. - - -\membersection{wxWindow::Hide}\label{wxwindowhide} - -\func{bool}{Hide}{\void} - -Equivalent to calling \helpref{Show}{wxwindowshow}({\tt false}). - - -\membersection{wxWindow::HideWithEffect}\label{wxwindowhidewitheffect} - -\func{virtual bool}{HideWithEffect}{\param{wxShowEffect }{effect}, \param{unsigned }{timeout = $0$}, \param{wxDirection }{dir = wxBOTTOM}} - -This function hides a window, like \helpref{Hide()}{wxwindowhide}, but using a -special visual effect if possible. - -The parameters of this function are the same as for -\helpref{ShowWithEffect()}{wxwindowshowwitheffect}, please see their -description there. - -\newsince{2.9.0} - - -\membersection{wxWindow::InheritAttributes}\label{wxwindowinheritattributes} - -\func{void}{InheritAttributes}{\void} - -This function is (or should be, in case of custom controls) called during -window creation to intelligently set up the window visual attributes, that is -the font and the foreground and background colours. - -By ``intelligently'' the following is meant: by default, all windows use their -own \helpref{default}{wxwindowgetclassdefaultattributes} attributes. However -if some of the parents attributes are explicitly (that is, using -\helpref{SetFont}{wxwindowsetfont} and not -\helpref{SetOwnFont}{wxwindowsetownfont}) changed \emph{and} if the -corresponding attribute hadn't been explicitly set for this window itself, -then this window takes the same value as used by the parent. In addition, if -the window overrides \helpref{ShouldInheritColours}{wxwindowshouldinheritcolours} -to return \false, the colours will not be changed no matter what and only the -font might. - -This rather complicated logic is necessary in order to accommodate the -different usage scenarios. The most common one is when all default attributes -are used and in this case, nothing should be inherited as in modern GUIs -different controls use different fonts (and colours) than their siblings so -they can't inherit the same value from the parent. However it was also deemed -desirable to allow to simply change the attributes of all children at once by -just changing the font or colour of their common parent, hence in this case we -do inherit the parents attributes. - - -\membersection{wxWindow::InitDialog}\label{wxwindowinitdialog} - -\func{void}{InitDialog}{\void} - -Sends an {\tt wxEVT\_INIT\_DIALOG} event, whose handler usually transfers data -to the dialog via validators. - - -\membersection{wxWindow::InvalidateBestSize}\label{wxwindowinvalidatebestsize} - -\func{void}{InvalidateBestSize}{\void} - -Resets the cached best size value so it will be recalculated the next time it is needed. - - -\membersection{wxWindow::IsDoubleBuffered}\label{wxwindowisdoublebuffered} - -\constfunc{virtual bool}{IsDoubleBuffered}{\void} - -Returns \true if the window contents is double-buffered by the system, i.e. if -any drawing done on the window is really done on a temporary backing surface -and transferred to the screen all at once later. - -\wxheading{See also} - -\helpref{wxBufferedDC}{wxbuffereddc} - - -\membersection{wxWindow::IsEnabled}\label{wxwindowisenabled} - -\constfunc{virtual bool}{IsEnabled}{\void} - -Returns \true if the window is enabled, i.e. if it accepts user input, \false -otherwise. - -Notice that this method can return \false even if this window itself hadn't -been explicitly disabled when one of its parent windows is disabled. To get the -intrinsic status of this window, use -\helpref{IsThisEnabled}{wxwindowisthisenabled} - -\wxheading{See also} - -\helpref{wxWindow::Enable}{wxwindowenable} - - -\membersection{wxWindow::IsExposed}\label{wxwindowisexposed} - -\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}} - -\constfunc{bool}{IsExposed}{\param{wxPoint }{\&pt}} - -\constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}} - -\constfunc{bool}{IsExposed}{\param{wxRect }{\&rect}} - -Returns {\tt true} if the given point or rectangle area has been exposed since the -last repaint. Call this in an paint event handler to optimize redrawing by -only redrawing those areas, which have been exposed. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf IsExposed(x,y, w=0,h=0)}}{} -\twocolitem{{\bf IsExposedPoint(pt)}}{} -\twocolitem{{\bf IsExposedRect(rect)}}{} -\end{twocollist}}} - - -\membersection{wxWindow::IsFrozen}\label{wxwindowisfrozen} - -\constfunc{virtual bool}{IsFrozen}{\void} - -Returns \true if the window is currently frozen by a call to -\helpref{Freeze()}{wxwindowfreeze}. - -\wxheading{See also} - -\helpref{Thaw()}{wxwindowthaw} - - -\membersection{wxWindow::IsRetained}\label{wxwindowisretained} - -\constfunc{virtual bool}{IsRetained}{\void} - -Returns {\tt true} if the window is retained, {\tt false} otherwise. - -\wxheading{Remarks} - -Retained windows are only available on X platforms. - - -\membersection{wxWindow::IsScrollbarAlwaysShown}\label{wxwindowisscrollbaralwaysshown} - -\func{bool}{IsScrollbarAlwaysShown}{\param{int}{ orient}} - -Return whether a scrollbar is always shown. - -\wxheading{Parameters} - -\docparam{orient}{Orientation to check, either {\tt wxHORIZONTAL} or {\tt wxVERTICAL}.} - -\wxheading{See also} - -\helpref{wxWindow::AlwaysShowScrollbars}{wxwindowalwaysshowscrollbars} - - -\membersection{wxWindow::IsShown}\label{wxwindowisshown} - -\constfunc{virtual bool}{IsShown}{\void} - -Returns {\tt true} if the window is shown, {\tt false} if it has been hidden. - -\wxheading{See also} - -\helpref{wxWindow::IsShownOnScreen}{wxwindowisshownonscreen} - - -\membersection{wxWindow::IsShownOnScreen}\label{wxwindowisshownonscreen} - -\constfunc{virtual bool}{IsShownOnScreen}{\void} - -Returns {\tt true} if the window is physically visible on the screen, i.e. it -is shown and all its parents up to the toplevel window are shown as well. - -\wxheading{See also} - -\helpref{wxWindow::IsShown}{wxwindowisshown} - - -\membersection{wxWindow::IsThisEnabled}\label{wxwindowisthisenabled} - -\constfunc{bool}{IsThisEnabled}{\void} - -Returns \true if this window is intrinsically enabled, \false otherwise, i.e. -if \helpref{Enable(false)}{wxwindowenable} had been called. This method is -mostly used for wxWidgets itself, user code should normally use -\helpref{IsEnabled}{wxwindowisenabled} instead. - - -\membersection{wxWindow::IsTopLevel}\label{wxwindowistoplevel} - -\constfunc{bool}{IsTopLevel}{\void} - -Returns {\tt true} if the given window is a top-level one. Currently all frames and -dialogs are considered to be top-level windows (even if they have a parent -window). - - -\membersection{wxWindow::Layout}\label{wxwindowlayout} - -\func{void}{Layout}{\void} - -Invokes the constraint-based layout algorithm or the sizer-based algorithm -for this window. - -See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout}: when auto -layout is on, this function gets called automatically when the window is resized. - - -\membersection{wxWindow::LineDown}\label{wxwindowlinedown} - -This is just a wrapper for \helpref{ScrollLines}{wxwindowscrolllines}$(1)$. - - -\membersection{wxWindow::LineUp}\label{wxwindowlineup} - -This is just a wrapper for \helpref{ScrollLines}{wxwindowscrolllines}$(-1)$. - - -\membersection{wxWindow::Lower}\label{wxwindowlower} - -\func{void}{Lower}{\void} - -Lowers the window to the bottom of the window hierarchy (Z-order). - -\wxheading{See also} - -\helpref{Raise}{wxwindowraise} - - -\membersection{wxWindow::MakeModal}\label{wxwindowmakemodal} - -\func{virtual void}{MakeModal}{\param{bool }{flag}} - -Disables all other windows in the application so that -the user can only interact with this window. - -\wxheading{Parameters} - -\docparam{flag}{If {\tt true}, this call disables all other windows in the application so that -the user can only interact with this window. If {\tt false}, the effect is reversed.} - - -\membersection{wxWindow::Move}\label{wxwindowmove} - -\func{void}{Move}{\param{int}{ x}, \param{int}{ y}} - -\func{void}{Move}{\param{const wxPoint\&}{ pt}} - -Moves the window to the given position. - -\wxheading{Parameters} - -\docparam{x}{Required x position.} - -\docparam{y}{Required y position.} - -\docparam{pt}{\helpref{wxPoint}{wxpoint} object representing the position.} - -\wxheading{Remarks} - -Implementations of SetSize can also implicitly implement the -wxWindow::Move function, which is defined in the base wxWindow class -as the call: - -\begin{verbatim} - SetSize(x, y, wxDefaultCoord, wxDefaultCoord, wxSIZE_USE_EXISTING); -\end{verbatim} - -\wxheading{See also} - -\helpref{wxWindow::SetSize}{wxwindowsetsize} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf Move(point)}}{Accepts a wxPoint} -\twocolitem{{\bf MoveXY(x, y)}}{Accepts a pair of integers} -\end{twocollist}} -} - - -\membersection{wxWindow::MoveAfterInTabOrder}\label{wxwindowmoveafterintaborder} - -\func{void}{MoveAfterInTabOrder}{\param{wxWindow *}{win}} - -Moves this window in the tab navigation order after the specified \arg{win}. -This means that when the user presses \texttt{TAB} key on that other window, -the focus switches to this window. - -Default tab order is the same as creation order, this function and -\helpref{MoveBeforeInTabOrder()}{wxwindowmovebeforeintaborder} allow to change -it after creating all the windows. - -\wxheading{Parameters} - -\docparam{win}{A sibling of this window which should precede it in tab order, -must not be NULL} - - -\membersection{wxWindow::MoveBeforeInTabOrder}\label{wxwindowmovebeforeintaborder} - -\func{void}{MoveBeforeInTabOrder}{\param{wxWindow *}{win}} - -Same as \helpref{MoveAfterInTabOrder}{wxwindowmoveafterintaborder} except that -it inserts this window just before \arg{win} instead of putting it right after -it. - - -\membersection{wxWindow::Navigate}\label{wxwindownavigate} - -\func{bool}{Navigate}{\param{int}{ flags = wxNavigationKeyEvent::IsForward}} - -Performs a keyboard navigation action starting from this window. This method is -equivalent to calling \helpref{NavigateIn()}{wxwindownavigatein} method on the -parent window. - -\wxheading{Parameters} - -\docparam{flags}{A combination of wxNavigationKeyEvent::IsForward and wxNavigationKeyEvent::WinChange.} - -\wxheading{Return value} - -Returns \true if the focus was moved to another window or \false if nothing -changed. - -\wxheading{Remarks} - -You may wish to call this from a text control custom keypress handler to do the default -navigation behaviour for the tab key, since the standard default behaviour for -a multiline text control with the wxTE\_PROCESS\_TAB style is to insert a tab -and not navigate to the next control. See also \helpref{wxNavigationKeyEvent}{wxnavigationkeyevent} and -\helpref{HandleAsNavigationKey}{wxwindowhandleasnavigationkey}. - - -\membersection{wxWindow::NavigateIn}\label{wxwindownavigatein} - -\func{bool}{NavigateIn}{\param{int}{ flags = wxNavigationKeyEvent::IsForward}} - -Performs a keyboard navigation action inside this window. - -See \helpref{Navigate}{wxwindownavigate} for more information. - - -\membersection{wxWindow::NewControlId}\label{wxwindownewcontrolid} - -\func{static wxWindowID}{NewControlId}{\param{int}{ count = 1}} - -Create a new ID or range of IDs that are not currently in use. The -IDs will be reserved until assigned to a \helpref{wxWindowIDRef}{windowidsoverview} -or unreserved with \helpref{UnreserveControlId}{wxwindowunreservecontrolid}. - -See \helpref{Window IDs overview}{windowidsoverview} for more information. - -\wxheading{Parameters} - -\docparam{count}{The number of sequential IDs to reserve.} - -\wxheading{Return value} - -Returns the ID or the first ID of the range, or \texttt{wxID\_NONE} if the -specified number of identifiers couldn't be allocated. - -\wxheading{See also} - -\helpref{UnreserveControlId}{wxwindowunreservecontrolid} -\helpref{wxIdManager}{wxidmanager} -\helpref{Window IDs overview}{windowidsoverview} - - -%% VZ: wxWindow::OnXXX() functions should not be documented but I'm leaving -%% the old docs here in case we want to move any still needed bits to -%% the right location (i.e. probably the corresponding events docs) -%% -%% \membersection{wxWindow::OnActivate}\label{wxwindowonactivate} -%% -%% \func{void}{OnActivate}{\param{wxActivateEvent\&}{ event}} -%% -%% Called when a window is activated or deactivated. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Object containing activation information.} -%% -%% \wxheading{Remarks} -%% -%% If the window is being activated, \helpref{wxActivateEvent::GetActive}{wxactivateeventgetactive} returns {\tt true}, -%% otherwise it returns {\tt false} (it is being deactivated). -%% -%% \wxheading{See also} -%% -%% \helpref{wxActivateEvent}{wxactivateevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnChar}\label{wxwindowonchar} -%% -%% \func{void}{OnChar}{\param{wxKeyEvent\&}{ event}} -%% -%% Called when the user has pressed a key that is not a modifier (SHIFT, CONTROL or ALT). -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -%% details about this class.} -%% -%% \wxheading{Remarks} -%% -%% This member function is called in response to a keypress. To intercept this event, -%% use the EVT\_CHAR macro in an event table definition. Your {\bf OnChar} handler may call this -%% default function to achieve default keypress functionality. -%% -%% Note that the ASCII values do not have explicit key codes: they are passed as ASCII -%% values. -%% -%% Note that not all keypresses can be intercepted this way. If you wish to intercept modifier -%% keypresses, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -%% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. -%% -%% Most, but not all, windows allow keypresses to be intercepted. -%% -%% {\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function, -%% otherwise menu shortcuts may cease to work under Windows. -%% -%% \wxheading{See also} -%% -%% \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp -%% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnCharHook}\label{wxwindowoncharhook} -%% -%% \func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}} -%% -%% This member is called to allow the window to intercept keyboard events -%% before they are processed by child windows. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -%% details about this class.} -%% -%% \wxheading{Remarks} -%% -%% This member function is called in response to a keypress, if the window is active. To intercept this event, -%% use the EVT\_CHAR\_HOOK macro in an event table definition. If you do not process a particular -%% keypress, call \helpref{wxEvent::Skip}{wxeventskip} to allow default processing. -%% -%% An example of using this function is in the implementation of escape-character processing for wxDialog, -%% where pressing ESC dismisses the dialog by {\bf OnCharHook} 'forging' a cancel button press event. -%% -%% Note that the ASCII values do not have explicit key codes: they are passed as ASCII -%% values. -%% -%% This function is only relevant to top-level windows (frames and dialogs), and under -%% Windows only. Under GTK the normal EVT\_CHAR\_ event has the functionality, i.e. -%% you can intercept it, and if you don't call \helpref{wxEvent::Skip}{wxeventskip} -%% the window won't get the event. -%% -%% \wxheading{See also} -%% -%% \helpref{wxKeyEvent}{wxkeyevent},\rtfsp -%% \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -%% %% GD: OnXXX functions are not documented -%% %%\helpref{wxApp::OnCharHook}{wxapponcharhook},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnCommand}\label{wxwindowoncommand} -%% -%% \func{virtual void}{OnCommand}{\param{wxEvtHandler\& }{object}, \param{wxCommandEvent\& }{event}} -%% -%% This virtual member function is called if the control does not handle the command event. -%% -%% \wxheading{Parameters} -%% -%% \docparam{object}{Object receiving the command event.} -%% -%% \docparam{event}{Command event} -%% -%% \wxheading{Remarks} -%% -%% This virtual function is provided mainly for backward compatibility. You can also intercept commands -%% from child controls by using an event table, with identifiers or identifier ranges to identify -%% the control(s) in question. -%% -%% \wxheading{See also} -%% -%% \helpref{wxCommandEvent}{wxcommandevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnClose}\label{wxwindowonclose} -%% -%% \func{virtual bool}{OnClose}{\void} -%% -%% Called when the user has tried to close a a frame -%% or dialog box using the window manager (X) or system menu (Windows). -%% -%% {\bf Note:} This is an obsolete function. -%% It is superseded by the \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} event -%% handler. -%% -%% \wxheading{Return value} -%% -%% If {\tt true} is returned by OnClose, the window will be deleted by the system, otherwise the -%% attempt will be ignored. Do not delete the window from within this handler, although -%% you may delete other windows. -%% -%% \wxheading{See also} -%% -%% \helpref{Window deletion overview}{windowdeletionoverview},\rtfsp -%% \helpref{wxWindow::Close}{wxwindowclose},\rtfsp -%% \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp -%% \helpref{wxCloseEvent}{wxcloseevent} -%% -%% \membersection{wxWindow::OnKeyDown}\label{wxwindowonkeydown} -%% -%% \func{void}{OnKeyDown}{\param{wxKeyEvent\&}{ event}} -%% -%% Called when the user has pressed a key, before it is translated into an ASCII value using other -%% modifier keys that might be pressed at the same time. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -%% details about this class.} -%% -%% \wxheading{Remarks} -%% -%% This member function is called in response to a key down event. To intercept this event, -%% use the EVT\_KEY\_DOWN macro in an event table definition. Your {\bf OnKeyDown} handler may call this -%% default function to achieve default keypress functionality. -%% -%% Note that not all keypresses can be intercepted this way. If you wish to intercept special -%% keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -%% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. -%% -%% Most, but not all, windows allow keypresses to be intercepted. -%% -%% {\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function, -%% otherwise menu shortcuts may cease to work under Windows. -%% -%% \wxheading{See also} -%% -%% \helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp -%% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnKeyUp}\label{wxwindowonkeyup} -%% -%% \func{void}{OnKeyUp}{\param{wxKeyEvent\&}{ event}} -%% -%% Called when the user has released a key. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for -%% details about this class.} -%% -%% \wxheading{Remarks} -%% -%% This member function is called in response to a key up event. To intercept this event, -%% use the EVT\_KEY\_UP macro in an event table definition. Your {\bf OnKeyUp} handler may call this -%% default function to achieve default keypress functionality. -%% -%% Note that not all keypresses can be intercepted this way. If you wish to intercept special -%% keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or -%% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}. -%% -%% Most, but not all, windows allow key up events to be intercepted. -%% -%% \wxheading{See also} -%% -%% \helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown},\rtfsp -%% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnInitDialog}\label{wxwindowoninitdialog} -%% -%% \func{void}{OnInitDialog}{\param{wxInitDialogEvent\&}{ event}} -%% -%% Default handler for the wxEVT\_INIT\_DIALOG event. Calls \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Dialog initialisation event.} -%% -%% \wxheading{Remarks} -%% -%% Gives the window the default behaviour of transferring data to child controls via -%% the validator that each control has. -%% -%% \wxheading{See also} -%% -%% \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow} -%% -%% \membersection{wxWindow::OnMenuHighlight}\label{wxwindowonmenuhighlight} -%% -%% \func{void}{OnMenuHighlight}{\param{wxMenuEvent\& }{event}} -%% -%% Called when a menu select is received from a menu bar: that is, the -%% mouse cursor is over a menu item, but the left mouse button has not been -%% pressed. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{The menu highlight event. For more information, see \helpref{wxMenuEvent}{wxmenuevent}.} -%% -%% \wxheading{Remarks} -%% -%% You can choose any member function to receive -%% menu select events, using the EVT\_MENU\_HIGHLIGHT macro for individual menu items or EVT\_MENU\_HIGHLIGHT\_ALL macro -%% for all menu items. -%% -%% The default implementation for \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays help -%% text in the first field of the status bar. -%% -%% This function was known as {\bf OnMenuSelect} in earlier versions of wxWidgets, but this was confusing -%% since a selection is normally a left-click action. -%% -%% \wxheading{See also} -%% -%% \helpref{wxMenuEvent}{wxmenuevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% -%% \membersection{wxWindow::OnMouseEvent}\label{wxwindowonmouseevent} -%% -%% \func{void}{OnMouseEvent}{\param{wxMouseEvent\&}{ event}} -%% -%% Called when the user has initiated an event with the -%% mouse. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{The mouse event. See \helpref{wxMouseEvent}{wxmouseevent} for -%% more details.} -%% -%% \wxheading{Remarks} -%% -%% Most, but not all, windows respond to this event. -%% -%% To intercept this event, use the EVT\_MOUSE\_EVENTS macro in an event table definition, or individual -%% mouse event macros such as EVT\_LEFT\_DOWN. -%% -%% \wxheading{See also} -%% -%% \helpref{wxMouseEvent}{wxmouseevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnMove}\label{wxwindowonmove} -%% -%% \func{void}{OnMove}{\param{wxMoveEvent\& }{event}} -%% -%% Called when a window is moved. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{The move event. For more information, see \helpref{wxMoveEvent}{wxmoveevent}.} -%% -%% \wxheading{Remarks} -%% -%% Use the EVT\_MOVE macro to intercept move events. -%% -%% \wxheading{Remarks} -%% -%% Not currently implemented. -%% -%% \wxheading{See also} -%% -%% \helpref{wxMoveEvent}{wxmoveevent},\rtfsp -%% \helpref{wxFrame::OnSize}{wxframeonsize},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnPaint}\label{wxwindowonpaint} -%% -%% \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} -%% -%% Sent to the event handler when the window must be refreshed. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Paint event. For more information, see \helpref{wxPaintEvent}{wxpaintevent}.} -%% -%% \wxheading{Remarks} -%% -%% Use the EVT\_PAINT macro in an event table definition to intercept paint events. -%% -%% Note that In a paint event handler, the application must {\it always} create a \helpref{wxPaintDC}{wxpaintdc} object, -%% even if you do not use it. Otherwise, under MS Windows, refreshing for this and other windows will go wrong. -%% -%% For example: -%% -%% \small{% -%% \begin{verbatim} -%% void MyWindow::OnPaint(wxPaintEvent\& event) -%% { -%% wxPaintDC dc(this); -%% -%% DrawMyDocument(dc); -%% } -%% \end{verbatim} -%% }% -%% -%% You can optimize painting by retrieving the rectangles -%% that have been damaged and only repainting these. The rectangles are in -%% terms of the client area, and are unscrolled, so you will need to do -%% some calculations using the current view position to obtain logical, -%% scrolled units. -%% -%% Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class: -%% -%% {\small% -%% \begin{verbatim} -%% // Called when window needs to be repainted. -%% void MyWindow::OnPaint(wxPaintEvent\& event) -%% { -%% wxPaintDC dc(this); -%% -%% // Find Out where the window is scrolled to -%% int vbX,vbY; // Top left corner of client -%% GetViewStart(&vbX,&vbY); -%% -%% int vX,vY,vW,vH; // Dimensions of client area in pixels -%% wxRegionIterator upd(GetUpdateRegion()); // get the update rect list -%% -%% while (upd) -%% { -%% vX = upd.GetX(); -%% vY = upd.GetY(); -%% vW = upd.GetW(); -%% vH = upd.GetH(); -%% -%% // Alternatively we can do this: -%% // wxRect rect; -%% // upd.GetRect(&rect); -%% -%% // Repaint this rectangle -%% ...some code... -%% -%% upd ++ ; -%% } -%% } -%% \end{verbatim} -%% }% -%% -%% \wxheading{See also} -%% -%% \helpref{wxPaintEvent}{wxpaintevent},\rtfsp -%% \helpref{wxPaintDC}{wxpaintdc},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnScroll}\label{wxwindowonscroll} -%% -%% \func{void}{OnScroll}{\param{wxScrollWinEvent\& }{event}} -%% -%% Called when a scroll window event is received from one of the window's built-in scrollbars. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Command event. Retrieve the new scroll position by -%% calling \helpref{wxScrollEvent::GetPosition}{wxscrolleventgetposition}, and the -%% scrollbar orientation by calling \helpref{wxScrollEvent::GetOrientation}{wxscrolleventgetorientation}.} -%% -%% \wxheading{Remarks} -%% -%% Note that it is not possible to distinguish between horizontal and vertical scrollbars -%% until the function is executing (you can't have one function for vertical, another -%% for horizontal events). -%% -%% \wxheading{See also} -%% -%% \helpref{wxScrollWinEvent}{wxscrollwinevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnSetFocus}\label{wxwindowonsetfocus} -%% -%% \func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}} -%% -%% Called when a window's focus is being set. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{The focus event. For more information, see \helpref{wxFocusEvent}{wxfocusevent}.} -%% -%% \wxheading{Remarks} -%% -%% To intercept this event, use the macro EVT\_SET\_FOCUS in an event table definition. -%% -%% Most, but not all, windows respond to this event. -%% -%% \wxheading{See also} -%% -%% \helpref{wxFocusEvent}{wxfocusevent}, \helpref{wxWindow::OnKillFocus}{wxwindowonkillfocus},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnSize}\label{wxwindowonsize} -%% -%% \func{void}{OnSize}{\param{wxSizeEvent\& }{event}} -%% -%% Called when the window has been resized. This is not a virtual function; you should -%% provide your own non-virtual OnSize function and direct size events to it using EVT\_SIZE -%% in an event table definition. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{Size event. For more information, see \helpref{wxSizeEvent}{wxsizeevent}.} -%% -%% \wxheading{Remarks} -%% -%% You may wish to use this for frames to resize their child windows as appropriate. -%% -%% Note that the size passed is of -%% the whole window: call \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} for the area which may be -%% used by the application. -%% -%% When a window is resized, usually only a small part of the window is damaged and you -%% may only need to repaint that area. However, if your drawing depends on the size of the window, -%% you may need to clear the DC explicitly and repaint the whole window. In which case, you -%% may need to call \helpref{wxWindow::Refresh}{wxwindowrefresh} to invalidate the entire window. -%% -%% \wxheading{See also} -%% -%% \helpref{wxSizeEvent}{wxsizeevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} -%% -%% \membersection{wxWindow::OnSysColourChanged}\label{wxwindowonsyscolourchanged} -%% -%% \func{void}{OnSysColourChanged}{\param{wxOnSysColourChangedEvent\& }{event}} -%% -%% Called when the user has changed the system colours. Windows only. -%% -%% \wxheading{Parameters} -%% -%% \docparam{event}{System colour change event. For more information, see \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}.} -%% -%% \wxheading{See also} -%% -%% \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent},\rtfsp -%% \helpref{Event handling overview}{eventhandlingoverview} - - -\membersection{wxWindow::OnInternalIdle}\label{wxwindowoninternalidle} - -\func{virtual void}{OnInternalIdle}{\void} - -This virtual function is normally only used internally, but -sometimes an application may need it to implement functionality -that should not be disabled by an application defining an OnIdle -handler in a derived class. - -This function may be used to do delayed painting, for example, -and most implementations call \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui} -in order to send update events to the window in idle time. - - -\membersection{wxWindow::PageDown}\label{wxwindowpagedown} - -This is just a wrapper for \helpref{ScrollPages()}{wxwindowscrollpages}$(1)$. - - -\membersection{wxWindow::PageUp}\label{wxwindowpageup} - -This is just a wrapper for \helpref{ScrollPages()}{wxwindowscrollpages}$(-1)$. - - -\membersection{wxWindow::PopEventHandler}\label{wxwindowpopeventhandler} - -\constfunc{wxEvtHandler*}{PopEventHandler}{\param{bool }{deleteHandler = {\tt false}}} - -Removes and returns the top-most event handler on the event handler stack. - -\wxheading{Parameters} - -\docparam{deleteHandler}{If this is {\tt true}, the handler will be deleted after it is removed. The -default value is {\tt false}.} - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler}\rtfsp - - -\membersection{wxWindow::PopupMenu}\label{wxwindowpopupmenu} - -\func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{const wxPoint\& }{pos = wxDefaultPosition}} - -\func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{int }{x}, \param{int }{y}} - -Pops up the given menu at the specified coordinates, relative to this -window, and returns control when the user has dismissed the menu. If a -menu item is selected, the corresponding menu event is generated and will be -processed as usually. If the coordinates are not specified, current mouse -cursor position is used. - -\wxheading{Parameters} - -\docparam{menu}{Menu to pop up.} - -\docparam{pos}{The position where the menu will appear.} - -\docparam{x}{Required x position for the menu to appear.} - -\docparam{y}{Required y position for the menu to appear.} - -\wxheading{See also} - -\helpref{wxMenu}{wxmenu} - -\wxheading{Remarks} - -Just before the menu is popped up, \helpref{wxMenu::UpdateUI}{wxmenuupdateui} -is called to ensure that the menu items are in the correct state. The menu does -not get deleted by the window. - -It is recommended to not explicitly specify coordinates when calling PopupMenu -in response to mouse click, because some of the ports (namely, wxGTK) can do -a better job of positioning the menu in that case. - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf PopupMenu(menu, point)}}{Specifies position with a wxPoint} -\twocolitem{{\bf PopupMenuXY(menu, x, y)}}{Specifies position with two integers (x, y)} -\end{twocollist}} -} - -\membersection{wxWindow::PushEventHandler}\label{wxwindowpusheventhandler} - -\func{void}{PushEventHandler}{\param{wxEvtHandler* }{handler}} - -Pushes this event handler onto the event stack for the window. - -\wxheading{Parameters} - -\docparam{handler}{Specifies the handler to be pushed.} - -\wxheading{Remarks} - -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes. - -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} allows -an application to set up a chain of event handlers, where an event not handled by one event handler is -handed to the next one in the chain. Use \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} to -remove the event handler. - -\wxheading{See also} - -\helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler} - - -\membersection{wxWindow::Raise}\label{wxwindowraise} - -\func{void}{Raise}{\void} - -Raises the window to the top of the window hierarchy (Z-order). - -In current version of wxWidgets this works both for managed and child windows. - -\wxheading{See also} - -\helpref{Lower}{wxwindowlower} - - -\membersection{wxWindow::Refresh}\label{wxwindowrefresh} - -\func{virtual void}{Refresh}{\param{bool}{ eraseBackground = {\tt true}}, \param{const wxRect* }{rect = NULL}} - -Causes this window, and all of its children recursively (except under wxGTK1 -where this is not implemented), to be repainted. Note that repainting doesn't -happen immediately but only during the next event loop iteration, if you need -to update the window immediately you should use \helpref{Update}{wxwindowupdate} -instead. - -\wxheading{Parameters} - -\docparam{eraseBackground}{If {\tt true}, the background will be -erased.} - -\docparam{rect}{If non-NULL, only the given rectangle will -be treated as damaged.} - -\wxheading{See also} - -\helpref{wxWindow::RefreshRect}{wxwindowrefreshrect} - - -\membersection{wxWindow::RefreshRect}\label{wxwindowrefreshrect} - -\func{void}{RefreshRect}{\param{const wxRect\& }{rect}, \param{bool }{eraseBackground = \true}} - -Redraws the contents of the given rectangle: only the area inside it will be -repainted. - -This is the same as \helpref{Refresh}{wxwindowrefresh} but has a nicer syntax -as it can be called with a temporary wxRect object as argument like this -\texttt{RefreshRect(wxRect(x, y, w, h))}. - - -\membersection{wxWindow::RegisterHotKey}\label{wxwindowregisterhotkey} - -\func{bool}{RegisterHotKey}{\param{int}{ hotkeyId}, \param{int}{ modifiers}, \param{int}{ virtualKeyCode}} - -Registers a system wide hotkey. Every time the user presses the hotkey registered here, this window -will receive a hotkey event. It will receive the event even if the application is in the background -and does not have the input focus because the user is working with some other application. - -\wxheading{Parameters} - -\docparam{hotkeyId}{Numeric identifier of the hotkey. For applications this must be between 0 and 0xBFFF. If -this function is called from a shared DLL, it must be a system wide unique identifier between 0xC000 and 0xFFFF. -This is a MSW specific detail.} - -\docparam{modifiers}{A bitwise combination of {\tt wxMOD\_SHIFT}, {\tt wxMOD\_CONTROL}, {\tt wxMOD\_ALT} -or {\tt wxMOD\_WIN} specifying the modifier keys that have to be pressed along with the key.} - -\docparam{virtualKeyCode}{The virtual key code of the hotkey.} - -\wxheading{Return value} - -{\tt true} if the hotkey was registered successfully. {\tt false} if some other application already registered a -hotkey with this modifier/virtualKeyCode combination. - -\wxheading{Remarks} - -Use EVT\_HOTKEY(hotkeyId, fnc) in the event table to capture the event. -This function is currently only implemented under Windows. It is used -in the \helpref{Windows CE port}{wxwince} for detecting hardware button presses. - -\wxheading{See also} - -\helpref{wxWindow::UnregisterHotKey}{wxwindowunregisterhotkey} - - -\membersection{wxWindow::ReleaseMouse}\label{wxwindowreleasemouse} - -\func{virtual void}{ReleaseMouse}{\void} - -Releases mouse input captured with \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}. - -\wxheading{See also} - -\helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}, -\helpref{wxWindow::HasCapture}{wxwindowhascapture}, -\helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}, -\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} -\helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent} - - -\membersection{wxWindow::RemoveChild}\label{wxwindowremovechild} - -\func{virtual void}{RemoveChild}{\param{wxWindow* }{child}} - -Removes a child window. This is called automatically by window deletion -functions so should not be required by the application programmer. - -Notice that this function is mostly internal to wxWidgets and shouldn't be -called by the user code. - -\wxheading{Parameters} - -\docparam{child}{Child window to remove.} - - -\membersection{wxWindow::RemoveEventHandler}\label{wxwindowremoveeventhandler} - -\func{bool}{RemoveEventHandler}{\param{wxEvtHandler *}{handler}} - -Find the given {\it handler} in the windows event handler chain and remove (but -not delete) it from it. - -\wxheading{Parameters} - -\docparam{handler}{The event handler to remove, must be non-{\tt NULL} and -must be present in this windows event handlers chain} - -\wxheading{Return value} - -Returns {\tt true} if it was found and {\tt false} otherwise (this also results -in an assert failure so this function should only be called when the -handler is supposed to be there). - -\wxheading{See also} - -\helpref{PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{PopEventHandler}{wxwindowpopeventhandler} - - -\membersection{wxWindow::Reparent}\label{wxwindowreparent} - -\func{virtual bool}{Reparent}{\param{wxWindow* }{newParent}} - -Reparents the window, i.e the window will be removed from its -current parent window (e.g. a non-standard toolbar in a wxFrame) -and then re-inserted into another. - -\wxheading{Parameters} - -\docparam{newParent}{New parent.} - - -\membersection{wxWindow::ScreenToClient}\label{wxwindowscreentoclient} - -\constfunc{virtual void}{ScreenToClient}{\param{int* }{x}, \param{int* }{y}} - -\constfunc{virtual wxPoint}{ScreenToClient}{\param{const wxPoint\& }{pt}} - -Converts from screen to client window coordinates. - -\wxheading{Parameters} - -\docparam{x}{Stores the screen x coordinate and receives the client x coordinate.} - -\docparam{y}{Stores the screen x coordinate and receives the client x coordinate.} - -\docparam{pt}{The screen position for the second form of the function.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf ScreenToClient(point)}}{Accepts and returns a wxPoint} -\twocolitem{{\bf ScreenToClientXY(x, y)}}{Returns a 2-tuple, (x, y)} -\end{twocollist}} -} - - -\membersection{wxWindow::ScrollLines}\label{wxwindowscrolllines} - -\func{virtual bool}{ScrollLines}{\param{int }{lines}} - -Scrolls the window by the given number of lines down (if {\it lines} is -positive) or up. - -\wxheading{Return value} - -Returns {\tt true} if the window was scrolled, {\tt false} if it was already -on top/bottom and nothing was done. - -\wxheading{Remarks} - -This function is currently only implemented under MSW and wxTextCtrl under -wxGTK (it also works for wxScrolledWindow derived classes under all -platforms). - -\wxheading{See also} - -\helpref{ScrollPages}{wxwindowscrollpages} - - -\membersection{wxWindow::ScrollPages}\label{wxwindowscrollpages} - -\func{virtual bool}{ScrollPages}{\param{int }{pages}} - -Scrolls the window by the given number of pages down (if {\it pages} is -positive) or up. - -\wxheading{Return value} - -Returns {\tt true} if the window was scrolled, {\tt false} if it was already -on top/bottom and nothing was done. - -\wxheading{Remarks} - -This function is currently only implemented under MSW and wxGTK. - -\wxheading{See also} - -\helpref{ScrollLines}{wxwindowscrolllines} - - -\membersection{wxWindow::ScrollWindow}\label{wxwindowscrollwindow} - -\func{virtual void}{ScrollWindow}{\param{int }{dx}, \param{int }{dy}, \param{const wxRect*}{ rect = NULL}} - -Physically scrolls the pixels in the window and move child windows accordingly. - -\wxheading{Parameters} - -\docparam{dx}{Amount to scroll horizontally.} - -\docparam{dy}{Amount to scroll vertically.} - -\docparam{rect}{Rectangle to scroll, if it is \NULL, the whole window is -scrolled (this is always the case under wxGTK which doesn't support this -parameter)} - -\wxheading{Remarks} - -Note that you can often use \helpref{wxScrolledWindow}{wxscrolledwindow} -instead of using this function directly. - - -\membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable} - -\func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}} - -Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}. - - -\membersection{wxWindow::SetAccessible}\label{wxwindowsetaccessible} - -\func{void}{SetAccessible}{\param{wxAccessible*}{ accessible}} - -Sets the accessible for this window. Any existing accessible for this window -will be deleted first, if not identical to {\it accessible}. - -See also \helpref{wxAccessible}{wxaccessible}. - - -\membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout} - -\func{void}{SetAutoLayout}{\param{bool}{ autoLayout}} - -Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will -be called automatically when the window is resized. Please note that this only -happens for the windows usually used to contain children, namely -\helpref{wxPanel}{wxpanel} and \helpref{wxTopLevelWindow}{wxtoplevelwindow} -(and the classes deriving from them). - -This method is called implicitly by -\helpref{wxWindow::SetSizer}{wxwindowsetsizer} but if you use -\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} you should call it -manually or otherwise the window layout won't be correctly updated when its -size changes. - -\wxheading{Parameters} - -\docparam{autoLayout}{Set this to \true if you wish the Layout function to be -called automatically when the window is resized.} - -\wxheading{See also} - -\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} - - -\membersection{wxWindow::SetBackgroundColour}\label{wxwindowsetbackgroundcolour} - -\func{virtual bool}{SetBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets the background colour of the window. - -Please see \helpref{InheritAttributes}{wxwindowinheritattributes} for -explanation of the difference between this method and -\helpref{SetOwnBackgroundColour}{wxwindowsetownbackgroundcolour}. - -\wxheading{Parameters} - -\docparam{colour}{The colour to be used as the background colour, pass - {\tt wxNullColour} to reset to the default colour.} - -\wxheading{Remarks} - -The background colour is usually painted by the default\rtfsp -\helpref{wxEraseEvent}{wxeraseevent} event handler function -under Windows and automatically under GTK. - -Note that setting the background colour does not cause an immediate refresh, so you -may wish to call \helpref{wxWindow::ClearBackground}{wxwindowclearbackground} or \helpref{wxWindow::Refresh}{wxwindowrefresh} after -calling this function. - -Using this function will disable attempts to use themes for this -window, if the system supports them. Use with care since usually the -themes represent the appearance chosen by the user to be used for all -applications on the system. - - -\wxheading{See also} - -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour},\rtfsp -\helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::ClearBackground}{wxwindowclearbackground},\rtfsp -\helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp -\helpref{wxEraseEvent}{wxeraseevent} - -\membersection{wxWindow::SetBackgroundStyle}\label{wxwindowsetbackgroundstyle} - -\func{virtual void}{SetBackgroundStyle}{\param{wxBackgroundStyle}{ style}} - -Sets the background style of the window. see -\helpref{GetBackgroundStyle()}{wxwindowgetbackgroundstyle} for the description -of the possible style values. - -\wxheading{See also} - -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::SetTransparent}{wxwindowsettransparent} - - - -\membersection{wxWindow::SetCanFocus}\label{wxwindowsetcanfocus} - -\func{virtual void}{SetCanFocus}{\param{bool}{ canFocus}} - -This method is only implemented by ports which have support for -native TAB traversal (such as GTK+ 2.0). It is called by wxWidgets' -container control code to give the native system a hint when -doing TAB traversal. A call to this does not disable or change -the effect of programmatically calling -\helpref{wxWindow::SetFocus}{wxwindowsetfocus}. - -\wxheading{See also} - -\helpref{wxFocusEvent}{wxfocusevent} -\helpref{wxPanel::SetFocus}{wxpanelsetfocus} -\helpref{wxPanel::SetFocusIgnoringChildren}{wxpanelsetfocusignoringchildren} - - -\membersection{wxWindow::SetCaret}\label{wxwindowsetcaret} - -\constfunc{void}{SetCaret}{\param{wxCaret *}{caret}} - -Sets the \helpref{caret}{wxcaret} associated with the window. - - -\membersection{wxWindow::SetClientSize}\label{wxwindowsetclientsize} - -\func{virtual void}{SetClientSize}{\param{int}{ width}, \param{int}{ height}} - -\func{virtual void}{SetClientSize}{\param{const wxSize\&}{ size}} - -This sets the size of the window client area in pixels. Using this function to size a window -tends to be more device-independent than \helpref{wxWindow::SetSize}{wxwindowsetsize}, since the application need not -worry about what dimensions the border or title bar have when trying to fit the window -around panel items, for example. - -\wxheading{Parameters} - -\docparam{width}{The required client area width.} - -\docparam{height}{The required client area height.} - -\docparam{size}{The required client size.} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf SetClientSize(size)}}{Accepts a wxSize} -\twocolitem{{\bf SetClientSizeWH(width, height)}}{} -\end{twocollist}} -} - - -\membersection{wxWindow::SetConstraints}\label{wxwindowsetconstraints} - -\func{void}{SetConstraints}{\param{wxLayoutConstraints* }{constraints}} - -Sets the window to have the given layout constraints. The window -will then own the object, and will take care of its deletion. -If an existing layout constraints object is already owned by the -window, it will be deleted. - -\wxheading{Parameters} - -\docparam{constraints}{The constraints to set. Pass NULL to disassociate and delete the window's -constraints.} - -\wxheading{Remarks} - -You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use -the constraints automatically in OnSize; otherwise, you must override OnSize and call Layout() -explicitly. When setting both a wxLayoutConstraints and a \helpref{wxSizer}{wxsizer}, only the -sizer will have effect. - -\membersection{wxWindow::SetContainingSizer}\label{wxwindowsetcontainingsizer} - -\func{void}{SetContainingSizer}{\param{wxSizer* }{sizer}} - -This normally does not need to be called by user code. It is called -when a window is added to a sizer, and is used so the window can -remove itself from the sizer when it is destroyed. - - -\membersection{wxWindow::SetCursor}\label{wxwindowsetcursor} - -\func{virtual void}{SetCursor}{\param{const wxCursor\&}{cursor}} - -% VZ: the docs are correct, if the code doesn't behave like this, it must be -% changed -Sets the window's cursor. Notice that the window cursor also sets it for the -children of the window implicitly. - -The {\it cursor} may be {\tt wxNullCursor} in which case the window cursor will -be reset back to default. - -\wxheading{Parameters} - -\docparam{cursor}{Specifies the cursor that the window should normally display.} - -\wxheading{See also} - -\helpref{::wxSetCursor}{wxsetcursor}, \helpref{wxCursor}{wxcursor} - - -\membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget} - -\func{void}{SetDropTarget}{\param{wxDropTarget*}{ target}} - -Associates a drop target with this window. - -If the window already has a drop target, it is deleted. - -\wxheading{See also} - -\helpref{wxWindow::GetDropTarget}{wxwindowgetdroptarget}, -\helpref{Drag and drop overview}{wxdndoverview} - - - -\membersection{wxWindow::SetEventHandler}\label{wxwindowseteventhandler} - -\func{void}{SetEventHandler}{\param{wxEvtHandler* }{handler}} - -Sets the event handler for this window. - -\wxheading{Parameters} - -\docparam{handler}{Specifies the handler to be set.} - -\wxheading{Remarks} - -An event handler is an object that is capable of processing the events -sent to a window. By default, the window is its own event handler, but -an application may wish to substitute another, for example to allow -central implementation of event-handling for a variety of different -window classes. - -It is usually better to use \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} -since this sets up a chain of event handlers, where an event not handled by -one event handler is handed to the next one in the chain. - -\wxheading{See also} - -\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp -\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp -\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp -\helpref{wxEvtHandler}{wxevthandler} - - -\membersection{wxWindow::SetExtraStyle}\label{wxwindowsetextrastyle} - -\func{void}{SetExtraStyle}{\param{long }{exStyle}} - -Sets the extra style bits for the window. The currently defined extra style -bits are: - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxWS\_EX\_VALIDATE\_RECURSIVELY}}{TransferDataTo/FromWindow() -and Validate() methods will recursively descend into all children of the -window if it has this style flag set.} -\twocolitem{\windowstyle{wxWS\_EX\_BLOCK\_EVENTS}}{Normally, the command -events are propagated upwards to the window parent recursively until a handler -for them is found. Using this style allows to prevent them from being -propagated beyond this window. Notice that wxDialog has this style on by -default for the reasons explained in the -\helpref{event processing overview}{eventprocessing}.} -\twocolitem{\windowstyle{wxWS\_EX\_TRANSIENT}}{This can be used to prevent a -window from being used as an implicit parent for the dialogs which were -created without a parent. It is useful for the windows which can disappear at -any moment as creating children of such windows results in fatal problems.} -\twocolitem{\windowstyle{wxWS\_EX\_CONTEXTHELP}}{Under Windows, puts a query -button on the caption. When pressed, Windows will go into a context-sensitive -help mode and wxWidgets will send a wxEVT\_HELP event if the user clicked on an -application window. -This style cannot be used together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so -these two styles are automatically turned of if this one is used.} -\twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_IDLE}}{This window should always process idle events, even -if the mode set by \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} is wxIDLE\_PROCESS\_SPECIFIED.} -\twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_UI\_UPDATES}}{This window should always process UI update events, -even if the mode set by \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} is wxUPDATE\_UI\_PROCESS\_SPECIFIED.} -\end{twocollist} - - -\membersection{wxWindow::SetFocus}\label{wxwindowsetfocus} - -\func{virtual void}{SetFocus}{\void} - -This sets the window to receive keyboard input. - -\wxheading{See also} - -\helpref{HasFocus}{wxwindowhasfocus}, -\helpref{wxFocusEvent}{wxfocusevent}, -\helpref{wxPanel::SetFocus}{wxpanelsetfocus}, -\helpref{wxPanel::SetFocusIgnoringChildren}{wxpanelsetfocusignoringchildren} - - -\membersection{wxWindow::SetFocusFromKbd}\label{wxwindowsetfocusfromkbd} - -\func{virtual void}{SetFocusFromKbd}{\void} - -This function is called by wxWidgets keyboard navigation code when the user -gives the focus to this window from keyboard (e.g. using {\tt TAB} key). -By default this method simply calls \helpref{SetFocus}{wxwindowsetfocus} but -can be overridden to do something in addition to this in the derived classes. - - -\membersection{wxWindow::SetFont}\label{wxwindowsetfont} - -\func{bool}{SetFont}{\param{const wxFont\& }{font}} - -Sets the font for this window. This function should not be called for the -parent window if you don't want its font to be inherited by its children, -use \helpref{SetOwnFont}{wxwindowsetownfont} instead in this case and -see \helpref{InheritAttributes}{wxwindowinheritattributes} for more -explanations. - -Please notice that the given font is \emph{not} automatically used for -\helpref{wxPaintDC}{wxpaintdc} objects associated with this window, you need to -call \helpref{wxDC::SetFont()}{wxdcsetfont} too. However this font is used by -any standard controls for drawing their text as well as by -\helpref{wxWindow::GetTextExtent()}{wxwindowgettextextent}. - -\wxheading{Parameters} - -\docparam{font}{Font to associate with this window, pass -{\tt wxNullFont} to reset to the default font.} - -\wxheading{Return value} - -\true if the want was really changed, \false if it was already set to this -\arg{font} and so nothing was done. - -\wxheading{See also} - -\helpref{wxWindow::GetFont}{wxwindowgetfont},\\ -\helpref{InheritAttributes}{wxwindowinheritattributes} - - -\membersection{wxWindow::SetForegroundColour}\label{wxwindowsetforegroundcolour} - -\func{virtual void}{SetForegroundColour}{\param{const wxColour\& }{colour}} - -Sets the foreground colour of the window. - -Please see \helpref{InheritAttributes}{wxwindowinheritattributes} for -explanation of the difference between this method and -\helpref{SetOwnForegroundColour}{wxwindowsetownforegroundcolour}. - -\wxheading{Parameters} - -\docparam{colour}{The colour to be used as the foreground colour, pass - {\tt wxNullColour} to reset to the default colour.} - -\wxheading{Remarks} - -The interpretation of foreground colour is open to interpretation according -to the window class; it may be the text colour or other colour, or it may not -be used at all. - -Using this function will disable attempts to use themes for this -window, if the system supports them. Use with care since usually the -themes represent the appearance chosen by the user to be used for all -applications on the system. - -\wxheading{See also} - -\helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp -\helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour},\rtfsp -\helpref{wxWindow::ShouldInheritColours}{wxwindowshouldinheritcolours} - - -\membersection{wxWindow::SetHelpText}\label{wxwindowsethelptext} - -\func{virtual void}{SetHelpText}{\param{const wxString\& }{helpText}} - -Sets the help text to be used as context-sensitive help for this window. - -Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation, -and not in the window object itself. - -\wxheading{See also} - -\helpref{GetHelpText}{wxwindowgethelptext}, \helpref{wxHelpProvider}{wxhelpprovider} - - -\membersection{wxWindow::SetId}\label{wxwindowsetid} - -\func{void}{SetId}{\param{int}{ id}} - -Sets the identifier of the window. - -\wxheading{Remarks} - -Each window has an integer identifier. If the application has not provided one, -an identifier will be generated. Normally, the identifier should be provided -on creation and should not be modified subsequently. - -\wxheading{See also} - -\helpref{wxWindow::GetId}{wxwindowgetid},\rtfsp -\helpref{Window identifiers}{windowids} - - - -\membersection{wxWindow::SetInitialBestSize}\label{wxwindowsetinitialbestsize} - -\func{virtual void}{SetInitialBestSize}{\param{const wxSize\& }{size}} - -Sets the initial window size if none is given (i.e. at least one of the -components of the size passed to ctor/Create() is wxDefaultCoord). - - -\membersection{wxWindow::SetInitialSize}\label{wxwindowsetinitialsize} - -\func{void}{SetInitialSize}{\param{const wxSize\& }{size = wxDefaultSize}} - -A {\it smart} SetSize that will fill in default size components with the -window's {\it best} size values. Also sets the window's minsize to -the value passed in for use with sizers. This means that if a full or -partial size is passed to this function then the sizers will use that -size instead of the results of GetBestSize to determine the minimum -needs of the window for layout. - -Most controls will use this to set their initial size, and their min -size to the passed in value (if any.) - - -\wxheading{See also} - -\helpref{wxWindow::SetSize}{wxwindowsetsize},\rtfsp -\helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp -\helpref{wxWindow::GetEffectiveMinSize}{wxwindowgeteffectiveminsize} - - -\membersection{wxWindow::SetLabel}\label{wxwindowsetlabel} - -\func{virtual void}{SetLabel}{\param{const wxString\& }{label}} - -Sets the window's label. - -\wxheading{Parameters} - -\docparam{label}{The window label.} - -\wxheading{See also} - -\helpref{wxWindow::GetLabel}{wxwindowgetlabel} - - -\membersection{wxWindow::SetMaxSize}\label{wxwindowsetmaxsize} - -\func{void}{SetMaxSize}{\param{const wxSize\& }{size}} - -Sets the maximum size of the window, to indicate to the sizer layout mechanism -that this is the maximum possible size. - -\wxheading{See also} - -\helpref{wxWindow::SetMaxClientSize}{wxwindowsetmaxclientsize} - - -\membersection{wxWindow::SetMaxClientSize}\label{wxwindowsetmaxclientsize} - -\func{void}{SetMaxClientSize}{\param{const wxSize\& }{size}} - -Sets the maximum \emph{client} size of the window, to indicate to the sizer -layout mechanism that this is the maximum possible size of its client area. - -\wxheading{See also} - -\helpref{wxWindow::SetMaxSize}{wxwindowsetmaxsize} - - -\membersection{wxWindow::SetMinSize}\label{wxwindowsetminsize} - -\func{void}{SetMinSize}{\param{const wxSize\& }{size}} - -Sets the minimum size of the window, to indicate to the sizer layout mechanism -that this is the minimum required size. You may need to call this -if you change the window size after construction and before adding -to its parent sizer. - -\wxheading{See also} - -\helpref{wxWindow::SetMinClientSize}{wxwindowsetminclientsize} - - -\membersection{wxWindow::SetMinClientSize}\label{wxwindowsetminclientsize} - -\func{void}{SetMinClientSize}{\param{const wxSize\& }{size}} - -Sets the minimum \emph{client} size of the window, to indicate to the sizer -layout mechanism that this is the minimum required size of window's client -area. You may need to call this if you change the window size after -construction and before adding to its parent sizer. - -\wxheading{See also} - -\helpref{wxWindow::SetMinSize}{wxwindowsetminsize} - - -\membersection{wxWindow::SetName}\label{wxwindowsetname} - -\func{virtual void}{SetName}{\param{const wxString\& }{name}} - -Sets the window's name. - -\wxheading{Parameters} - -\docparam{name}{A name to set for the window.} - -\wxheading{See also} - -\helpref{wxWindow::GetName}{wxwindowgetname} - - -\membersection{wxWindow::SetOwnBackgroundColour}\label{wxwindowsetownbackgroundcolour} - -\func{void}{SetOwnBackgroundColour}{\param{const wxColour\& }{colour}} - -Sets the background colour of the window but prevents it from being inherited -by the children of this window. - -\wxheading{See also} - -\helpref{SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp -\helpref{InheritAttributes}{wxwindowinheritattributes} - - -\membersection{wxWindow::SetOwnFont}\label{wxwindowsetownfont} - -\func{void}{SetOwnFont}{\param{const wxFont\& }{font}} - -Sets the font of the window but prevents it from being inherited by the -children of this window. - -\wxheading{See also} - -\helpref{SetFont}{wxwindowsetfont},\rtfsp -\helpref{InheritAttributes}{wxwindowinheritattributes} - - -\membersection{wxWindow::SetOwnForegroundColour}\label{wxwindowsetownforegroundcolour} - -\func{void}{SetOwnForegroundColour}{\param{const wxColour\& }{colour}} - -Sets the foreground colour of the window but prevents it from being inherited -by the children of this window. - -\wxheading{See also} - -\helpref{SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp -\helpref{InheritAttributes}{wxwindowinheritattributes} - - -\membersection{wxWindow::SetPalette}\label{wxwindowsetpalette} - -\func{virtual void}{SetPalette}{\param{wxPalette* }{palette}} - -Obsolete - use \helpref{wxDC::SetPalette}{wxdcsetpalette} instead. - - -\membersection{wxWindow::SetScrollbar}\label{wxwindowsetscrollbar} - -\func{virtual void}{SetScrollbar}{\param{int }{orientation}, \param{int }{position},\rtfsp -\param{int }{thumbSize}, \param{int }{range},\rtfsp -\param{bool }{refresh = {\tt true}}} - -Sets the scrollbar properties of a built-in scrollbar. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{position}{The position of the scrollbar in scroll units.} - -\docparam{thumbSize}{The size of the thumb, or visible portion of the scrollbar, in scroll units.} - -\docparam{range}{The maximum position of the scrollbar.} - -\docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.} - -\wxheading{Remarks} - -Let's say you wish to display 50 lines of text, using the same font. -The window is sized so that you can only see 16 lines at a time. - -You would use: - -{\small% -\begin{verbatim} - SetScrollbar(wxVERTICAL, 0, 16, 50); -\end{verbatim} -} - -Note that with the window at this size, the thumb position can never go -above 50 minus 16, or 34. - -You can determine how many lines are currently visible by dividing the current view -size by the character height in pixels. - -When defining your own scrollbar behaviour, you will always need to recalculate -the scrollbar settings when the window size changes. You could therefore put your -scrollbar calculations and SetScrollbar -call into a function named AdjustScrollbars, which can be called initially and also -from your \helpref{wxSizeEvent}{wxsizeevent} handler function. - -\wxheading{See also} - -\helpref{Scrolling overview}{scrollingoverview},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow},\rtfsp -\helpref{wxScrollWinEvent}{wxscrollwinevent} - -\begin{comment} - - -\membersection{wxWindow::SetScrollPage}\label{wxwindowsetscrollpage} - -\func{virtual void}{SetScrollPage}{\param{int }{orientation}, \param{int }{pageSize}, \param{bool }{refresh = {\tt true}}} - -Sets the page size of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{pageSize}{Page size in scroll units.} - -\docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.} - -\wxheading{Remarks} - -The page size of a scrollbar is the number of scroll units that the scroll thumb travels when you -click on the area above/left of or below/right of the thumb. Normally you will want a whole visible -page to be scrolled, i.e. the size of the current view (perhaps the window client size). This -value has to be adjusted when the window is resized, since the page size will have changed. - -In addition to specifying how far the scroll thumb travels when paging, in Motif and some versions of Windows -the thumb changes size to reflect the page size relative to the length of the document. When the -document size is only slightly bigger than the current view (window) size, almost all of the scrollbar -will be taken up by the thumb. When the two values become the same, the scrollbar will (on some systems) -disappear. - -Currently, this function should be called before SetPageRange, because of a quirk in the Windows -handling of pages and ranges. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} -\end{comment} - - -\membersection{wxWindow::SetScrollPos}\label{wxwindowsetscrollpos} - -\func{virtual void}{SetScrollPos}{\param{int }{orientation}, \param{int }{pos}, \param{bool }{refresh = {\tt true}}} - -Sets the position of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose position is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{pos}{Position in scroll units.} - -\docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.} - -\wxheading{Remarks} - -This function does not directly affect the contents of the window: it is up to the -application to take note of scrollbar attributes and redraw contents accordingly. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollThumb}{wxwindowgetscrollthumb},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} - -\begin{comment} - - -\membersection{wxWindow::SetScrollRange}\label{wxwindowsetscrollrange} - -\func{virtual void}{SetScrollRange}{\param{int }{orientation}, \param{int }{range}, \param{bool }{refresh = {\tt true}}} - -Sets the range of one of the built-in scrollbars. - -\wxheading{Parameters} - -\docparam{orientation}{Determines the scrollbar whose range is to be set. May be wxHORIZONTAL or wxVERTICAL.} - -\docparam{range}{Scroll range.} - -\docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.} - -\wxheading{Remarks} - -The range of a scrollbar is the number of steps that the thumb may travel, rather than the total -object length of the scrollbar. If you are implementing a scrolling window, for example, you -would adjust the scroll range when the window is resized, by subtracting the window view size from the -total virtual window size. When the two sizes are the same (all the window is visible), the range goes to zero -and usually the scrollbar will be automatically hidden. - -\wxheading{See also} - -\helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp -\helpref{wxWindow::SetScrollPage}{wxwindowsetscrollpage},\rtfsp -\helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp -\helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage},\rtfsp -\helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow} -\end{comment} - - -\membersection{wxWindow::SetSize}\label{wxwindowsetsize} - -\func{virtual void}{SetSize}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height}, - \param{int}{ sizeFlags = wxSIZE\_AUTO}} - -\func{virtual void}{SetSize}{\param{const wxRect\&}{ rect}} - -Sets the position and size of the window in pixels. - -\func{virtual void}{SetSize}{\param{int}{ width}, \param{int}{ height}} - -\func{virtual void}{SetSize}{\param{const wxSize\&}{ size}} - -Sets the size of the window in pixels. - -\wxheading{Parameters} - -\docparam{x}{Required x position in pixels, or wxDefaultCoord to indicate that the existing -value should be used.} - -\docparam{y}{Required y position in pixels, or wxDefaultCoord to indicate that the existing -value should be used.} - -\docparam{width}{Required width in pixels, or wxDefaultCoord to indicate that the existing -value should be used.} - -\docparam{height}{Required height position in pixels, or wxDefaultCoord to indicate that the existing -value should be used.} - -\docparam{size}{\helpref{wxSize}{wxsize} object for setting the size.} - -\docparam{rect}{\helpref{wxRect}{wxrect} object for setting the position and size.} - -\docparam{sizeFlags}{Indicates the interpretation of other parameters. It is a bit list of the following: - -{\bf wxSIZE\_AUTO\_WIDTH}: a $wxDefaultCoord$ width value is taken to indicate -a wxWidgets-supplied default width.\\ -{\bf wxSIZE\_AUTO\_HEIGHT}: a $wxDefaultCoord$ height value is taken to indicate -a wxWidgets-supplied default height.\\ -{\bf wxSIZE\_AUTO}: $wxDefaultCoord$ size values are taken to indicate -a wxWidgets-supplied default size.\\ -{\bf wxSIZE\_USE\_EXISTING}: existing dimensions should be used -if $wxDefaultCoord$ values are supplied.\\ -{\bf wxSIZE\_ALLOW\_MINUS\_ONE}: allow negative dimensions (i.e. value of $wxDefaultCoord$) to be interpreted -as real dimensions, not default values. -{\bf wxSIZE\_FORCE}: normally, if the position and the size of the window are -already the same as the parameters of this function, nothing is done. but with -this flag a window resize may be forced even in this case (supported in wx -2.6.2 and later and only implemented for MSW and ignored elsewhere currently) -} - -\wxheading{Remarks} - -The second form is a convenience for calling the first form with default -x and y parameters, and must be used with non-default width and height values. - -The first form sets the position and optionally size, of the window. -Parameters may be $wxDefaultCoord$ to indicate either that a default should be supplied -by wxWidgets, or that the current value of the dimension should be used. - -Notice that for \helpref{top level window}{wxtoplevelwindow} the size will not -be changed if it is outside of the valid range as set by -\helpref{SetSizeHints}{wxtoplevelwindowsetsizehints}. - -\wxheading{See also} - -\helpref{wxWindow::Move}{wxwindowmove} - -\pythonnote{In place of a single overloaded method name, wxPython -implements the following methods:\par -\indented{2cm}{\begin{twocollist} -\twocolitem{{\bf SetDimensions(x, y, width, height, sizeFlags=wxSIZE\_AUTO)}}{} -\twocolitem{{\bf SetSize(size)}}{} -\twocolitem{{\bf SetPosition(point)}}{} -\end{twocollist}} -} - - -\membersection{wxWindow::SetSizeHints}\label{wxwindowsetsizehints} - -Use of this function for windows which are not toplevel windows -(such as wxDialog or wxFrame) is discouraged. Please use -\helpref{SetMinSize}{wxwindowsetminsize} and \helpref{SetMaxSize}{wxwindowsetmaxsize} -instead. - -\wxheading{See also} - -\helpref{wxTopLevelWindow::SetSizeHints}{wxtoplevelwindowsetsizehints}. - - -\membersection{wxWindow::SetSizer}\label{wxwindowsetsizer} - -\func{void}{SetSizer}{\param{wxSizer* }{sizer}, \param{bool }{deleteOld=true}} - -Sets the window to have the given layout sizer. The window -will then own the object, and will take care of its deletion. -If an existing layout constraints object is already owned by the -window, it will be deleted if the deleteOld parameter is true. - -Note that this function will also call -\helpref{SetAutoLayout}{wxwindowsetautolayout} implicitly with {\tt true} -parameter if the {\it sizer}\/ is non-NULL and {\tt false} otherwise. - -\wxheading{Parameters} - -\docparam{sizer}{The sizer to set. Pass NULL to disassociate and conditionally delete -the window's sizer. See below.} - -\docparam{deleteOld}{If true (the default), this will delete any pre-existing sizer. -Pass false if you wish to handle deleting the old sizer yourself.} - -\wxheading{Remarks} - -SetSizer now enables and disables Layout automatically, but prior to wxWidgets 2.3.3 -the following applied: - -You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use -the sizer automatically in OnSize; otherwise, you must override OnSize and call Layout() -explicitly. When setting both a wxSizer and a \helpref{wxLayoutConstraints}{wxlayoutconstraints}, -only the sizer will have effect. - - -\membersection{wxWindow::SetSizerAndFit}\label{wxwindowsetsizerandfit} - -\func{void}{SetSizerAndFit}{\param{wxSizer* }{sizer}, \param{bool }{deleteOld=true}} - -This method calls \helpref{SetSizer}{wxwindowsetsizer} and then -\helpref{wxSizer::SetSizeHints}{wxsizersetsizehints} which sets the initial -window size to the size needed to accommodate all sizer elements and sets the -size hints which, if this window is a top level one, prevent the user from -resizing it to be less than this minimial size. - - -\membersection{wxWindow::SetThemeEnabled}\label{wxwindowsetthemeenabled} - -\func{virtual void}{SetThemeEnabled}{\param{bool }{enable}} - -This function tells a window if it should use the system's "theme" code -to draw the windows' background instead if its own background drawing -code. This does not always have any effect since the underlying platform -obviously needs to support the notion of themes in user defined windows. -One such platform is GTK+ where windows can have (very colourful) backgrounds -defined by a user's selected theme. - -Dialogs, notebook pages and the status bar have this flag set to true -by default so that the default look and feel is simulated best. - - -\membersection{wxWindow::SetToolTip}\label{wxwindowsettooltip} - -\func{void}{SetToolTip}{\param{const wxString\& }{tip}} - -\func{void}{SetToolTip}{\param{wxToolTip* }{tip}} - -Attach a tooltip to the window. - -See also: \helpref{GetToolTip}{wxwindowgettooltip}, - \helpref{wxToolTip}{wxtooltip} - - -\membersection{wxWindow::SetTransparent}\label{wxwindowsettransparent} - -\func{bool}{SetTransparent}{\param{wxByte }{alpha}} - -Set the transparency of the window. If the system supports transparent windows, -returns \true, otherwise returns \false and the window remains fully opaque. -See also \helpref{CanSetTransparent}{wxwindowcansettransparent}. - -The parameter \arg{alpha} is in the range $0..255$ where $0$ corresponds to a -fully transparent window and $255$ to the fully opaque one. The constants -\texttt{wxIMAGE\_ALPHA\_TRANSPARENT} and \texttt{wxIMAGE\_ALPHA\_OPAQUE} can be -used. - - -\membersection{wxWindow::SetValidator}\label{wxwindowsetvalidator} - -\func{virtual void}{SetValidator}{\param{const wxValidator\&}{ validator}} - -Deletes the current validator (if any) and sets the window validator, having called wxValidator::Clone to -create a new validator of this type. - - -\membersection{wxWindow::SetVirtualSize}\label{wxwindowsetvirtualsize} - -\func{void}{SetVirtualSize}{\param{int}{ width}, \param{int}{ height}} - -\func{void}{SetVirtualSize}{\param{const wxSize\&}{ size}} - -Sets the virtual size of the window in pixels. - - -\membersection{wxWindow::SetVirtualSizeHints}\label{wxwindowsetvirtualsizehints} - -\func{virtual void}{SetVirtualSizeHints}{\param{int}{ minW},\param{int}{ minH}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1}} - -\func{void}{SetVirtualSizeHints}{\param{const wxSize\&}{ minSize=wxDefaultSize}, -\param{const wxSize\&}{ maxSize=wxDefaultSize}} - - -Allows specification of minimum and maximum virtual window sizes. -If a pair of values is not set (or set to -1), the default values -will be used. - -\wxheading{Parameters} - -\docparam{minW}{Specifies the minimum width allowable.} - -\docparam{minH}{Specifies the minimum height allowable.} - -\docparam{maxW}{Specifies the maximum width allowable.} - -\docparam{maxH}{Specifies the maximum height allowable.} - -\docparam{minSize}{Minimum size.} - -\docparam{maxSize}{Maximum size.} - -\wxheading{Remarks} - -If this function is called, the user will not be able to size the virtual area -of the window outside the given bounds. - - -\membersection{wxWindow::SetWindowStyle}\label{wxwindowsetwindowstyle} - -\func{void}{SetWindowStyle}{\param{long}{ style}} - -Identical to \helpref{SetWindowStyleFlag}{wxwindowsetwindowstyleflag}. - - -\membersection{wxWindow::SetWindowStyleFlag}\label{wxwindowsetwindowstyleflag} - -\func{virtual void}{SetWindowStyleFlag}{\param{long}{ style}} - -Sets the style of the window. Please note that some styles cannot be changed -after the window creation and that \helpref{Refresh()}{wxwindowrefresh} might -need to be be called after changing the others for the change to take place -immediately. - -See \helpref{Window styles}{windowstyles} for more information about flags. - -\wxheading{See also} - -\helpref{GetWindowStyleFlag}{wxwindowgetwindowstyleflag} - - -\membersection{wxWindow::SetWindowVariant}\label{wxwindowsetwindowvariant} - -\func{void}{SetWindowVariant}{\param{wxWindowVariant}{variant}} - -This function can be called under all platforms but only does anything under -Mac OS X 10.3+ currently. Under this system, each of the standard control can -exist in several sizes which correspond to the elements of wxWindowVariant -enum: -\begin{verbatim} -enum wxWindowVariant -{ - wxWINDOW_VARIANT_NORMAL, // Normal size - wxWINDOW_VARIANT_SMALL, // Smaller size (about 25 % smaller than normal ) - wxWINDOW_VARIANT_MINI, // Mini size (about 33 % smaller than normal ) - wxWINDOW_VARIANT_LARGE, // Large size (about 25 % larger than normal ) -}; -\end{verbatim} - -By default the controls use the normal size, of course, but this function can -be used to change this. - - -\membersection{wxWindow::ShouldInheritColours}\label{wxwindowshouldinheritcolours} - -\func{virtual bool}{ShouldInheritColours}{\void} - -Return \true from here to allow the colours of this window to be changed by -\helpref{InheritAttributes}{wxwindowinheritattributes}, returning \false -forbids inheriting them from the parent window. - -The base class version returns \false, but this method is overridden in -\helpref{wxControl}{wxcontrol} where it returns \true. - - -\membersection{wxWindow::Show}\label{wxwindowshow} - -\func{virtual bool}{Show}{\param{bool}{ show = {\tt true}}} - -Shows or hides the window. You may need to call \helpref{Raise}{wxwindowraise} -for a top level window if you want to bring it to top, although this is not -needed if Show() is called immediately after the frame creation. - -\wxheading{Parameters} - -\docparam{show}{If {\tt true} displays the window. Otherwise, hides it.} - -\wxheading{Return value} - -{\tt true} if the window has been shown or hidden or {\tt false} if nothing was -done because it already was in the requested state. - -\wxheading{See also} - -\helpref{wxWindow::IsShown}{wxwindowisshown},\rtfsp -\helpref{wxWindow::Hide}{wxwindowhide},\rtfsp -\helpref{wxRadioBox::Show}{wxradioboxshow} - - -\membersection{wxWindow::ShowWithEffect}\label{wxwindowshowwitheffect} - -\func{virtual bool}{ShowWithEffect}{\param{wxShowEffect }{effect}, \param{unsigned }{timeout = $0$}, \param{wxDirection }{dir = wxBOTTOM}} - -This function shows a window, like \helpref{Show()}{wxwindowshow}, but using a -special visual effect if possible. - -Possible values for \arg{effect} are: -\begin{twocollist}\itemsep=0pt -\twocolitem{wxSHOW\_EFFECT\_ROLL}{Roll window effect} -\twocolitem{wxSHOW\_EFFECT\_SLIDE}{Sliding window effect} -\twocolitem{wxSHOW\_EFFECT\_BLEND}{Fade in or out effect} -\twocolitem{wxSHOW\_EFFECT\_EXPAND}{Expanding or collapsing effect} -\end{twocollist} - -For the roll and slide effects the \arg{dir} parameter specifies the animation -direction: it can be one of \texttt{wxTOP}, \texttt{wxBOTTOM}, \texttt{wxLEFT} -or \texttt{wxRIGHT}. For the other effects, this parameter is unused. - -The \arg{timeout} parameter specifies the time of the animation, in -milliseconds. If the default value of $0$ is used, the default animation time -for the current platform is used. - -Currently this function is only implemented in wxMSW and does the same thing as -Show() in the other ports. - -\newsince{2.9.0} - -\wxheading{See also} - -\helpref{HideWithEffect}{wxwindowhidewitheffect} - - -\membersection{wxWindow::Thaw}\label{wxwindowthaw} - -\func{virtual void}{Thaw}{\void} - -Reenables window updating after a previous call to -\helpref{Freeze}{wxwindowfreeze}. To really thaw the control, it must be called -exactly the same number of times as \helpref{Freeze}{wxwindowfreeze}. - -\wxheading{See also} - -\helpref{wxWindowUpdateLocker}{wxwindowupdatelocker} - - -\membersection{wxWindow::ToggleWindowStyle}\label{wxwindowtogglewindowstyle} - -\func{bool}{ToggleWindowStyle}{\param{int }{flag}} - -Turns the given \arg{flag} on if it's currently turned off and vice versa. -This function cannot be used if the value of the flag is $0$ (which is often -the case for default flags). - -Also, please notice that not all styles can be changed after the control -creation. - -\wxheading{Return value} - -Returns \true if the style was turned on by this function, \false if it was -switched off. - -\wxheading{See also} - -\helpref{wxWindow::SetWindowStyleFlag}{wxwindowsetwindowstyleflag},\rtfsp -\helpref{wxWindow::HasFlag}{wxwindowhasflag} - - -\membersection{wxWindow::TransferDataFromWindow}\label{wxwindowtransferdatafromwindow} - -\func{virtual bool}{TransferDataFromWindow}{\void} - -Transfers values from child controls to data areas specified by their validators. Returns -{\tt false} if a transfer failed. - -If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set, -the method will also call TransferDataFromWindow() of all child windows. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow},\rtfsp -\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate} - - -\membersection{wxWindow::TransferDataToWindow}\label{wxwindowtransferdatatowindow} - -\func{virtual bool}{TransferDataToWindow}{\void} - -Transfers values to child controls from data areas specified by their validators. - -If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set, -the method will also call TransferDataToWindow() of all child windows. - -\wxheading{Return value} - -Returns {\tt false} if a transfer failed. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp -\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate} - - -\membersection{wxWindow::UnregisterHotKey}\label{wxwindowunregisterhotkey} - -\func{bool}{UnregisterHotKey}{\param{int}{ hotkeyId}} - -Unregisters a system wide hotkey. - -\wxheading{Parameters} - -\docparam{hotkeyId}{Numeric identifier of the hotkey. Must be the same id that was passed to RegisterHotKey.} - -\wxheading{Return value} - -{\tt true} if the hotkey was unregistered successfully, {\tt false} if the id was invalid. - -\wxheading{Remarks} - -This function is currently only implemented under MSW. - -\wxheading{See also} - -\helpref{wxWindow::RegisterHotKey}{wxwindowregisterhotkey} - -\membersection{wxWindow::UnreserveControlId}\label{wxwindowunreservecontrolid} - -\func{static void}{UnreserveControlId}{\param{wxWindowID}{ id}, \param{int}{ count = 1}} - -Unreserve an ID or range of IDs that was reserved by \helpref{NewControlId}{wxwindownewcontrolid}. - -See \helpref{Window IDs overview}{windowidsoverview} for more information. - -\wxheading{Parameters} - -\docparam{id}{The starting ID of the range of IDs to unreserve.} - -\docparam{count}{The number of sequential IDs to unreserve.} - -\wxheading{See also} - -\helpref{NewControlId}{wxwindownewcontrolid} -\helpref{wxIdManager}{wxidmanager} -\helpref{Window IDs overview}{windowidsoverview} - -\membersection{wxWindow::Update}\label{wxwindowupdate} - -\func{virtual void}{Update}{\void} - -Calling this method immediately repaints the invalidated area of the window and -all of its children recursively while this would usually only happen when the -flow of control returns to the event loop. -Notice that this function doesn't invalidate any area of the window so -nothing happens if nothing has been invalidated (i.e. marked as requiring -a redraw). Use \helpref{Refresh}{wxwindowrefresh} first if you want to -immediately redraw the window unconditionally. - - -\membersection{wxWindow::UpdateWindowUI}\label{wxwindowupdatewindowui} - -\func{virtual void}{UpdateWindowUI}{\param{long}{ flags = wxUPDATE\_UI\_NONE}} - -This function sends \helpref{wxUpdateUIEvents}{wxupdateuievent} to -the window. The particular implementation depends on the window; for -example a wxToolBar will send an update UI event for each toolbar button, -and a wxFrame will send an update UI event for each menubar menu item. -You can call this function from your application to ensure that your -UI is up-to-date at this point (as far as your wxUpdateUIEvent handlers -are concerned). This may be necessary if you have called -\helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} or -\helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval} to -limit the overhead that wxWidgets incurs by sending update UI events in idle time. - -{\it flags} should be a bitlist of one or more of the following values. - -\begin{verbatim} -enum wxUpdateUI -{ - wxUPDATE_UI_NONE = 0x0000, // No particular value - wxUPDATE_UI_RECURSE = 0x0001, // Call the function for descendants - wxUPDATE_UI_FROMIDLE = 0x0002 // Invoked from On(Internal)Idle -}; -\end{verbatim} - -If you are calling this function from an OnInternalIdle or OnIdle -function, make sure you pass the wxUPDATE\_UI\_FROMIDLE flag, since -this tells the window to only update the UI elements that need -to be updated in idle time. Some windows update their elements -only when necessary, for example when a menu is about to be shown. -The following is an example of how to call UpdateWindowUI from -an idle function. - -\begin{verbatim} -void MyWindow::OnInternalIdle() -{ - if (wxUpdateUIEvent::CanUpdate(this)) - UpdateWindowUI(wxUPDATE_UI_FROMIDLE); -} -\end{verbatim} - -\wxheading{See also} - -\helpref{wxUpdateUIEvent}{wxupdateuievent}, -\helpref{wxWindow::DoUpdateWindowUI}{wxwindowdoupdatewindowui}, -\helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle} - - -\membersection{wxWindow::Validate}\label{wxwindowvalidate} - -\func{virtual bool}{Validate}{\void} - -Validates the current values of the child controls using their validators. - -If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set, -the method will also call Validate() of all child windows. - -\wxheading{Return value} - -Returns {\tt false} if any of the validations failed. - -\wxheading{See also} - -\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp -\helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow},\rtfsp -\helpref{wxValidator}{wxvalidator} - - -\membersection{wxWindow::WarpPointer}\label{wxwindowwarppointer} - -\func{void}{WarpPointer}{\param{int}{ x}, \param{int}{ y}} - -Moves the pointer to the given position on the window. - -{\bf NB: } This function is not supported under Mac because Apple Human -Interface Guidelines forbid moving the mouse cursor programmatically. - -\wxheading{Parameters} - -\docparam{x}{The new x position for the cursor.} - -\docparam{y}{The new y position for the cursor.} - -\membersection{wxWindow::WindowToClientSize}\label{wxwindowwindowtoclientsize} - -\func{virtual wxSize}{WindowToClientSize}{\param{const wxSize\&}{ size}} - -Converts window size \arg{size} to corresponding client area size. In other -words, the returned value is what would -\helpref{GetClientSize}{wxwindowgetclientsize} return if this window had -given window size. Components with $wxDefaultCoord$ value are left unchanged. - -Note that the conversion is not always exact, it assumes that non-client area -doesn't change and so doesn't take into account things like menu bar -(un)wrapping or (dis)appearance of the scrollbars. - -\wxheading{See also} - -\helpref{wxWindow::ClientToWindowSize}{wxwindowclienttowindowsize} diff --git a/docs/latex/wx/windowdc.tex b/docs/latex/wx/windowdc.tex deleted file mode 100644 index 1250a1be0e..0000000000 --- a/docs/latex/wx/windowdc.tex +++ /dev/null @@ -1,42 +0,0 @@ -\section{\class{wxWindowDC}}\label{wxwindowdc} - -A wxWindowDC must be constructed if an application wishes to paint on the -whole area of a window (client and decorations). -This should normally be constructed as a temporary stack object; don't store -a wxWindowDC object. - -To draw on a window from inside {\bf OnPaint}, construct a \helpref{wxPaintDC}{wxpaintdc} object. - -To draw on the client area of a window from outside {\bf OnPaint}, construct a \helpref{wxClientDC}{wxclientdc} object. - -To draw on the whole window including decorations, construct a \helpref{wxWindowDC}{wxwindowdc} object -(Windows only). - -\wxheading{Derived from} - -\helpref{wxDC}{wxdc}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxDC}{wxdc}, \helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxPaintDC}{wxpaintdc},\rtfsp -\helpref{wxClientDC}{wxclientdc}, \helpref{wxScreenDC}{wxscreendc} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindowDC::wxWindowDC}\label{wxwindowdcwxwindowdc} - -\func{}{wxWindowDC}{\param{wxWindow*}{ window}} - -Constructor. Pass a pointer to the window on which you wish to paint. - - - diff --git a/docs/latex/wx/wizard.tex b/docs/latex/wx/wizard.tex deleted file mode 100644 index 412017a28d..0000000000 --- a/docs/latex/wx/wizard.tex +++ /dev/null @@ -1,374 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wizard.tex -%% Purpose: wxWizard class documentation -%% Author: Vadim Zeitlin -%% Modified by: Robert Vazan (sizers) -%% Created: 02.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWizard}}\label{wxwizard} - -wxWizard is the central class for implementing `wizard-like' dialogs. These -dialogs are mostly familiar to Windows users and are nothing other than a -sequence of `pages', each displayed inside a dialog which has the -buttons to navigate to the next (and previous) pages. - -The wizards are typically used to decompose a complex dialog into several -simple steps and are mainly useful to the novice users, hence it is important -to keep them as simple as possible. - -To show a wizard dialog, you must first create an instance of the wxWizard class -using either the non-default constructor or a default one followed by call to the -\helpref{Create}{wxwizardcreate} function. Then you should add all pages you -want the wizard to show and call \helpref{RunWizard}{wxwizardrunwizard}. -Finally, don't forget to call {\tt wizard->Destroy()}, otherwise your application will hang on exit due to an undestroyed window. - -You can supply a bitmap to display on the left of the wizard, either for all pages -or for individual pages. If you need to have the bitmap resize to the height of the wizard, -call \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement} and if necessary,\rtfsp -\helpref{wxWizard::SetBitmapBackgroundColour}{wxwizardsetbitmapbackgroundcolour} and \helpref{wxWizard::SetMinimumBitmapWidth}{wxwizardsetminimumbitmapwidth}. - -To make wizard pages scroll when the display is too small to fit the whole dialog, you can switch -layout adaptation on globally with \helpref{wxDialog::EnableLayoutAdaptation}{wxdialogenablelayoutadaptation} or -per dialog with \helpref{wxDialog::SetLayoutAdaptationMode}{wxdialogsetlayoutadaptationmode}. For more -about layout adaptation, see \helpref{Automatic scrolling dialogs}{autoscrollingdialogs}. - -\wxheading{Derived from} - -\helpref{wxDialog}{wxdialog}\\ -\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event table macros} - -To process input from a wizard dialog, use these event handler macros to -direct input to member functions that take a -\helpref{wxWizardEvent}{wxwizardevent} argument. For some events, -\helpref{Veto()}{wxnotifyeventveto} can be called to prevent the event from -happening. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=2pt -\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGED(id, func)}}{The page has just been -changed (this event cannot be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGING(id, func)}}{The page is being -changed (this event can be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel -the wizard (this event may also be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.} -\twocolitem{{\bf EVT\_WIZARD\_FINISHED(id, func)}}{The wizard finished button was pressed.} -\end{twocollist} - -\wxheading{Extended styles} - -Use the \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle} function to set the following -style. You will need to use two-step construction (use the default constructor, call {\bf SetExtraStyle}, then call {\bf Create}). - -\twocolwidtha{5cm}% -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxWIZARD\_EX\_HELPBUTTON}}{Shows a Help button using wxID\_HELP.} -\end{twocollist} - -See also \helpref{wxDialog}{wxdialog} for other extended styles. - -\wxheading{See also} - -\helpref{wxWizardEvent}{wxwizardevent}, \helpref{wxWizardPage}{wxwizardpage}, \helpref{wxWizard sample}{samplewizard} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWizard::wxWizard}\label{wxwizardctor} - -\func{}{wxWizard}{\void} - -Default constructor. Use this if you wish to derive from wxWizard and then call -\helpref{Create}{wxwizardcreate}, for example if you wish to set an extra style -with \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle} between the two -calls. - -\func{}{wxWizard}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE}} - -Constructor which really creates the wizard -- if you use this constructor, you -shouldn't call \helpref{Create}{wxwizardcreate}. - -Notice that unlike almost all other wxWidgets classes, there is no {\it size} -parameter in the wxWizard constructor because the wizard will have a predefined -default size by default. If you want to change this, you should use the -\helpref{GetPageAreaSizer}{wxwizardgetpageareasizer} function. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, may be NULL.} - -\docparam{id}{The id of the dialog, will usually be just $-1$.} - -\docparam{title}{The title of the dialog.} - -\docparam{bitmap}{The default bitmap used in the left side of the wizard. See -also \helpref{GetBitmap}{wxwizardpagegetbitmap}.} - -\docparam{pos}{The position of the dialog, it will be centered on the screen -by default.} - -\docparam{style}{Window style is passed to wxDialog.} - - -\membersection{wxWizard::Create}\label{wxwizardcreate} - -\func{bool}{Create}{\param{wxWindow* }{parent}, \param{int }{id = -1}, \param{const wxString\& }{title = wxEmptyString}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{long }{style = wxDEFAULT\_DIALOG\_STYLE}} - -Creates the wizard dialog. Must be called if the default constructor had been -used to create the object. - -Notice that unlike almost all other wxWidgets classes, there is no {\it size} -parameter in the wxWizard constructor because the wizard will have a predefined -default size by default. If you want to change this, you should use the -\helpref{GetPageAreaSizer}{wxwizardgetpageareasizer} function. - -\wxheading{Parameters} - -\docparam{parent}{The parent window, may be NULL.} - -\docparam{id}{The id of the dialog, will usually be just $-1$.} - -\docparam{title}{The title of the dialog.} - -\docparam{bitmap}{The default bitmap used in the left side of the wizard. See -also \helpref{GetBitmap}{wxwizardpagegetbitmap}.} - -\docparam{pos}{The position of the dialog, it will be centered on the screen -by default.} - -\docparam{style}{Window style is passed to wxDialog.} - - -\membersection{wxWizard::FitToPage}\label{wxwizardfittopage} - -\func{void}{FitToPage}{\param{const wxWizardPage* }{firstPage}} - -This method is obsolete, use -\helpref{GetPageAreaSizer}{wxwizardgetpageareasizer} instead. - -Sets the page size to be big enough for all the pages accessible via the -given {\it firstPage}, i.e. this page, its next page and so on. - -This method may be called more than once and it will only change the page size -if the size required by the new page is bigger than the previously set one. -This is useful if the decision about which pages to show is taken during -run-time, as in this case, the wizard won't be able to get to all pages starting -from a single one and you should call {\it Fit} separately for the others. - -\membersection{wxWizard::GetBitmap}\label{wxwizardgetbitmap} - -\constfunc{const wxBitmap\&}{GetBitmap}{\void} - -Returns the bitmap used for the wizard. - - -\membersection{wxWizard::GetBitmapBackgroundColour}\label{wxwizardgetbitmapbackgroundcolour} - -\constfunc{const wxColour\&}{GetBitmapBackgroundColour}{\void} - -Returns the colour that should be used to fill the area not taken up by the wizard or page bitmap, -if a non-zero bitmap placement flag has been set. - -See also \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement}. - - - -\membersection{wxWizard::GetBitmapPlacement}\label{wxwizardgetbitmapplacement} - -\func{int}{GetBitmapPlacement}{\void} - -Returns the flags indicating how the wizard or page bitmap should be expanded and positioned to fit the -page height. By default, placement is 0 (no expansion is done). - -See also \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement} for the possible values. - - -\membersection{wxWizard::GetCurrentPage}\label{wxwizardgetcurrentpage} - -\constfunc{wxWizardPage*}{GetCurrentPage}{\void} - -Get the current page while the wizard is running. {\tt NULL} is returned if -\helpref{RunWizard()}{wxwizardrunwizard} is not being executed now. - - -\membersection{wxWizard::GetMinimumBitmapWidth}\label{wxwizardgetminimumbitmapwidth} - -\constfunc{int}{GetMinimumBitmapWidth}{\void} - -Returns the minimum width for the bitmap that will be constructed to contain the actual wizard or page bitmap -if a non-zero bitmap placement flag has been set. - -See also \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement}. - - -\membersection{wxWizard::GetPageAreaSizer}\label{wxwizardgetpageareasizer} - -\constfunc{virtual wxSizer*}{GetPageAreaSizer}{\void} - -Returns pointer to page area sizer. The wizard is laid out using sizers and -the page area sizer is the place-holder for the pages. All pages are resized before -being shown to match the wizard page area. - -Page area sizer has a minimal size that is the maximum of several values. First, -all pages (or other objects) added to the sizer. Second, all pages reachable -by repeatedly applying -\helpref{wxWizardPage::GetNext}{wxwizardpagegetnext} to -any page inserted into the sizer. Third, -the minimal size specified using \helpref{SetPageSize}{wxwizardsetpagesize} and -\helpref{FitToPage}{wxwizardfittopage}. Fourth, the total wizard height may -be increased to accommodate the bitmap height. Fifth and finally, wizards are -never smaller than some built-in minimal size to avoid wizards that are too small. - -The caller can use \helpref{wxSizer::SetMinSize}{wxsizersetminsize} to enlarge it -beyond the minimal size. If {\tt wxRESIZE\_BORDER} was passed to constructor, user -can resize wizard and consequently the page area (but not make it smaller than the -minimal size). - -It is recommended to add the first page to the page area sizer. For simple wizards, -this will enlarge the wizard to fit the biggest page. For non-linear wizards, -the first page of every separate chain should be added. Caller-specified size -can be accomplished using \helpref{wxSizer::SetMinSize}{wxsizersetminsize}. - -Adding pages to the page area sizer affects the default border width around page -area that can be altered with \helpref{SetBorder}{wxwizardsetborder}. - - -\membersection{wxWizard::GetPageSize}\label{wxwizardgetpagesize} - -\constfunc{wxSize}{GetPageSize}{\void} - -Returns the size available for the pages. - - -\membersection{wxWizard::HasNextPage}\label{wxwizardhasnextpage} - -\func{virtual bool}{HasNextPage}{\param{wxWizardPage *}{page}} - -Return {\tt true} if this page is not the last one in the wizard. The base -class version implements this by calling -\helpref{page->GetNext}{wxwizardpagegetnext} but this could be undesirable if, -for example, the pages are created on demand only. - -\wxheading{See also} - -\helpref{HasPrevPage}{wxwizardhasprevpage} - - -\membersection{wxWizard::HasPrevPage}\label{wxwizardhasprevpage} - -\func{virtual bool}{HasPrevPage}{\param{wxWizardPage *}{page}} - -Returns {\tt true} if this page is not the last one in the wizard. The base -class version implements this by calling -\helpref{page->GetPrev}{wxwizardpagegetprev} but this could be undesirable if, -for example, the pages are created on demand only. - -\wxheading{See also} - -\helpref{HasNextPage}{wxwizardhasnextpage} - - -\membersection{wxWizard::RunWizard}\label{wxwizardrunwizard} - -\func{bool}{RunWizard}{\param{wxWizardPage* }{firstPage}} - -Executes the wizard starting from the given page, returning {\tt true} if it was -successfully finished or {\tt false} if user cancelled it. The {\it firstPage} -can not be {\tt NULL}. - -\membersection{wxWizard::SetBitmap}\label{wxwizardsetbitmap} - -\func{void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}} - -Sets the bitmap used for the wizard. - - -\membersection{wxWizard::SetBitmapBackgroundColour}\label{wxwizardsetbitmapbackgroundcolour} - -\func{void}{SetBitmapBackgroundColour}{\param{const wxColour\&}{ colour}} - -Sets the colour that should be used to fill the area not taken up by the wizard or page bitmap, -if a non-zero bitmap placement flag has been set. - -See also \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement}. - - -\membersection{wxWizard::SetBitmapPlacement}\label{wxwizardsetbitmapplacement} - -\func{void}{SetBitmapPlacement}{\param{int}{ placement}} - -Sets the flags indicating how the wizard or page bitmap should be expanded and positioned to fit the -page height. By default, placement is 0 (no expansion is done). {\it placement} is a bitlist with the -following possible values: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\windowstyle{wxWIZARD\_VALIGN\_TOP}}{Aligns the bitmap at the top.} -\twocolitem{\windowstyle{wxWIZARD\_VALIGN\_CENTRE}}{Centres the bitmap vertically.} -\twocolitem{\windowstyle{wxWIZARD\_VALIGN\_BOTTOM}}{Aligns the bitmap at the bottom.} -\twocolitem{\windowstyle{wxWIZARD\_HALIGN\_LEFT}}{Left-aligns the bitmap.} -\twocolitem{\windowstyle{wxWIZARD\_HALIGN\_CENTRE}}{Centres the bitmap horizontally.} -\twocolitem{\windowstyle{wxWIZARD\_HALIGN\_RIGHT}}{Right-aligns the bitmap.} -\twocolitem{\windowstyle{wxWIZARD\_TILE}}{} -\end{twocollist} - -See also \helpref{wxWizard::SetMinimumBitmapWidth}{wxwizardsetminimumbitmapwidth}. - - -\membersection{wxWizard::SetMinimumBitmapWidth}\label{wxwizardsetminimumbitmapwidth} - -\func{void}{SetMinimumBitmapWidth}{\param{int}{ width}} - -Sets the minimum width for the bitmap that will be constructed to contain the actual wizard or page bitmap -if a non-zero bitmap placement flag has been set. If this is not set when using bitmap placement, the initial -layout may be incorrect. - -See also \helpref{wxWizard::SetBitmapPlacement}{wxwizardsetbitmapplacement}. - - - -\membersection{wxWizard::SetPageSize}\label{wxwizardsetpagesize} - -\func{void}{SetPageSize}{\param{const wxSize\& }{sizePage}} - -This method is obsolete, use -\helpref{GetPageAreaSizer}{wxwizardgetpageareasizer} instead. - -Sets the minimal size to be made available for the wizard pages. The wizard -will take into account the size of the bitmap (if any) itself. Also, the -wizard will never be smaller than the default size. - -The recommended way to use this function is to lay out all wizard pages using -the sizers (even though the wizard is not resizeable) and then use -\helpref{wxSizer::CalcMin}{wxsizercalcmin} in a loop to calculate the maximum -of minimal sizes of the pages and pass it to SetPageSize(). - - -\membersection{wxWizard::SetBorder}\label{wxwizardsetborder} - -\func{void}{SetBorder}{\param{int }{border}} - -Sets width of border around page area. Default is zero. For backward -compatibility, if there are no pages in -\helpref{GetPageAreaSizer}{wxwizardgetpageareasizer}, the default is $5$ pixels. - -If there is a five point border around all controls in a page and the border around -page area is left as zero, a five point white space along all dialog borders -will be added to the control border in order to space page controls ten points from the dialog -border and non-page controls. - diff --git a/docs/latex/wx/wizevt.tex b/docs/latex/wx/wizevt.tex deleted file mode 100644 index ebbbb0a734..0000000000 --- a/docs/latex/wx/wizevt.tex +++ /dev/null @@ -1,79 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wizevt.tex -%% Purpose: wxWizardEvent class documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWizardEvent}}\label{wxwizardevent} - -wxWizardEvent class represents an event generated by the -\helpref{wizard}{wxwizard}: this event is first sent to the page itself and, -if not processed there, goes up the window hierarchy as usual. - -\wxheading{Derived from} - -\helpref{wxNotifyEvent}{wxnotifyevent}\\ -\helpref{wxCommandEvent}{wxcommandevent}\\ -\helpref{wxEvent}{wxevent}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{Event table macros} - -To process input from a wizard dialog, use these event handler macros to -direct input to member functions that take a wxWizardEvent argument. - -\twocolwidtha{7cm} -\begin{twocollist}\itemsep=2pt -\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGED(id, func)}}{The page has been just -changed (this event can not be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_PAGE\_CHANGING(id, func)}}{The page is being -changed (this event can be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_CANCEL(id, func)}}{The user attempted to cancel -the wizard (this event may also be vetoed).} -\twocolitem{{\bf EVT\_WIZARD\_HELP(id, func)}}{The wizard help button was pressed.} -\twocolitem{{\bf EVT\_WIZARD\_FINISHED(id, func)}}{The wizard finished button was pressed.} -\end{twocollist} - -\wxheading{See also} - -\helpref{wxWizard}{wxwizard}, \helpref{wxWizard sample}{samplewizard} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWizardEvent::wxWizardEvent}\label{wxwizardeventwxwizardevent} - -\func{}{wxWizardEvent}{\param{wxEventType }{type = wxEVT\_NULL}, \param{int }{id = -1}, \param{bool }{direction = true}} - -Constructor. It is not normally used by the user code as the objects of this -type are constructed by wxWizard. - -\membersection{wxWizardEvent::GetDirection}\label{wxwizardeventgetdirection} - -\constfunc{bool}{GetDirection}{\void} - -Return the direction in which the page is changing: for {\tt -EVT\_WIZARD\_PAGE\_CHANGING}, return {\tt true} if we're going forward or -false otherwise and for {\tt EVT\_WIZARD\_PAGE\_CHANGED} return {\tt true} if -we came from the previous page and {\tt false} if we returned from the next -one. - -\membersection{wxWizardEvent::GetPage}\label{wxwizardeventgetpage} - -\constfunc{wxWizardPage*}{GetPage}{\void} - -Returns the \helpref{wxWizardPage}{wxwizardpage} which was active when this -event was generated. - diff --git a/docs/latex/wx/wizpage.tex b/docs/latex/wx/wizpage.tex deleted file mode 100644 index da03d7e81c..0000000000 --- a/docs/latex/wx/wizpage.tex +++ /dev/null @@ -1,181 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wizpage.tex -%% Purpose: wxWizardPage and wxWizardPageSimple classes documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 02.04.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWizardPage}}\label{wxwizardpage} - -wxWizardPage is one of the screens in \helpref{wxWizard}{wxwizard}: it must -know what are the following and preceding pages (which may be {\tt NULL} for the -first/last page). Except for this extra knowledge, wxWizardPage is just a -panel, so the controls may be placed directly on it in the usual way. - -This class allows the programmer to decide the order of pages in the wizard -dynamically (during run-time) and so provides maximal flexibility. Usually, -however, the order of pages is known in advance in which case -\helpref{wxWizardPageSimple}{wxwizardpagesimple} class is enough and it is simpler -to use. - -\wxheading{Virtual functions to override} - -To use this class, you must override \helpref{GetPrev}{wxwizardpagegetprev} -and \helpref{GetNext}{wxwizardpagegetnext} pure virtual functions (or you -may use \helpref{wxWizardPageSimple}{wxwizardpagesimple} instead). - -\helpref{GetBitmap}{wxwizardpagegetbitmap} can also be overridden, but this -should be very rarely needed. - -\wxheading{Derived from} - -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{See also} - -\helpref{wxWizard}{wxwizard}, \helpref{wxWizard sample}{samplewizard} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWizardPage::wxWizardPage}\label{wxwizardpagewxwizardpage} - -\func{}{wxWizardPage}{\param{wxWizard* }{parent}, \param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -Constructor accepts an optional bitmap which will be used for this page -instead of the default one for this wizard (note that all bitmaps used should -be of the same size). Notice that no other parameters are needed because the -wizard will resize and reposition the page anyhow. - -\wxheading{Parameters} - -\docparam{parent}{The parent wizard} - -\docparam{bitmap}{The page-specific bitmap if different from the global one} - - -\membersection{wxWizardPage::GetPrev}\label{wxwizardpagegetprev} - -\constfunc{wxWizardPage*}{GetPrev}{\void} - -Get the page which should be shown when the user chooses the {\tt "Back"} -button: if {\tt NULL} is returned, this button will be disabled. The first -page of the wizard will usually return {\tt NULL} from here, but the others -will not. - -\wxheading{See also} - -\helpref{GetNext}{wxwizardpagegetnext} - -\membersection{wxWizardPage::GetNext}\label{wxwizardpagegetnext} - -\constfunc{wxWizardPage*}{GetNext}{\void} - -Get the page which should be shown when the user chooses the {\tt "Next"} -button: if {\tt NULL} is returned, this button will be disabled. The last -page of the wizard will usually return {\tt NULL} from here, but the others -will not. - -\wxheading{See also} - -\helpref{GetPrev}{wxwizardpagegetprev} - -\membersection{wxWizardPage::GetBitmap}\label{wxwizardpagegetbitmap} - -\constfunc{wxBitmap}{GetBitmap}{\void} - -This method is called by wxWizard to get the bitmap to display alongside the -page. By default, {\tt m\_bitmap} member variable which was set in the -\helpref{constructor}{wxwizardpagewxwizardpage}. - -If the bitmap was not explicitly set (i.e. if {\tt wxNullBitmap} is returned), -the default bitmap for the wizard should be used. - -The only cases when you would want to override this function is if the page -bitmap depends dynamically on the user choices, i.e. almost never. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxWizardPageSimple %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWizardPageSimple}}\label{wxwizardpagesimple} - -wxWizardPageSimple is the simplest possible -\helpref{wxWizardPage}{wxwizardpage} implementation: it just returns the -pointers given to its constructor from GetNext() and GetPrev() functions. - -This makes it very easy to use the objects of this class in the wizards where -the pages order is known statically - on the other hand, if this is not the -case you must derive your own class from \helpref{wxWizardPage}{wxwizardpage} -instead. - -\wxheading{Derived from} - -\helpref{wxWizardPage}{wxwizardpage}\\ -\helpref{wxPanel}{wxpanel}\\ -\helpref{wxWindow}{wxwindow}\\ -\helpref{wxEvtHandler}{wxevthandler}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxAdv}{librarieslist} - -\wxheading{See also} - -\helpref{wxWizard}{wxwizard}, \helpref{wxWizard sample}{samplewizard} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWizardPageSimple::wxWizardPageSimple}\label{wxwizardpagesimplewxwizardpagesimple} - -\func{}{wxWizardPageSimple}{\param{wxWizard* }{parent = NULL}, \param{wxWizardPage* }{prev = NULL}, \param{wxWizardPage* }{next = NULL}, -\param{const wxBitmap\& }{bitmap = wxNullBitmap}} - -Constructor takes the previous and next pages. They may be modified later by -\helpref{SetPrev()}{wxwizardpagesimplesetprev} or -\helpref{SetNext()}{wxwizardpagesimplesetnext}. - -\membersection{wxWizardPageSimple::SetPrev}\label{wxwizardpagesimplesetprev} - -\func{void}{SetPrev}{\param{wxWizardPage* }{prev}} - -Sets the previous page. - -\membersection{wxWizardPageSimple::SetNext}\label{wxwizardpagesimplesetnext} - -\func{void}{SetNext}{\param{wxWizardPage* }{next}} - -Sets the next page. - -\membersection{wxWizardPageSimple::Chain}\label{wxwizardpagesimplechain} - -\func{static void}{Chain}{\param{wxWizardPageSimple* }{first}, \param{wxWizardPageSimple* }{second}} - -A convenience function to make the pages follow each other. - -Example: - -\begin{verbatim} - wxRadioboxPage *page3 = new wxRadioboxPage(wizard); - wxValidationPage *page4 = new wxValidationPage(wizard); - - wxWizardPageSimple::Chain(page3, page4); -\end{verbatim} - diff --git a/docs/latex/wx/wnddisbl.tex b/docs/latex/wx/wnddisbl.tex deleted file mode 100644 index c1df08fc85..0000000000 --- a/docs/latex/wx/wnddisbl.tex +++ /dev/null @@ -1,49 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wnddsbl.tex -%% Purpose: wxWindowDisabler class documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 03.03.00 -%% RCS-ID: $Id$ -%% Copyright: (c) Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWindowDisabler}}\label{wxwindowdisabler} - -This class disables all windows of the application (may be with the exception -of one of them) in its constructor and enables them back in its destructor. -This comes in handy when you want to indicate to the user that the application -is currently busy and cannot respond to user input. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBusyCursor}{wxbusycursor} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWindowDisabler::wxWindowDisabler}\label{wxwindowdisablerctor} - -\func{}{wxWindowDisabler}{\param{wxWindow *}{winToSkip = NULL}} - -Disables all top level windows of the applications with the exception of -{\it winToSkip} if it is not {\tt NULL}. - -\membersection{wxWindowDisabler::\destruct{wxWindowDisabler}}\label{wxwindowdisablerdtor} - -\func{}{\destruct{wxWindowDisabler}}{\void} - -Reenables back the windows disabled by the constructor. - diff --git a/docs/latex/wx/wrapsizer.tex b/docs/latex/wx/wrapsizer.tex deleted file mode 100644 index 580fd6b3db..0000000000 --- a/docs/latex/wx/wrapsizer.tex +++ /dev/null @@ -1,55 +0,0 @@ -\section{\class{wxWrapSizer}}\label{wxwrapsizer} - -A wrap sizer lays out its items in a single line, like a box sizer -- as long -as there is space available in that direction. Once all available space in -the primary direction has been used, a new line is added and items are added -there. - -So a wrap sizer has a primary orientation for adding items, and adds lines -as needed in the secondary direction. - -\wxheading{Derived from} - -\helpref{wxBoxSizer}{wxboxsizer}\\ -\helpref{wxSizer}{wxsizer}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxCore}{librarieslist} - -\wxheading{See also} - -\helpref{wxBoxSizer}{wxboxsizer}, \helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxWrapSizer::wxWrapSizer}\label{wxwrapsizerwxwrapsizer} - -\func{}{wxWrapSizer}{\param{int }{orient}, \param{int }{flags}} - -Constructor for a wxWrapSizer. \arg{orient} determines the primary direction of -the sizer (the most common case being \texttt{wxHORIZONTAL}). The flags -parameter may have the value \texttt{wxEXTEND\_LAST\_ON\_EACH\_LINE} which will -cause the last item on each line to use any remaining space on that line. - - -\membersection{wxWrapSizer::InformFirstDirection}\label{wxwrapsizerinformfirstdirection} - -\func{bool}{InformFirstDirection}{\param{int }{direction}, \param{int }{size}, -\param{int }{availableOtherDir }} - -Not used by an application. This is the mechanism by which sizers can inform -sub-items of the first determined size component. The sub-item can then better -determine its size requirements. - -Returns true if the information was used (and the sub-item min size was updated). - - - diff --git a/docs/latex/wx/wupdlock.tex b/docs/latex/wx/wupdlock.tex deleted file mode 100644 index 1ca160ad2a..0000000000 --- a/docs/latex/wx/wupdlock.tex +++ /dev/null @@ -1,62 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wupdlock.tex -%% Purpose: wxWindowUpdateLocker documentation -%% Author: Vadim Zeitlin -%% Modified by: -%% Created: 2006-03-06 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxWindowUpdateLocker}}\label{wxwindowupdatelocker} - -This tiny class prevents redrawing of a \helpref{wxWindow}{wxwindow} during its -lifetime by using \helpref{wxWindow::Freeze}{wxwindowfreeze} and -\helpref{Thaw}{wxwindowthaw} methods. It is typically used for creating -automatic objects to temporarily suppress window updates before a batch of -operations is performed: -{\small -\begin{verbatim} - void MyFrame::Foo() - { - m_text = new wxTextCtrl(this, ...); - - wxWindowUpdateLocker noUpdates(m_text); - m_text->AppendText(); - ... many other operations with m_text... - m_text->WriteText(); - } -\end{verbatim} -} - -Using this class is easier and safer than calling -\helpref{Freeze}{wxwindowfreeze} and \helpref{Thaw}{wxwindowthaw} because you -don't risk to forget calling the latter. - -\wxheading{Derived from} - -None. - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxWindowUpdateLocker::wxWindowUpdateLocker}\label{wxwindowupdatelockerctor} - -\func{}{wxWindowUpdateLocker}{\param{wxWindow *}{win}} - -Creates an object preventing the updates of the specified \arg{win}. The -parameter must be non-\NULL and the window must exist for longer than -wxWindowUpdateLocker object itself. - - -\membersection{wxWindowUpdateLocker::\destruct{wxWindowUpdateLocker}}\label{wxwindowupdatelockerdtor} - -\func{}{\destruct{wxWindowUpdateLocker}}{\void} - -Destructor reenables updates for the window this object is associated with. - diff --git a/docs/latex/wx/wx.css b/docs/latex/wx/wx.css deleted file mode 100644 index eb232b913f..0000000000 --- a/docs/latex/wx/wx.css +++ /dev/null @@ -1,117 +0,0 @@ -body -{ - padding: 0em; - background: #ffffff; - color: #000000; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 100%; -} - -h1, h2, h3 -{ - font-family: Verdana, Arial, Helvetica, sans-serif; -} - -h1 -{ - font-size: 160%; - margin: 1.2em 0; -} - -h2 -{ - font-size: 140%; - margin: 0.8em 0; -} - -h3 -{ - font-size: 120%; - margin: 0.4em 0; -} - -hr -{ - margin: 0.8em 0; -} - -ul p, ol p, dl p -{ - margin-left: 0em; -} - -p -{ - margin-top: .6em; - margin-bottom: .6em; -} - -dt -{ - margin: 0.5em 0em; -} - -ul, ol -{ - margin-top: .6em; - margin-bottom: 0em; -} - -ol -{ - margin-left: 3.6em; -} - -ul -{ - list-style-type: disc; - margin-left: 1.9em; -} - -li -{ - margin-bottom: .6em; -} - -tt -{ - font-family: Andale Mono, Courier New, Courier, mono; -} - -pre -{ - margin: 0.8em 2em; - padding: 0.4em; - font-family: Andale Mono, Courier New, Courier, mono; - color: #550000; - background: #eeeeee; -} - -table -{ - width: 90%; - background: #999999; - margin-top: 0em; - margin-bottom: .3em; - background: #ffffff; -} - -td -{ - margin: .25em; - padding: 2px 4px; - background: #eeeeee; - vertical-align: top; - font-size: 100%; -} - -tr -{ - margin: .25em; - vertical-align: top; -} - -a:link { color: #0066ff; } -a:visited { color: #996600; } -a:hover { color: #cc9900; } - diff --git a/docs/latex/wx/wxManualTemplate.dot b/docs/latex/wx/wxManualTemplate.dot deleted file mode 100644 index d1ba9933e2c5e21da9ab27f74a23e2a68ea53b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 zcmeHPZERat8Gi4zo!D+tr%sx7UDw^Vnc4agl71$r?VL7g(n8wOX3AiJ&551HU1EEQ zyQYGnbjwD64AhMw_M@ru6CZyHDgp#ZZaZmAVlmHiu1{jS zc9({M+U}n8x$pUU-*e7;KJIzXJ?_O{FS>O0yUYG4MQ(?p`ypFq#H1Lma{8&CAJ}-JQ_&PgL1U(Dq7C8qjl>Q_AN3Qi=>s7G@51+eU z)>etUu-#Ay=TiF%a?J*^*}zPooL^`7l=65zc9=BZ&)8DoIy<|1F3<6nqAkeLgLG70 z9?MakZ=GM{2Z$ff@soZ8;a79vV)}*L6e*@xd?F_Ju7T3cg*G7HpHTi=m{xD1a&IEM z1mVRLP~>#`b-6{!qT|a^%B9okTArr5opvs}{eM6}>qYaGqs4NH!_-eHr~5%u%~y`< z^0hpMUxWU1{6{giSD>KZpuDA^#d1p3VJ>mHJgukU+&H>$&*g1TcrF;a{+jCg{0;R$ zm2MH&GZY`Q@GoMGrH>ECtaNN7H5^I9leGF{RwR`gj>n=5rH5kHvGLw`BAPrlW{pG= zMJF_2*7z{c0qh1kfsX;*z&>C7%&JN28Mt*@D%Vl;A!9)U=ny1cnZ_@CtAS;JZcM&hX!#GyEg@J;;pb4%PSj(5$*$dzZ@oy&@k6M!LkE0A#W22xaG| zJ>)g2^1~9?;yqCiv4Zb;_P_3X-S4`Oi~Ey(cNX|Mz&?C8zdirT4-}+aEt~SsvMGNl zn^GXUAaHpeJozlQt=}c$YB2HY!?Ph;VPIp9-m!glY-lDn=i}Brp!=WwIX!*bHs7iE zJTzb$hWUW_n#A8^1e;{}0YmORfAPcC`AgeZp7&O+0#=_o<7oiyJ3kNk4vV7!M+3LE z27+>z`0=uM1g`>Gt8}oA!&kB~f^~Lxz@A3rUo=zFn%rAw$V(@q>N37twIie$VD09kSm}$^*&9uL3fm}t)zs_h^<2o zf5=Su2_h=+#OkiM@M$A8l2V zDj}(&P!cu~+hDhrZvo}iA%{OyS;$%GVjZA;pW-gv3$2RV2X1d6w|90_1W|*w@YU>D zrNeq@$M_n=2s?_Ana21!0RJd(SUpoRgt*-py$Ph|yA2q2A>WzC5nasK)e z`8lqF_zO&)cNga0qGqirTfkK*d(g%xv@xD*M-VLxO#WOJO}1oJoyG$u$59aZ7pQWs z=d;^Vr`l4Auc{26-KNFhd)O?+S6znBZd*P0EZ6mXJ8{x%$OeO>rMjSfg{ulvmtfNi z^>fCI3$&r;>@txx7;}a^ZLEO|AN)z^=r}agqcp`aVd6x{o?i&aIRGa!JQP&t*rerL zB@z|__X8b3ClCRm0Qc1A0PM+U{0J&P_t{)S$-5f351@?g0NYAAeZZ%IC{VldrRBe;LlQ!f` zqhk-EO9w!o1RYhKJO&XAad zA}BEiIekiIH^K?jg0Dw=XyxZ>L}^Ln{~(lT$i;n+JPw1x%Z1W~;o-qcs}lXq-ZlVE z!<@5&44}&clNben4-4@SG?`Kw9)&)0CSfpUI!f%-wCpxkt)K&wGN3(EcRNl@Mx;F`}eUk0rOJp;;e zFQYJSFu890ci%B>IS`8%M0|`gS&zL(hvSiib!a3qnihN;WxUFRc>39fW8>ZGOQ_Y8 z`*12FsnYzBG~-$CO=9!2E#2{f(d1ZiFm3fFN269tW0R!9h?nP|qbVR^KKdRQd>mht zmH)-0#jnfMH|s)5os#nXMd~<51C9n94LBNbG~j5!(SV}?M+1%q91S=ca5PY?fpYdg z?NsxPU%hd<@$Q;0eFgUax_7?QjyO+I9BuU$fc87>(IJ2~dkWwg!1Dl)SziJc0jGf_ zz!b0m_%=Y>{`&y!;U59@z)u0%;J*YYdkKW++x*PimcX6lk$4g&It=JzkT;t`P#p2%!+(_m!F%6z`={npfZ$TOlz2H2!;mA_$E6&H& zP4_`nC&r|4w~W7EDDUn^`P4Y)?p)iiik>OIxaBujpB9v_+dkLwd23zk-@s`UZ-u7t zD~x_Q!jzkGL6pxmjBD0h%Vz<)B)e2z9#7*!Ip@MKljrRCtBv<+zaICR&RO^zGrm{( zHxfhLIcsjd20vJS1HJFU3!bemUb{I@i|(hjCkKv>#1d(>C+I%JJ8OtilbQZTo!;0Y RZ?(Sq#EnLtlXfd;;6JK#wEX}8 diff --git a/docs/latex/wx/wxPython.tex b/docs/latex/wx/wxPython.tex deleted file mode 100644 index f640eaddfa..0000000000 --- a/docs/latex/wx/wxPython.tex +++ /dev/null @@ -1,480 +0,0 @@ -\section{wxPython overview}\label{wxpython} -%\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -%\setfooter{\thepage}{}{}{}{}{\thepage}% - -This topic was written by Robin Dunn, author of the wxPython wrapper. - -%---------------------------------------------------------------------- -\subsection{What is wxPython?}\label{wxpwhat} - -wxPython is a blending of the wxWidgets GUI classes and the -\urlref{Python}{http://www.python.org/} programming language. - -\wxheading{Python} - -So what is Python? Go to -\urlref{http://www.python.org}{http://www.python.org} to learn more, -but in a nutshell Python is an interpreted, -interactive, object-oriented programming language. It is often -compared to Tcl, Perl, Scheme or Java. - -Python combines remarkable power with very clear syntax. It has -modules, classes, exceptions, very high level dynamic data types, and -dynamic typing. There are interfaces to many system calls and -libraries, and new built-in modules are easily written in C or -C++. Python is also usable as an extension language for applications -that need a programmable interface. - -Python is copyrighted but freely usable and distributable, even for -commercial use. - -\wxheading{wxPython} - -wxPython is a Python package that can be imported at runtime that -includes a collection of Python modules and an extension module -(native code). It provides a series of Python classes that mirror (or -shadow) many of the wxWidgets GUI classes. This extension module -attempts to mirror the class hierarchy of wxWidgets as closely as -possible. This means that there is a wxFrame class in wxPython that -looks, smells, tastes and acts almost the same as the wxFrame class in -the C++ version. - -wxPython is very versatile. It can be used to create standalone GUI -applications, or in situations where Python is embedded in a C++ -application as an internal scripting or macro language. - -Currently wxPython is available for Win32 platforms and the GTK -toolkit (wxGTK) on most Unix/X-windows platforms. See the wxPython -website \urlref{http://wxPython.org/}{http://wxPython.org/} for -details about getting wxPython working for you. - -%---------------------------------------------------------------------- -\subsection{Why use wxPython?}\label{wxpwhy} - -So why would you want to use wxPython over just C++ and wxWidgets? -Personally I prefer using Python for everything. I only use C++ when I -absolutely have to eke more performance out of an algorithm, and even -then I usually code it as an extension module and leave the majority -of the program in Python. - -Another good thing to use wxPython for is quick prototyping of your -wxWidgets apps. With C++ you have to continuously go though the -edit-compile-link-run cycle, which can be quite time consuming. With -Python it is only an edit-run cycle. You can easily build an -application in a few hours with Python that would normally take a few -days or longer with C++. Converting a wxPython app to a C++/wxWidgets app -should be a straight forward task. - -%---------------------------------------------------------------------- -\subsection{Other Python GUIs}\label{wxpother} - -There are other GUI solutions out there for Python. - -\wxheading{Tkinter} - -Tkinter is the de facto standard GUI for Python. It is available -on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk? -Well because Tkinter is just a wrapper around Tcl's GUI toolkit, Tk. -This has its upsides and its downsides... - -The upside is that Tk is a pretty versatile toolkit. It can be made -to do a lot of things in a lot of different environments. It is fairly -easy to create new widgets and use them interchangeably in your -programs. - -The downside is Tcl. When using Tkinter you actually have two -separate language interpreters running, the Python interpreter and the -Tcl interpreter for the GUI. Since the guts of Tcl is mostly about -string processing, it is fairly slow as well. (Not too bad on a fast -Pentium II, but you really notice the difference on slower machines.) - -It wasn't until the latest version of Tcl/Tk that native Look and -Feel was possible on non-Motif platforms. This is because Tk -usually implements its own widgets (controls) even when there are -native controls available. - -Tkinter is a pretty low-level toolkit. You have to do a lot of work -(verbose program code) to do things that would be much simpler with a higher -level of abstraction. - -\wxheading{PythonWin} - -PythonWin is an add-on package for Python for the Win32 platform. It -includes wrappers for MFC as well as much of the Win32 API. Because -of its foundation, it is very familiar for programmers who have -experience with MFC and the Win32 API. It is obviously not compatible -with other platforms and toolkits. PythonWin is organized as separate -packages and modules so you can use the pieces you need without having -to use the GUI portions. - -\wxheading{Others} - -There are quite a few other GUI modules available for Python, some in -active use, some that haven't been updated for ages. Most are simple -wrappers around some C or C++ toolkit or another, and most are not -cross-platform compatible. See \urlref{this link}{http://www.python.org/download/Contributed.html\#Graphics} -for a listing of a few of them. - -%---------------------------------------------------------------------- -\subsection{Using wxPython}\label{wxpusing} - -\wxheading{First things first...} - -I'm not going to try and teach the Python language here. You can do -that at the \urlref{Python Tutorial}{http://www.python.org/doc/tut/tut.html}. -I'm also going to assume that you know a bit about wxWidgets already, -enough to notice the similarities in the classes used. - -Take a look at the following wxPython program. You can find a similar -program in the {\tt wxPython/demo} directory, named {\tt DialogUnits.py}. If your -Python and wxPython are properly installed, you should be able to run -it by issuing this command: - -\begin{indented}{1cm} - {\bf\tt python DialogUnits.py} -\end{indented} - -\hrule - -\begin{verbatim} -001: ## import all of the wxPython GUI package -002: from wxPython.wx import * -003: -004: ## Create a new frame class, derived from the wxPython Frame. -005: class MyFrame(wxFrame): -006: -007: def __init__(self, parent, id, title): -008: # First, call the base class' __init__ method to create the frame -009: wxFrame.__init__(self, parent, id, title, -010: wxPoint(100, 100), wxSize(160, 100)) -011: -012: # Associate some events with methods of this class -013: EVT_SIZE(self, self.OnSize) -014: EVT_MOVE(self, self.OnMove) -015: -016: # Add a panel and some controls to display the size and position -017: panel = wxPanel(self, -1) -018: wxStaticText(panel, -1, "Size:", -019: wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize) -020: wxStaticText(panel, -1, "Pos:", -021: wxDLG_PNT(panel, wxPoint(4, 14)), wxDefaultSize) -022: self.sizeCtrl = wxTextCtrl(panel, -1, "", -023: wxDLG_PNT(panel, wxPoint(24, 4)), -024: wxDLG_SZE(panel, wxSize(36, -1)), -025: wxTE_READONLY) -026: self.posCtrl = wxTextCtrl(panel, -1, "", -027: wxDLG_PNT(panel, wxPoint(24, 14)), -028: wxDLG_SZE(panel, wxSize(36, -1)), -029: wxTE_READONLY) -030: -031: -032: # This method is called automatically when the CLOSE event is -033: # sent to this window -034: def OnCloseWindow(self, event): -035: # tell the window to kill itself -036: self.Destroy() -037: -038: # This method is called by the system when the window is resized, -039: # because of the association above. -040: def OnSize(self, event): -041: size = event.GetSize() -042: self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) -043: -044: # tell the event system to continue looking for an event handler, -045: # so the default handler will get called. -046: event.Skip() -047: -048: # This method is called by the system when the window is moved, -049: # because of the association above. -050: def OnMove(self, event): -051: pos = event.GetPosition() -052: self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) -053: -054: -055: # Every wxWidgets application must have a class derived from wxApp -056: class MyApp(wxApp): -057: -058: # wxWidgets calls this method to initialize the application -059: def OnInit(self): -060: -061: # Create an instance of our customized Frame class -062: frame = MyFrame(NULL, -1, "This is a test") -063: frame.Show(true) -064: -065: # Tell wxWidgets that this is our main window -066: self.SetTopWindow(frame) -067: -068: # Return a success flag -069: return true -070: -071: -072: app = MyApp(0) # Create an instance of the application class -073: app.MainLoop() # Tell it to start processing events -074: -\end{verbatim} -\hrule - -\wxheading{Things to notice} - -\begin{enumerate}\itemsep=11pt -\item At line 2 the wxPython classes, constants, and etc. are imported -into the current module's namespace. If you prefer to reduce -namespace pollution you can use "{\tt from wxPython import wx}" and -then access all the wxPython identifiers through the wx module, for -example, "{\tt wx.wxFrame}". -\item At line 13 the frame's sizing and moving events are connected to -methods of the class. These helper functions are intended to be like -the event table macros that wxWidgets employs. But since static event -tables are impossible with wxPython, we use helpers that are named the -same to dynamically build the table. The only real difference is -that the first argument to the event helpers is always the window that -the event table entry should be added to. -\item Notice the use of {\tt wxDLG\_PNT} and {\tt wxDLG\_SZE} in lines 19 -- 29 to convert from dialog units to pixels. These helpers are unique -to wxPython since Python can't do method overloading like C++. -\item There is an {\tt OnCloseWindow} method at line 34 but no call to -EVT\_CLOSE to attach the event to the method. Does it really get -called? The answer is, yes it does. This is because many of the -{\em standard} events are attached to windows that have the associated -{\em standard} method names. I have tried to follow the lead of the -C++ classes in this area to determine what is {\em standard} but since -that changes from time to time I can make no guarantees, nor will it -be fully documented. When in doubt, use an EVT\_*** function. -\item At lines 17 to 21 notice that there are no saved references to -the panel or the static text items that are created. Those of you -who know Python might be wondering what happens when Python deletes -these objects when they go out of scope. Do they disappear from the GUI? They -don't. Remember that in wxPython the Python objects are just shadows of the -corresponding C++ objects. Once the C++ windows and controls are -attached to their parents, the parents manage them and delete them -when necessary. For this reason, most wxPython objects do not need to -have a \_\_del\_\_ method that explicitly causes the C++ object to be -deleted. If you ever have the need to forcibly delete a window, use -the Destroy() method as shown on line 36. -\item Just like wxWidgets in C++, wxPython apps need to create a class -derived from {\tt wxApp} (line 56) that implements a method named -{\tt OnInit}, (line 59.) This method should create the application's -main window (line 62) and use {\tt wxApp.SetTopWindow()} (line 66) to -inform wxWidgets about it. -\item And finally, at line 72 an instance of the application class is -created. At this point wxPython finishes initializing itself, and calls -the {\tt OnInit} method to get things started. (The zero parameter here is -a flag for functionality that isn't quite implemented yet. Just -ignore it for now.) The call to {\tt MainLoop} at line 73 starts the event -loop which continues until the application terminates or all the top -level windows are closed. -\end{enumerate} - -%---------------------------------------------------------------------- -\subsection{wxWidgets classes implemented in wxPython}\label{wxpclasses} - -The following classes are supported in wxPython. Most provide nearly -full implementations of the public interfaces specified in the C++ -documentation, others are less so. They will all be brought as close -as possible to the C++ spec over time. - -\begin{itemize}\itemsep=0pt -\item \helpref{wxAcceleratorEntry}{wxacceleratorentry} -\item \helpref{wxAcceleratorTable}{wxacceleratortable} -\item \helpref{wxActivateEvent}{wxactivateevent} -\item \helpref{wxBitmap}{wxbitmap} -\item \helpref{wxBitmapButton}{wxbitmapbutton} -\item \helpref{wxBitmapDataObject}{wxbitmapdataobject} -\item wxBMPHandler -\item \helpref{wxBoxSizer}{wxboxsizer} -\item \helpref{wxBrush}{wxbrush} -\item \helpref{wxBusyInfo}{wxbusyinfo} -\item \helpref{wxBusyCursor}{wxbusycursor} -\item \helpref{wxButton}{wxbutton} -\item \helpref{wxCalculateLayoutEvent}{wxcalculatelayoutevent} -\item \helpref{wxCalendarCtrl}{wxcalendarctrl} -\item \helpref{wxCaret}{wxcaret} -\item \helpref{wxCheckBox}{wxcheckbox} -\item \helpref{wxCheckListBox}{wxchecklistbox} -\item \helpref{wxChoice}{wxchoice} -\item \helpref{wxClientDC}{wxclientdc} -\item \helpref{wxClipboard}{wxclipboard} -\item \helpref{wxCloseEvent}{wxcloseevent} -\item \helpref{wxColourData}{wxcolourdata} -\item \helpref{wxColourDialog}{wxcolourdialog} -\item \helpref{wxColour}{wxcolour} -\item \helpref{wxComboBox}{wxcombobox} -\item \helpref{wxCommandEvent}{wxcommandevent} -\item \helpref{wxConfig}{wxconfigbase} -\item \helpref{wxControl}{wxcontrol} -\item \helpref{wxCursor}{wxcursor} -\item \helpref{wxCustomDataObject}{wxcustomdataobject} -\item \helpref{wxDataFormat}{wxdataformat} -\item \helpref{wxDataObject}{wxdataobject} -\item \helpref{wxDataObjectComposite}{wxdataobjectcomposite} -\item \helpref{wxDataObjectSimple}{wxdataobjectsimple} -\item \helpref{wxDateTime}{wxdatetime} -\item \helpref{wxDateSpan}{wxdatespan} -\item \helpref{wxDC}{wxdc} -\item \helpref{wxDialog}{wxdialog} -\item \helpref{wxDirDialog}{wxdirdialog} -\item \helpref{wxDragImage}{wxdragimage} -\item \helpref{wxDropFilesEvent}{wxdropfilesevent} -\item \helpref{wxDropSource}{wxdropsource} -\item \helpref{wxDropTarget}{wxdroptarget} -\item \helpref{wxEraseEvent}{wxeraseevent} -\item \helpref{wxEvent}{wxevent} -\item \helpref{wxEvtHandler}{wxevthandler} -\item \helpref{wxFileConfig}{wxfileconfig} -\item \helpref{wxFileDataObject}{wxfiledataobject} -\item \helpref{wxFileDialog}{wxfiledialog} -\item \helpref{wxFileDropTarget}{wxfiledroptarget} -\item \helpref{wxFileSystem}{wxfilesystem} -\item \helpref{wxFileSystemHandler}{wxfilesystemhandler} -\item \helpref{wxFocusEvent}{wxfocusevent} -\item \helpref{wxFontData}{wxfontdata} -\item \helpref{wxFontDialog}{wxfontdialog} -\item \helpref{wxFont}{wxfont} -\item \helpref{wxFrame}{wxframe} -\item \helpref{wxFSFile}{wxfsfile} -\item \helpref{wxGauge}{wxgauge} -\item wxGIFHandler -\item \helpref{wxGLCanvas}{wxglcanvas} -\begin{comment} -\item wxGridCell -\item \helpref{wxGridEvent}{wxgridevent} -\item \helpref{wxGrid}{wxgrid} -\end{comment} -\item \helpref{wxHtmlCell}{wxhtmlcell} -\item \helpref{wxHtmlContainerCell}{wxhtmlcontainercell} -\item \helpref{wxHtmlDCRenderer}{wxhtmldcrenderer} -\item \helpref{wxHtmlEasyPrinting}{wxhtmleasyprinting} -\item \helpref{wxHtmlParser}{wxhtmlparser} -\item \helpref{wxHtmlTagHandler}{wxhtmltaghandler} -\item \helpref{wxHtmlTag}{wxhtmltag} -\item \helpref{wxHtmlWinParser}{wxhtmlwinparser} -\item \helpref{wxHtmlPrintout}{wxhtmlprintout} -\item \helpref{wxHtmlWinTagHandler}{wxhtmlwintaghandler} -\item \helpref{wxHtmlWindow}{wxhtmlwindow} -\item \helpref{wxIconizeEvent}{wxiconizeevent} -\item \helpref{wxIcon}{wxicon} -\item \helpref{wxIdleEvent}{wxidleevent} -\item \helpref{wxImage}{wximage} -\item \helpref{wxImageHandler}{wximagehandler} -\item \helpref{wxImageList}{wximagelist} -\item \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint} -\item \helpref{wxInitDialogEvent}{wxinitdialogevent} -\item \helpref{wxInputStream}{wxinputstream} -\item \helpref{wxInternetFSHandler}{fs} -\item \helpref{wxJoystickEvent}{wxjoystickevent} -\item wxJPEGHandler -\item \helpref{wxKeyEvent}{wxkeyevent} -\item \helpref{wxLayoutAlgorithm}{wxlayoutalgorithm} -\item \helpref{wxLayoutConstraints}{wxlayoutconstraints} -\item \helpref{wxListBox}{wxlistbox} -\item \helpref{wxListCtrl}{wxlistctrl} -\item \helpref{wxListEvent}{wxlistevent} -\item \helpref{wxListItem}{wxlistctrlsetitem} -\item \helpref{wxMask}{wxmask} -\item \helpref{wxMaximizeEvent}{wxmaximizeevent} -\item \helpref{wxMDIChildFrame}{wxmdichildframe} -\item \helpref{wxMDIClientWindow}{wxmdiclientwindow} -\item \helpref{wxMDIParentFrame}{wxmdiparentframe} -\item \helpref{wxMemoryDC}{wxmemorydc} -\item \helpref{wxMemoryFSHandler}{wxmemoryfshandler} -\item \helpref{wxMenuBar}{wxmenubar} -\item \helpref{wxMenuEvent}{wxmenuevent} -\item \helpref{wxMenuItem}{wxmenuitem} -\item \helpref{wxMenu}{wxmenu} -\item \helpref{wxMessageDialog}{wxmessagedialog} -\item \helpref{wxMetaFileDC}{wxmetafiledc} -\item \helpref{wxMiniFrame}{wxminiframe} -\item \helpref{wxMouseEvent}{wxmouseevent} -\item \helpref{wxMoveEvent}{wxmoveevent} -\item \helpref{wxNotebookEvent}{wxnotebookevent} -\item \helpref{wxNotebook}{wxnotebook} -\item \helpref{wxPageSetupDialogData}{wxpagesetupdialogdata} -\item \helpref{wxPageSetupDialog}{wxpagesetupdialog} -\item \helpref{wxPaintDC}{wxpaintdc} -\item \helpref{wxPaintEvent}{wxpaintevent} -\item \helpref{wxPalette}{wxpalette} -\item \helpref{wxPanel}{wxpanel} -\item \helpref{wxPen}{wxpen} -\item wxPNGHandler -\item \helpref{wxPoint}{wxpoint} -\item \helpref{wxPostScriptDC}{wxpostscriptdc} -\item \helpref{wxPreviewFrame}{wxpreviewframe} -\item \helpref{wxPrintData}{wxprintdata} -\item \helpref{wxPrintDialogData}{wxprintdialogdata} -\item \helpref{wxPrintDialog}{wxprintdialog} -\item \helpref{wxPrinter}{wxprinter} -\item \helpref{wxPrintPreview}{wxprintpreview} -\item \helpref{wxPrinterDC}{wxprinterdc} -\item \helpref{wxPrintout}{wxprintout} -\item \helpref{wxProcess}{wxprocess} -\item \helpref{wxQueryLayoutInfoEvent}{wxquerylayoutinfoevent} -\item \helpref{wxRadioBox}{wxradiobox} -\item \helpref{wxRadioButton}{wxradiobutton} -\item \helpref{wxRealPoint}{wxrealpoint} -\item \helpref{wxRect}{wxrect} -\item \helpref{wxRegionIterator}{wxregioniterator} -\item \helpref{wxRegion}{wxregion} -\item \helpref{wxSashEvent}{wxsashevent} -\item \helpref{wxSashLayoutWindow}{wxsashlayoutwindow} -\item \helpref{wxSashWindow}{wxsashwindow} -\item \helpref{wxScreenDC}{wxscreendc} -\item \helpref{wxScrollBar}{wxscrollbar} -\item \helpref{wxScrollEvent}{wxscrollevent} -\item \helpref{wxScrolledWindow}{wxscrolledwindow} -\item \helpref{wxScrollWinEvent}{wxscrollwinevent} -\item wxShowEvent -\item \helpref{wxSingleChoiceDialog}{wxsinglechoicedialog} -\item \helpref{wxSizeEvent}{wxsizeevent} -\item \helpref{wxSize}{wxsize} -\item \helpref{wxSizer}{wxsizer} -\item \helpref{wxSizerItem}{wxsizeritem} -\item \helpref{wxSlider}{wxslider} -\item \helpref{wxSpinButton}{wxspinbutton} -\item \helpref{wxSpinEvent}{wxspinevent} -\item \helpref{wxSplitterWindow}{wxsplitterwindow} -\item \helpref{wxStaticBitmap}{wxstaticbitmap} -\item \helpref{wxStaticBox}{wxstaticbox} -\item \helpref{wxStaticBoxSizer}{wxstaticboxsizer} -\item \helpref{wxStaticLine}{wxstaticline} -\item \helpref{wxStaticText}{wxstatictext} -\item \helpref{wxStatusBar}{wxstatusbar} -\item \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent} -\item \helpref{wxTaskBarIcon}{wxtaskbaricon} -\item \helpref{wxTextCtrl}{wxtextctrl} -\item \helpref{wxTextDataObject}{wxtextdataobject} -\item \helpref{wxTextDropTarget}{wxtextdroptarget} -\item \helpref{wxTextEntryDialog}{wxtextentrydialog} -\item \helpref{wxTimer}{wxtimer} -\item \helpref{wxTimerEvent}{wxtimerevent} -\item \helpref{wxTimeSpan}{wxtimespan} -\item \helpref{wxTipProvider}{wxtipprovider} -\item wxToolBarTool -\item \helpref{wxToolBar}{wxtoolbar} -\item \helpref{wxToolTip}{wxtooltip} -\item \helpref{wxTreeCtrl}{wxtreectrl} -\item \helpref{wxTreeEvent}{wxtreeevent} -\item \helpref{wxTreeItemData}{wxtreeitemdata} -\item wxTreeItemId -\item \helpref{wxUpdateUIEvent}{wxupdateuievent} -\item \helpref{wxValidator}{wxvalidator} -\item \helpref{wxWindowDC}{wxwindowdc} -\item \helpref{wxWindow}{wxwindow} -\item \helpref{wxZipFSHandler}{fs} -\end{itemize} - -%---------------------------------------------------------------------- -\subsection{Where to go for help}\label{wxphelp} - -Since wxPython is a blending of multiple technologies, help comes from -multiple sources. See -\urlref{http://wxpython.org/}{http://wxpython.org/} for details on -various sources of help, but probably the best source is the -wxPython-users mail list. You can view the archive or subscribe by -going to - -\urlref{http://lists.wxwindows.org/mailman/listinfo/wxpython-users}{http://lists.wxwindows.org/mailman/listinfo/wxpython-users} - -Or you can send mail directly to the list using this address: - -wxpython-users@lists.wxwindows.org - diff --git a/docs/latex/wx/wxgtk.tex b/docs/latex/wx/wxgtk.tex deleted file mode 100644 index f109aa079a..0000000000 --- a/docs/latex/wx/wxgtk.tex +++ /dev/null @@ -1,33 +0,0 @@ -\section{wxGTK port}\label{wxgtkport} - -wxGTK is a port of wxWidgets using the GTK+ library. -It makes use of GTK+'s native widgets wherever possible and uses -wxWidgets' generic controls when needed. GTK+ itself has been -ported to a number of systems, but so far only the original X11 -version is supported. Support for other GTK+ backends is planned, -such as the new DirectFB backend. - -All work is being done on GTK+ version 2.0 and above. Support for -GTK+ 1.2 will be deprecated in a later release. - -You will need GTK+ 2.0 or higher which is available from: - -\urlref{http://www.gtk.org}{http://www.gtk.org} - -The newer version of GTK+ you use, the more native widgets and -features will be utilized. We have gone to a great extent to -allow compiling wxWidgets applications with a latest version of -GTK+, with the resulting binary working on systems even with a -much lower version of GTK+. You will have to ensure that the -application is launched with lazy symbol binding for that. - -In order to configure wxWidgets to compile wxGTK you will -need use the {\tt --with-gtk} argument to the {\tt configure} script. -This is the default for many systems. - -GTK+ 1.2 can still be used, albeit discouraged. For that you can -pass {\tt --with-gtk=1} to the {\tt configure} script. - -For further information, please see the files in docs/gtk -in the distribution. - diff --git a/docs/latex/wx/wxhtml.tex b/docs/latex/wx/wxhtml.tex deleted file mode 100644 index 1b27b708ee..0000000000 --- a/docs/latex/wx/wxhtml.tex +++ /dev/null @@ -1,28 +0,0 @@ -\section{wxHTML overview}\label{wxhtml} - -The wxHTML library provides classes for parsing and displaying HTML. - -It is not intended to be a high-end HTML browser. If you are looking for -something like that try \urlref{http://www.mozilla.org}{http://www.mozilla.org}. - -wxHTML can be used as a generic rich text viewer - for example to display -a nice About Box (like those of GNOME apps) or to display the result of -database searching. There is a \helpref{wxFileSystem}{wxfilesystem} -class which allows you to use your own virtual file systems. - -wxHtmlWindow supports tag handlers. This means that you can easily -extend wxHtml library with new, unsupported tags. Not only that, -you can even use your own application-specific tags! -See {\tt src/html/m\_*.cpp} files for details. - -There is a generic wxHtmlParser class, -independent of wxHtmlWindow. - -\input htmlstrt.tex -\input htmlprn.tex -\input htmlhlpf.tex -\input htmlfilt.tex -\input htmlcell.tex -\input htmlhand.tex -\input htmltags.tex - diff --git a/docs/latex/wx/wxmac.tex b/docs/latex/wx/wxmac.tex deleted file mode 100644 index cbe213edbd..0000000000 --- a/docs/latex/wx/wxmac.tex +++ /dev/null @@ -1,16 +0,0 @@ -\section{wxMac port}\label{wxmacport} - -wxMac is a port of wxWidgets for the Macintosh OS platform. -Currently MacOS 8.6 or higher, MacOS 9.0 or higher and -MacOS X 10.0 or higher are supported, although most development -effort goes into MacOS X support. wxMac can be compiled both -using Apple's developer tools and MetroWerks CodeWarrior in -different versions. Support for MacOS 8.X and MacOS 9.X is -only available through CodeWarrior. wxMac uses the Carbon -API (and optionally the Classic API under MacOS 8.X). You -will need wxWidgets version 2.3.3 or higher for a stable -version of wxMac. - -For further information, please see the files in docs/mac -in the distribution. - diff --git a/docs/latex/wx/wxmgl.tex b/docs/latex/wx/wxmgl.tex deleted file mode 100644 index 8c33c219fb..0000000000 --- a/docs/latex/wx/wxmgl.tex +++ /dev/null @@ -1,27 +0,0 @@ -\section{wxMGL port}\label{wxmglport} - -wxMGL is a port of wxWidgets using the MGL library available -from SciTech as the underlying graphics backend. wxMGL draws -its widgets using the wxUniversal widget set which is now -part of wxWidgets. MGL itself runs on a variety of platforms -including DOS, Linux hardware (similar to the Linux framebuffer) -and various graphics systems such as Win32, X11 and OS/2. -Note that currently MGL for Linux runs only on x86-based systems. - -You will need wxWidgets 2.3.3 or higher and MGL 5.0 or higher. -The latter is available from - -\urlref{http://www.scitechsoft.com/products/product\_download.html}{http://www.scitechsoft.com/products/product\_download.html} - -In order to configure wxWidgets to compile wxMGL you will -need to type: - -\begin{verbatim} - configure --with-mgl --with-universal -\end{verbatim} - -Under DOS, wxMGL uses a dmake based make system. - -For further information, please see the files in docs/mgl -in the distribution. - diff --git a/docs/latex/wx/wxmsw.tex b/docs/latex/wx/wxmsw.tex deleted file mode 100644 index 7ed271eb6f..0000000000 --- a/docs/latex/wx/wxmsw.tex +++ /dev/null @@ -1,456 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: wxmsw.tex -%% Purpose: wxMSW and wxWinCE platform specific informations -%% Author: wxWidgets Team -%% Modified by: -%% Created: -%% RCS-ID: $Id$ -%% Copyright: (c) wxWidgets Team -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{wxMSW port}\label{wxmswport} - -wxMSW is a port of wxWidgets for the Windows platforms -including Windows 95, 98, ME, 2000, NT, XP in ANSI and -Unicode mode (for Windows 95 through the MSLU extension -library). wxMSW ensures native look and feel for XP -as well when using wxWidgets version 2.3.3 or higher. -wxMSW can be compile with a great variety of compilers -including MS VC++, Borland 5.5, MinGW32, Cygwin and -Watcom as well as cross-compilation with a Linux hosted -MinGW32 tool chain. - -For further information, please see the files in docs/msw -in the distribution. - -\subsection{Themed borders on Windows}\label{wxmswthemedborders} - -Starting with wxWidgets 2.8.5, you can specify the wxBORDER\_THEME style to have wxWidgets -use a themed border. Using the default XP theme, this is a thin 1-pixel blue border, -with an extra 1-pixel border in the window client background colour (usually white) to -separate the client area's scrollbars from the border. - -If you don't specify a border style for a wxTextCtrl in rich edit mode, wxWidgets now gives -the control themed borders automatically, where previously they would take the Windows 95-style -sunken border. Other native controls such as wxTextCtrl in non-rich edit mode, and wxComboBox, -already paint themed borders where appropriate. To use themed borders on other windows, such -as wxPanel, pass the wxBORDER\_THEME style, or (apart from wxPanel) pass no border style. - -In general, specifying wxBORDER\_THEME will cause a border of some kind to be used, chosen by the platform -and control class. To leave the border decision entirely to wxWidgets, pass wxBORDER\_DEFAULT. -This is not to be confused with specifying wxBORDER\_NONE, which says that there should -definitely be {\it no} border. - -\wxheading{More detail on border implementation} - -The way that wxMSW decides whether to apply a themed border is as follows. -The theming code calls wxWindow::GetBorder() to obtain a border. If no border style has been -passed to the window constructor, GetBorder() calls GetDefaultBorder() for this window. -If wxBORDER\_THEME was passed to the window constructor, GetBorder() calls GetDefaultBorderForControl(). - -The implementation of wxWindow::GetDefaultBorder() on wxMSW calls wxWindow::CanApplyThemeBorder() -which is a virtual function that tells wxWidgets whether a control can have a theme -applied explicitly (some native controls already paint a theme in which case we should not -apply it ourselves). Note that wxPanel is an exception to this rule because in many cases -we wish to create a window with no border (for example, notebook pages). So wxPanel -overrides GetDefaultBorder() in order to call the generic wxWindowBase::GetDefaultBorder(), -returning wxBORDER\_NONE. - -\subsection{wxWinCE}\label{wxwince} - -wxWinCE is the name given to wxMSW when compiled on Windows CE devices; -most of wxMSW is common to Win32 and Windows CE but there are -some simplifications, enhancements, and differences in -behaviour. - -For building instructions, see docs/msw/wince in the -distribution, also the section about Visual Studio 2005 project -files below. The rest of this section documents issues you -need to be aware of when programming for Windows CE devices. - -\subsubsection{General issues for wxWinCE programming} - -Mobile applications generally have fewer features and -simpler user interfaces. Simply omit whole sizers, static -lines and controls in your dialogs, and use comboboxes instead -of listboxes where appropriate. You also need to reduce -the amount of spacing used by sizers, for which you can -use a macro such as this: - -\begin{verbatim} -#if defined(__WXWINCE__) - #define wxLARGESMALL(large,small) small -#else - #define wxLARGESMALL(large,small) large -#endif - -// Usage -topsizer->Add( CreateTextSizer( message ), 0, wxALL, wxLARGESMALL(10,0) ); -\end{verbatim} - -There is only ever one instance of a Windows CE application running, -and wxWidgets will take care of showing the current instance and -shutting down the second instance if necessary. - -You can test the return value of wxSystemSettings::GetScreenType() -for a qualitative assessment of what kind of display is available, -or use wxGetDisplaySize() if you need more information. - -You can also use wxGetOsVersion to test for a version of Windows CE at -run-time (see the next section). However, because different builds -are currently required to target different kinds of device, these -values are hard-wired according to the build, and you cannot -dynamically adapt the same executable for different major Windows CE -platforms. This would require a different approach to the way -wxWidgets adapts its behaviour (such as for menubars) to suit the -style of device. - -See the "Life!" example (demos/life) for an example of -an application that has been tailored for PocketPC and Smartphone use. - -{\bf Note:} don't forget to have this line in your .rc file, as for -desktop Windows applications: - -\begin{verbatim} -#include "wx/msw/wx.rc" -\end{verbatim} - -\subsubsection{Testing for WinCE SDKs} - -Use these preprocessor symbols to test for the different types of device or SDK: - -\begin{twocollist}\itemsep=0pt -\twocolitem{\_\_SMARTPHONE\_\_}{Generic mobile devices with phone buttons and a small display} -\twocolitem{\_\_PDA\_\_}{Generic mobile devices with no phone} -\twocolitem{\_\_HANDHELDPC\_\_}{Generic mobile device with a keyboard} -\twocolitem{\_\_WXWINCE\_\_}{Microsoft-powered Windows CE devices, whether PocketPC, Smartphone or Standard SDK} -\twocolitem{WIN32\_PLATFORM\_WFSP}{Microsoft-powered smartphone} -\twocolitem{\_\_POCKETPC\_\_}{Microsoft-powered PocketPC devices with touch-screen} -\twocolitem{\_\_WINCE\_STANDARDSDK\_\_}{Microsoft-powered Windows CE devices, for generic Windows CE applications} -\twocolitem{\_\_WINCE\_NET\_\_}{Microsoft-powered Windows CE .NET devices (\_WIN32\_WCE is 400 or greater)} -\end{twocollist} - -wxGetOsVersion will return these values: - -\begin{twocollist}\itemsep=0pt -\twocolitem{wxWINDOWS\_POCKETPC}{The application is running under PocketPC.} -\twocolitem{wxWINDOWS\_SMARTPHONE}{The application is running under Smartphone.} -\twocolitem{wxWINDOWS\_CE}{The application is running under Windows CE (built with the Standard SDK).} -\end{twocollist} - -\subsubsection{Window sizing in wxWinCE} - -Top level windows (dialogs, frames) are created always full-screen. Fit() of sizers will not rescale top -level windows but instead will scale window content. - -If the screen orientation changes, the windows will automatically be resized -so no further action needs to be taken (unless you want to change the layout -according to the orientation, which you could detect in idle time, for example). -When input panel (SIP) is shown, top level windows (frames and dialogs) resize -accordingly (see \helpref{wxTopLevelWindow::HandleSettingChange}{wxtoplevelwindowhandlesettingchange}). - -\subsubsection{Closing top-level windows in wxWinCE} - -You won't get a wxCloseEvent when the user clicks on the X in the titlebar -on Smartphone and PocketPC; the window is simply hidden instead. However the system may send the -event to force the application to close down. - -\subsubsection{Hibernation in wxWinCE} - -Smartphone and PocketPC will send a wxEVT\_HIBERNATE to the application object in low -memory conditions. Your application should release memory and close dialogs, -and wake up again when the next wxEVT\_ACTIVATE or wxEVT\_ACTIVATE\_APP message is received. -(wxEVT\_ACTIVATE\_APP is generated whenever a wxEVT\_ACTIVATE event is received -in Smartphone and PocketPC, since these platforms do not support WM\_ACTIVATEAPP.) - -\subsubsection{Hardware buttons in wxWinCE} - -Special hardware buttons are sent to a window via the wxEVT\_HOTKEY event -under Smartphone and PocketPC. You should first register each required button with \helpref{wxWindow::RegisterHotKey}{wxwindowregisterhotkey}, -and unregister the button when you're done with it. For example: - -\begin{verbatim} - win->RegisterHotKey(0, wxMOD_WIN, WXK_SPECIAL1); - win->UnregisterHotKey(0); -\end{verbatim} - -You may have to register the buttons in a wxEVT\_ACTIVATE event handler -since other applications will grab the buttons. - -There is currently no method of finding out the names of the special -buttons or how many there are. - -\subsubsection{Dialogs in wxWinCE} - -PocketPC dialogs have an OK button on the caption, and so you should generally -not repeat an OK button on the dialog. You can add a Cancel button if necessary, but some dialogs -simply don't offer you the choice (the guidelines recommend you offer an Undo facility -to make up for it). When the user clicks on the OK button, your dialog will receive -a wxID\_OK event by default. If you wish to change this, call \helpref{wxDialog::SetAffirmativeId}{wxdialogsetaffirmativeid} -with the required identifier to be used. Or, override \helpref{wxDialog::DoOK}{wxdialogdook} (return false to -have wxWidgets simply call Close to dismiss the dialog). - -Smartphone dialogs do {\it not} have an OK button on the caption, and are closed -using one of the two menu buttons. You need to assign these using \helpref{wxTopLevelWindow::SetLeftMenu}{wxtoplevelwindowsetleftmenu} -and \helpref{wxTopLevelWindow::SetRightMenu}{wxtoplevelwindowsetrightmenu}, for example: - -\begin{verbatim} -#ifdef __SMARTPHONE__ - SetLeftMenu(wxID_OK); - SetRightMenu(wxID_CANCEL, _("Cancel")); -#elif defined(__POCKETPC__) - // No OK/Cancel buttons on PocketPC, OK on caption will close -#else - topsizer->Add( CreateButtonSizer( wxOK|wxCANCEL ), 0, wxEXPAND | wxALL, 10 ); -#endif -\end{verbatim} - -For implementing property sheets (flat tabs), use a wxNotebook with wxNB\_FLAT|wxNB\_BOTTOM -and have the notebook left, top and right sides overlap the dialog by about 3 pixels -to eliminate spurious borders. You can do this by using a negative spacing in your -sizer Add() call. The cross-platform property sheet dialog \helpref{wxPropertySheetDialog}{wxpropertysheetdialog} is -provided, to show settings in the correct style on PocketPC and on other platforms. - -Notifications (bubble HTML text with optional buttons and links) will also be -implemented in the future for PocketPC. - -Modeless dialogs probably don't make sense for PocketPC and Smartphone, since -frames and dialogs are normally full-screen, and a modeless dialog is normally -intended to co-exist with the main application frame. - -\subsubsection{Menubars and toolbars in wxWinCE} - -\wxheading{Menubars and toolbars in PocketPC} - -On PocketPC, a frame must always have a menubar, even if it's empty. -An empty menubar/toolbar is automatically provided for dialogs, to hide -any existing menubar for the duration of the dialog. - -Menubars and toolbars are implemented using a combined control, -but you can use essentially the usual wxWidgets API; wxWidgets will combine the menubar -and toolbar. However, there are some restrictions: - -\itemsep=0pt -\begin{itemize} -\item You must create the frame's primary toolbar with wxFrame::CreateToolBar, -because this uses the special wxToolMenuBar class (derived from wxToolBar) -to implement the combined toolbar and menubar. Otherwise, you can create and manage toolbars -using the wxToolBar class as usual, for example to implement an optional -formatting toolbar above the menubar as Pocket Word does. But don't assign -a wxToolBar to a frame using SetToolBar - you should always use CreateToolBar -for the main frame toolbar. -\item Deleting and adding tools to wxToolMenuBar after Realize is called is not supported. -\item For speed, colours are not remapped to the system colours as they are -in wxMSW. Provide the tool bitmaps either with the correct system button background, -or with transparency (for example, using XPMs). -\item Adding controls to wxToolMenuBar is not supported. However, wxToolBar supports -controls. -\end{itemize} - -Unlike in all other ports, a wxDialog has a wxToolBar, automatically created -for you. You may either leave it blank, or access it with wxDialog::GetToolBar -and add buttons, then calling wxToolBar::Realize. You cannot set or recreate -the toolbar. - -\wxheading{Menubars and toolbars in Smartphone} - -On Smartphone, there are only two menu buttons, so a menubar is simulated -using a nested menu on the right menu button. Any toolbars are simply ignored on -Smartphone. - -\subsubsection{Closing windows in wxWinCE} - -The guidelines state that applications should not have a Quit menu item, -since the user should not have to know whether an application is in memory -or not. The close button on a window does not call the window's -close handler; it simply hides the window. However, the guidelines say that -the Ctrl+Q accelerator can be used to quit the application, so wxWidgets -defines this accelerator by default and if your application handles -wxID\_EXIT, it will do the right thing. - -\subsubsection{Context menus in wxWinCE} - -To enable context menus in PocketPC, you currently need to call wxWindow::EnableContextMenu, -a wxWinCE-only function. Otherwise the context menu event (wxContextMenuEvent) will -never be sent. This API is subject to change. - -Context menus are not supported in Smartphone. - -\subsubsection{Control differences on wxWinCE} - -These controls and styles are specific to wxWinCE: - -\itemsep=0pt -\begin{itemize} -\item {\bf wxTextCtrl} The wxTE\_CAPITALIZE style causes a CAPEDIT control to -be created, which capitalizes the first letter. -\end{itemize} - -These controls are missing from wxWinCE: - -\itemsep=0pt -\begin{itemize} -\item {\bf MDI classes} MDI is not supported under Windows CE. -\item {\bf wxMiniFrame} Not supported under Windows CE. -\end{itemize} - -Tooltips are not currently supported for controls, since on PocketPC controls with -tooltips are distinct controls, and it will be hard to add dynamic -tooltip support. - -Control borders on PocketPC and Smartphone should normally be specified with -wxBORDER\_SIMPLE instead of wxBORDER\_SUNKEN. Controls will usually adapt -appropriately by virtue of their GetDefaultBorder() function, but if you -wish to specify a style explicitly you can use wxDEFAULT\_CONTROL\_BORDER -which will give a simple border on PocketPC and Smartphone, and the sunken border on -other platforms. - -\subsubsection{Online help in wxWinCE} - -You can use the help controller wxWinceHelpController which controls -simple {\tt .htm} files, usually installed in the Windows directory. -See the Windows CE reference for how to format the HTML files. - -\subsubsection{Installing your PocketPC and Smartphone applications} - -To install your application, you need to build a CAB file using -the parameters defined in a special .inf file. The CabWiz program -in your SDK will compile the CAB file from the .inf file and -files that it specifies. - -For delivery, you can simply ask the user to copy the CAB file to the -device and execute the CAB file using File Explorer. Or, you can -write a program for the desktop PC that will find the ActiveSync -Application Manager and install the CAB file on the device, -which is obviously much easier for the user. - -Here are some links that may help. - -\itemsep=0pt -\begin{itemize} -\item A setup builder that takes CABs and builds a setup program is at \urlref{http://www.eskimo.com/~scottlu/win/index.html}{http://www.eskimo.com/~scottlu/win/index.html}. -\item Sample installation files can be found in {\tt Windows CE Tools/wce420/POCKET PC 2003/Samples/Win32/AppInst}. -\item An installer generator using wxPython can be found at \urlref{http://ppcquicksoft.iespana.es/ppcquicksoft/myinstall.html}{http://ppcquicksoft.iespana.es/ppcquicksoft/myinstall.html}. -\item Miscellaneous Windows CE resources can be found at \urlref{http://www.orbworks.com/pcce/resources.html}{http://www.orbworks.com/pcce/resources.html}. -\item Installer creation instructions with a setup.exe for installing to PPC can be found at \urlref{http://www.pocketpcdn.com/articles/creatingsetup.html}{http://www.pocketpcdn.com/articles/creatingsetup.html}. -\item Microsoft instructions are at \urlref{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/appinstall30.asp?frame=true&hidetoc=true}{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnce30/html/appinstall30.asp?frame=true&hidetoc=true}. -\item Troubleshooting WinCE application installations: \urlref{http://support.microsoft.com/default.aspx?scid=KB;en-us;q181007}{http://support.microsoft.com/default.aspx?scid=KB;en-us;q181007} -\end{itemize} - -You may also check out {\tt demos/life/setup/wince} which contains -scripts to create a PocketPC installation for ARM-based -devices. In particular, {\tt build.bat} builds the distribution and -copies it to a directory called {\tt Deliver}. - -\subsubsection{wxFileDialog in PocketPC} - -Allowing the user to access files on memory cards, or on arbitrary -parts of the filesystem, is a pain; the standard file dialog only -shows folders under My Documents or folders on memory cards -(not the system or card root directory, for example). This is -a known problem for PocketPC developers. - -If you need a file dialog that allows access to all folders, -you can use wxGenericFileDialog instead. You will need to include -{\tt wx/generic/filedlgg.h}. - -\subsubsection{Embedded Visual C++ Issues} - -\wxheading{Run-time type information} - -If you wish to use runtime type information (RTTI) with eVC++ 4, you need to download -an extra library, {\tt ccrtrtti.lib}, and link with it. At the time of -writing you can get it from here: - -\begin{verbatim} -http://support.microsoft.com/kb/830482/en-us -\end{verbatim} - -Otherwise you will get linker errors similar to this: - -\begin{verbatim} -wxwince26d.lib(control.obj) : error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_info@@6B@) -\end{verbatim} - -\wxheading{Windows Mobile 5.0 emulator} - -Note that there is no separate emulator configuration for Windows Mobile 5.0: the -emulator runs the ARM code directly. - -\wxheading{Visual Studio 2005 project files} - -Unfortunately, Visual Studio 2005, required to build Windows Mobile 5.0 applications, -doesn't do a perfect job of converting the project files from eVC++ format. - -When you have converted the wxWidgets workspace, edit the configuration properties -for each configuration and in the Librarian, add a relative path ..$\backslash$..$\backslash$lib to -each library path. For example: {\tt ..$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)$\backslash$wx\_mono.lib}. - -Then, for a sample you want to compile, edit the configuration properties -and make sure {\tt ..$\backslash$..$\backslash$lib$\backslash$\$(PlatformName)$\backslash$\$(ConfigurationName)} is in the Linker/General/Additional -Library Directories property. Also change the Linker/Input/Additional Dependencies -property to something like {\tt coredll.lib wx\_mono.lib wx\_wxjpeg.lib wx\_wxpng.lib wx\_wxzlib.lib wx\_wxexpat.lib commctrl.lib winsock.lib wininet.lib}\rtfsp -(since the library names in the wxWidgets workspace were changed by VS 2005). - -Alternately, you could could edit all the names to be identical to the original eVC++ -names, but this will probably be more fiddly. - -\subsubsection{Remaining issues} - -These are some of the remaining problems to be sorted out, and features -to be supported. - -\itemsep=0pt -\begin{itemize} -\item {\bf Windows Mobile 5 issues.} It is not possible to get the HMENU for -the command bar on Mobile 5, so the menubar functions need to be rewritten -to get the individual menus without use of a menubar handle. Also the -new Mobile 5 convention of using only two menus (and no bitmap buttons) needs to be -considered. -\item {\bf Sizer speed.} Particularly for dialogs containing notebooks, -layout seems slow. Some analysis is required. -\item {\bf Notification boxes.} The balloon-like notification messages, and their -icons, should be implemented. This will be quite straightforward. -\item {\bf SIP size.} We need to be able to get the area taken up by the SIP (input panel), -and the remaining area, by calling SHSipInfo. We also may need to be able to show and hide -the SIP programmatically, with SHSipPreference. See also the {\it Input Dialogs} topic in -the {\it Programming Windows CE} guide for more on this, and how to have dialogs -show the SIP automatically using the WC\_SIPREF control. -\item {\bf wxStaticBitmap.} The About box in the "Life!" demo shows a bitmap that is -the correct size on the emulator, but too small on a VGA Pocket Loox device. -\item {\bf wxStaticLine.} Lines don't show up, and the documentation suggests that -missing styles are implemented with WM\_PAINT. -\item {\bf HTML control.} PocketPC has its own HTML control which can be used for showing -local pages or navigating the web. We should create a version of wxHtmlWindow that uses this -control, or have a separately-named control (wxHtmlCtrl), with a syntax as close as possible to wxHtmlWindow. -\item {\bf Tooltip control.} PocketPC uses special TTBUTTON and TTSTATIC controls for adding -tooltips, with the tooltip separated from the label with a double tilde. We need to support this using SetToolTip. -(Unfortunately it does not seem possible to dynamically remove the tooltip, so an extra style may -be required.) -\item {\bf Focus.} In the wxPropertySheetDialog demo on Smartphone, it's not possible to navigate -between controls. The focus handling in wxWidgets needs investigation. See in particular src/common/containr.cpp, -and note that the default OnActivate handler in src/msw/toplevel.cpp sets the focus to the first child of the dialog. -\item {\bf OK button.} We should allow the OK button on a dialog to be optional, perhaps -by using wxCLOSE\_BOX to indicate when the OK button should be displayed. -\item {\bf Dynamic adaptation.} We should probably be using run-time tests more -than preprocessor tests, so that the same WinCE application can run on different -versions of the operating system. -\item {\bf Modeless dialogs.} When a modeless dialog is hidden with the OK button, it doesn't restore the -frame's menubar. See for example the find dialog in the dialogs sample. However, the menubar is restored -if pressing Cancel (the window is closed). This reflects the fact that modeless dialogs are -not very useful on Windows CE; however, we could perhaps destroy/restore a modeless dialog's menubar -on deactivation and activation. -\item {\bf Home screen plugins.} Figure out how to make home screen plugins for use with wxWidgets -applications (see {\tt http://www.codeproject.com/ce/CTodayWindow.asp} for inspiration). -Although we can't use wxWidgets to create the plugin (too large), we could perhaps write -a generic plugin that takes registry information from a given application, with -options to display information in a particular way using icons and text from -a specified location. -\item {\bf Further abstraction.} We should be able to abstract away more of the differences -between desktop and mobile applications, in particular for sizer layout. -\item {\bf Dialog captions.} The blue, bold captions on dialogs - with optional help button - -should be catered for, either by hard-wiring the capability into all dialogs and panels, -or by providing a standard component and sizer. -\end{itemize} - diff --git a/docs/latex/wx/wxos2.tex b/docs/latex/wx/wxos2.tex deleted file mode 100644 index 20809fbbd9..0000000000 --- a/docs/latex/wx/wxos2.tex +++ /dev/null @@ -1,5 +0,0 @@ -\section{wxOS2 port}\label{wxos2port} - -wxOS2 is a port of wxWidgets for the IBM OS/2 platform. -It is currently under construction. - diff --git a/docs/latex/wx/wxpalm.tex b/docs/latex/wx/wxpalm.tex deleted file mode 100644 index 5200d33766..0000000000 --- a/docs/latex/wx/wxpalm.tex +++ /dev/null @@ -1,10 +0,0 @@ -\section{wxPalmOS port}\label{wxpalmosport} - -wxPalmOS is a port of wxWidgets for the Palm OS 6 (Cobalt). -It ensures native look and feel for Palm devices when using -wxWidgets version 2.5.4 or higher. wxPalmOS can be compiled -with freely distributable Palm OS Developer Studio. - -For further information, please see the files in docs/palmos -in the distribution. - diff --git a/docs/latex/wx/wxstring.tex b/docs/latex/wx/wxstring.tex deleted file mode 100644 index cdd13d86b7..0000000000 --- a/docs/latex/wx/wxstring.tex +++ /dev/null @@ -1,1676 +0,0 @@ -\section{\class{wxString}}\label{wxstring} - -wxString is a class representing a character string. Please see the -\helpref{wxString overview}{wxstringoverview} for more information about it. - -As explained there, wxString implements most of the methods of the std::string -class. -These standard functions are not documented in this manual, please see the -\urlref{STL documentation}{http://www.cppreference.com/cppstl.html}). -The behaviour of all these functions is identical to the behaviour described -there. - -You may notice that wxString sometimes has many functions which do the same -thing like, for example, \helpref{Length()}{wxstringlength}, -\helpref{Len()}{wxstringlen} and {\tt length()} which all return the string -length. In all cases of such duplication the {\tt std::string}-compatible -method ({\tt length()} in this case, always the lowercase version) should be -used as it will ensure smoother transition to {\tt std::string} when wxWidgets -starts using it instead of wxString. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Predefined objects} - -Objects: - -{\bf wxEmptyString} - -\wxheading{See also} - -\helpref{wxString overview}{wxstringoverview}, \helpref{Unicode overview}{unicode} - -\latexignore{\rtfignore{\wxheading{Function groups}}} - - -\membersection{Constructors and assignment operators}\label{constructorsinwxstring} - -A string may be constructed either from a C string, (some number of copies of) -a single character or a wide (UNICODE) string. For all constructors (except the -default which creates an empty string) there is also a corresponding assignment -operator. - -\helpref{wxString}{wxstringconstruct}\\ -\helpref{operator $=$}{wxstringoperatorassign}\\ -\helpref{\destruct{wxString}}{wxstringdestruct} - - -\membersection{String length}\label{lengthfunctionsinwxstring} - -These functions return the string length and check whether the string is empty -or empty it. - -\helpref{Len}{wxstringlen}\\ -\helpref{IsEmpty}{wxstringisempty}\\ -\helpref{operator!}{wxstringoperatornot}\\ -\helpref{Empty}{wxstringempty}\\ -\helpref{Clear}{wxstringclear} - - -\membersection{Character access}\label{characteraccessinwxstring} - -Many functions in this section take a character index in the string. As with C -strings and/or arrays, the indices start from $0$, so the first character of a -string is string[$0$]. Attempt to access a character beyond the end of the -string (which may be even $0$ if the string is empty) will provoke an assert -failure in \helpref{debug build}{debuggingoverview}, but no checks are done in -release builds. - -This section also contains both implicit and explicit conversions to C style -strings. Although implicit conversion is quite convenient, it is advised to use -explicit \helpref{c\_str()}{wxstringcstr} method for the sake of clarity. Also -see \helpref{overview}{wxstringadvices} for the cases where it is necessary to -use it. - -\helpref{GetChar}{wxstringgetchar}\\ -\helpref{GetWritableChar}{wxstringgetwritablechar}\\ -\helpref{SetChar}{wxstringsetchar}\\ -\helpref{Last}{wxstringlast}\\ -\helpref{operator []}{wxstringoperatorbracket}\\ -\helpref{c\_str}{wxstringcstr}\\ -\helpref{mb\_str}{wxstringmbstr}\\ -\helpref{wc\_str}{wxstringwcstr}\\ -\helpref{fn\_str}{wxstringfnstr}\\ -\helpref{operator const char*}{wxstringoperatorconstcharpt} - - -\membersection{Concatenation}\label{concatenationinwxstring} - -Anything may be concatenated (appended to) with a string. However, you can't -append something to a C string (including literal constants), so to do this it -should be converted to a wxString first. - -\helpref{operator \cinsert}{wxstringoperatorout}\\ -\helpref{operator $+=$}{wxstringplusequal}\\ -\helpref{operator $+$}{wxstringoperatorplus}\\ -\helpref{Append}{wxstringappend}\\ -\helpref{Prepend}{wxstringprepend} - - -\membersection{Comparison}\label{comparisoninwxstring} - -The default comparison function \helpref{Cmp}{wxstringcmp} is case-sensitive and -so is the default version of \helpref{IsSameAs}{wxstringissameas}. For case -insensitive comparisons you should use \helpref{CmpNoCase}{wxstringcmpnocase} or -give a second parameter to IsSameAs. This last function is may be more -convenient if only equality of the strings matters because it returns a boolean -\true value if the strings are the same and not 0 (which is usually false in C) -as {\tt Cmp()} does. - -\helpref{Matches}{wxstringmatches} is a poor man's regular expression matcher: -it only understands '*' and '?' metacharacters in the sense of DOS command line -interpreter. - -\helpref{StartsWith}{wxstringstartswith} is helpful when parsing a line of -text which should start with some predefined prefix and is more efficient than -doing direct string comparison as you would also have to precalculate the -length of the prefix then. - -\helpref{Cmp}{wxstringcmp}\\ -\helpref{CmpNoCase}{wxstringcmpnocase}\\ -\helpref{IsSameAs}{wxstringissameas}\\ -\helpref{Matches}{wxstringmatches}\\ -\helpref{StartsWith}{wxstringstartswith}\\ -\helpref{EndsWith}{wxstringendswith} - - -\membersection{Substring extraction}\label{substringextractioninwxstring} - -These functions allow to extract substring from this string. All of them don't -modify the original string and return a new string containing the extracted -substring. - -\helpref{Mid}{wxstringmid}\\ -\helpref{operator()}{wxstringoperatorparenth}\\ -\helpref{Left}{wxstringleft}\\ -\helpref{Right}{wxstringright}\\ -\helpref{BeforeFirst}{wxstringbeforefirst}\\ -\helpref{BeforeLast}{wxstringbeforelast}\\ -\helpref{AfterFirst}{wxstringafterfirst}\\ -\helpref{AfterLast}{wxstringafterlast}\\ -\helpref{StartsWith}{wxstringstartswith}\\ -\helpref{EndsWith}{wxstringendswith} - - - -\membersection{Case conversion}\label{caseconversioninwxstring} - -The MakeXXX() variants modify the string in place, while the other functions -return a new string which contains the original text converted to the upper or -lower case and leave the original string unchanged. - -\helpref{MakeUpper}{wxstringmakeupper}\\ -\helpref{Upper}{wxstringupper}\\ -\helpref{MakeLower}{wxstringmakelower}\\ -\helpref{Lower}{wxstringlower} - - -\membersection{Searching and replacing}\label{searchingandreplacinginwxstring} - -These functions replace the standard {\it strchr()} and {\it strstr()} -functions. - -\helpref{Find}{wxstringfind}\\ -\helpref{Replace}{wxstringreplace} - - -\membersection{Conversion to numbers}\label{conversiontonumbersinwxstring} - -The string provides functions for conversion to signed and unsigned integer and -floating point numbers. All three functions take a pointer to the variable to -put the numeric value in and return \true if the {\bf entire} string could be -converted to a number. - -\helpref{ToLong}{wxstringtolong}\\ -\helpref{ToLongLong}{wxstringtolonglong}\\ -\helpref{ToULong}{wxstringtoulong}\\ -\helpref{ToULongLong}{wxstringtoulonglong}\\ -\helpref{ToDouble}{wxstringtodouble} - - -\membersection{Writing values into the string}\label{writingintostringinwxstring} - -Both formatted versions (\helpref{Printf}{wxstringprintf}) and stream-like -insertion operators exist (for basic types only). Additionally, the -\helpref{Format}{wxstringformat} function allows to use simply append -formatted value to a string: - -\begin{verbatim} - // the following 2 snippets are equivalent - - wxString s = "..."; - s += wxString::Format("%d", n); - - wxString s; - s.Printf("...%d", n); -\end{verbatim} - -\helpref{Format}{wxstringformat}\\ -\helpref{FormatV}{wxstringformatv}\\ -\helpref{Printf}{wxstringprintf}\\ -\helpref{PrintfV}{wxstringprintfv}\\ -\helpref{operator \cinsert}{wxstringoperatorout} - - -\membersection{Memory management}\label{memoryinwxstring} - -These are "advanced" functions and they will be needed quite rarely. -\helpref{Alloc}{wxstringalloc} and \helpref{Shrink}{wxstringshrink} are only -interesting for optimization purposes. -\helpref{wxStringBuffer}{wxstringbuffer} -and \helpref{wxStringBufferLength}{wxstringbufferlength} classes may be very -useful when working with some external API which requires the caller to provide -a writable buffer. - -\helpref{Alloc}{wxstringalloc}\\ -\helpref{Shrink}{wxstringshrink}\\ -\helpref{wxStringBuffer}{wxstringbuffer}\\ -\helpref{wxStringBufferLength}{wxstringbufferlength} - - -\membersection{Miscellaneous}\label{miscellaneousinwxstring} - -Other string functions. - -\helpref{Trim}{wxstringtrim}\\ -\helpref{Truncate}{wxstringtruncate}\\ -\helpref{Pad}{wxstringpad} - - -\membersection{wxWidgets 1.xx compatibility functions}\label{backwardcompatibilityinwxstring} - -These functions are deprecated, please consider using new wxWidgets 2.0 -functions instead of them (or, even better, std::string compatible variants). - -% keep ordered alphabetically -\helpref{CompareTo}{wxstringcompareto}\\ -\helpref{Contains}{wxstringcontains}\\ -\helpref{First}{wxstringfirst}\\ -\helpref{Freq}{wxstringfreq}\\ -\helpref{Index}{wxstringindex}\\ -\helpref{IsAscii}{wxstringisascii}\\ -\helpref{IsNull}{wxstringisnull}\\ -\helpref{IsNumber}{wxstringisnumber}\\ -\helpref{IsWord}{wxstringisword}\\ -\helpref{Last}{wxstringlast}\\ -\helpref{Length}{wxstringlength}\\ -\helpref{LowerCase}{wxstringlowercase}\\ -\helpref{Remove}{wxstringremove}\\ -\helpref{Strip}{wxstringstrip}\\ -\helpref{SubString}{wxstringsubstring}\\ -\helpref{UpperCase}{wxstringuppercase} - - -\membersection{std::string compatibility functions}\label{wxstringat} - -The supported functions are only listed here, please see any STL reference for -their documentation. - -\begin{verbatim} - // take nLen chars starting at nPos - wxString(const wxString& str, size_t nPos, size_t nLen); - // take all characters from pStart to pEnd (poor man's iterators) - wxString(const void *pStart, const void *pEnd); - - // lib.string.capacity - // return the length of the string - size_t size() const; - // return the length of the string - size_t length() const; - // return the maximum size of the string - size_t max_size() const; - // resize the string, filling the space with c if c != 0 - void resize(size_t nSize, char ch = '\0'); - // delete the contents of the string - void clear(); - // returns true if the string is empty - bool empty() const; - - // lib.string.access - // return the character at position n - char at(size_t n) const; - // returns the writable character at position n - char& at(size_t n); - - // lib.string.modifiers - // append a string - wxString& append(const wxString& str); - // append elements str[pos], ..., str[pos+n] - wxString& append(const wxString& str, size_t pos, size_t n); - // append first n (or all if n == npos) characters of sz - wxString& append(const char *sz, size_t n = npos); - - // append n copies of ch - wxString& append(size_t n, char ch); - - // same as `this_string = str' - wxString& assign(const wxString& str); - // same as ` = str[pos..pos + n] - wxString& assign(const wxString& str, size_t pos, size_t n); - // same as `= first n (or all if n == npos) characters of sz' - wxString& assign(const char *sz, size_t n = npos); - // same as `= n copies of ch' - wxString& assign(size_t n, char ch); - - // insert another string - wxString& insert(size_t nPos, const wxString& str); - // insert n chars of str starting at nStart (in str) - wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n); - - // insert first n (or all if n == npos) characters of sz - wxString& insert(size_t nPos, const char *sz, size_t n = npos); - // insert n copies of ch - wxString& insert(size_t nPos, size_t n, char ch); - - // delete characters from nStart to nStart + nLen - wxString& erase(size_t nStart = 0, size_t nLen = npos); - - // replaces the substring of length nLen starting at nStart - wxString& replace(size_t nStart, size_t nLen, const char* sz); - // replaces the substring with nCount copies of ch - wxString& replace(size_t nStart, size_t nLen, size_t nCount, char ch); - // replaces a substring with another substring - wxString& replace(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2); - // replaces the substring with first nCount chars of sz - wxString& replace(size_t nStart, size_t nLen, - const char* sz, size_t nCount); - - // swap two strings - void swap(wxString& str); - - // All find() functions take the nStart argument which specifies the - // position to start the search on, the default value is 0. All functions - // return npos if there were no match. - - // find a substring - size_t find(const wxString& str, size_t nStart = 0) const; - - // find first n characters of sz - size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const; - - // find the first occurrence of character ch after nStart - size_t find(char ch, size_t nStart = 0) const; - - // rfind() family is exactly like find() but works right to left - - // as find, but from the end - size_t rfind(const wxString& str, size_t nStart = npos) const; - - // as find, but from the end - size_t rfind(const char* sz, size_t nStart = npos, - size_t n = npos) const; - // as find, but from the end - size_t rfind(char ch, size_t nStart = npos) const; - - // find first/last occurrence of any character in the set - - // - size_t find_first_of(const wxString& str, size_t nStart = 0) const; - // - size_t find_first_of(const char* sz, size_t nStart = 0) const; - // same as find(char, size_t) - size_t find_first_of(char c, size_t nStart = 0) const; - // - size_t find_last_of (const wxString& str, size_t nStart = npos) const; - // - size_t find_last_of (const char* s, size_t nStart = npos) const; - // same as rfind(char, size_t) - size_t find_last_of (char c, size_t nStart = npos) const; - - // find first/last occurrence of any character not in the set - - // - size_t find_first_not_of(const wxString& str, size_t nStart = 0) const; - // - size_t find_first_not_of(const char* s, size_t nStart = 0) const; - // - size_t find_first_not_of(char ch, size_t nStart = 0) const; - // - size_t find_last_not_of(const wxString& str, size_t nStart=npos) const; - // - size_t find_last_not_of(const char* s, size_t nStart = npos) const; - // - size_t find_last_not_of(char ch, size_t nStart = npos) const; - - // All compare functions return a negative, zero or positive value - // if the [sub]string is less, equal or greater than the compare() argument. - - // just like strcmp() - int compare(const wxString& str) const; - // comparison with a substring - int compare(size_t nStart, size_t nLen, const wxString& str) const; - // comparison of 2 substrings - int compare(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2) const; - // just like strcmp() - int compare(const char* sz) const; - // substring comparison with first nCount characters of sz - int compare(size_t nStart, size_t nLen, - const char* sz, size_t nCount = npos) const; - - // substring extraction - wxString substr(size_t nStart = 0, size_t nLen = npos) const; -\end{verbatim} - -%%%%% MEMBERS HERE %%%%% -\helponly{\insertatlevel{2}{ - -\wxheading{Members} - -}} - - -\membersection{wxString::wxString}\label{wxstringconstruct} - -\func{}{wxString}{\void} - -Default constructor. Initializes the string to {\tt ""} (empty string). - -\func{}{wxString}{\param{const wxString\&}{ x}} - -Copy constructor. - -\func{}{wxString}{\param{wxChar}{ ch}, \param{size\_t}{ n = 1}} - -Constructs a string of {\it n} copies of character {\it ch}. - -\func{}{wxString}{\param{const wxChar*}{ psz}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -Takes first {\it nLength} characters from the C string {\it psz}. -The default value of {\tt wxSTRING\_MAXLEN} means to take all the string. - -Note that this constructor may be used even if {\it psz} points to a buffer -with binary data (i.e. containing {\tt NUL} characters) as long as you provide -the correct value for {\it nLength}. However, the default form of it works -only with strings without intermediate {\tt NUL}s because it uses -{\tt strlen()} to calculate the effective length and it would not give correct -results otherwise. - -\func{}{wxString}{\param{const unsigned char*}{ psz}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -For compilers using unsigned char: takes first {\it nLength} characters from the C string {\it psz}. -The default value of {\tt wxSTRING\_MAXLEN} means take all the string. -For ANSI builds only (note the use of {\tt char} instead of {\tt wxChar}). - -\wxheading{Constructors with conversion} - -The following constructors allow you to construct wxString from a wide string -in ANSI build or from a C string in Unicode build. - -\func{}{wxString}{\param{const wchar\_t*}{ psz}, \param{const wxMBConv\&}{ conv}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -Initializes the string from first \arg{nLength} characters of wide string. -The default value of {\tt wxSTRING\_MAXLEN} means take all the string. -In ANSI build, \arg{conv}'s -\helpref{WC2MB}{wxmbconvwc2mb} method is called to -convert \arg{psz} to wide string. It is ignored in Unicode build. - -\func{}{wxString}{\param{const char*}{ psz}, \param{const wxMBConv\&}{ conv = wxConvLibc}, \param{size\_t}{ nLength = wxSTRING\_MAXLEN}} - -Initializes the string from first \arg{nLength} characters of C string. -The default value of {\tt wxSTRING\_MAXLEN} means take all the string. -In Unicode build, \arg{conv}'s -\helpref{MB2WC}{wxmbconvmb2wc} method is called to -convert \arg{psz} to wide string (the default converter uses current locale's -charset). It is ignored in ANSI build. - -\wxheading{See also} - -\helpref{wxMBConv classes}{mbconvclasses}, \helpref{mb\_str}{wxstringmbstr}, -\helpref{wc\_str}{wxstringwcstr} - - -\membersection{wxString::\destruct{wxString}}\label{wxstringdestruct} - -\func{}{\destruct{wxString}}{\void} - -String destructor. Note that this is not virtual, so wxString must not be inherited from. - - -\membersection{wxString::Alloc}\label{wxstringalloc} - -\func{void}{Alloc}{\param{size\_t}{ nLen}} - -Preallocate enough space for wxString to store {\it nLen} characters. This function -may be used to increase speed when the string is constructed by repeated -concatenation as in - -\begin{verbatim} - -// delete all vowels from the string -wxString DeleteAllVowels(const wxString& original) -{ - wxString result; - - size_t len = original.length(); - - result.Alloc(len); - - for ( size_t n = 0; n < len; n++ ) - { - if ( strchr("aeuio", tolower(original[n])) == NULL ) - result += original[n]; - } - - return result; -} - -\end{verbatim} - -because it will avoid the need to reallocate string memory many times (in case -of long strings). Note that it does not set the maximal length of a string - it -will still expand if more than {\it nLen} characters are stored in it. Also, it -does not truncate the existing string (use -\helpref{Truncate()}{wxstringtruncate} for this) even if its current length is -greater than {\it nLen} - - -\membersection{wxString::Append}\label{wxstringappend} - -\func{wxString\&}{Append}{\param{const wxChar*}{ psz}} - -Concatenates {\it psz} to this string, returning a reference to it. - -\func{wxString\&}{Append}{\param{wxChar}{ ch}, \param{int}{ count = 1}} - -Concatenates character {\it ch} to this string, {\it count} times, returning a reference -to it. - - -\membersection{wxString::AfterFirst}\label{wxstringafterfirst} - -\constfunc{wxString}{AfterFirst}{\param{wxChar}{ ch}} - -Gets all the characters after the first occurrence of {\it ch}. -Returns the empty string if {\it ch} is not found. - - -\membersection{wxString::AfterLast}\label{wxstringafterlast} - -\constfunc{wxString}{AfterLast}{\param{wxChar}{ ch}} - -Gets all the characters after the last occurrence of {\it ch}. -Returns the whole string if {\it ch} is not found. - - -\membersection{wxString::BeforeFirst}\label{wxstringbeforefirst} - -\constfunc{wxString}{BeforeFirst}{\param{wxChar}{ ch}} - -Gets all characters before the first occurrence of {\it ch}. -Returns the whole string if {\it ch} is not found. - - -\membersection{wxString::BeforeLast}\label{wxstringbeforelast} - -\constfunc{wxString}{BeforeLast}{\param{wxChar}{ ch}} - -Gets all characters before the last occurrence of {\it ch}. -Returns the empty string if {\it ch} is not found. - - -\membersection{wxString::c\_str}\label{wxstringcstr} - -\constfunc{const wxChar *}{c\_str}{\void} - -Returns a pointer to the string data ({\tt const char*} in ANSI build, -{\tt const wchar\_t*} in Unicode build). - -Note that the returned value is not convertible to {\tt char*} or -{\tt wchar\_t*}, use \helpref{char\_str}{wxstringcharstr} or -\helpref{wchar\_string}{wxstringwcharstr} if you need to pass string value -to a function expecting non-const pointer. - -\wxheading{See also} - -\helpref{mb\_str}{wxstringmbstr}, \helpref{wc\_str}{wxstringwcstr}, -\helpref{fn\_str}{wxstringfnstr}, \helpref{char\_str}{wxstringcharstr}, -\helpref{wchar\_string}{wxstringwcharstr} - -\membersection{wxString::char\_str}\label{wxstringcharstr} - -\constfunc{wxWritableCharBuffer}{char\_str}{\param{const wxMBConv\&}{ conv = wxConvLibc}} - -Returns an object with string data that is implicitly convertible to -{\tt char*} pointer. Note that any change to the returned buffer is lost and so -this function is only usable for passing strings to legacy libraries that -don't have const-correct API. Use \helpref{wxStringBuffer}{wxstringbuffer} if -you want to modify the string. - -\wxheading{See also} - -\helpref{mb\_str}{wxstringmbstr}, \helpref{wc\_str}{wxstringwcstr}, -\helpref{fn\_str}{wxstringfnstr}, \helpref{c\_str}{wxstringcstr}, -\helpref{wchar\_str}{wxstringwcharstr} - - -\membersection{wxString::Clear}\label{wxstringclear} - -\func{void}{Clear}{\void} - -Empties the string and frees memory occupied by it. - -See also: \helpref{Empty}{wxstringempty} - - -\membersection{wxString::Cmp}\label{wxstringcmp} - -\constfunc{int}{Cmp}{\param{const wxString\&}{ s}} - -\constfunc{int}{Cmp}{\param{const wxChar*}{ psz}} - -Case-sensitive comparison. - -Returns a positive value if the string is greater than the argument, zero if -it is equal to it or a negative value if it is less than the argument (same semantics -as the standard {\it strcmp()} function). - -See also \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas}. - - -\membersection{wxString::CmpNoCase}\label{wxstringcmpnocase} - -\constfunc{int}{CmpNoCase}{\param{const wxString\&}{ s}} - -\constfunc{int}{CmpNoCase}{\param{const wxChar*}{ psz}} - -Case-insensitive comparison. - -Returns a positive value if the string is greater than the argument, zero if -it is equal to it or a negative value if it is less than the argument (same semantics -as the standard {\it strcmp()} function). - -See also \helpref{Cmp}{wxstringcmp}, \helpref{IsSameAs}{wxstringissameas}. - - -\membersection{wxString::CompareTo}\label{wxstringcompareto} - -\begin{verbatim} -enum wxString::caseCompare {exact, ignoreCase}; -\end{verbatim} - -\constfunc{int}{CompareTo}{\param{const wxChar*}{ psz}, \param{caseCompare}{ cmp = exact}} - -Case-sensitive comparison. Returns 0 if equal, 1 if greater or -1 if less. - -This is a wxWidgets 1.xx compatibility function; use \helpref{Cmp}{wxstringcmp} instead. - - -\membersection{wxString::Contains}\label{wxstringcontains} - -\constfunc{bool}{Contains}{\param{const wxString\&}{ str}} - -Returns \true if target appears anywhere in wxString; else \false. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::Empty}\label{wxstringempty} - -\func{void}{Empty}{\void} - -Makes the string empty, but doesn't free memory occupied by the string. - -See also: \helpref{Clear()}{wxstringclear}. - - -\membersection{wxString::Find}\label{wxstringfind} - -\constfunc{int}{Find}{\param{wxUniChar}{ ch}, \param{bool}{ fromEnd = false}} - -Searches for the given character. Returns the starting index, or {\tt wxNOT\_FOUND} if not found. - -\constfunc{int}{Find}{\param{const wxString\&}{ sub}} - -Searches for the given string. Returns the starting index, or {\tt wxNOT\_FOUND} if not found. - - -\membersection{wxString::First}\label{wxstringfirst} - -\func{int}{First}{\param{wxChar}{ c}} - -\constfunc{int}{First}{\param{const wxChar*}{ psz}} - -\constfunc{int}{First}{\param{const wxString\&}{ str}} - -Same as \helpref{Find}{wxstringfind}. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::fn\_str}\label{wxstringfnstr} - -\constfunc{const wchar\_t*}{fn\_str}{\void} - -\constfunc{const char*}{fn\_str}{\void} - -\constfunc{const wxCharBuffer}{fn\_str}{\void} - -Returns string representation suitable for passing to OS' functions for -file handling. In ANSI build, this is same as \helpref{c\_str}{wxstringcstr}. -In Unicode build, returned value can be either wide character string -or C string in charset matching the {\tt wxConvFileName} object, depending on -the OS. - -\wxheading{See also} - -\helpref{wxMBConv}{wxmbconv}, -\helpref{wc\_str}{wxstringwcstr}, \helpref{mb\_str}{wxstringwcstr} - - -\membersection{wxString::Format}\label{wxstringformat} - -\func{static wxString}{Format}{\param{const wxChar }{*format}, \param{}{...}} - -This static function returns the string containing the result of calling -\helpref{Printf}{wxstringprintf} with the passed parameters on it. - -\wxheading{See also} - -\helpref{FormatV}{wxstringformatv}, \helpref{Printf}{wxstringprintf} - - -\membersection{wxString::FormatV}\label{wxstringformatv} - -\func{static wxString}{FormatV}{\param{const wxChar }{*format}, \param{va\_list }{argptr}} - -This static function returns the string containing the result of calling -\helpref{PrintfV}{wxstringprintfv} with the passed parameters on it. - -\wxheading{See also} - -\helpref{Format}{wxstringformat}, \helpref{PrintfV}{wxstringprintfv} - - -\membersection{wxString::Freq}\label{wxstringfreq} - -\constfunc{int}{Freq}{\param{wxChar }{ch}} - -Returns the number of occurrences of {\it ch} in the string. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - -\membersection{wxString::From8BitData}\label{wxstringfrom8bitdata} - -\func{static wxString }{From8BitData}{\param{const char*}{ buf}, \param{size\_t}{len}} - -\func{static wxString }{From8BitData}{\param{const char*}{ buf}} - -Converts given buffer of binary data from 8-bit string to wxString. In Unicode -build, the string is interpreted as being in ISO-8859-1 encoding. The version -without \arg{len} parameter takes NUL-terminated data. - -This is a convenience method useful when storing binary data in wxString. - -\newsince{2.8.4} - -\wxheading{See also} - -\helpref{To8BitData}{wxstringto8bitdata} - - -\membersection{wxString::FromAscii}\label{wxstringfromascii} - -\func{static wxString }{FromAscii}{\param{const char*}{ s}} - -\func{static wxString }{FromAscii}{\param{const unsigned char*}{ s}} - -\func{static wxString }{FromAscii}{\param{const char*}{ s}, \param{size\_t}{ len}} - -\func{static wxString }{FromAscii}{\param{const unsigned char*}{ s}, \param{size\_t}{ len}} - -\func{static wxString }{FromAscii}{\param{char}{ c}} - -Converts the string or character from an ASCII, 7-bit form -to the native wxString representation. Most useful when using -a Unicode build of wxWidgets (note the use of {\tt char} instead of {\tt wxChar}). -Use \helpref{wxString constructors}{wxstringconstruct} if you -need to convert from another charset. - - -\membersection{wxString::FromUTF8}\label{wxstringfromutf8} - -\func{static wxString }{FromUTF8}{\param{const char*}{ s}} - -\func{static wxString }{FromUTF8}{\param{const char*}{ s}, \param{size\_t}{ len}} - -Converts C string encoded in UTF-8 to wxString. - -Note that this method assumes that \arg{s} is a valid UTF-8 sequence and -doesn't do any validation in release builds, it's validity is only checked in -debug builds. - - -\membersection{wxString::GetChar}\label{wxstringgetchar} - -\constfunc{wxChar}{GetChar}{\param{size\_t}{ n}} - -Returns the character at position {\it n} (read-only). - - -\membersection{wxString::GetData}\label{wxstringgetdata} - -\constfunc{const wxChar*}{GetData}{\void} - -wxWidgets compatibility conversion. Returns a constant pointer to the data in the string. - - -\membersection{wxString::GetWritableChar}\label{wxstringgetwritablechar} - -\func{wxChar\&}{GetWritableChar}{\param{size\_t}{ n}} - -Returns a reference to the character at position {\it n}. - - -\membersection{wxString::GetWriteBuf}\label{wxstringgetwritebuf} - -\func{wxChar*}{GetWriteBuf}{\param{size\_t}{ len}} - -Returns a writable buffer of at least {\it len} bytes. -It returns a pointer to a new memory block, and the -existing data will not be copied. - -Call \helpref{wxString::UngetWriteBuf}{wxstringungetwritebuf} as soon as -possible to put the string back into a reasonable state. - -This method is deprecated, please use -\helpref{wxStringBuffer}{wxstringbuffer} or -\helpref{wxStringBufferLength}{wxstringbufferlength} instead. - - -\membersection{wxString::Index}\label{wxstringindex} - -\constfunc{size\_t}{Index}{\param{wxChar}{ ch}} - -\constfunc{size\_t}{Index}{\param{const wxChar*}{ sz}} - -Same as \helpref{wxString::Find}{wxstringfind}. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::IsAscii}\label{wxstringisascii} - -\constfunc{bool}{IsAscii}{\void} - -Returns \true if the string contains only ASCII characters. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::IsEmpty}\label{wxstringisempty} - -\constfunc{bool}{IsEmpty}{\void} - -Returns \true if the string is empty. - - -\membersection{wxString::IsNull}\label{wxstringisnull} - -\constfunc{bool}{IsNull}{\void} - -Returns \true if the string is empty (same as \helpref{IsEmpty}{wxstringisempty}). - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::IsNumber}\label{wxstringisnumber} - -\constfunc{bool}{IsNumber}{\void} - -Returns \true if the string is an integer (with possible sign). - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::IsSameAs}\label{wxstringissameas} - -\constfunc{bool}{IsSameAs}{\param{const wxChar*}{ psz}, \param{bool}{ caseSensitive = true}} - -Test for string equality, case-sensitive (default) or not. - -caseSensitive is \true by default (case matters). - -Returns \true if strings are equal, \false otherwise. - -See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase} - -\constfunc{bool}{IsSameAs}{\param{wxChar}{ c}, \param{bool}{ caseSensitive = true}} - -Test whether the string is equal to the single character {\it c}. The test is -case-sensitive if {\it caseSensitive} is \true (default) or not if it is \false. - -Returns \true if the string is equal to the character, \false otherwise. - -See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase} - - -\membersection{wxString::IsWord}\label{wxstringisword} - -\constfunc{bool}{IsWord}{\void} - -Returns \true if the string is a word. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::Last}\label{wxstringlast} - -\constfunc{wxChar}{Last}{\void} - -Returns the last character. - -\func{wxChar\&}{Last}{\void} - -Returns a reference to the last character (writable). - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::Left}\label{wxstringleft} - -\constfunc{wxString}{Left}{\param{size\_t}{ count}} - -Returns the first {\it count} characters of the string. - - -\membersection{wxString::Len}\label{wxstringlen} - -\constfunc{size\_t}{Len}{\void} - -Returns the length of the string. - - -\membersection{wxString::Length}\label{wxstringlength} - -\constfunc{size\_t}{Length}{\void} - -Returns the length of the string (same as Len). - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::Lower}\label{wxstringlower} - -\constfunc{wxString}{Lower}{\void} - -Returns this string converted to the lower case. - - -\membersection{wxString::LowerCase}\label{wxstringlowercase} - -\func{void}{LowerCase}{\void} - -Same as MakeLower. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::MakeLower}\label{wxstringmakelower} - -\func{wxString\&}{MakeLower}{\void} - -Converts all characters to lower case and returns the result. - - -\membersection{wxString::MakeUpper}\label{wxstringmakeupper} - -\func{wxString\&}{MakeUpper}{\void} - -Converts all characters to upper case and returns the result. - - -\membersection{wxString::Matches}\label{wxstringmatches} - -\constfunc{bool}{Matches}{\param{const wxString\&}{ mask}} - -Returns \true if the string contents matches a mask containing '*' and '?'. - - -\membersection{wxString::mb\_str}\label{wxstringmbstr} - -\constfunc{const char*}{mb\_str}{\param{const wxMBConv\&}{ conv = wxConvLibc}} - -\constfunc{const wxCharBuffer}{mb\_str}{\param{const wxMBConv\&}{ conv = wxConvLibc}} - -Returns multibyte (C string) representation of the string. -In Unicode build, converts using \arg{conv}'s \helpref{cWC2MB}{wxmbconvcwc2mb} -method and returns wxCharBuffer. In ANSI build, this function is same -as \helpref{c\_str}{wxstringcstr}. -The macro wxWX2MBbuf is defined as the correct return type (without const). - -\wxheading{See also} - -\helpref{wxMBConv}{wxmbconv}, -\helpref{c\_str}{wxstringcstr}, \helpref{wc\_str}{wxstringwcstr}, -\helpref{fn\_str}{wxstringfnstr}, \helpref{char\_str}{wxstringcharstr} - - -\membersection{wxString::Mid}\label{wxstringmid} - -\constfunc{wxString}{Mid}{\param{size\_t}{ first}, \param{size\_t}{ count = wxSTRING\_MAXLEN}} - -Returns a substring starting at {\it first}, with length {\it count}, or the rest of -the string if {\it count} is the default value. - - -\membersection{wxString::Pad}\label{wxstringpad} - -\func{wxString\&}{Pad}{\param{size\_t}{ count}, \param{wxChar}{ pad = ' '}, \param{bool}{ fromRight = true}} - -Adds {\it count} copies of {\it pad} to the beginning, or to the end of the string (the default). - -Removes spaces from the left or from the right (default). - - -\membersection{wxString::Prepend}\label{wxstringprepend} - -\func{wxString\&}{Prepend}{\param{const wxString\&}{ str}} - -Prepends {\it str} to this string, returning a reference to this string. - - -\membersection{wxString::Printf}\label{wxstringprintf} - -\func{int}{Printf}{\param{const wxChar* }{pszFormat}, \param{}{...}} - -Similar to the standard function {\it sprintf()}. Returns the number of -characters written, or an integer less than zero on error. - -Note that if {\tt wxUSE\_PRINTF\_POS\_PARAMS} is set to 1, then this function supports -Unix98-style positional parameters: - -\begin{verbatim} - wxString str; - - str.Printf(wxT("%d %d %d"), 1, 2, 3); - // str now contains "1 2 3" - - str.Printf(wxT("%2$d %3$d %1$d"), 1, 2, 3); - // str now contains "2 3 1" -\end{verbatim} - -{\bf NB:} This function will use a safe version of {\it vsprintf()} (usually called -{\it vsnprintf()}) whenever available to always allocate the buffer of correct -size. Unfortunately, this function is not available on all platforms and the -dangerous {\it vsprintf()} will be used then which may lead to buffer overflows. - - -\membersection{wxString::PrintfV}\label{wxstringprintfv} - -\func{int}{PrintfV}{\param{const wxChar* }{pszFormat}, \param{va\_list}{ argPtr}} - -Similar to vprintf. Returns the number of characters written, or an integer less than zero -on error. - - -\membersection{wxString::Remove}\label{wxstringremove} - -\func{wxString\&}{Remove}{\param{size\_t}{ pos}} - -Same as Truncate. Removes the portion from {\it pos} to the end of the string. - -\func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}} - -Removes {\it len} characters from the string, starting at {\it pos}. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::RemoveLast}\label{wxstringremovelast} - -\func{wxString\&}{RemoveLast}{\void} - -Removes the last character. - - -\membersection{wxString::Replace}\label{wxstringreplace} - -\func{size\_t}{Replace}{\param{const wxString\&}{ strOld}, \param{const wxString\&}{ strNew}, \param{bool}{ replaceAll = true}} - -Replace first (or all) occurrences of substring with another one. - -{\it replaceAll}: global replace (default), or only the first occurrence. - -Returns the number of replacements made. - - -\membersection{wxString::Right}\label{wxstringright} - -\constfunc{wxString}{Right}{\param{size\_t}{ count}} - -Returns the last {\it count} characters. - - -\membersection{wxString::SetChar}\label{wxstringsetchar} - -\func{void}{SetChar}{\param{size\_t}{ n}, \param{wxChar}{ch}} - -Sets the character at position {\it n}. - - -\membersection{wxString::Shrink}\label{wxstringshrink} - -\func{void}{Shrink}{\void} - -Minimizes the string's memory. This can be useful after a call to -\helpref{Alloc()}{wxstringalloc} if too much memory were preallocated. - - -\membersection{wxString::StartsWith}\label{wxstringstartswith} - -\constfunc{bool}{StartsWith}{\param{const wxString\& }{prefix}, \param{wxString }{*rest = NULL}} - -This function can be used to test if the string starts with the specified -{\it prefix}. If it does, the function will return \true and put the rest -of the string (i.e. after the prefix) into {\it rest} string if it is not -{\tt NULL}. Otherwise, the function returns \false and doesn't modify the -{\it rest}. - - -\membersection{wxString::EndsWith}\label{wxstringendswith} - -\constfunc{bool}{EndsWith}{\param{const wxString\& }{suffix}, \param{wxString }{*rest = NULL}} - -This function can be used to test if the string ends with the specified -{\it suffix}. If it does, the function will return \true and put the -beginning of the string before the suffix into {\it rest} string if it is not -{\tt NULL}. Otherwise, the function returns \false and doesn't -modify the {\it rest}. - - -\membersection{wxString::Strip}\label{wxstringstrip} - -\begin{verbatim} -enum wxString::stripType {leading = 0x1, trailing = 0x2, both = 0x3}; -\end{verbatim} - -\constfunc{wxString}{Strip}{\param{stripType}{ s = trailing}} - -Strip characters at the front and/or end. The same as Trim except that it -doesn't change this string. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::SubString}\label{wxstringsubstring} - -\constfunc{wxString}{SubString}{\param{size\_t}{ from}, \param{size\_t}{ to}} - -Returns the part of the string between the indices {\it from} and {\it to} -inclusive. - -This is a wxWidgets 1.xx compatibility function, use \helpref{Mid}{wxstringmid} -instead (but note that parameters have different meaning). - - -\membersection{wxString::To8BitData}\label{wxstringto8bitdata} - -\constfunc{const char*}{To8BitData}{\void} - -Converts the string to an 8-bit string (ANSI builds only). - -\constfunc{const wxCharBuffer}{To8BitData}{\void} - -Converts the string to an 8-bit string in ISO-8859-1 encoding in the form of -a wxCharBuffer (Unicode builds only). - -This is a convenience method useful when storing binary data in wxString. - -\newsince{2.8.4} - -\wxheading{See also} - -\helpref{From8BitData}{wxstringfrom8bitdata} - - -\membersection{wxString::ToAscii}\label{wxstringtoascii} - -\constfunc{const char*}{ToAscii}{\void} - -\constfunc{const wxCharBuffer}{ToAscii}{\void} - -Converts the string to an ASCII, 7-bit string in the form of -a wxCharBuffer (Unicode builds only) or a C string (ANSI builds). - -Note that this conversion only works if the string contains only ASCII -characters. The \helpref{mb\_str}{wxstringmbstr} method provides more -powerful means of converting wxString to C string. - - -\membersection{wxString::ToDouble}\label{wxstringtodouble} - -\constfunc{bool}{ToDouble}{\param{double}{ *val}} - -Attempts to convert the string to a floating point number. Returns \true on -success (the number is stored in the location pointed to by \arg{val}) or \false -if the string does not represent such number (the value of \arg{val} is not -modified in this case). - -\wxheading{See also} - -\helpref{wxString::ToLong}{wxstringtolong},\\ -\helpref{wxString::ToULong}{wxstringtoulong} - - -\membersection{wxString::ToLong}\label{wxstringtolong} - -\constfunc{bool}{ToLong}{\param{long}{ *val}, \param{int }{base = $10$}} - -Attempts to convert the string to a signed integer in base {\it base}. Returns -\true on success in which case the number is stored in the location -pointed to by \arg{val} or \false if the string does not represent a -valid number in the given base (the value of \arg{val} is not modified -in this case). - -The value of {\it base} must be comprised between $2$ and $36$, inclusive, or -be a special value $0$ which means that the usual rules of {\tt C} numbers are -applied: if the number starts with {\tt 0x} it is considered to be in base -$16$, if it starts with {\tt 0} - in base $8$ and in base $10$ otherwise. Note -that you may not want to specify the base $0$ if you are parsing the numbers -which may have leading zeroes as they can yield unexpected (to the user not -familiar with C) results. - -\wxheading{See also} - -\helpref{wxString::ToDouble}{wxstringtodouble},\\ -\helpref{wxString::ToULong}{wxstringtoulong} - - -\membersection{wxString::ToLongLong}\label{wxstringtolonglong} - -\constfunc{bool}{ToLongLong}{\param{wxLongLong\_t}{ *val}, \param{int }{base = $10$}} - -This is exactly the same as \helpref{ToLong}{wxstringtolong} but works with 64 -bit integer numbers. - -Notice that currently it doesn't work (always returns \false) if parsing of 64 -bit numbers is not supported by the underlying C run-time library. Compilers -with C99 support and Microsoft Visual C++ version 7 and higher do support this. - -\wxheading{See also} - -\helpref{wxString::ToLong}{wxstringtolong},\\ -\helpref{wxString::ToULongLong}{wxstringtoulonglong} - - -\membersection{wxString::ToULong}\label{wxstringtoulong} - -\constfunc{bool}{ToULong}{\param{unsigned long}{ *val}, \param{int }{base = $10$}} - -Attempts to convert the string to an unsigned integer in base {\it base}. -Returns \true on success in which case the number is stored in the -location pointed to by \arg{val} or \false if the string does not -represent a valid number in the given base (the value of \arg{val} is not -modified in this case). Please notice that this function -behaves in the same way as the standard \texttt{strtoul()} and so it simply -converts negative numbers to unsigned representation instead of rejecting them -(e.g. $-1$ is returned as \texttt{ULONG\_MAX}). - -See \helpref{wxString::ToLong}{wxstringtolong} for the more detailed -description of the {\it base} parameter. - -\wxheading{See also} - -\helpref{wxString::ToDouble}{wxstringtodouble},\\ -\helpref{wxString::ToLong}{wxstringtolong} - - -\membersection{wxString::ToULongLong}\label{wxstringtoulonglong} - -\constfunc{bool}{ToULongLong}{\param{wxULongLong\_t}{ *val}, \param{int }{base = $10$}} - -This is exactly the same as \helpref{ToULong}{wxstringtoulong} but works with 64 -bit integer numbers. - -Please see \helpref{ToLongLong}{wxstringtolonglong} for additional remarks. - - -\membersection{wxString::ToUTF8}\label{wxstringtoutf8} - -\constfunc{const char*}{ToUTF8}{\void} - -\constfunc{const wxCharBuffer}{ToUF8}{\void} - -Same as \helpref{utf8\_str}{wxstringutf8str}. - - -\membersection{wxString::Trim}\label{wxstringtrim} - -\func{wxString\&}{Trim}{\param{bool}{ fromRight = true}} - -Removes white-space (space, tabs, form feed, newline and carriage return) from -the left or from the right end of the string (right is default). - - -\membersection{wxString::Truncate}\label{wxstringtruncate} - -\func{wxString\&}{Truncate}{\param{size\_t}{ len}} - -Truncate the string to the given length. - - -\membersection{wxString::UngetWriteBuf}\label{wxstringungetwritebuf} - -\func{void}{UngetWriteBuf}{\void} - -\func{void}{UngetWriteBuf}{\param{size\_t }{len}} - -Puts the string back into a reasonable state (in which it can be used -normally), after -\rtfsp\helpref{wxString::GetWriteBuf}{wxstringgetwritebuf} was called. - -The version of the function without the {\it len} parameter will calculate the -new string length itself assuming that the string is terminated by the first -{\tt NUL} character in it while the second one will use the specified length -and thus is the only version which should be used with the strings with -embedded {\tt NUL}s (it is also slightly more efficient as {\tt strlen()} -doesn't have to be called). - -This method is deprecated, please use -\helpref{wxStringBuffer}{wxstringbuffer} or -\helpref{wxStringBufferLength}{wxstringbufferlength} instead. - - -\membersection{wxString::Upper}\label{wxstringupper} - -\constfunc{wxString}{Upper}{\void} - -Returns this string converted to upper case. - - -\membersection{wxString::UpperCase}\label{wxstringuppercase} - -\func{void}{UpperCase}{\void} - -The same as MakeUpper. - -This is a wxWidgets 1.xx compatibility function; you should not use it in new code. - - -\membersection{wxString::utf8\_str}\label{wxstringutf8str} - -\constfunc{const char*}{utf8\_str}{\void} - -\constfunc{const wxCharBuffer}{utf8\_str}{\void} - -Converts the strings contents to UTF-8 and returns it either as a temporary -wxCharBuffer object or as a pointer to the internal string contents in -UTF-8 build. -% FIXME-UTF8: link to a topic explaining UTF-8 build here - - -\membersection{wxString::wc\_str}\label{wxstringwcstr} - -\constfunc{const wchar\_t*}{wc\_str}{\param{const wxMBConv\&}{ conv}} - -\constfunc{const wxWCharBuffer}{wc\_str}{\param{const wxMBConv\&}{ conv}} - -Returns wide character representation of the string. -In ANSI build, converts using \arg{conv}'s \helpref{cMB2WC}{wxmbconvcmb2wc} -method and returns wxWCharBuffer. In Unicode build, this function is same -as \helpref{c\_str}{wxstringcstr}. -The macro wxWX2WCbuf is defined as the correct return type (without const). - -\wxheading{See also} - -\helpref{wxMBConv}{wxmbconv}, -\helpref{c\_str}{wxstringcstr}, \helpref{mb\_str}{wxstringwcstr}, -\helpref{fn\_str}{wxstringfnstr}, \helpref{wchar\_str}{wxstringwcharstr} - -\membersection{wxString::wchar\_str}\label{wxstringwcharstr} - -\constfunc{wxWritableWCharBuffer}{wchar\_str}{\void} - -Returns an object with string data that is implicitly convertible to -{\tt char*} pointer. Note that changes to the returned buffer may or may -not be lost (depending on the build) and so this function is only usable for -passing strings to legacy libraries that don't have const-correct API. Use -\helpref{wxStringBuffer}{wxstringbuffer} if you want to modify the string. - -\wxheading{See also} - -\helpref{mb\_str}{wxstringmbstr}, \helpref{wc\_str}{wxstringwcstr}, -\helpref{fn\_str}{wxstringfnstr}, \helpref{c\_str}{wxstringcstr}, -\helpref{char\_str}{wxstringcharstr} - - -\membersection{wxString::operator!}\label{wxstringoperatornot} - -\constfunc{bool}{operator!}{\void} - -Empty string is \false, so !string will only return \true if the string is empty. -This allows the tests for NULLness of a {\it const wxChar *} pointer and emptiness -of the string to look the same in the code and makes it easier to port old code -to wxString. - -See also \helpref{IsEmpty()}{wxstringisempty}. - - -\membersection{wxString::operator $=$}\label{wxstringoperatorassign} - -\func{wxString\&}{operator $=$}{\param{const wxString\&}{ str}} - -\func{wxString\&}{operator $=$}{\param{const wxChar*}{ psz}} - -\func{wxString\&}{operator $=$}{\param{wxChar}{ c}} - -Assignment: the effect of each operation is the same as for the corresponding -constructor (see \helpref{wxString constructors}{wxstringconstruct}). - - -\membersection{wxString::operator $+$}\label{wxstringoperatorplus} - -Concatenation: all these operators return a new string equal to the -concatenation of the operands. - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ y}} - -\func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{wxChar}{ y}} - -\func{wxString}{operator $+$}{\param{const wxChar*}{ x}, \param{const wxString\&}{ y}} - - -\membersection{wxString::operator $+=$}\label{wxstringplusequal} - -\func{void}{operator $+=$}{\param{const wxString\&}{ str}} - -\func{void}{operator $+=$}{\param{const wxChar*}{ psz}} - -\func{void}{operator $+=$}{\param{wxChar}{ c}} - -Concatenation in place: the argument is appended to the string. - - -\membersection{wxString::operator []}\label{wxstringoperatorbracket} - -\func{wxChar\&}{operator []}{\param{size\_t}{ i}} - -\constfunc{wxChar}{operator []}{\param{size\_t}{ i}} - -\func{wxChar\&}{operator []}{\param{int}{ i}} - -\constfunc{wxChar}{operator []}{\param{int}{ i}} - -Element extraction. - - -\membersection{wxString::operator ()}\label{wxstringoperatorparenth} - -\func{wxString}{operator ()}{\param{size\_t}{ start}, \param{size\_t}{ len}} - -Same as Mid (substring extraction). - - -\membersection{wxString::operator \cinsert}\label{wxstringoperatorout} - -\func{wxString\&}{operator \cinsert}{\param{const wxString\&}{ str}} - -\func{wxString\&}{operator \cinsert}{\param{const wxChar*}{ psz}} - -\func{wxString\&}{operator \cinsert}{\param{wxChar }{ch}} - -Same as $+=$. - -\func{wxString\&}{operator \cinsert}{\param{int}{ i}} - -\func{wxString\&}{operator \cinsert}{\param{float}{ f}} - -\func{wxString\&}{operator \cinsert}{\param{double}{ d}} - -These functions work as C++ stream insertion operators: they insert the given -value into the string. Precision or format cannot be set using them, you can use -\helpref{Printf}{wxstringprintf} for this. - - -\membersection{wxString::operator \cextract}\label{wxstringoperatorin} - -\func{friend istream\&}{operator \cextract}{\param{istream\&}{ is}, \param{wxString\&}{ str}} - -Extraction from a stream. - - -\membersection{wxString::operator const wxChar*}\label{wxstringoperatorconstcharpt} - -\constfunc{}{operator const wxChar*}{\void} - -Implicit conversion to a C string. - - -\membersection{Comparison operators}\label{wxstringcomparison} - -\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $==$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $!=$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $>$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $>=$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $<$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}} - -\func{bool}{operator $<=$}{\param{const wxString\&}{ x}, \param{const wxChar*}{ t}} - -\wxheading{Remarks} - -These comparisons are case-sensitive. - - -\section{\class{wxStringBuffer}}\label{wxstringbuffer} - -This tiny class allows to conveniently access the \helpref{wxString}{wxstring} -internal buffer as a writable pointer without any risk of forgetting to restore -the string to the usable state later. - -For example, assuming you have a low-level OS function called -{\tt GetMeaningOfLifeAsString(char *)} returning the value in the provided -buffer (which must be writable, of course) you might call it like this: - -\begin{verbatim} - wxString theAnswer; - GetMeaningOfLifeAsString(wxStringBuffer(theAnswer, 1024)); - if ( theAnswer != "42" ) - { - wxLogError("Something is very wrong!"); - } -\end{verbatim} - -Note that the exact usage of this depends on whether on not wxUSE\_STL is enabled. If -wxUSE\_STL is enabled, wxStringBuffer creates a separate empty character buffer, and -if wxUSE\_STL is disabled, it uses GetWriteBuf() from wxString, keeping the same buffer -wxString uses intact. In other words, relying on wxStringBuffer containing the old -wxString data is probably not a good idea if you want to build your program in both -with and without wxUSE\_STL. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStringBuffer::wxStringBuffer}\label{wxstringbufferctor} - -\func{}{wxStringBuffer}{\param{const wxString\& }{str}, \param{size\_t }{len}} - -Constructs a writable string buffer object associated with the given string -and containing enough space for at least {\it len} characters. Basically, this -is equivalent to calling \helpref{GetWriteBuf}{wxstringgetwritebuf} and -saving the result. - - -\membersection{wxStringBuffer::\destruct{wxStringBuffer}}\label{wxstringbufferdtor} - -\func{}{\destruct{wxStringBuffer}}{\void} - -Restores the string passed to the constructor to the usable state by calling -\helpref{UngetWriteBuf}{wxstringungetwritebuf} on it. - - -\membersection{wxStringBuffer::operator wxChar *}\label{wxstringbufferwxchar} - -\func{wxChar *}{operator wxChar *}{\void} - -Returns the writable pointer to a buffer of the size at least equal to the -length specified in the constructor. - - - -\section{\class{wxStringBufferLength}}\label{wxstringbufferlength} - -This tiny class allows to conveniently access the \helpref{wxString}{wxstring} -internal buffer as a writable pointer without any risk of forgetting to restore -the string to the usable state later, and allows the user to set the internal -length of the string. - -For example, assuming you have a low-level OS function called -{\tt int GetMeaningOfLifeAsString(char *)} copying the value in the provided -buffer (which must be writable, of course), and returning the actual length -of the string, you might call it like this: - -\begin{verbatim} - wxString theAnswer; - wxStringBuffer theAnswerBuffer(theAnswer, 1024); - int nLength = GetMeaningOfLifeAsString(theAnswerBuffer); - theAnswerBuffer.SetLength(nLength); - if ( theAnswer != "42" ) - { - wxLogError("Something is very wrong!"); - } -\end{verbatim} - -Note that the exact usage of this depends on whether on not wxUSE\_STL is enabled. If -wxUSE\_STL is enabled, wxStringBuffer creates a separate empty character buffer, and -if wxUSE\_STL is disabled, it uses GetWriteBuf() from wxString, keeping the same buffer -wxString uses intact. In other words, relying on wxStringBuffer containing the old -wxString data is probably not a good idea if you want to build your program in both -with and without wxUSE\_STL. - -Note that SetLength {\tt must} be called before wxStringBufferLength destructs. - -\wxheading{Derived from} - -None - -\wxheading{Include files} - - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxStringBufferLength::wxStringBufferLength}\label{wxstringbufferlengthctor} - -\func{}{wxStringBufferLength}{\param{const wxString\& }{str}, \param{size\_t }{len}} - -Constructs a writable string buffer object associated with the given string -and containing enough space for at least {\it len} characters. Basically, this -is equivalent to calling \helpref{GetWriteBuf}{wxstringgetwritebuf} and -saving the result. - - -\membersection{wxStringBufferLength::\destruct{wxStringBufferLength}}\label{wxstringbufferlengthdtor} - -\func{}{\destruct{wxStringBufferLength}}{\void} - -Restores the string passed to the constructor to the usable state by calling -\helpref{UngetWriteBuf}{wxstringungetwritebuf} on it. - - -\membersection{wxStringBufferLength::SetLength}\label{wxstringbufferlengthsetlength} - -\func{void}{SetLength}{\param{size\_t }{nLength}} - -Sets the internal length of the string referred to by wxStringBufferLength to -{\it nLength} characters. - -Must be called before wxStringBufferLength destructs. - - -\membersection{wxStringBufferLength::operator wxChar *}\label{wxstringbufferlengthwxchar} - -\func{wxChar *}{operator wxChar *}{\void} - -Returns the writable pointer to a buffer of the size at least equal to the -length specified in the constructor. - - diff --git a/docs/latex/wx/wxtab1.bmp b/docs/latex/wx/wxtab1.bmp deleted file mode 100644 index 754c02827ee8b93a4da81e845fb1de20704f98c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73718 zcmeI5&61-!5{0=D6X9je8_af|W1_bc^&}JF)wp+EyS}?SZ`AjZyyzHu=X*}-2MGiu zwk$(Ms%#@fB7GcEAc3I%_3!`x7B|Fo5MWD)yP4CKru4HF=uLx9mvFTk|(3R|tt#{~T9<84iI+;h~rZdrF zjC-Y8J-m3Rm!|i_Vk$B)y%i!=G%>v^imAxT^j3&e(ZuwwD5fGS(_0}@MHADzqL_-T zOmBrq6-`Xdv<(PWj{Hv-lt>w$+P{?)s81^>!s;!dM{T=S$eheWm`Wny-jaTy|m+ZTR$a%TwBvVM zKQX;cZ%w_l<9Ay>F}+Q1O}(_^cUwO(y-jaTy|m+ZTR$a%TYO!^a?2Kgn;(EnWD7OMakLxvm~c~U>g|cIoZS{0 zj(beG=@yau`iB34xRJc!xS7EH=KZ7#df(+I?Z*3DuMqXxU9WI)sh6mfV0X21bG>ZG z?Hm};K5X=iu$r5;^b;wO+z$OH+__*6&NbBgLDGD6<3_Wp>3AQOcf|3r^cx%Z=$)lF zE)4(Im?s*vMliv_kf$GMVyg%LgJZ;%|vI$S!s#!Y=x+A5VUMpp-IA1I=C?* zw|tl+vmLfUQqa`J(j?t;J8*aKZ`iJaKMvfYx964QJ9=M|!caoT3dl;G?2cZwe3IH9qv=Uu9xy8gcWLk2gNbG#zmHmVbu7D11*IW#n$8Hf9;@etp z7RY+(swbkXg%CT`OMo#2WU}OKNJpYHCb=-w%Ws!f&o_X3+LUtYiG*HBZk_WJmzw=X zbNETK=Sk%MyJr}J7*htQ33pf&rcy5t`uxs8&+|uZpB$B&)uKte%3Z0c``h4o5_vwg z`VYP3p%5Ptn0wCaq1>OhvT;98+fvS^cS)7!rLF3HzFbad3gPd>&t8Ip`+PcGPN(zb zjL%-Mhf61O$H6n09XFT{rMKtq=q$Sl>wZGPkLV}hK6k8{2dkG5dsm+ATy@<~Ty5M> zjZ|{)rY7bft9s|=yO}fYw!6agHoY|pn4f4=s%K+**V9sylj*Hdsh*ALT~A9*PNug; zrFu52ddJ&ORU;2?z$*9mhl@xvIP7~W+l@1=>L0z_x%g;spX8%1cTcY|Zi;|!alB7W z!TTPi98+&xi$0{E;5y?Gxp4$<#f{-77>L1cpOrOiW&6CU4<#yF`xMh@PX;51kZ83GGUOvZ97D=`(+`>J% zIla}tx1lXse`@X%#sPGv^ZA?{KX@G4yWZgDD26k}GGyT?+#J=r9#noJ+=by6PvOqT z%+76rn!D?!!$vl8%lK$M#eha3MGen3aKJhf_fF8z5 z`zHt7fOQUR7ZVyT2NidvuS}Octo(W8qjgpy4+?T@GqK$q6$B0ic@U)q6 z%VP|In={Knt#<`(K9&PzAt@D3xxLD%pR62IRNUFYFPYh>H&OVg0x4N95$7`u@(3&w zATphYADS$Nw%mjnfI=)DJdm&=bKI7e-0qALXooGxxQE4&u@q^^T`K?Hw9m$^(qUu0 zROP8On$ugg`mdyYsOitEGSwNCx$z8@DkR6meQ+m0%IGKN=IK(NYIWyKokPr6&G?B@ zx0iZp74p>&>no) zPs9x-*9Uc%H8-Ajq+YuAAXx@gBdq3 z9upcDtkOz})a~4Ibwn=uY@(bRE4Vw)jjQ%}l|+hu4>ucwQ;f|i3htn{^OM0#?$O(| z2P@oD>-*Aph|Et!?^rJ%&>LM=*B-2(IP@-zKgqb^)tPq;if{K5cjd26y@Vf(+us>C zkAZ{AL+ma;+3d(OD=7SX(03fWL+=@k&B+SxRN>vUPZZo^m52F_dT$nWVTGCTCu#c| zj|Hb;z}|Y^S-{x5s27Y$|1#xHKu6JSdaJJ7Z8Vzn(^LX%;#PLGH=5;2o>kblP1j@d z5}q`t++9iOtJkX%+dV~%yY1fiw0fi6DWh+2`bA3)zj!?dTWlEAa$*#%pjU)dz0rJ= z(KozdEp<^!`L|X(_XR(mv?8aaAC4pV{g2euC(D@K&Qu zP;qngP2?7lPbYZ2dsdnP-sm)!NHs=rj2l8F{}O^E%y~M?za2G^ftXU3Yed0RH|oVde_rZlauMKQK_Dd>0M7tO-`n_ zMx}Z-rguFpH948y8kOqVnBMiY)Z|puTX(w!R=uVO*r+p98y2~>I3F)Gq+$`i@ct7n zp9{tvl+i1}HB4{O4OePMVOd68Q4jXZhQSKcDD~X?eG=PAv|I|VmPZc1O4)G8FJ3NP zGmNX~xFHCh_Z`z*Mx}7*6t%-Jw3xq(L_;j$%`9B|$8~ewD3bdDxCh`vH1zYd7sK%` zRB_Awh9UD%$b=g=O>j{k&yUY>%Pk^;yL%O|BRB5Xg)B$hVh>wxVIEZ6SV_?HRpDfP zmO|iVZe%3P!i{VGfqPExV9&MkpykHSkD13D?%?(}wJx~L0#~6I;Kc;tZpK6jzT#bc z>Td38dQ)Z5T$GpnIPWJ^S@zA{+}Q9*Z7cc7a=i@u-QCmTEiKVw*p;I_NPE^xzF$8N zDnD^MQspOk?qM$ABp%@xjZ%W)Wa(Z0%{%k)mRexJbX>~xgyW5)q1$H(1pRwHM^`YH zC##6LO7A4&EE;jL)WXaY3|UHqxAtHzy6GMCh%QpET@|uUrj7L0_VT{>3ENT>FL~32 z?>e*F?K_K$qWgL&2)+C+|7dKOgDXI7tu_pK8#k30!rt`W=8gTZA&W76EoL^Sb-Aj9Z#X94Cp-xI>y5VuQtq z4cW1jnIV?4DeL-~U2eLlci_e#%6W$!Jg2bh6Joaw z9h6ZixVAuB7|K+Mmi6X7cig_K$GKtCGaO!7kdCg{D7YzjZZ=W^0?<$B z;hbiQuXDTJW$5a$&czHeZti>vqo|ie5Dy&fmNB=lm#&`~OO?nfH>?KGe4F#?CiODU zJkDhsICcMMm*xuH;4bGLQnOM*VrlvW zLl!fycL`!hdjd{B zjMd!9ZKMbkagf4p1{?X(*^o|0G#hb?1k8@B5I+$la=RXF6z^?ue9x!7y}NX)tVLG#$8Q>A;Oy$L-tYI&SIeWF%73fFu3~QC7KOAvZ-Gw~G#L z;v5PE31#9Zgua6t`*O`ss5i6r9nHM^IBcMJ5IS|iLl{j2aeDjCCAi^6;vL>k;48k5 ztJ9l4h%Clo!0~#cLoZu6zWOs55>ob_tC5TXEoSVvy#zS;@i{(ume1EqU^`K^j@2_7D7v7D#$vz9Oz1pPr?e?tbe*th(EC-~xLky;f5Huo z1GmEudUF~UAx=l9!K?h67k^Uj_uEf0W%W}0gjJI1zFvY^QeMS9)tmlIw{{`;x6H*< z(K?v4pBDTZ5L50T>VCMh;|Usi)NaDfWLc7MJJa@3ONry-_lqz#7kgB0-vhXY(=HB=U+Z~wy!T!#Ux{Yd-UtPBY`R+jIy1xKLR^rhB diff --git a/docs/latex/wx/wxtab1.eps b/docs/latex/wx/wxtab1.eps deleted file mode 100644 index eff7361042..0000000000 --- a/docs/latex/wx/wxtab1.eps +++ /dev/null @@ -1,1086 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: wxtab1.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 124 196 489 596 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -124 196 translate - -% size of image (on paper, in 1/72inch coords) -365 400 scale - -% define 'colorimage' if it isn't defined -% ('colortogray' and 'mergeprocs' come from xwd2ps -% via xgrab) -/colorimage where % do we know about 'colorimage'? - { pop } % yes: pop off the 'dict' returned - { % no: define one - /colortogray { % define an RGB->I function - /rgbdata exch store % call input 'rgbdata' - rgbdata length 3 idiv - /npixls exch store - /rgbindx 0 store - /grays npixls string store % str to hold the result - 0 1 npixls 1 sub { - grays exch - rgbdata rgbindx get 20 mul % Red - rgbdata rgbindx 1 add get 32 mul % Green - rgbdata rgbindx 2 add get 12 mul % Blue - add add 64 idiv % I = .5G + .31R + .18B - put - /rgbindx rgbindx 3 add store - } for - grays - } bind def - - % Utility procedure for colorimage operator. - % This procedure takes two procedures off the - % stack and merges them into a single procedure. - - /mergeprocs { % def - dup length - 3 -1 roll - dup - length - dup - 5 1 roll - 3 -1 roll - add - array cvx - dup - 3 -1 roll - 0 exch - putinterval - dup - 4 2 roll - putinterval - } bind def - - /colorimage { % def - pop pop % remove 'false 3' operands - {colortogray} mergeprocs - image - } bind def - } ifelse % end of 'false' case - - - -% define the colormap -/cmap 15 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 0000bf c0c0c0 808080 ffffff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in color map - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - % and put it in position i*3 in block - block exch 3 mul rgbval putinterval - } for - block 0 bcount 127 sub 3 mul getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in colormap - /rgbval cmap buffer 0 get 3 mul 3 getinterval store - - 0 1 bcount { block exch 3 mul rgbval putinterval } for - - block 0 bcount 1 add 3 mul getinterval - } ifelse - } % end of proc - false 3 colorimage -} bind def - - -365 400 8 % dimensions of data -[365 0 0 -400 0 400] % mapping matrix -rlecmapimage - -7f037f036b030000 -8103047f047f046804810300 -83030402037f037f0364038304020300 -8403040203017f017f0163018304020300 -8403040203017f017f0163018304020300 -8403040203017f017f0152010e0485000104020300 -8403040203017f017f0152018104020b028603000104020300 -840304020301810104040408010104040101040f01010404010404030101040701010412 -0104047f0175018104020b028603000104020300 -840304020301020101040a010104040101040f01010404010104010101040c0101041201 -0104010101047f017401810402010201000302010001028603000104020300 -840304020301020101040a010104040101040f01010404010104020101040b0101041201 -0104010101047f017401810402020201000102010002028603000104020300 -840304020301020101040401030401010404010104040201030402010404040101040201 -010401010104010103040101010401010304020104040401010401010104020103040101 -01048101048104017f0165018104020302030003028603000104020300 -840304020301020101040701010481010481040181010482040104810401810104820401 -048104018101048204010481040181010481040103010104020101040101010404010104 -810104820401048104018101048204010481040181010481040103010404020101040101 -0104810104820401048104017f0165018104020402010004028603000104020300 -840304020301020101040401040481010481040181010482040104810401810104820401 -040404810104810401810104810401030101040201010401010104010104048101048204 -010481040181010482040104810401810104810401030101040101010401010104010101 -04010102047f0167018104020302030003028603000104020300 -840304020301020101040301010401010104810104810401810104820401048104018101 -048204010481040103010104010101040401010402010104010101048101048104018101 -048204010482040104810401810104820401048104018101048104010301010401010104 -0101010401010104010102047f0167018104020202010001020100020286030001040203 -00 -840304020301020101040301010401010104810104810401810104820401048104018101 -048204010481040181010482040104810401810104810401030101040101010402010104 -810104810401810104820401048204010481040181010482040104810401810104810401 -03010104010101040101010401010104810104820401048104017f016501810402010201 -000302010001028603000104020300 -840304020301020101040401040481010403040101040402010304020104040401040403 -010104010104048101048104018101040204020104040401040403010304010101048101 -048104017f0165018104020b028603000104020300 -840304020301500101047f017f018104020b028603000104020300 -8403040203014c0104047f017f01820104030c0385000104020300 -8403040203017f017f0152010f00840104020300 -8403040203017f017f0163018304020300 -8403040203017f017f0163018304020300 -83030402047f047f04650482020300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -8203040218024f04820302044e04820302044e04820302044e048103020602810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104021e0203000102810002260283030004021502020008028100020402 -81000205028100021a028303000402110281000210028100020f02810002140283030004 -020602810002020281000215028100020b02810002030281000207028100020902820300 -020502810300 -8203040218028104021e0281000201028100022802830300040214028100020102810002 -06028100020c028100021a028303000402100283000200020f028100020f028100021402 -83030004020602810002020281000223028100020d028100020902820300020502810300 - -8203040218028104021e0281000201028300020002810200830002000220028303000402 -130281000203028100028102000100810200010086020002000200028102000100010282 -000200810002170283030004021002830002000202020200010283000200028102008500 -020002000201028100028102000100010285000200020002820200021102830300040206 -028100020202830002000201028400020002000200010282000200020001028200020002 -000202010085020002000200810002860200020002000281020083000200020902820300 -020502810300 -8203040218028104021e0281000201028500020002000281020081000220028303000402 -130281000203028300020002010283000200028102008100028402000200020102820002 -008100028202000216028303000402100283000200020102810002010282000200810002 -820200028102008300020002010283000200020102820002008100028402000200021202 -830300040206020500820200020102820002008300020002830200020083000200028602 -000200020002010283000200028102008200020081000285020002000200810002820200 -028102008100020902820300020502810300 -8203040218028104021e0203000102830002000201028100022002830300040213028100 -020302810002810200810002010281000282020002010283000200020302810002010281 -0002160283030004020f0281000201028100020102030082020002010281000201028100 -028402000200020102030082020002010201001402830300040206028100020202830002 -000201028300020002820200028402000200028202000286020002000200020102830002 -000201028300020002010285000200020002010281000201028100020902820300020502 -810300 -8203040218028104021e0281000203028300020002010281000220028303000402130281 -000203028100020202810002820200028202000201028300020002030281000201028100 -02160283030004020f020400010281000201028300020002010281000201028100028402 -000200028202000201028300020002010283000200021202830300040206028100020202 -830002000201028300020002820200028402000200028202000286020002000200020102 -830002000201028300020002010285000200020002010281000201028100020902820300 -020502810300 -8203040218028104021e0281000203028300020002810200810002200283030004021402 -810002010281000282020002010283000200028202000201028300020002010283000200 -020102810002160283030004020e02810002030283000200028102008300020002010281 -000281020081000201028100020102810002810200830002000201028300020002120283 -030004020602810002020283000200028102008300020002820200028402000200028202 -000286020002000200020102830002000281020082000200810002860200020002000201 -028100028102008100020902820300020502810300 -8203040218028104021e0281000203028100028102008300020002200283030004021502 -020003020200010201008202000201028100028102000100010281000201028100021602 -83030004020e028100020302810002810200850002000200020202010082020002010281 -000202020100840200020002010281000282020002110283030004020602810002020281 -000281020085000200020002820200028402000200028202000286020002000200020102 -810002810200860002000200020081000284020002000202020100820200020902820300 -020502810300 -8203040218028104022a02810002200283030004024d0283030004024d0283030004022f -028100021b02820300020502810300 -82030402180281040226020300220283030004024d0283030004024d0283030004022b02 -03001d02820300020502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -8203040218028104024d0283030004024d0283030004024d0283030004024d0282030002 -0502810300 -820304020e024f04820302044e04820302044e04820302044e0481030207028203000205 -02810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e028104021102810002080281000210028100021b0283030004021602030001 -028100022e0283030004021b0202002e028303000402160281000202028100022f028203 -00020602820300020502810300 -820304020e0281040210028300020002070281000210028100021b028303000402150281 -0002020283000200022e0283030004021a0281000201028100022c028303000402160281 -000202028100022f02820300020602820300020502810300 -820304020e02810402100283000200020102030081020001000502020002020200810200 -010001020200010283000200021002830300040215028100020402820002008100020102 -020002020200010282000200810002190283030004021902810002050202000102810002 -010281000201028100021c02830300040216028100020202810002810200010001028300 -0200028102000100020202001b02820300020602820300020502810300 -820304020e02810402100283000200020102810002010283000200020402810002010283 -000200020102830002000282020002010282000200810002110283030004021602010003 -020100010283000200020102830002000201028200020081000282020002180283030004 -021902810002040281000201028300020002840200020002820200021c02830300040216 -020500820200020102820002008100028202000201028300020002010281000219028203 -00020602820300020502810300 -820304020e028104020f0281000201028100028202000201028300020002040204000102 -030082020002810200030082020002120283030004021802010001028100020102820002 -000300810200030082020002010281000218028303000402190281000204028100020102 -810002880200020002000200021d02830300040216028100020202830002000201028300 -02000202020100020204001a02820300020602820300020502810300 -820304020e028104020f0204000102810002010283000200028102000100820200020302 -81000201028300020002820200020302810002120283030004021a028300020002010283 -000200020302810002030281000201028100021802830300040219028100020402810002 -0102810002880200020002000200021d0283030004021602810002020283000200020102 -83000200020402810002820200021d02820300020602820300020502810300 -820304020e028104020e0281000203028300020002010283000200020402810002010283 -000200028102008300020002820200020102830002000212028303000402150281000202 -028300020002010283000200020102830002000201028200020081000282020002180283 -030004021a02810002010283000200020102810002010281000201028100021e02830300 -040216028100020202830002000201028300020002010281000201028300020002010281 -00021902820300020602820300020502810300 -820304020e028104020e0281000203028300020002010282000200810002040202000202 -010083020002008100028102000100010281000212028303000402160203000102810002 -0102810002810200010002020200010282000200810002190283030004021b0202000202 -0200030281000201028100021e0283030004021602810002020281000281020001000102 -81000202020200020202001b02820300020602820300020502810300 -820304020e028104024d0283030004022e028100021c0283030004024d0283030004024d -02820300020602820300020502810300 -820304020e028104024d0283030004022e028100021c0283030004024d0283030004024d -02820300020602820300020502810300 -820304020e0281040245024f04810302070283030004024d0283030004024d0282030002 -0602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -820304020e0281040245028104024d0282030002060283030004024d0283030004024d02 -820300020602820300020502810300 -8203040204024f0483030204024d02820300044e04820302044e04810302070282030002 -0602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104021f0202000702810002200283030004021a0204002d028303000402 -0d0202000802810002140203000102810002140283030004021b0202000e028100021d02 -820300020602820300020602820300020502810300 -8203040204028104021e0281000201028100020502810002200283030004021a02010001 -0201002c0283030004020c0281000201028100021d028100020102810002160283030004 -021a0281000201028100020c028100021d02820300020602820300020602820300020502 -810300 -8203040204028104021d02810002050202008102000100200283030004021a0201000102 -010001020300020204001e0283030004020b028100020302830002000201028400020002 -000200020202000202020004028100020102830002000281020083000200020e02830300 -04021902810002030281000281020001000202020081020001001d028203000206028203 -00020602820300020502810300 -8203040204028104021d02810002040281000201028300020002200283030004021a0201 -0001020100810200810002810200820002008100028102008100021d0283030004020b02 -810002050281000201028500020002000201028300020002010283000200020102810002 -02028100020102850002000200028102008100020e028303000402190281000205028100 -0201028300020002010283000200021d0282030002060282030002060282030002050281 -0300 -8203040204028104021d028100020502030082020002200283030004021a020100010201 -00810200810002810200820002008100028102008100021d0283030004020b0281000201 -020200820200020102850002000200020102820002000300010203000302030001028300 -02000201028100020e028303000402190281000201020200820200020102810002810200 -0200820200021d02820300020602820300020602820300020502810300 -8203040204028104021d02810002040281000201028300020002200283030004021a0201 -0001020100810200810002810200820002008100028102008100021d0283030004020b02 -810002030283000200020102850002000200020102830002000203028100020102810002 -02028100020302830002000201028100020e028303000402190281000203028300020002 -01028300020002010283000200021d028203000206028203000206028203000205028103 -00 -8203040204028104021e0281000201028300020002810200830002000220028303000402 -1a02010001020100810200810002810200820002008100028102008100021d0283030004 -020c02810002010281000282020002810200850002000200020102830002000201028300 -0200028102008100020202810002030283000200028102008100020e0283030004021a02 -8100020102810002820200020102830002000281020083000200021d0282030002060282 -0300020602820300020502810300 -8203040204028104021f0202000202010083020002008100021f0283030004021a020400 -02020300020204001e0283030004020d0202000302010086020002000200020102810002 -810200010002020100820200020202810002030281000281020083000200020e02830300 -04021b020200030202000202010083020002008100021c02820300020602820300020602 -820300020502810300 -8203040204028104024d0283030004022802810002010201001e0283030004023c028100 -020e0283030004024d02820300020602820300020602820300020502810300 -8203040204028104024d028303000402290203001f028303000402380203001002830300 -04024d02820300020602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -8203040204028104024d0283030004024d0283030004024d0283030004024d0282030002 -0602820300020602820300020502810300 -82030402040252044e027f042304820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104021602810002030281000205028100020b028100020e028100020d02 -8100027f026d02820300020602820300020602820300020502810300 -82030402040281040216028100020b028100020a028100021f028100027f026d02820300 -020602820300020602820300020502810300 -820304020402810402160281000203028100028102000100810200010004020200010202 -0004020200010203000102840002000200020002020200010281000281020001007f0269 -02820300020602820300020602820300020502810300 -820304020402810402160281000203028300020002010283000200020302810002010281 -000282020002030281000201028300020002010284000200020083000200028402000200 -0201028500020002000201028100027f0267028203000206028203000206028203000205 -02810300 -820304020402810402160281000203028100028102008100020102810002030281000201 -028100028202000204020300820200020102850002000200028202000282020002810200 -0200820200028102008100027f0269028203000206028203000206028203000205028103 -00 -820304020402810402160281000203028100020202810002820200020302810002010281 -000282020002030281000201028300020002010285000200020002820200028402000200 -020102830002000202028100027f02680282030002060282030002060282030002050281 -0300 -820304020402810402160281000203028300020002010283000200020302810002010281 -000282020002030281000281020083000200020102850002000200028202000284020002 -00028102008500020002000201028100027f026702820300020602820300020602820300 -020502810300 -820304020402810402160204008202000281020001000102010004020200020281000204 -020100840200020002010285000200020002820200028202000281020085000200020002 -81020001007f026902820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f025f024d00150282030002060282030002060282030002050281 -0300 -82030402040281040215027f032b031c028100044b048203000213028203000206028203 -00020602820300020502810300 -82030402040281040215028103007f0028008104021b028100044a040103810002130282 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f0419040b0201008104021b028100048104024802 -01038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048102040804810300820004021b02810004 -81040214029d000200020002000200020002000200020002000200020002000200020002 -150201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300048204000402048100047f0411048202040207028103 -00820004021b028100048104021402810002190281000215020103810002130282030002 -0602820300020602820300020502810300 -8203040204028104021502820300048204000402048100047f0411048202040207028103 -00820004021b028100048104024802010381000213028203000206028203000206028203 -00020502810300 -820304020402810402150282030004820400040204810004810400010001048300040004 -81040001007f0403048202040202028100020202810300820004021b0281000481040214 -028100028102000100010281000211028100021502010381000213028203000206028203 -00020602820300020502810300 -820304020402810402150282030004810400040082040004010482000400810004820400 -0401048100047f04010482020402010202000202810300820004021b0281000481040216 -028100020102830002000229020103810002130282030002060282030002060282030002 -0502810300 -820304020402810402150282030004820400040204810004810400020082040004010404 -007f0402048202040281020003000102810300820004021b028100048104021402010005 -028100028102000100020202000202020001028100021502010381000213028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040204830004000401048300040004010481 -00047f040504820204020702810300820004021b02810004810402150281000204028300 -020002010283000200020102830002000201028100021702010381000213028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040204830004000481040083000400040104 -81000401048100047f040104820204020702810300820004021b02810004810402140201 -000502830002000201028100028102008100020102040082020002150201038100021302 -820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400850004000400040204 -02007f040304820204020702810300820004021b02810004810402150281000204028300 -02000201028100020202810002820200021b020103810002130282030002060282030002 -0602820300020502810300 -8203040204028104021502820300047f041904810203090301008104021b028100048104 -021402830002000201028500020002000201028300020002010283000200020102830002 -0002150201038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f0419040d008104021b0281000481040217020200 -010281000281020001000202020002020200190201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048f02040204020402040204020402000402 -1b0281000481040214028100021902810002150201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f041a048e0204020402040204020402040004021b -028100048104024802010381000213028203000206028203000206028203000205028103 -00 -8203040204028104021502820300047f0419048f02040204020402040204020402000402 -1b0281000481040214028100021902810002150201038100021302820300020602820300 -020602820300020502810300 -8203040204028104021502820300047f041a048e0204020402040204020402040004021b -0281000481040215029b0002000200020002000200020002000200020002000200020002 -0002160201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004810400030007048100040304810004030483000400 -047b048f020402040204020402040204020004021b028100048104024802010381000213 -02820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004050481000403048100040504 -8100047c048e0204020402040204020402040004021b0281000481040248020103810002 -1302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400010001048200040081 -0004830400040081000481040002007b048f020402040204020402040204020004021b02 -820004034b038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004810400030001048100040104820004008100048304 -00040081000486040004000400047b040b0201008104021b028100034c03810002130282 -0300020602820300020602820300020502810300 -820304020402810402150282030004820400048204000402040300820400040104830004 -00040104850004000400047b048102040804810300820004021c024d0015028203000206 -02820300020602820300020502810300 -820304020402810402150282030004820400040104810004820400040104830004000401 -0483000400040104850004000400047b04820204020702810300820004027f0283020300 -020602820300020602820300020502810300 -820304020402810402150282030004820400040104810004820400048104008200040081 -0004830400040081000486040004000400047b04820204020702810300820004027f0283 -020300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004810400860004000400040081 -0004830400040081000483040004008100047a04820204020702810300820004027f0283 -020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021c024d00 -1502820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -044b04820300021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -044a0401038100021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -82030402040281040215028203000401040300070481000411048100040c048100048204 -00040d048100040204810004820400044b04820204020702810300820004021b02810004 -810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204810004050481000411048100040c04 -810004820400040d0481000402048100044e04820204020702810300820004021b028100 -04810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040504020001048200040081000484040004 -000481040001000404020001040200020402008104000100830400040081000401040200 -020401008204000401040200820400048104008300040004810400010001048300040004 -3b04820204020702810300820004021b0281000481040248020103810002130282030002 -0602820300020602820300020502810300 -820304020402810402150282030004010401000304810004010482000400810004830400 -040081000482040004010481000403048100048204000401048300040004010483000400 -048104008100048404000400040104830004000481040081000402048100048404000400 -0481040083000400040104820004008100043c04820204020702810300820004021b0281 -0004810402480201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004030401000204030082040004010483000400040104 -040004048100048204000401048300040004010483000400048204000401048200040003 -0082040004010481000402048100048404000400040104820004000300820400043d0482 -0204020702810300820004021b0281000481040218028100020202810002050281000220 -0201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004050483000400040104830004000401048300040004 -010481000403040200820400048204000401048300040004010483000400048204000401 -048300040004030481000401048100040204810004840400040004010483000400040304 -8100043d04820204020702810300820004021b0281000481040218028100020202810002 -0502810002200201038100021302820300020602820300020602820300020502810300 -820304020402810402150282030004820400040204830004000481040082000400810004 -840400040004010481000401048100040304810004820400040104830004000401048300 -040004820400040104830004000401048300040004810400810004020481000484040004 -00048104008300040004010483000400043d04820204020702810300820004021b028100 -0481040218028100020202810002810200010001028400020002008100021b0201038100 -021302820300020602820300020602820300020502810300 -820304020402810402150282030004010403000204010085040004000400810004820400 -040204020005040100010402000204020001040100820400040104810004810400010002 -0401008204000402040100820400048104008300040004810400010001048100043d0482 -0204020702810300820004021b0281000481040218020500820200020102840002000200 -810002820200021a02010381000213028203000206028203000206028203000205028103 -00 -82030402040281040215028203000451048100044504820204020702810300820004021b -028100048104021802810002020282000200030084020002000201028100021a02010381 -00021302820300020602820300020602820300020502810300 -8203040204028104021502820300044d0403004704820204020702810300820004021b02 -8100048104021802810002020283000200020302830002000201028100021a0201038100 -021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -048104021802810002020283000200020102840002000200810002820200021a02010381 -00021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040218028100020202810002810200010001028400020002008100021b0201038100 -021302820300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040227028100021e0201038100021302820300020602820300020602820300020502 -810300 -8203040204028104021502820300047f041904820204020702810300820004021b028100 -0481040227028100021e0201038100021302820300020602820300020602820300020502 -810300 -8203040204028104021502820300048104000300030404007f040a048202040207028103 -00820004021b028100048104024802010381000213028203000206028203000206028203 -00020502810300 -8203040204028104021502820300040204810004040481000402048100047f0408048102 -03090301008104021b028100048104024802010381000213028203000206028203000206 -02820300020502810300 -820304020402810402150282030004020481000404048100040204810004810400010001 -0481000401048100047c040d008104021b02810004810402480201038100021302820300 -020602820300020602820300020502810300 -820304020402810402150282030004020481000404040400010481000401048100048404 -000400047d040b0201008104021b02810004810402480201038100021302820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100048204000401040400020481 -00047e048102040804810300820004021b02820004034b03810002130282030002060282 -0300020602820300020502810300 -820304020402810402150282030004020481000404048100040104810004820400040504 -8100047e04820204020702810300820004021b028100034c038100021302820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100040104810004820400040104 -8100048404000400047d04820204020702810300820004021c024d001502820300020602 -820300020602820300020502810300 -820304020402810402150282030004020481000404048100040204810004810400010001 -0481000401048100047c04820204020702810300820004027f0283020300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048202040281020003000102810300820004 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048202040201020200020281030082000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048202040202028100020202810300820004 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904820204020702810300820004027f028302 -0300020602820300020602820300020502810300 -8203040204028104021502820300047f041904810203090301008104027f028302030002 -0602820300020602820300020502810300 -8203040204028104021502820300047f0419040d008104027f0283020300020602820300 -020602820300020502810300 -82030402040281040215028103027f021a020d008104027f028302030002060282030002 -0602820300020502810300 -82030402040281040215027f042b047f0201028203000206028203000206028203000205 -02810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104021602810002020281000205028100027f027f021d02820300020602 -820300020602820300020502810300 -82030402040281040216020100020281000205028100027f027f021d0282030002060282 -0300020602820300020502810300 -820304020402810402160283000200028202000281020001008102000100010202000202 -02007f027f021202820300020602820300020602820300020502810300 -820304020402810402160283000200028402000200020102830002000282020002010283 -0002000201028100027f027f021002820300020602820300020602820300020502810300 - -820304020402810402160281000286020002000200020102830002000281020003000102 -01007f027f021302820300020602820300020602820300020502810300 -820304020402810402160281000286020002000200020102830002000282020002060281 -00027f027f021102820300020602820300020602820300020502810300 -820304020402810402160281000201020100820200020102830002000282020002010283 -0002000201028100027f027f021002820300020602820300020602820300020502810300 - -820304020402810402160281000202028100028102000100010201000102020002020200 -7f027f021202820300020602820300020602820300020502810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -82030402040281040215027f032b037f0201028203000206028203000206028203000205 -02810300 -82030402040281040215028103007f0028008104027f0283020300020602820300020602 -820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300048104000200240481000415048100040f0481000403 -048100048204000418048100040d048100040f0483000204020202810002020283030004 -027f0283020300020602820300020602820300020502810300 -82030402040281040215028403000400040204810004220481000415048100040f048100 -0403048100048204000428048100040f04830002040201020200020283030004027f0283 -020300020602820300020602820300020502810300 -820304020402810402150284030004000405040200010482000400020002040200040403 -000204020081040001000104020002040200050402000104820004008100040104020001 -048100040104030002040200830400040081000401040200050402000104030001048400 -04000400020002040200010481000481040001000b048300020402810200030001028303 -0004027f0283020300020602820300020602820300020502810300 -820304020402810402150282030004810400810004020481000401048200040083000400 -048404000400040104810004020481000401048300040004010483000400048204000401 -048300040004010481000402048100040104820004008100048404000400040104830004 -000401048300040004030481000481040081000484040004000401048100040204810004 -010483000400040104840004000400830004000484040004000401048500040004000401 -0481000409048300020402070283030004027f0283020300020602820300020602820300 -020502810300 -820304020402810402150282030004020401000104810004010483000400048204000483 -040004000300030481000401048300040004010483000400048104000300010401000604 -030082040004010483000400040104830004000401048300040004030481000482040004 -010482000400030004040300820400040104850004000400048204000482040004810400 -0200820400048104008100040b048300020402070283030004027f028302030002060282 -0300020602820300020502810300 -820304020402810402150282030004040483000400040104830004000482040004840400 -040004060481000401048300040004010483000400048204000406048100040304810004 -010483000400040104830004000401048300040004010483000400040304810004820400 -040104830004000406048100040104830004000401048500040004000482040004840400 -0400040104830004000402048100040a048300020402070283030004027f028302030002 -0602820300020602820300020502810300 -820304020402810402150284030004000402048300040004010483000400048204000484 -040004000401048100040204810004010483000400040104830004000482040004010483 -000400040104810004020481000481040082000400810004840400040004010483000400 -048104008300040004030481000482040004010483000400040104810004020481000481 -040083000400040104850004000400048204000484040004000481040085000400040004 -01048100040904820002030903820004027f028302030002060282030002060282030002 -0502810300 -820304020402810402150282030004810400020002040200010481000482040004820400 -048104000100040481000401048100048104000100010401000104020002040200050401 -008504000400040081000401040200020401008304000400810004020401008204000401 -048100048104000100050401008404000400040104850004000400048204000482040004 -8104008500040004000481040001000b040d008104027f02830203000206028203000206 -02820300020502810300 -8203040204028104021502820300047f0419048100020a02820004027f02830203000206 -02820300020602820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -820304020402810402150284030004000408048100048204000403048100040804810004 -78048300020402070283030004027f028302030002060282030002060282030002050281 -0300 -8203040204028104021502820300040a04810004820400040e0481000478048300020402 -070283030004027f0283020300020602820300020602820300020502810300 -820304020402810402150285030004000400020003040200830400040081000482040004 -810400010004048200040081000401040200010481000401048100048104000100020402 -005e048300020402070283030004027f0283020300020602820300020602820300020502 -810300 -820304020402810402150286030004000400040104810004020481000481040081000486 -040004000400040104810004020401000104830004000401048300040004010483000400 -040104830004000401048100045c048300020402070283030004027f0283020300020602 -820300020602820300020502810300 -820304020402810402150286030004000400040104810004020481000482040004010483 -000400048104008100040404810004010483000400040104830004000401048100048104 -00810004010404005d048300020402070283030004027f02830203000206028203000206 -02820300020502810300 -820304020402810402150286030004000400040104810004020481000482040004010483 -000400040204810004030481000401048300040004010483000400040104810004020481 -0004820400046004820002030903820004027f0283020300020602820300020602820300 -020502810300 -820304020402810402150286030004000400040104810004020481000482040004010485 -000400040004010481000402048100040104830004000401048300040004810400830004 -00040104830004000401048100045c040d008104027f0283020300020602820300020602 -820300020502810300 -820304020402810402150286030004000400040104810004020401008204000401048300 -040004810400010004048100040104810004810400010002040100820400048104000100 -020402005e048d00040204020402040204020402048104027f0283020300020602820300 -020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048d00040204020402040204020402048104 -027f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048f00020402040204020402040204020402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048100020a02820004027f02830203000206 -02820300020602820300020502810300 -8203040204028104021502820300047f04190482000204080483030004027f0283020300 -020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402810200030001028303000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f041904830002040201020200020283030004027f -0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402020281000202028303000402 -7f0283020300020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f0419048300020402070283030004027f02830203 -00020602820300020602820300020502810300 -8203040204028104021502820300047f041904820002030903820004027f028302030002 -0602820300020602820300020502810300 -82030402040281040215028103027f021a020d008104027f028302030002060282030002 -0602820300020502810300 -82030402040281040215027f042b047f0201028203000206028203000206028203000205 -02810300 -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f024302820300020602820300020602820300020502810300 - -8203040204028104027f027f0243028203000206028203000307038100020502810300 -8203040204028104027f027f02430282030002060281030008000702810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f024302820300020602820300020f02810300 -8203040204028104027f027f0243028203000307038100020f02810300 -8203040204028104027f027f02430281030008001102810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104027f027f024302820300021902810300 -8203040204028104037f037f0344038100021902810300 -8203040204027f007f0047001a02810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -820304027f027f026702810300 -7f037f036b030000 -7f007f006c00 - -% -% Compression made this file 5.76% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/docs/latex/wx/wxtab1.gif b/docs/latex/wx/wxtab1.gif deleted file mode 100644 index ff0644e138f4f5bfbcd174ed734ba7becc556524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98236 zcmdsg&2Ah=wq_QKK=E$K@~qkHlDn7l0Ma$pAl1V3%wx<03?M)am~44LiUzKC?R(d< z(YVi1au;`A$$ejdu7v@5RxFqeNVCbF?>py2W<+FUR%TWeNwol%i$!KsoD<*qi7!q> z{NaE7kH=5`_x~AuJ-FS=@b9nk-(Tf_f5lIK{p)NtJ3Bl32R{Et_7C|V{*QO~_vrs^ zu+W!{0gtPn-#C{fm3|KbgXlXKybc;q(vckbX;nAy=WS z=?Fe+`iJi!wZZ}Kd;zb1^Aq)Cc!%p-<{s2}^nuoD$eO;~&92`Jv%}Hgm))(OfAxIw zNP7My#*hM+67D?u=@RO|Z@+)#yz4zW#iS zPz}Ay2;W>{NP$C%#M}3}g`@Ngsies|p}<$K{tT0L zfd4=s|ANnE98!_+JB2;~FIGQ&-`1k(`oy?>_h6s-#^XY({&DGP`Y7xB&uG%y^EWTY z6NKtH6BLZs*P~y{;GX^&W5|&clNNPg4F5w%^ZQpm9K_cX@UV&B{Pgw@okN(*`tHF0 zT|J>m59V(!GKA`{n4kd74yABf-@&*=5STQhnE)Pez-I?vIOqco;_F3Ouys*Z?;*6T z&x?m^hQlxKp3tNR^L>WuEhZ@NNRPf|M244wN#o@a{S}=S)baKE`78K!j^^mc-w4dV z9Ag?Lz8?OMehqqpvep1n&H5VMLm%((H9|E^8u1#T`dktenoZ}X1o|8F%98bU?^ccC z5vmU*EkmfDOM(Jec14zgppUX@dezXBxV{xrnx9HKWc)!A6!hZ`U8zdl8CiUcuCJ$u z&yGkM$-n=Q1f_pd_oghkzRuCYf*=xa;}Uu){y``!@2+?zD4+e4uw!|9(hgk0lWW8< zopX-9b??-}!_A-TWE44^`ak?Qw+ZT-;Sct1|HK-25KZOFx&c)QNkJlIomkA&LuZ-C`G7#peXGxVIUwZFc2`O7PfxAbUOOyFzFV`8XqmbdHF6E zk5o9VUW*n_{|Mrt`}zkT>#>v~k9A*_dHP4X+>7ivm<4gZ;+1p09sVdvcyiszEl(D` zyu)PC%a!u69>HSr0*~!)5B{W4$rJFFlGF8d0{rNF)B;)+2}kF>Tqz!_G^I|Vbl=tccy`-(IHr#JM2u`^(unH4t27S z`~>d`i-v$x?P(|$cZ*hf$Q6NfcS~Xz@{@{$;@o18?q}KA z^_ljsY$`9uaBoYUV&NV}N0~^o`xtHQK4uplS2Nu4cHm2Akl&5rsAvi(w`w3Q`t_)qjPZEODpge%4{^QHsZRMD-A>!|l4&M#3{cQ4h ze#UoihL@lvsW)#7?Kx`;fA?gOW$y-~H^bTa{0!(AWiNKONBb`XEUsJo+n4fn12i?m z%Zu3{JHnr2_~Xaf7BH6av+uzbz7Ct)n6#CSP8!WN`5Uz0agCDT_Wt{KI2@ zQ{%{T-5#d^a1;o`}>19G)!fIa54^JDj7d8Ek2ijo#opulKV({K&B`yLF^r zhvkbcj>Fk-HdySx$S^D~pe)KdI^!A^KZ61t941)dVS@4}uPKGYZD~6ScuMo`T(rpc z5+FrWk};IMnz55-FY%QJFLrZw3vKPccqcaELrb1>+MWklIt0KK5n^!0T_} zwD=`>*|7%ZN6;8P!^^iE0tz>l1O=hmYf5F9R!thcVs{A}G-Yb@91Yq-#^Cn~+NR#& z{{Sy&`)v3F-q8&!9Av^vXz@8Wh6;xnE%MztJP4j6wD=<*b|y__$z#{B9Z_gDqK6k1 zWe0+j7g)ohh0`&dU1!?q-9t%G5UTyARO(+P=@9mpO%Z7PyGU8c7=m5_sdysWQ4t2$ zNB9vU6au0Z#+~DNUiwnQ18fu8648OL;XrzhG4#8|uR~i0kVgC~oR;`MC`%!o(f^50 zgyPX2J3ah?2?`WFDXJ8xcaeH89K%S$5g)^6k+P661ijLxJiyyyk+Seu(G(`Usd(tR z6|^PKMQughvMB9r2fv*mUQwFk>_1)FT;>igW2ic<{cM26eRiWF;rJxzmGq#wSK=KI z;44jG!n?FBNem*z``rTJtz8J4LV^NM^I8%VzAN4Gsmj$}?`-~Jc43eCP3eF)3?U+Q zlYqI`t)MMN_^P%-2@{G(f`VR7BtgMDA6Yv4DpH!IP07%2&+W0GDeGxrJF$d_)RA}K z6Nw?reUk>#5US(00KsK#?QaVlBtgMDzgv=N_))se7*2NVv7jl{b~>dIJDDsJ5{3fu z?>qsO>qDqsCSl4B$t8@wWrD)rmL`4u=2p5|hb$S_M7KU&ER`@ZhND5%m3k6N$MF&i zh)6w0)~CPrQMv?LVs05KYRy>AjllG7m&*%b>z7(!6=}SM6 z8QHPSG?hzmCf(>u>j2-|mD2TfR+df8mMTlKKF`Ce=ic2C;}I^wnRH8E>M0(E+}o9= zr*un9+NNe5lqIeYQ#$cEW0`4^ODM+hwnJN`|Lf~Y;rf9K^!;lFbr)3!J}bxON+(lk z>Ave$tgOnEPNr|wUPa21IoA0#VGcJm{=!tmUUANbWe$~)yunVEfvUoXoF3vGemvkr z@eF_Hy0!b-k-$zuQ9OtoJV81HbO30hSXsMU)hV4aoFvu2Qp*@tkX4=1QN2JGs2a|H z#{?Qh3O&5cvF0EyDB&dgFH4)*E1hF0vPc``n6z>Z58^?|6Yx;%3~4?mA#-?}n-$(6 z;|!m&UeC}B7!FLWE0fmoS#?S$j)rs#DjY{*Sruhfr*yEUGYkWWK~WZzFo4t%;4#Ny zQwsBA)?!dB`oB|or$Z>b1Dg^7bF>W73Op2uEHZKq@IcFnr3`-J4KYc5U^g7lp>znp z1nn2fx|m3Ug3k(NDWyfag~}2 zaNww0uK>*n_(V39WtY?)M_}h&u5Wz_EoCSGFKy8}UML+*qHxZ~D0L~}S4tiS6CS!v z4i%_GQm`>f`P=H04z|OwA*etWu+!BThDd#m9th0A9m!gU!GWW0y`sP>i8SsJOl)kp&aUglVJHrCUBwHn;Q+>=uU^_}UiH(aQ*>XrMZ!Bc(4o zCY31I9Eyba<6;cq!=x!v3E+;DN>JOmEqeuxSyLHTWp*>D63j9vw+tM!Cm_0!FW7!L zh9|THB4b9cLdq;VaBPMekBp(Qxj|c~(k4JJi4N$uV$vAH%9M`&PZt%?6wHvmv!blg zKwK$cPBVV9JA0+9tPG)KebyGnwQLKXAy7QW(6PB`Y8hWwMJbhK zk1g$%G*BXI=QVr4gcQ9}DuIB0<%12;^l=iRT8)*(;?I92~r?RN%0zsTNadOn8F{Fy_DiremmVZltYHStd;&p+44G zS?ak*=QKm15(?Y#vr-C71vd7|!hF!HI=#d7XhMb8ZhpNmsPsHREF#`vy#=l8zRsab=BskpQATD}c0 zWf@xTcHcLYwEcYO(__ooF>C5)3HVAS4EJoU<0+lils4R1?|ogVd|Qo0=LYk_(-hsR zOz8l|5~a%jVKkjvc5qO3Oea~hm%7%mweuYX<|M1DNh6z;xmj0b*<-F(@TbXOVOd|% zt?HDnDq*56W5;BY#o`Gnb$rHR3{J8-q7?qGw=2~-R%>PD9G29SF0C#3<8lm@9pfYm z5-Q9uCM?F_B&)l3P&T)_vTSPB6|YA(r8QRF@$O=OJF`a(6x@Mw1mvzi7ZS|L~S7)WR4Z< zeTai)^pEQtjZV$9Db8VN(j-BAy`vS(J4%p3@6{O{yO!l(OI)|AEDgj|dJH~Hpv8<7 zvxNCA}!i+08~Qt;$~GC8aDxcvIF$;*Ln@%5uPA zkZ2=wGs3J~8>pSqK}@9*@z{&18Rj$|on#%^S_jzztD9U*#b_ftB)CzBmI-N9+D;K# zlO?@l5tzh7hL@DG5UL$YVTK@DO+wcHk&xShj-`feOsa}%6Q9KhA0rF0W~j;$Dj`do zq0X`Lg~42EIE700Q_{V~j?x^^YS*W9*ni`CPI-atTnprVLTQr=u7V zrD83SNuwW8Nv}#sS$PD-4qqa-ta!4LUNnGmD2@{TP9zi_4!kQQ1g=q8sts7L5UQQB zipYvWV{lkfe0NUrHGwQ;#|-5Y*p5;OGpz8QvI|99PFwI1=lJ4?@D|03gh5HK!2zxh zR+_=2<(+Ga63Tb*JH06#{urgCXOxhnJpoT01J^UCLoCa@GD3A#@4MSn5sAFXV-R_& zcZ!a8sw`#4j07Hi%0D5Mz@~%~K(8$8i;V}(I6HLE!oxF{GFZ3pO@6l+kq|KU5e zq}O$e9juI@H8m=gwZDB(X)4((wnwS8SH_Mhl>nlRznz>(Q^E<9LkKg}tS)uaGgo z^>tG`m8D!lXJzSQjS{8+uk09n81*hx0=Ofk5@M1XL{?LgmSeQaA@hbL<$1Hnt3yBkow)WUrE5w9?X|9oJWzhtTJ=Y|A27>!y?) zL+ylky&W+_p%V5_BtbE+EWd3W!~R2PS>L84uD>6Qf0>s=HqSt3Cj`y zhp7xpYGz^M)$FwT1Kx*&WPM={zlLrpJEkyyGnDFJPzh4f)@#wiBG>vsO4qkEJ!%Pf zW5;xoh1nq=8y`tYn@|aNXVU6&S|E$AZ^dqng&osLmQ@E|WUpnN>C-WFwXk_Bif%qKf?Mg&52 zO|sn5cGhTyt((eQ#W1DEILV@f$|ZcNYaJ`w&XTlrJszGTkV01Dp;bbUags&vAY8(^ zt#u?8E!OXrTaRI@AxwG)m-Tu6Pa$oa=Y>lEd8AxI3tzgrE4@oNSk?#sr)wR$d7dzb zwybXQQr*&Bc1t5yPp{m5l5(8uBuh5W6XwYOtZuT`IV8aA!}ov6j>+D6WPQj;X*|Lu z>>lb`N8fPRUhxtR?o?Sa$FjZih|~;W7dg3v;SZ;f{|-Ejv!WFftuAIL$*0>puO)3l zB><$zPw4tKH{qdD`@7{8lx6Ig!Cb3@NhLtKtosYaM@)G7M4)e!!PyQ^EU8oDUDJvZY|+fxk95 z3{u((+7gA{pY13+CNRgQ4J(_xq`=eIqE%K1sG>qyXKGpAp;ZES$nR_Go+V6>rN_dK z3C!WM)SGXO-%=V-31-qdgp`#h3(cj*iW@DssEiVc6RbdUvrKlB>kbNR+F z@WzfYA%%nr^YOMTo0Mr7d(W(tEBxH0q&x7SEN;F6tZ~o^(i$F-B&S1RUk|pD839&SEEp^1n^ zWhvJex5Z!IV>tBp&MTELv$c+R?>uEahcr6E+&d-C4P|IjmBP(}dWsUNatHzpD+0cv zoB|5h_b>pjkPfPYZLOoScOHV2JN$514mV%1;EOdOs18Eym~Qiw3LlZWCehMmj=*?C zM|bA`6w;`F7QX|S!!29cWZbJkhGHQ(6E4FTN?i*X zl`#5N*E;Un4B`4V&tYix8B_-gl@RWomr<`n>56(6%St%-7Kc{#?UrPpwt3#FgM~_f zgjzPadA*C&O(CrI&?>6CkN-1v%rRzC9SkagO(~Ud4~|Bhd1AtIy)TDWp=K7x63Q!I zw%oh1dvoUAWW35%{zWKNcFY(vtqw-0rs7X!2+F`SvO9#vZSK-s&xNl)R|Ec&IS)Zv zNDitPgD+OKdK+6>OeY zE`e8T;kjwVj$O=N&EJlGP0?}PK+j4$zof11z_-tBhx5)^tatQke-YI`%hV_2>^T4T z~Q?rCm)L&EINPdYr|2XRppi z-RqynB!&#{obVbw7L*6uT1Td1Xa(Zky*h@j_cxH(A0#zvTQq z1O8(6YVRQZ1iw01sRSHaB_Y$ag%+?63xm6NxVReby?%e7 zF0I`0Zr~1*hn|4f)PH~5-{B%?BT5H1GBJ=bq+HiW48t629K0j@sdU}lg99RU0C;1^ zbnm=X2Md)jv$c*VqZ~;aTL72%6oWg*SfA}p;nMKpr$;>{OepI!P5mcXYKIFGl+vUL z_%r?p=IUH_f&nBr4oK8dz+p!Y{E*K?S(1F(-g&DI7Aj$3YaONSjJI=u8$Nunn4BO% z%d*XwG{WJjbb53w2}&R#P>KWv-7icUsU)QVbH&r4xXsIVS~6US)V@hWMNC(s>R?1_ z!a+So=^Z{PgLE!#X)`8`()wM!yKgKBN+=;jx}x2c-O|I;u}if$X^Q9HtJ)k$pN(ah zi>45%A)zs5S{;l?O%FeXI?7XW+2>cMdT70&)B?{4q1x{j1g^kAKJ(xp35qv{!QOd=xm~SwTEGE~ z0`MdFv2J-cC%nBp{1j3zzWMxWKvx}0h*0gBG_cNb^(3Tll-h%XBq&}}!QOd;xm~Rl zpPjygJI8CxP=>2Pz`UEbZl<@$j=uT)fLuZ#A$mTziO%7aspV@-GRv7}40t9eUQ^ic z$sYl8Dod#ZyIRXT(n(U9b4_ ztiZvOP*5sVLfKTXcV4LkyISiuY6?`sIV2RRk$nF+WM(n!J<-e?w529}{mm#=JO^lY zq3MeR9s)U%5ICTcdN&rSm(Sv}CEgv^=c-gkXL6R7jAl7K+*v9i#C&b) z_|iCBu0xtMBB96?R0k`SfC-ODt+Nz_>WeuuaLlo?FK*5;1DT(XI+?UDVS}=UKf?7v zAHUCH#iK`9JTxY?iSVA--(*I-M%5w8j_Kxks}5Ew;oKb&;btkgS^+i;TtnbXn{plQ z0H89~6_B=+Ff}W`6>aZs;h<%=kxdmJqEvAhj$z8AC*D&Bq_8C?Ovn&A~ z{!|++W+^y44k*f-y`8>Q zl$k3JwyU)`rS)w`);iYfv<%$QtQ>0{97A2}@bxakfQZp1Smc2nD$QTC6>OeYnA_D_ zbSR}sQ!xxs8#n2jw^-{CGnBQCK<|(mRDze%c>XWp9rU;P(+>yFr1q(3E7&}5Ft@9< zqT`{IOGw+H#_JHJ@>#E>4VFc(%(aeC@Awf^LIijj|8Rwee;0sMsf65(VX%4L>L%@K zt$2A9T*5Frk|;$^xLj$K={7WdA%Wb%0df5)QyLwDF3Livrla9nhwn;ZhLC17O`aV` z(fQkuci?AeN~wfWS(99~5R?boT1TKQG|1dU=wL|W+aac#lAF!J4twh#FbAv-^hw&L znk-|jqcFoV?#!iVxn4pJbK$e_4n9k%1kWqmS_f7KnDueuRa~tVFOOoaLrfYZ@cC%M zImbaJGfmF9PHqM}Gu$SM%;n}7bCbO@$e(RtIS8K}WMe!ltZEy;Un^OFwT?*d9J#^5 z);c-_X`vE4z}s4f?ww~sdXC~2J#I2u9z_oG7AxBv=HXt3v=p*p;sIYe1g`PpckgFp z#}7`%SQFs8s|yVM!3pF)_yQ|o28ZQ<|4hk(eS~UfhMt7my4K;MG{)5%LxXvwEU8NH znlchNs1DY$N!~lJS)Zje2-UdpE4u-WViMwAhUp>Xf|wW3iM-3cz{irRgLrtVOMin5 zOC*rG-3s@)rl6B7);lHK)3uHg@Q@Ih5bwaO4~NIWEe%TvIl^D;aY+*b%REfpUDAC4;X*vfJoFg;PfXwQe->nX?_eN! zKR=b8j|RzOxpb`~a9UW>8i~`Q=y*1e5WhfGLI4MyW7*#M@MbNg+zVvk>^OA%AU^?R zHXrI3PNhl#%hxwgcR09wcS-Z*I{+R-Pm^8{|D>DRm^9!Z2?_@2XyGefG=Z%over>_ zixQF;#gZ285@Gdy74Rra@JyORFK}=$m+D|r3217nYGcmEcc2nq?PV~{><|LNqQUj; z9nn;uf=0@)q?th-Si{G}n;wpU$Fz)}Z41+cf%K;qI<85;GeO}1jcu(Xl#pv3kx9d# zvXQLtaMdF+Y5eh6ofaFFi6-Y*kkA-2Ifs)}0^ty^j@nv>AEXteSmtOP!_Gx3w~Er| zlAy#Aa;+mUX#uy~!>wi6u}L#jhfA8qjv19;S8M6bTH;T0Cm=S@Q#QXdZc+q$KpP!>Wp0WUDOvx7k; z(8He=a9{(Z5?vZ%E~hEc%3C@uOJ5>oP1$LzB`cTUDW1}>EJ0AJ-C{2XFk~#+lK+Qs zSJToX7Gv;PYYL&75(u|~n_s%QK?P@KX@W^9?gHj3ohtO7dTTBnhCD1J^ zmk>*M(sUnmr49q#2THAM(lr(Aoi~{4)mpa&8~_Z!L8*jt40{Zr4Eo}&uJAVaKbRJM zsc;FQNkfL&s|fHM76*rfNwX;}n=G2ri|0AVVpGbP+0|O{>L}JaaJ3e4QG|#!tx8)- zbL<`vs)y9U*<`#r zicpQpD!d>!J6UjXE1GC__gM*L1Qt<`yF3H7PCRz>{kwB;JmJC{3e349 z=1!PEN_DWwT19D;XeH8+gh?|=IY1c(rQY98-44l(-1wJw+e;GNmM4=ew|PFiTFX3! zLl&q+3XFIK30WtLmtOoIoB0+otWHAxI}h+a z-g7D?*gUT=uen-FxrB|IG{QGRHBl;5LT8iqC6rP30k3e-o3(OIvSdm}26?~cYAxXs zHg3|$$gsn8!a6Zh37#wMYSQ(95BAQF&guHwcS3Dj}#2 zRw^NVvz7`SA6iBK*AiN$whfJ;n(tCLD3#FqW-aNnCt#8F6?nMcF^rv78d=7UIhadI zLn;Bbqf=T>Lc?|mcwa!5_1*6nieLA;l|~k+1W0I%nRm68l}&aZLd*KvYAfBXbvdmx z;8~V{aA=HK@@g#|;T}UMS>M`o$x8A%1D!QOd;d6%oTh_>{UZiy?U>$|srzqYHjpwxat z2-mlcOe^iQXoA<@~=NRUFL*53P#2DxtVq>;B@-+7GP~<1Xzm*gP*(!X~cP z>K^bFu6k&dc;6~Ym**jrHEBD#))7<(>srUV?yIAMqIA;c$FNB6KBZOf|6JC$7XN2; zlXri$mWYm*&O>NfUwRC!)g{nUcI;lS*0MCGdkC|vZ;6BkveKkk@F48i!?;>Y`m@^?BDD^`zY4)X!?Of#k=6Unx+v%&dATUZ$QCg2j{t#N$_t816 z8oe6{tcjKu+F9A;rJz@QmU{>9V8<7%mON~13?&o5%MwRpB(UtAx9VUkn_PCYmSlY& zqe;7q=WXvi5>gJKludTHSxd6Mhn$vHkR?T@G5|{{47QKR!xr>BqS`@`hv(c`$I`b>_0O#itzt2zcX;sdTE6M>->hzO?Y6@? z7TmHjW?CJLvIP3S+Xz{ERyG+_I40`9S|043*CoB^R9EMglIl`e;>N3Q5p1uIC$CI2<&fhbs6!%YcEZM3o=5!;Ng`a42ADFd`^`U%N@ec7o0G%9zz$ ztu^AtaCA!!OW@vl9+7|-97~9I0714b?sU{~rGKVm1CJ9lF5&F8xaVfhPeit9LrO>=3#srFZE;fM&FLnntN@caXu z1b__>IPinVCS$Ys)9gom2MKYC0*_6=Q3^OVLCy~N4jX=C2Re2~$c860bv`=CxKCo6 zf5N}Ba5%RK&-g?wT9-N2$s=q=q5vRF1b;l2iykfWr4m!kxRI1U3t z%7eW2zT?@1JSPHhfMNguic$y#1Q^>F#2&ZU3Cw6wo@LDH47qj?E zGnw#4-RhIHITCpJ)mlIsy5%I~KuY}|j{^sWv1v_Qm7I>E=LFaoQaFsE?0-1~9Dsiw zr9e2yK?BEfiUgE}%`)oi9_xe$zOz<9PI$viOF~s!IM8z=RLkahmL)J)q_5T*^EixB zLP4Z#T9bDf&r&dy0<<%XT!y{#l#8ds>zOcf92Nnmh0l1T-H=BqKw10~!ohsqdz?(5 zTay+o@@`CcyC-eNB?RTc!X;F$*1DKo=xGUXT9A-EpCX1~nE4Jn`{;~t^a~|~)t|s= z>9Gk|{N_ONocP64+JqdXAaKA=AT|Y;HXXrsG}py}820ajpXp>nkrxI_ywL9$#19(}iZ(snsASx2v3y=pzf>3e0Dv*k-u8sQSc@?hZ- z04>=lR@%;FBS%ZBA=Cf4cMIevqQDEuPc$o)K}t#3C}44DRTS`z9&?mg)74s^0;K{$ zKMyhQQ`tPa3LKc9Kvql#BE2_C*a!#5_1PFIJ!W;2S{{tD1bT;4F@mx!cSgj)S|wCN z4l-OMD3F?)1+`wajY+q*XyN)0swtsTW=pQtYRV7nl!Y!Z->@zrLNZMDxn#2ki#np98?Eu*<|%*twWhRkqMxH z7-|ualSRDCY0@^+6y6NZ{ldY#qlYh62a;E7IlL+yfQjxN-lzn>I#{WM#LZeV|HY{< zncS=eFwl2hK-@x>Y>1pY&lW;o<$ws$^#wH9(V zd2FkzS8ji36;60 z1cg#Ba2bzCy^@5Yw#fe>R6{~z%(`E#rBe6sS;3)IP@Zo*BQ@#68y+`^PM3;zY(f8- zrf5;wv7kB_p;~B3PH8=4Asv=+?IEEUMjae-w(6NQ&aiqxsbSJQL4e7F4*0rE8pFK) ztF?&mIteQRsyV1d)AdP8b52Kg$@{e;#nZxx*Hr<($*Z;EA@n750?KE;MMGn6ax-Z; z>}OR86G_|MT&-n8n2=DQ?^`tIF$mJI=-YR%cuMoyO`4&)!_`{o^tw$t1$abiv1kCi zwCFs@CC$tuw+!gFo23Ms=an(5zglaBL`#OW9pDkE#iFN()SfGK7TxR6Dn9JBWosRN zb+DZg5#R6xDxv4xsiU%H5~Sh1Z<~EqheN9(|K~_xu^mplki%=;@~ub-du!pOAX* zI}6RNhmbhdjK)fu)5L?(V-Dux|Dg{?8Q^vY=g-{~@kj|VF# zYkRepNgajO)?=8GPzO8+hkF9<>FxYf*E)KT1qzWUgvm085D!X^84Ik32a`*nhu7mK zOYd-JS8L79q>+#cUTem%cUFqKIV6S|Wu}J*qi&LLkSVRFEj`a*=l6ZJ){Kq}XV`x8KGJ(12{ELV6u$9ht?G>mpM8w4`}-bXUh7MJd(l1OC|7>)JhLHD3!4EYAt-P-mE2qxis#u_d0~) z`r2ztw2BkYY0@B%aHpBC_;tlFony7UT1x@hkq&W;K3!i+ZP{7}$s?88BYZ>&cuBbB z_HYm?0rk()yq+CQDgm}L)%l8RidSpZnPImO2G`dd@O7<&D?GZ^v6_Seme9kKN`QpM znDx6_tMw3?Pbj=Yp4OJGbqF6ED&C(CB;2z8af_73*fFCLR=rwl$q+hESatAu;NfMh zL-=5>b*$vH)EvCIlR|nkS8FZx@G|NN2cNT+`VAeK@WJf#x=mUpSp>W=W>y`%zde?6 z08$Cgq=~G4S8MgCJCdq|MUF}4D_Z1APAg&3%swUH3zdN5k$K<`E_eDb3JfYCSUX(x zYOUC$(-sXckF^e4;ZeQ2;|pSxqN_cVw)?nR%Z$4>00?S9oH*E7!L=;5%Kdg`kzN zL)&<>K4t}xS}Ym>uM<#@FX)|?cDq`unk?6%lyN=q%9@Ke2WbHTA~nk}z@j8>)(RcX z^&45{2<)&;O5^G##c6Tk1@Z_93M?jdwN|+g!R8Zf6Rp-J&8mcAg(q;O;*~;2;|nOu z9AO^9Unk*UYaIhw!{Wq?Tg#xJ%epctFGJXto?e{o?`-aD8bHuUtY<9;{pfI1H+` zq=R|2mZjhw=T05{-&jo=+>xzyq(K@tJ-)`<)#TQRuyK3_Ij(Og^D3W6YlCm~LXf{$HdXK&G@_ zTX%M~77`S61Ji+pSY$HpbTR3QvJj~Oc%>5jo3-HjrnCpo|J~WuT5?1Lx+VKMN>{oD zleQsTezTTlebAQGO>WwxnV`U*FwxR2n4aF%EtQU@GKPRi;j}!E3S!D3>~gbKE?Y1+ z8l~04W36L=f`9Jo@LXw62~#o;lmFn{m7RR?#t zS&PdY>jylxV9t5TI=5ifqck;!E#VOCofj$r8+G)Eh$vVz->j88#+$RH6_d81O?bEk zbNwa_Wz}A-RlQjYr#ZE;Xe@KAn6w={)(H={V7lz661gGnVI zSe#1tlm0K=6lGl{vI^JNURw%+UdmE-%#}^9_i8N;c&}txOPV(lrG%$gM-SsHFE_6Ja2WA&vmWio7REHw?j7HZw&hn;qpVP#H*Iw@;A?0dGMZ{5wYh>CR1i>Emh}M-R!|m{2TR@L{t38A(QmKNif5C^YV1}8rHvr%-&8JK z0t%q9O3msUN+??}N8jFBtDE6446mLYZb(A;qR=ZVJN7M5&aAKbYOT`$ZD@vnXUHOz z5Z$bmlS_bvQ-RyVMQLITMQv%5_H9SmF)N#lZ`Pvg`{y%hnPU;~T2EGgvld)mnbK^i zEL%qIZv0<|o3*4@`Q3D@e_9$ktu){-{JrzG)=_h_R^({%<;Fvg{1E-0ceNILmcqR5 zW-XCA5yJA14)Cd~wQ6qG;=naWR+sfXc>m|`oww>>cSJ<9gqFRe1+=X1q540CbXXm% zYaP?I1Zg|IU@dK}&%;~UWb3Q7bcB0^FkR+&82-=7CVO11)jMaC3GWKVqxsb;wqx~V zL3OZ{O?J3ii@57GgmisvLhIVIBbj5hx>_skv{u(UErzZy5f3*N4uwi^o9FfL;F_zo z?xt68eVb2dgi2_4wbrKeE?}uT__ZEd70sQL9a9q64i84CrlYwPSG{??ODu|d#m@@7 zuj9}v4S3EwAXHOAWz3qd*3x*@&uOj4XZ1g{N+%D6?F5_W)tlE`ttB{g%37M1nu<2$ z|6JBr;-ORWpzN4TvJiOGo2ReVGKf3?!21GP*4NGdb+}qfq`sHPDzI6W(O7XylY1z% z6>Ofj^59SGjEILTp&Dt8fV#|4NSM-A`>VD1O^r=GII>hGyw!Mk9d4eNiC5j#S`U>D zDZFySLIYi&mo3{`M^GNDXGGjSFsHR1R|?k$z+2s$+wB()$q zzuphZgM~||T&?x7nKZ{NWzo>KPzgnKaNcmWRvY69ZO0J#@cf@p3AT40i`1N1$PP>% zS|vvn)M-oNhUXm~tc3Kyk=`ZwbbIHmIv7*}gS3`S&Wfz>Bb88GQ{5)9Qp~QPV{tt63O6XSygG!Jx3?5aG%4mL&6<)~yktS^{co)D6 z%$MA(CDsuI3oCB%@bFQz$ zENZUS5_9c0gqZNwq(`E`RJT;Mb-uK<;%oG7YaM#E7Gpx~)moH#RiBmn6CP1xO}ET% zZb(_S)}htG><09%M?{>iDq*95c{(1hI)*KkW%XoZPw!ebS-DzkLmR^01TxreKT2YkNo~{!PF6-O8|1);Xs)IGr5-MTlj)=H>N8_@-4Vg5MB~*gD zT1)LvsDy>Bb!=YmYFTLqZ&}~E6|d}=t#z1$2-S2ndg|d_=MFUjYSy1Y=DU$A*zEwbinEpc;BSr5phTPq8PR*4L-LtE?6@?c60@@VjP{Z-S|7t0 zLbx_&XjFn$2jdCE`@H6At&ZXF0mQI6|F^rv(?(wJ$T`85{|S}Ao3$kC`xu>8>9f*~ zW(>UvzCN|Mgj9`TMrWsdbJj{UCbd z_%(ZF<@#D{i=spRwFV1a>nKec650_F8@l1i8$!+c8r{QYyo0WF1bWxCj+dLd;YpmdDO~FW6xSCg521Tl1K^cP2o$eW0#2IO=I<%dqU#H~ z)vPW4wzaa9N(dD%RKmj6I@&k2#$E+Y!S$_M@xmpzD6JBbN--2=x&V?Ha6w5zBbxIsE*rm zS8M$qgwo`ho?-iF`xE!>tFgU1{?fhs)V*Vsmi+d$J@)1JxqEkKP36nGrB`c}fX6$# zT8n&Aafa;?f0BP&?u`&m{Nc=fB2`-Q!=(6V;NIOsQ@MRNi^t^O#QvY@=6T3kIIYn! z?&}b|K6I0gL0an_H0vuQte7K8^q2>Sl(JGysfT-r zO^NICk_TPuC;|WROGqSm0va$3@0{=!S8M&#n6#uOjTQ}%j*oU8 instead of .} -\twocolitem{wxUSE\_IPC}{Use interprocess communication classes.} -\twocolitem{wxUSE\_IPV6}{Use experimental \helpref{wxIPV6address}{wxipaddress} and related classes.} -\twocolitem{wxUSE\_JOYSTICK}{Use \helpref{wxJoystick}{wxjoystick} class.} -\twocolitem{wxUSE\_LIBJPEG}{Enables JPEG format support (requires libjpeg).} -\twocolitem{wxUSE\_LIBPNG}{Enables PNG format support (requires libpng). Also requires wxUSE\_ZLIB.} -\twocolitem{wxUSE\_LIBTIFF}{Enables TIFF format support (requires libtiff).} -\twocolitem{wxUSE\_LISTBOOK}{Use \helpref{wxListbook}{wxlistbook} class.} -\twocolitem{wxUSE\_LISTBOX}{Use \helpref{wxListBox}{wxlistbox} class.} -\twocolitem{wxUSE\_LISTCTRL}{Use \helpref{wxListCtrl}{wxlistctrl} class.} -\twocolitem{wxUSE\_LOG}{Use \helpref{wxLog}{wxlog} and related classes.} -\twocolitem{wxUSE\_LOG\_DEBUG}{Enabled when wxLog used with \_\_WXDEBUG\_\_ defined.} -\twocolitem{wxUSE\_LOG\_DIALOG}{Use wxLogDialog class.} -\twocolitem{wxUSE\_LOGGUI}{Use \helpref{wxLogGui}{wxloggui} class.} -\twocolitem{wxUSE\_LOGWINDOW}{Use wxLogFrame class.} -\twocolitem{wxUSE\_LONGLONG}{Use \helpref{wxLongLong}{wxlonglong} class.} -\twocolitem{wxUSE\_LONGLONG\_NATIVE}{Use native \texttt{long long} type in \helpref{wxLongLong}{wxlonglong} implementation.} -\twocolitem{wxUSE\_LONGLONG\_WX}{Use generic wxLongLong implementation.} -\twocolitem{wxUSE\_MDI}{Use \helpref{wxMDIParentFrame}{wxmdiparentframe} and \helpref{wxMDIChildFrame}{wxmdichildframe}} -\twocolitem{wxUSE\_MDI\_ARCHITECTURE}{Use MDI-based document-view classes.} -\twocolitem{wxUSE\_MEDIACTRL}{Use \helpref{wxMediaCtrl}{wxmediactrl}.} -\twocolitem{wxUSE\_MEMORY\_TRACING}{Use wxWidgets memory leak detection, not recommended if using another memory debugging tool.} -\twocolitem{wxUSE\_MENUS}{Use \helpref{wxMenu}{wxmenu} and related classes.} -\twocolitem{wxUSE\_METAFILE}{Use \helpref{wxMetaFile}{wxmetafile} and related classes.} -\twocolitem{wxUSE\_MIMETYPE}{Use \helpref{wxFileType}{wxfiletype} class.} -\twocolitem{wxUSE\_MINIFRAME}{Use \helpref{wxMiniFrame}{wxminiframe} class.} -\twocolitem{wxUSE\_MOUSEWHEEL}{Support mouse wheel events.} -\twocolitem{wxUSE\_MSGDLG}{Use \helpref{wxMessageDialog}{wxmessagedialog} class and \helpref{wxMessageBox}{wxmessagebox} function.} -\twocolitem{wxUSE\_NATIVE\_STATUSBAR}{Use native \helpref{wxStatusBar}{wxstatusbar} class.} -\twocolitem{wxUSE\_NOTEBOOK}{Use \helpref{wxNotebook}{wxnotebook} and related classes.} -\twocolitem{wxUSE\_NUMBERDLG}{Use wxNumberEntryDialog class.} -\twocolitem{wxUSE\_ODCOMBOBOX}{Use \helpref{wxOwnerDrawnComboBox}{wxownerdrawncombobox} class.} -\twocolitem{wxUSE\_ON\_FATAL\_EXCEPTION}{Catch signals in \helpref{wxApp::OnFatalException}{wxapponfatalexception} method.} -\twocolitem{wxUSE\_OPENGL}{Please use wxUSE\_GLCANVAS to test for enabled OpenGL support instead.} -\twocolitem{wxUSE\_OWNER\_DRAWN}{Use interface for owner-drawn GUI elements.} -\twocolitem{wxUSE\_PALETTE}{Use \helpref{wxPalette}{wxpalette} and related classes.} -\twocolitem{wxUSE\_PCX}{Enables \helpref{wxImage}{wximage} PCX handler.} -\twocolitem{wxUSE\_PNM}{Enables \helpref{wxImage}{wximage} PNM handler.} -\twocolitem{wxUSE\_POPUPWIN}{Use wxPopupWindow class.} -\twocolitem{wxUSE\_POSTSCRIPT}{Use wxPostScriptPrinter class.} -\twocolitem{wxUSE\_PRINTF\_POS\_PARAMS}{Use \helpref{wxVsnprintf}{wxvsnprintf} which supports positional parameters.} -\twocolitem{wxUSE\_PRINTING\_ARCHITECTURE}{Enable printer classes.} -\twocolitem{wxUSE\_PROGRESSDLG}{Enables progress dialog classes.} -\twocolitem{wxUSE\_PROTOCOL}{Use \helpref{wxProtocol}{wxprotocol} and derived classes.} -\twocolitem{wxUSE\_PROTOCOL\_FILE}{Use wxFileProto class. (requires \helpref{wxProtocol}{wxprotocol})} -\twocolitem{wxUSE\_PROTOCOL\_FTP}{Use \helpref{wxFTP}{wxftp} class. (requires \helpref{wxProtocol}{wxprotocol})} -\twocolitem{wxUSE\_PROTOCOL\_HTTP}{Use \helpref{wxHTTP}{wxhttp} class. (requires \helpref{wxProtocol}{wxprotocol})} -\twocolitem{wxUSE\_RADIOBOX}{Use \helpref{wxRadioBox}{wxradiobox} class.} -\twocolitem{wxUSE\_RADIOBTN}{Use \helpref{wxRadioButton}{wxradiobutton} class.} -\twocolitem{wxUSE\_REGEX}{Use \helpref{wxRegEx}{wxregex} class.} -\twocolitem{wxUSE\_RICHTEXT}{Use \helpref{wxRichTextCtrl}{wxrichtextctrl} class.} -\twocolitem{wxUSE\_RICHTEXT\_XML\_HANDLER}{See src/xrc/xh\_richtext.cpp file.} -\twocolitem{wxUSE\_SASH}{Use \helpref{wxSashWindow}{wxsashwindow} class.} -\twocolitem{wxUSE\_SCROLLBAR}{Use \helpref{wxScrollBar}{wxscrollbar} class.} -\twocolitem{wxUSE\_SEARCHCTRL}{Use \helpref{wxSearchCtrl}{wxsearchctrl} class.} -\twocolitem{wxUSE\_SELECT\_DISPATCHER}{Use wxSelectDispatcher class.} -\twocolitem{wxUSE\_SLIDER}{Use \helpref{wxSlider}{wxslider} class.} -\twocolitem{wxUSE\_SNGLINST\_CHECKER}{Use \helpref{wxSingleInstanceChecker}{wxsingleinstancechecker} class.} -\twocolitem{wxUSE\_SOCKETS}{Enables Network address classes.} -\twocolitem{wxUSE\_SOUND}{Use \helpref{wxSound}{wxsound} class.} -\twocolitem{wxUSE\_SPINBTN}{Use \helpref{wxSpinButton}{wxspinbutton} class.} -\twocolitem{wxUSE\_SPINCTRL}{Use \helpref{wxSpinCtrl}{wxspinctrl} class.} -\twocolitem{wxUSE\_SPLASH}{Use \helpref{wxSplashScreen}{wxsplashscreen} class.} -\twocolitem{wxUSE\_SPLINES}{Provide methods for spline drawing in wxDC.} -\twocolitem{wxUSE\_SPLITTER}{Use \helpref{wxSplitterWindow}{wxsplitterwindow} class.} -\twocolitem{wxUSE\_STACKWALKER}{Enables \helpref{wxStackWalker}{wxstackwalker} and related classes.} -\twocolitem{wxUSE\_STARTUP\_TIPS}{Use startup tips, \helpref{wxTipProvider}{wxtipprovider} class.} -\twocolitem{wxUSE\_STATBMP}{Use \helpref{wxStaticBitmap}{wxstaticbitmap} class.} -\twocolitem{wxUSE\_STATBOX}{Use \helpref{wxStaticBox}{wxstaticbox} class.} -\twocolitem{wxUSE\_STATLINE}{Use \helpref{wxStaticLine}{wxstaticline} class.} -\twocolitem{wxUSE\_STATTEXT}{Use \helpref{wxStaticText}{wxstatictext} class.} -\twocolitem{wxUSE\_STATUSBAR}{Use \helpref{wxStatusBar}{wxstatusbar} class.} -\twocolitem{wxUSE\_STC}{Use wxStyledTextCtrl.} -\twocolitem{wxUSE\_STD\_IOSTREAM}{Use standard C++ stream classes.} -\twocolitem{wxUSE\_STD\_STRING}{Use standard C++ string classes.} -\twocolitem{wxUSE\_STDPATHS}{Use \helpref{wxStandardPaths}{wxstandardpaths} class.} -\twocolitem{wxUSE\_STL}{Use Standard Template Library for the container classes and \helpref{wxString}{wxstring} implementation.} -\twocolitem{wxUSE\_STOPWATCH}{Use \helpref{wxStopWatch}{wxstopwatch} class.} -\twocolitem{wxUSE\_STREAMS}{Enable stream classes.} -\twocolitem{wxUSE\_SVG}{Use wxSVGFileDC class.} -\twocolitem{wxUSE\_SYSTEM\_OPTIONS}{Use \helpref{wxSystemOptions}{wxsystemoptions} class.} -\twocolitem{wxUSE\_TAB\_DIALOG}{Use the obsolete wxTabControl class.} -\twocolitem{wxUSE\_TARSTREAM}{Enable Tar files support.} -\twocolitem{wxUSE\_TASKBARICON}{Use \helpref{wxTaskBarIcon}{wxtaskbaricon} class.} -\twocolitem{wxUSE\_TEXTBUFFER}{Use wxTextBuffer class.} -\twocolitem{wxUSE\_TEXTCTRL}{Use \helpref{wxTextCtrl}{wxtextctrl} class.} -\twocolitem{wxUSE\_TEXTDLG}{Use \helpref{wxTextEntryDialog}{wxtextentrydialog} class.} -\twocolitem{wxUSE\_TEXTFILE}{Use \helpref{wxTextFile}{wxtextfile} class.} -\twocolitem{wxUSE\_TGA}{Enable \helpref{wxImage}{wximage} TGA handler.} -\twocolitem{wxUSE\_THREADS}{Use \helpref{wxThread}{wxthread} and related classes.} -\twocolitem{wxUSE\_TIMER}{Use \helpref{wxTimer}{wxtimer} class.} -\twocolitem{wxUSE\_TIPWINDOW}{Use \helpref{wxTipWindow}{wxtipwindow} class.} -\twocolitem{wxUSE\_TOGGLEBTN}{Use \helpref{wxToggleButton}{wxtogglebutton} class.} -\twocolitem{wxUSE\_TOOLBAR}{Use \helpref{wxToolBar}{wxtoolbar} class.} -\twocolitem{wxUSE\_TOOLBAR\_NATIVE}{Use native \helpref{wxToolBar}{wxtoolbar} class.} -\twocolitem{wxUSE\_TOOLBOOK}{Use \helpref{wxToolbook}{wxtoolbook} class.} -\twocolitem{wxUSE\_TOOLTIPS}{Use \helpref{wxToolTip}{wxtooltip} class.} -\twocolitem{wxUSE\_TREEBOOK}{Use \helpref{wxTreebook}{wxtreebook} class.} -\twocolitem{wxUSE\_TREECTRL}{Use \helpref{wxTreeCtrl}{wxtreectrl} class.} -\twocolitem{wxUSE\_TTM\_WINDOWFROMPOINT}{Obsolete, do not use.} -\twocolitem{wxUSE\_UNICODE}{Compiled with Unicode support.} -\twocolitem{wxUSE\_UNICODE\_UTF8}{Compiled with UTF8 support.} -\twocolitem{wxUSE\_UNICODE\_WCHAR}{Compiled with Unicode support and using wchar\_t type.} -\twocolitem{wxUSE\_URL}{Use \helpref{wxURL}{wxurl} class.} -\twocolitem{wxUSE\_URL\_NATIVE}{Use native support for some operations with \helpref{wxURL}{wxurl}.} -\twocolitem{wxUSE\_UTF8\_LOCALE\_ONLY}{Build wxWidgets to support running only under UTF-8 (and C) locale. This eliminates the code necessary for conversions from the other locales and reduces the library size; useful for embedded systems.} -\twocolitem{wxUSE\_VALIDATORS}{Use \helpref{wxValidator}{wxvalidator} class.} -\twocolitem{wxUSE\_VARIANT}{Use \helpref{wxVariant}{wxvariant} class.} -\twocolitem{wxUSE\_WIZARDDLG}{Use \helpref{wxWizard}{wxwizard} class.} -\twocolitem{wxUSE\_WXHTML\_HELP}{Use \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} and related classes.} -\twocolitem{wxUSE\_XML}{Use XML parsing classes.} -\twocolitem{wxUSE\_XPM}{Enable XPM reader for \helpref{wxImage}{wximage} and \helpref{wxBitmap}{wxbitmap} classes.} -\twocolitem{wxUSE\_XRC}{Use XRC XML-based resource system.} -\twocolitem{wxUSE\_ZIPSTREAM}{Enable streams for Zip files.} -\twocolitem{wxUSE\_ZLIB}{Use \helpref{wxZlibInput}{wxzlibinputstream} and \helpref{wxZlibOutputStream}{wxzliboutputstream} classes, required by wxUSE\_LIBPNG.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only under Unix platforms}\label{wxusedefunix} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_EPOLL\_DISPATCHER}{Use wxEpollDispatcher class. See also wxUSE\_SELECT\_DISPATCHER.} -\twocolitem{wxUSE\_GSTREAMER}{Use GStreamer library in \helpref{wxMediaCtrl}{wxmediactrl}.} -\twocolitem{wxUSE\_LIBMSPACK}{Use libmspack library.} -\twocolitem{wxUSE\_LIBSDL}{Use SDL for wxSound implementation.} -\twocolitem{wxUSE\_PLUGINS}{See also wxUSE\_LIBSDL.} -\twocolitem{wxUSE\_UNIX}{Enabled on Unix Platform.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxX11 Platform}\label{wxusedefx11} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_NANOX}{Use NanoX.} -\twocolitem{wxUSE\_UNIV\_TEXTCTRL}{Use wxUniv's implementation of \helpref{wxTextCtrl}{wxtextctrl} class.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxGTK port}\label{wxusedefgtk} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_DETECT\_SM}{Use code to detect X11 session manager.} -\twocolitem{wxUSE\_GTKPRINT}{Use GTK+ printing support.} -\twocolitem{wxUSE\_LIBGNOMEPRINT}{Use GNOME printing support.} -\twocolitem{wxUSE\_LIBGNOMEVFS}{Use GNOME VFS support. Currently has no effect. } -\twocolitem{wxUSE\_LIBHILDON}{Use Hildon framework for Nokia 770. Currently has no effect. } -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxMac port}\label{wxusedefmac} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_MAC\_CRITICAL\_REGION\_MUTEX}{See src/mac/carbon/thread.cpp file.} -\twocolitem{wxUSE\_MAC\_PTHREADS\_MUTEX}{See src/mac/carbon/thread.cpp file.} -\twocolitem{wxUSE\_MAC\_SEMAPHORE\_MUTEX}{See src/mac/carbon/thread.cpp file.} -\twocolitem{wxUSE\_WEBKIT}{Use wxWebKitCtrl class.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxMotif port}\label{wxusedefmotif} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_GADGETS}{Use xmCascadeButtonGadgetClass, xmLabelGadgetClass, xmPushButtonGadgetClass and xmToggleButtonGadgetClass classes.} -\twocolitem{wxUSE\_INVISIBLE\_RESIZE}{See src/motif/dialog.cpp file.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in Cocoa port} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_OBJC\_UNIQUIFYING}{Enable Objective-C class name uniquifying.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in OS2 port} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_CONSOLEDEBUG}{See src/os2/app.cpp file.} -\twocolitem{wxUSE\_DDE}{See src/os2/mimetype.cpp file.} -\twocolitem{wxUSE\_IMAGE\_LOADING\_IN\_MSW}{See src/os2/clipbrd.cpp file.} -\twocolitem{wxUSE\_IMAGE\_LOADING\_IN\_OS2}{See src/os2/gdiimage.cpp file.} -\twocolitem{wxUSE\_NET\_API}{Use NetBios32GetInfo API call.} -\twocolitem{wxUSE\_RESOURCE\_LOADING\_IN\_OS2}{See src/os2/gdiimage.cpp file.} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxMSW port}\label{wxusedefmsw} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_ACCESSIBILITY}{Enable accessibility support} -\twocolitem{wxUSE\_ACTIVEX}{Use \helpref{wxActiveXContainer}{wxactivexcontainer} and related classes.} -\twocolitem{wxUSE\_COMBOCTRL\_POPUP\_ANIMATION}{See wx/msw/combo.h file.} -\twocolitem{wxUSE\_COMCTL32\_SAFELY}{See src/msw/treectrl.cpp file.} -\twocolitem{wxUSE\_COMMON\_DIALOGS}{Enable use of windows common dialogs from header commdlg.h; example PRINTDLG.} -\twocolitem{wxUSE\_CRASHREPORT}{Use wxCrashReport class.} -\twocolitem{wxUSE\_DATEPICKCTRL\_GENERIC}{Use generic \helpref{wxDatePickerCtrl}{wxdatepickerctrl} implementation in addition to the native one.} -\twocolitem{wxUSE\_DC\_CACHEING}{cache temporary \helpref{wxDC}{wxdc} objects.} -\twocolitem{wxUSE\_DIRECTDRAW}{Enable use of the system include file ddraw.h.} -\twocolitem{wxUSE\_DDE\_FOR\_IPC}{See wx/ipc.h file.} -\twocolitem{wxUSE\_ENH\_METAFILE}{Use wxEnhMetaFile.} -\twocolitem{wxUSE\_HOTKEY}{Use \helpref{wxWindow::RegisterHotKey()}{wxwindowregisterhotkey} and \helpref{UnregisterHotKey}{wxwindowunregisterhotkey}} -\twocolitem{wxUSE\_INKEDIT}{Use InkEdit library. Related to Tablet PCs.} -\twocolitem{wxUSE\_MS\_HTML\_HELP}{Use \helpref{wxCHMHelpController}{wxhelpcontroller} class.} -\twocolitem{wxUSE\_NO\_MANIFEST}{Use to prevent the auto generation, under MSVC, of manifest file needed by windows XP and above.} -\twocolitem{wxUSE\_NORLANDER\_HEADERS}{Using headers whose author is Anders Norlander.} -\twocolitem{wxUSE\_OLE}{Enables OLE helper routines.} -\twocolitem{wxUSE\_OLE\_AUTOMATION}{Enable OLE automation utilities.} -\twocolitem{wxUSE\_OLE\_CLIPBOARD}{Use OLE clipboard.} -\twocolitem{wxUSE\_PENWINDOWS}{See src/msw/penwin.cpp file.} -\twocolitem{wxUSE\_POSTSCRIPT\_ARCHITECTURE\_IN\_MSW}{Use PS printing in wxMSW.} -\twocolitem{wxUSE\_PS\_PRINTING}{See src/msw/dcprint.cpp file.} -\twocolitem{wxUSE\_REGKEY}{Use \helpref{wxRegKey}{wxregkey} class.} -\twocolitem{wxUSE\_RICHEDIT}{Enable use of riched32.dll in \helpref{wxTextCtrl}{wxtextctrl}} -\twocolitem{wxUSE\_RICHEDIT2}{Enable use of riched20.dll in \helpref{wxTextCtrl}{wxtextctrl}} -\twocolitem{wxUSE\_VC\_CRTDBG}{See wx/msw/msvcrt.h file.} -\twocolitem{wxUSE\_UNICODE\_MSLU}{Use MSLU for Unicode support under Windows 9x systems.} -\twocolitem{wxUSE\_UXTHEME}{Enable support for XP themes.} -\twocolitem{wxUSE\_WIN\_METAFILES\_ALWAYS}{Use \helpref{wxMetaFile}{wxmetafile} even when wxUSE\_ENH\_METAFILE=$1$.} -\twocolitem{wxUSE\_WXDIB}{Use wxDIB class.} -\twocolitem{wxUSE\_XPM\_IN\_MSW}{See also wxUSE\_XPM} -\end{twocollist} - -\subsection{wxUSE preprocessor symbols used only in wxUniversal}\label{wxusedefuniv} -\begin{twocollist}\itemsep=0pt -\twocolitem{wxUSE\_ALL\_THEMES}{Use all themes in wxUniversal; See wx/univ/theme.h file.} -\twocolitem{wxUSE\_THEME\_GTK}{Use GTK+ 1-like theme in wxUniversal} -\twocolitem{wxUSE\_THEME\_METAL}{Use GTK+ 2-like theme in wxUniversal} -\twocolitem{wxUSE\_THEME\_MONO}{Use simple monochrome theme in wxUniversal} -\twocolitem{wxUSE\_THEME\_WIN32}{Use Win32-like theme in wxUniversal} -\end{twocollist} diff --git a/docs/latex/wx/wxx11.tex b/docs/latex/wx/wxx11.tex deleted file mode 100644 index 376e1ca422..0000000000 --- a/docs/latex/wx/wxx11.tex +++ /dev/null @@ -1,21 +0,0 @@ -\section{wxX11 port}\label{wxx11port} - -wxX11 is a port of wxWidgets using X11 (The X Window System) -as the underlying graphics backend. wxX11 draws its widgets -using the wxUniversal widget set which is now part of wxWidgets. -wxX11 is well-suited for a number of special applications such -as those running on systems with few resources (PDAs) or for -applications which need to use a special themed look. You will need -wxWidgets 2.3.2 or higher. - -In order to configure wxWidgets to compile wxX11 you will -need to type: - -\begin{verbatim} -configure --with-x11 --with-universal -\end{verbatim} - -For further information, please see the files in docs/x11 -in the distribution. There is also a page on the use of -wxWidgets for embedded applications on the wxWidgets web site. - diff --git a/docs/latex/wx/xlocale.tex b/docs/latex/wx/xlocale.tex deleted file mode 100644 index 79b08f0786..0000000000 --- a/docs/latex/wx/xlocale.tex +++ /dev/null @@ -1,114 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: xlocale.tex -%% Purpose: wxXLocale documentation -%% Author: Vadim Zeitlin -%% Created: 2008-02-10 -%% RCS-ID: $Id: cmdlpars.tex 49199 2007-10-17 17:32:16Z VZ $ -%% Copyright: (c) 2008 Vadim Zeitlin -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxXLocale}}\label{wxxlocale} - -\subsection{Introduction} - -This class represents a locale object used by so-called xlocale API. Unlike -\helpref{wxLocale}{wxlocale} it doesn't provide any non-trivial operations but -simply provides a portable wrapper for POSIX \texttt{locale\_t} type. It exists -solely to be provided as an argument to various \texttt{wxFoo\_l()} functions -which are the extensions of the standard locale-dependent functions (hence the -name xlocale). These functions do exactly the same thing as the corresponding -standard \texttt{foo()} except that instead of using the global program locale -they use the provided wxXLocale object. For example, if the user runs the -program in French locale, the standard \texttt{printf()} function will output -floating point numbers using decimal comma instead of decimal period. If the -program needs to format a floating-point number in a standard format it can -use \texttt{wxPrintf\_l(wxXLocale::GetCLocale(), "\%g", number)} to do it. -Conversely, if a program wanted to output the number in French locale, even if -the current locale is different, it could use wxXLocale(wxLANGUAGE\_FRENCH). - -\subsection{Availability} - -This class is fully implemented only under the platforms where xlocale POSIX -API or equivalent is available. Currently the xlocale API is available under -most of the recent Unix systems (including Linux, various BSD and Mac OS X) and -Microsoft Visual C++ standard library provides a similar API starting from -version 8 (Visual Studio 2005). - -If neither POSIX API nor Microsoft proprietary equivalent are available, this -class is still available but works in degraded mode: the only supported locale -is the C one and attempts to create wxXLocale object for any other locale will -fail. You can use the preprocessor macro \texttt{wxHAS\_XLOCALE\_SUPPORT} to -test if full xlocale API is available or only skeleton C locale support is -present. - -Notice that wxXLocale is new in wxWidgets 2.9.0 and is not compiled in if -\texttt{wxUSE\_XLOCALE} was set to $0$ during the library compilation. - -\subsection{Locale-dependent functions} - -Currently the following \texttt{\_l}-functions are available: -\begin{itemize} - \item Character classification functions: \texttt{wxIsxxx\_l()}, e.g. - \texttt{wxIsalpha\_l()}, \texttt{wxIslower\_l()} and all the others. - \item Character transformation functions: \texttt{wxTolower\_l()} and - \texttt{wxToupper\_l()} -\end{itemize} - -We hope to provide many more functions (covering numbers, time and formatted -IO) in the near future. - - -\wxheading{Derived from} - -No base class - -\wxheading{See also} - -\helpref{wxLocale}{wxlocale} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxXLocale::wxXLocale}\label{wxxlocalector} - -\func{}{wxLocale}{\void} - -Creates an uninitialized locale object, \helpref{IsOk}{wxxlocaleisok} method -will return false. - -\func{}{wxLocale}{\param{wxLanguage}{ lang}} - -Creates the locale object corresponding to the specified language. - -\func{}{wxLocale}{\param{const char *}{loc}} - -Creates the locale object corresponding to the specified locale string. The -locale string is system-dependent, use constructor taking wxLanguage for better -portability. - - -\membersection{wxXLocale::GetCLocale}\label{wxxlocalegetclocale} - -\func{static wxXLocale\& }{GetCLocale}{\void} - -Returns the global object representing the "C" locale. For an even shorter -access to this object a global \texttt{wxCLocale} variable (implemented as a -macro) is provided and can be used instead of calling this method. - - -\membersection{wxXLocale::IsOk}\label{wxxlocaleisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if this object is initialized, i.e. represents a valid locale or -\false otherwise. - diff --git a/docs/latex/wx/xmlattr.tex b/docs/latex/wx/xmlattr.tex deleted file mode 100644 index 1c0b031289..0000000000 --- a/docs/latex/wx/xmlattr.tex +++ /dev/null @@ -1,88 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: xmlattr.tex -%% Purpose: wxXmlAttribute documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-18 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxXmlAttribute}}\label{wxxmlattribute} - -Represents a node attribute. - -Example: in {\tt }, {\tt ``src"} is attribute with value -{\tt ``hello.gif"} and {\tt ``id"} is a attribute with value {\tt ``3"}. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxXml}{librarieslist} - -\wxheading{See also} - -\helpref{wxXmlDocument}{wxxmldocument}, \helpref{wxXmlNode}{wxxmlnode} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxXmlAttribute::wxXmlAttribute}\label{wxxmlattributewxxmlattribute} - -\func{}{wxXmlAttribute}{\void} - - -\func{}{wxXmlAttribute}{\param{const wxString\& }{name}, \param{const wxString\& }{value}, \param{wxXmlAttribute* }{next = NULL}} - -Creates the attribute with given {\it name} and {\it value}. -If {\it next} is not NULL, then sets it as sibling of this attribute. - -\membersection{wxXmlAttribute::\destruct{wxXmlAttribute}}\label{wxxmlattributedtor} - -\func{}{\destruct{wxXmlAttribute}}{\void} - -The virtual destructor. - -\membersection{wxXmlAttribute::GetName}\label{wxxmlattributegetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the name of this attribute. - -\membersection{wxXmlAttribute::GetNext}\label{wxxmlattributegetnext} - -\constfunc{wxXmlAttribute*}{GetNext}{\void} - -Returns the sibling of this attribute or NULL if there are no siblings. - -\membersection{wxXmlAttribute::GetValue}\label{wxxmlattributegetvalue} - -\constfunc{wxString}{GetValue}{\void} - -Returns the value of this attribute. - -\membersection{wxXmlAttribute::SetName}\label{wxxmlattributesetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name of this attribute. - -\membersection{wxXmlAttribute::SetNext}\label{wxxmlattributesetnext} - -\func{void}{SetNext}{\param{wxXmlAttribute* }{next}} - -Sets the sibling of this attribute. - -\membersection{wxXmlAttribute::SetValue}\label{wxxmlattributesetvalue} - -\func{void}{SetValue}{\param{const wxString\& }{value}} - -Sets the value of this attribute. - diff --git a/docs/latex/wx/xmldocument.tex b/docs/latex/wx/xmldocument.tex deleted file mode 100644 index 94574c9e0a..0000000000 --- a/docs/latex/wx/xmldocument.tex +++ /dev/null @@ -1,257 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: xmldocument.tex -%% Purpose: wxXmlDocument documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-18 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxXmlDocument}}\label{wxxmldocument} - -This class holds XML data/document as parsed by XML parser in the root node. - -wxXmlDocument internally uses the expat library which comes with wxWidgets to parse the given stream. - -A simple example of using XML classes is: - -\begin{verbatim} -wxXmlDocument doc; -if (!doc.Load(wxT("myfile.xml"))) - return false; - -// start processing the XML file -if (doc.GetRoot()->GetName() != wxT("myroot-node")) - return false; - -wxXmlNode *child = doc.GetRoot()->GetChildren(); -while (child) { - - if (child->GetName() == wxT("tag1")) { - - // process text enclosed by - wxString content = child->GetNodeContent(); - - ... - - - // process attributes of - wxString attrvalue1 = - child->GetAttribute(wxT("attr1"), - wxT("default-value")); - wxString attrvalue2 = - child->GetAttribute(wxT("attr2"), - wxT("default-value")); - - ... - - } else if (child->GetName() == wxT("tag2")) { - - // process tag2 ... - } - - child = child->GetNext(); -} -\end{verbatim} - -{\bf Note:} if you want to preserve the original formatting of the loaded file including whitespaces -and indentation, you need to turn off whitespace-only textnode removal and automatic indentation: - -\begin{verbatim} -wxXmlDocument doc; -doc.Load(wxT("myfile.xml"), wxT("UTF-8"), wxXMLDOC_KEEP_WHITESPACE_NODES); - -// myfile2.xml will be indentic to myfile.xml saving it this way: -doc.Save(wxT("myfile2.xml"), wxXML_NO_INDENTATION); -\end{verbatim} - -Using default parameters, you will get a reformatted document which in general is different from -the original loaded content: - -\begin{verbatim} -wxXmlDocument doc; -doc.Load(wxT("myfile.xml")); -doc.Save(wxT("myfile2.xml")); // myfile2.xml != myfile.xml -\end{verbatim} - - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxXml}{librarieslist} - -\wxheading{See also} - -\helpref{wxXmlNode}{wxxmlnode}, \helpref{wxXmlAttribute}{wxxmlattribute} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - - -\membersection{wxXmlDocument::wxXmlDocument}\label{wxxmldocumentwxxmldocument} - -\func{}{wxXmlDocument}{\void} - - -\func{}{wxXmlDocument}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} - -Loads the given {\it filename} using the given encoding. See \helpref{Load}{wxxmldocumentload}. - -\func{}{wxXmlDocument}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} - -Loads the XML document from given stream using the given encoding. See \helpref{Load}{wxxmldocumentload}. - -\func{}{wxXmlDocument}{\param{const wxXmlDocument\& }{doc}} - -Copy constructor. Deep copies all the XML tree of the given document. - - -\membersection{wxXmlDocument::\destruct{wxXmlDocument}}\label{wxxmldocumentdtor} - -\func{}{\destruct{wxXmlDocument}}{\void} - -Virtual destructor. Frees the document root node. - - - -\membersection{wxXmlDocument::DetachRoot}\label{wxxmldocumentdetachroot} - -\func{wxXmlNode*}{DetachRoot}{\void} - -Detaches the document root node and returns it. The document root node will be set to \NULL -and thus \helpref{IsOk}{wxxmldocumentisok} will return \false after calling this function. - -Note that the caller is reponsible for deleting the returned node in order to avoid memory leaks. - - - -\membersection{wxXmlDocument::GetEncoding}\label{wxxmldocumentgetencoding} - -\constfunc{wxString}{GetEncoding}{\void} - -Returns encoding of in-memory representation of the document -(same as passed to \helpref{Load}{wxxmldocumentload} or constructor, defaults to UTF-8). - -NB: this is meaningless in Unicode build where data are stored as {\tt wchar\_t*}. - - - -\membersection{wxXmlDocument::GetFileEncoding}\label{wxxmldocumentgetfileencoding} - -\constfunc{wxString}{GetFileEncoding}{\void} - -Returns encoding of document (may be empty). - -Note: this is the encoding original file was saved in, {\bf not} the -encoding of in-memory representation! - - - -\membersection{wxXmlDocument::GetRoot}\label{wxxmldocumentgetroot} - -\constfunc{wxXmlNode*}{GetRoot}{\void} - -Returns the root node of the document. - - - -\membersection{wxXmlDocument::GetVersion}\label{wxxmldocumentgetversion} - -\constfunc{wxString}{GetVersion}{\void} - -Returns the version of document. -This is the value in the {\tt } header of the XML document. -If the version attribute was not explicitely given in the header, this function -returns an empty string. - - - -\membersection{wxXmlDocument::IsOk}\label{wxxmldocumentisok} - -\constfunc{bool}{IsOk}{\void} - -Returns \true if the document has been loaded successfully. - - - -\membersection{wxXmlDocument::Load}\label{wxxmldocumentload} - -\func{bool}{Load}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} - -Parses {\it filename} as an xml document and loads its data. - -If {\tt flags} does not contain {\tt wxXMLDOC\_KEEP\_WHITESPACE\_NODES}, then, while loading, all nodes of -type {\tt wxXML\_TEXT\_NODE} (see \helpref{wxXmlNode}{wxxmlnode}) are automatically skipped if they -contain whitespaces only. -The removal of these nodes makes the load process slightly faster and requires less memory however -makes impossible to recreate exactly the loaded text with a \helpref{Save}{wxxmldocumentsave} call later. -Read the initial description of this class for more info. - -Returns \true on success, \false otherwise. - -\func{bool}{Load}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} - -Like above but takes the data from given input stream. - - -\membersection{wxXmlDocument::Save}\label{wxxmldocumentsave} - -\constfunc{bool}{Save}{\param{const wxString\& }{filename}, \param{int }{indentstep = 1}} - -Saves XML tree creating a file named with given string. - -If {\tt indentstep} is greater than or equal to zero, then, while saving, an automatic indentation -is added with steps composed by {\tt indentstep} spaces. -If {\tt indentstep} is {\tt wxXML\_NO\_INDENTATION}, then, automatic indentation is turned off. - -\constfunc{bool}{Save}{\param{wxOutputStream\& }{stream}, \param{int }{indentstep = 1}} - -Saves XML tree in the given output stream. See other overload for a description of {\tt indentstep}. - - -\membersection{wxXmlDocument::SetEncoding}\label{wxxmldocumentsetencoding} - -\func{void}{SetEncoding}{\param{const wxString\& }{enc}} - -Sets the enconding of the document. - - -\membersection{wxXmlDocument::SetFileEncoding}\label{wxxmldocumentsetfileencoding} - -\func{void}{SetFileEncoding}{\param{const wxString\& }{encoding}} - -Sets the enconding of the file which will be used to save the document. - - -\membersection{wxXmlDocument::SetRoot}\label{wxxmldocumentsetroot} - -\func{void}{SetRoot}{\param{wxXmlNode* }{node}} - -Sets the root node of this document. Deletes previous root node. -Use \helpref{DetachRoot}{wxxmldocumentdetachroot} and then -\helpref{SetRoot}{wxxmldocumentsetroot} if you want -to replace the root node without deleting the old document tree. - - -\membersection{wxXmlDocument::SetVersion}\label{wxxmldocumentsetversion} - -\func{void}{SetVersion}{\param{const wxString\& }{version}} - -Sets the version of the XML file which will be used to save the document. - - -\membersection{wxXmlDocument::operator=}\label{wxxmldocumentoperatorassign} - -\func{wxXmlDocument\& operator}{operator=}{\param{const wxXmlDocument\& }{doc}} - -Deep copies the given document. - diff --git a/docs/latex/wx/xmlnode.tex b/docs/latex/wx/xmlnode.tex deleted file mode 100644 index de6b349008..0000000000 --- a/docs/latex/wx/xmlnode.tex +++ /dev/null @@ -1,321 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Name: xmlnode.tex -%% Purpose: wxXmlNode documentation -%% Author: Francesco Montorsi -%% Created: 2006-04-18 -%% RCS-ID: $Id$ -%% Copyright: (c) 2006 Francesco Montorsi -%% License: wxWindows license -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxXmlNode}}\label{wxxmlnode} - -Represents a node in an XML document. See \helpref{wxXmlDocument}{wxxmldocument}. - -Node has a name and may have content and attributes. Most common node types are -{\tt wxXML\_TEXT\_NODE} (name and attributes are irrelevant) and -{\tt wxXML\_ELEMENT\_NODE} (e.g. in {\tt hi} there is an element -with name="title", irrelevant content and one child ({\tt wxXML\_TEXT\_NODE} -with content="hi"). - -If \texttt{wxUSE\_UNICODE} is 0, all strings are encoded in the encoding given to -\helpref{wxXmlDocument::Load}{wxxmldocumentload} (default is UTF-8). - - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxXml}{librarieslist} - -\wxheading{Constants} - -The following are the node types supported by \helpref{wxXmlNode}{wxxmlnode}: - -{\small -\begin{verbatim} -enum wxXmlNodeType -{ - wxXML_ELEMENT_NODE, - wxXML_ATTRIBUTE_NODE, - wxXML_TEXT_NODE, - wxXML_CDATA_SECTION_NODE, - wxXML_ENTITY_REF_NODE, - wxXML_ENTITY_NODE, - wxXML_PI_NODE, - wxXML_COMMENT_NODE, - wxXML_DOCUMENT_NODE, - wxXML_DOCUMENT_TYPE_NODE, - wxXML_DOCUMENT_FRAG_NODE, - wxXML_NOTATION_NODE, - wxXML_HTML_DOCUMENT_NODE -} -\end{verbatim} -} - -\wxheading{See also} - -\helpref{wxXmlDocument}{wxxmldocument}, \helpref{wxXmlAttribute}{wxxmlattribute} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxXmlNode::wxXmlNode}\label{wxxmlnodewxxmlnode} - -\func{}{wxXmlNode}{\param{wxXmlNode* }{parent}, \param{wxXmlNodeType }{type}, \param{const wxString\& }{name}, \param{const wxString\& }{content = wxEmptyString}, \param{wxXmlAttribute* }{attrs = \NULL}, \param{wxXmlNode* }{next = \NULL}, \param{int }{lineNo = -1}} - -\wxheading{Parameters} - -\docparam{parent}{The parent node to which append this node instance. -If this argument is \NULL this new node will be {\it floating} and it can be appended later to -another one using the \helpref{AddChild}{wxxmlnodeaddchild} or \helpref{InsertChild}{wxxmlnodeinsertchild} -functions. Otherwise the child is already added to the XML tree by this -constructor and it shouldn't be done again.} -\docparam{type}{One of the wxXmlNodeType enumeration value.} -\docparam{name}{The name of the node. This is the string which appears between angular brackets.} -\docparam{content}{The content of the node. Only meaningful when {\it type} is -{\tt wxXML\_TEXT\_NODE} or {\tt wxXML\_CDATA\_SECTION\_NODE}.} -\docparam{attrs}{If not \NULL, this \helpref{wxXmlAttribute}{wxxmlattribute} object -and its eventual siblings are attached to the node.} -\docparam{next}{If not \NULL, this node and its eventual siblings are attached to -the node.} -\docparam{lineNo}{Number of line this node was present at in input file or -1.} - -Creates this XML node and eventually insert it into an existing XML tree. - -\func{}{wxXmlNode}{\param{const wxXmlNode\& }{node}} - -Copy constructor. Note that this does NOT copy syblings -and parent pointer, i.e. \helpref{GetParent()}{wxxmlnodegetparent} and -\helpref{GetNext()}{wxxmlnodegetnext} will return \NULL -after using copy ctor and are never unmodified by operator=. - -On the other hand, it DOES copy children and attributes. - - -\func{}{wxXmlNode}{\param{wxXmlNodeType }{type}, \param{const wxString\& }{name}, \param{const wxString\& }{content = wxEmptyString}, \param{int }{lineNo = -1}} - -A simplified version of the first constructor form, assuming a \NULL parent. - - -\membersection{wxXmlNode::\destruct{wxXmlNode}}\label{wxxmlnodedtor} - -\func{}{\destruct{wxXmlNode}}{\void} - -The virtual destructor. Deletes attached children and attributes. - -\membersection{wxXmlNode::AddChild}\label{wxxmlnodeaddchild} - -\func{void}{AddChild}{\param{wxXmlNode* }{child}} - -Adds the given node as child of this node. To attach a second children to this node, use the -\helpref{SetNext()}{wxxmlnodesetnext} function of the {\it child} node. - -\membersection{wxXmlNode::AddAttribute}\label{wxxmlnodeaddattribute} - -\func{void}{AddAttribute}{\param{const wxString\& }{name}, \param{const wxString\& }{value}} - -Appends a attribute with given {\it name} and {\it value} to the list of attributes for this node. - -\func{void}{AddAttribute}{\param{wxXmlAttribute* }{attr}} - -Appends given attribute to the list of attributes for this node. - -\membersection{wxXmlNode::DeleteAttribute}\label{wxxmlnodedeleteattribute} - -\func{bool}{DeleteAttribute}{\param{const wxString\& }{name}} - -Removes the first attributes which has the given {\it name} from the list of attributes for this node. - -\membersection{wxXmlNode::GetChildren}\label{wxxmlnodegetchildren} - -\constfunc{wxXmlNode*}{GetChildren}{\void} - -Returns the first child of this node. -To get a pointer to the second child of this node (if it does exist), use the -\helpref{GetNext()}{wxxmlnodegetnext} function on the returned value. - -\membersection{wxXmlNode::GetContent}\label{wxxmlnodegetcontent} - -\constfunc{wxString}{GetContent}{\void} - -Returns the content of this node. Can be an empty string. -Be aware that for nodes of type \texttt{wxXML\_ELEMENT\_NODE} (the most used node type) the -content is an empty string. See \helpref{GetNodeContent()}{wxxmlnodegetnodecontent} for more details. - - -\membersection{wxXmlNode::GetDepth}\label{wxxmlnodegetdepth} - -\constfunc{int}{GetDepth}{\param{wxXmlNode* }{grandparent = NULL}} - -Returns the number of nodes which separe this node from {\tt grandparent}. - -This function searches only the parents of this node until it finds {\tt grandparent} -or the \NULL node (which is the parent of non-linked nodes or the parent of a -\helpref{wxXmlDocument}{wxxmldocument}'s root node). - -\membersection{wxXmlNode::GetLineNumber}\label{wxxmlnodegetlinenumber} - -\constfunc{int}{GetLineNumber}{\void} - -Returns line number of the node in the input XML file or -1 if it is unknown. - - -\membersection{wxXmlNode::GetNodeContent}\label{wxxmlnodegetnodecontent} - -\constfunc{wxString}{GetNodeContent}{\void} - -Returns the content of the first child node of type \texttt{wxXML\_TEXT\_NODE} or \texttt{wxXML\_CDATA\_SECTION\_NODE}. -This function is very useful since the XML snippet \texttt{``tagcontent"} is represented by -expat with the following tag tree: - -\begin{verbatim} -wxXML_ENTITY_NODE name="tagname", content="" -|-- wxXML_TEXT_NODE name="", content="tagcontent" -\end{verbatim} - -or eventually: - -\begin{verbatim} -wxXML_ENTITY_NODE name="tagname", content="" -|-- wxXML_CDATA_SECTION_NODE name="", content="tagcontent" -\end{verbatim} - -An empty string is returned if the node has no children of type \texttt{wxXML\_TEXT\_NODE} or \texttt{wxXML\_CDATA\_SECTION\_NODE}, or if the content of the first child of such types is empty. - - -\membersection{wxXmlNode::GetName}\label{wxxmlnodegetname} - -\constfunc{wxString}{GetName}{\void} - -Returns the name of this node. Can be an empty string (e.g. for nodes of type {\tt wxXML\_TEXT\_NODE} or {\tt wxXML\_CDATA\_SECTION\_NODE}). - -\membersection{wxXmlNode::GetNext}\label{wxxmlnodegetnext} - -\constfunc{wxXmlNode*}{GetNext}{\void} - -Returns a pointer to the sibling of this node or \NULL if there are no siblings. - -\membersection{wxXmlNode::GetParent}\label{wxxmlnodegetparent} - -\constfunc{wxXmlNode*}{GetParent}{\void} - -Returns a pointer to the parent of this node or \NULL if this node has no parent. - -\membersection{wxXmlNode::GetAttribute}\label{wxxmlnodegetattribute} - -\constfunc{bool}{GetAttribute}{\param{const wxString\& }{attrName}, \param{wxString* }{value}} - -Returns \true if a attribute named {\it attrName} could be found. -The value of that attribute is saved in \arg{value} (which -must not be \NULL). - -\constfunc{wxString}{GetAttribute}{\param{const wxString\& }{attrName}, \param{const wxString\& }{defaultVal}} - -Returns the value of the attribute named {\it attrName} if it does exist. -If it does not exist, the {\it defaultVal} is returned. - -\membersection{wxXmlNode::GetAttributes}\label{wxxmlnodegetattributes} - -\constfunc{wxXmlAttribute *}{GetAttributes}{\void} - -Return a pointer to the first attribute of this node. - -\membersection{wxXmlNode::GetType}\label{wxxmlnodegettype} - -\constfunc{wxXmlNodeType}{GetType}{\void} - -Returns the type of this node. - - -\membersection{wxXmlNode::HasAttribute}\label{wxxmlnodehasattribute} - -\constfunc{bool}{HasAttribute}{\param{const wxString\& }{attrName}} - -Returns \true if this node has a attribute named {\it attrName}. - -\membersection{wxXmlNode::InsertChild}\label{wxxmlnodeinsertchild} - -\func{bool}{InsertChild}{\param{wxXmlNode* }{child}, \param{wxXmlNode* }{before\_node}} - -Inserts the {\it child} node after {\it before\_node} in the children list. -If {\it before\_node} is \NULL, then {\it child} is prepended to the list of children and -becomes the first child of this node. -Returns \true if {\it before\_node} has been found and the {\it child} node has been inserted. - -\membersection{wxXmlNode::IsWhitespaceOnly}\label{wxxmlnodecontainsiswhitespaceonly} - -\constfunc{bool}{IsWhitespaceOnly}{\void} - -Returns \true if the content of this node is a string containing only whitespaces (spaces, -tabs, new lines, etc). Note that this function is locale-independent since the parsing of XML -documents must always produce the exact same tree regardless of the locale it runs under. - -\membersection{wxXmlNode::RemoveChild}\label{wxxmlnoderemovechild} - -\func{bool}{RemoveChild}{\param{wxXmlNode* }{child}} - -Removes the given node from the children list. Returns \true if the node was found and removed -or \false if the node could not be found. - -Note that the caller is reponsible for deleting the removed node in order to avoid memory leaks. - -\membersection{wxXmlNode::SetChildren}\label{wxxmlnodesetchildren} - -\func{void}{SetChildren}{\param{wxXmlNode* }{child}} - -Sets as first child the given node. The caller is responsible to delete any previously present -children node. - -\membersection{wxXmlNode::SetContent}\label{wxxmlnodesetcontent} - -\func{void}{SetContent}{\param{const wxString\& }{con}} - -Sets the content of this node. - -\membersection{wxXmlNode::SetName}\label{wxxmlnodesetname} - -\func{void}{SetName}{\param{const wxString\& }{name}} - -Sets the name of this node. - -\membersection{wxXmlNode::SetNext}\label{wxxmlnodesetnext} - -\func{void}{SetNext}{\param{wxXmlNode* }{next}} - -Sets as sibling the given node. The caller is responsible to delete any previously present -sibling node. - -\membersection{wxXmlNode::SetParent}\label{wxxmlnodesetparent} - -\func{void}{SetParent}{\param{wxXmlNode* }{parent}} - -Sets as parent the given node. The caller is responsible to delete any previously present -parent node. - -\membersection{wxXmlNode::SetAttributes}\label{wxxmlnodesetattributes} - -\func{void}{SetAttributes}{\param{wxXmlAttribute* }{attr}} - -Sets as first attribute the given wxXmlAttribute object. -The caller is responsible to delete any previously present attributes attached to this node. - -\membersection{wxXmlNode::SetType}\label{wxxmlnodesettype} - -\func{void}{SetType}{\param{wxXmlNodeType }{type}} - -Sets the type of this node. - -\membersection{wxXmlNode::operator=}\label{wxxmlnodeoperatorassign} - -\func{wxXmlNode\&}{operator=}{\param{const wxXmlNode\& }{node}} - -See the copy constructor for more info. - diff --git a/docs/latex/wx/xmlres.tex b/docs/latex/wx/xmlres.tex deleted file mode 100644 index 9a5488d2e7..0000000000 --- a/docs/latex/wx/xmlres.tex +++ /dev/null @@ -1,302 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% xmlres.h at 22/Jan/02 23:08:28 -% - -\section{\class{wxXmlResource}}\label{wxxmlresource} - -This is the main class for interacting with the XML-based resource system. - -The class holds XML resources from one or more .xml files, binary files or zip archive files. - -See \helpref{XML-based resource system overview}{xrcoverview} for details. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxXrc}{librarieslist} - -\wxheading{Constants} - -\begin{verbatim} -enum wxXmlResourceFlags -{ - wxXRC_USE_LOCALE = 1, - wxXRC_NO_SUBCLASSING = 2, - wxXRC_NO_RELOADING = 4 -}; -\end{verbatim} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxXmlResource::wxXmlResource}\label{wxxmlresourcector} - -\func{}{wxXmlResource}{\param{const wxString\& }{filemask}, - \param{int }{flags = wxXRC\_USE\_LOCALE}, - \param{const wxString& }{domain = wxEmptyString}} - -Constructor. - -\docparam{filemask}{The XRC file, archive file, or wildcard specification that will be used to -load all resource files inside a zip archive.} - -\docparam{flags}{wxXRC\_USE\_LOCALE: translatable strings will be translated via \_(). -wxXRC\_NO\_SUBCLASSING: subclass property of object nodes will be ignored -(useful for previews in XRC editors).} - -\docparam{domain}{The name of the gettext catalog to search for - translatable strings. By default all loaded catalogs will be - searched. This provides a way to allow the strings to only come - from a specific catalog.} - -\func{}{wxXmlResource}{\param{int }{flags = wxXRC\_USE\_LOCALE}, - \param{const wxString& }{domain = wxEmptyString}} - -Constructor. - -\docparam{flags}{wxXRC\_USE\_LOCALE: translatable strings will be translated via \_(). -wxXRC\_NO\_SUBCLASSING: subclass property of object nodes will be ignored -(useful for previews in XRC editors). wxXRC\_NO\_RELOADING will prevent the -XRC files from being reloaded from disk in case they have been modified there -since being last loaded (may slightly speed up loading them).} - -\docparam{domain}{The name of the gettext catalog to search for - translatable strings. By default all loaded catalogs will be - searched. This provides a way to allow the strings to only come - from a specific catalog.} - - -\membersection{wxXmlResource::\destruct{wxXmlResource}}\label{wxxmlresourcedtor} - -\func{}{\destruct{wxXmlResource}}{\void} - -Destructor. - - -\membersection{wxXmlResource::AddHandler}\label{wxxmlresourceaddhandler} - -\func{void}{AddHandler}{\param{wxXmlResourceHandler* }{handler}} - -Initializes only a specific handler (or custom handler). Convention says -that the handler name is equal to the control's name plus 'XmlHandler', for example -wxTextCtrlXmlHandler, wxHtmlWindowXmlHandler. The XML resource compiler -(wxxrc) can create include file that contains initialization code for -all controls used within the resource. Note that this handler should be -allocated on the heap, since it will be delete by -\helpref{ClearHandlers}{wxxmlresourceclearhandlers} later. - - -\membersection{wxXmlResource::AttachUnknownControl}\label{wxxmlresourceattachunknowncontrol} - -\func{bool}{AttachUnknownControl}{\param{const wxString\& }{name}, \param{wxWindow* }{control}, \param{wxWindow* }{parent = \NULL}} - -Attaches an unknown control to the given panel/window/dialog. -Unknown controls are used in conjunction with . - - -\membersection{wxXmlResource::ClearHandlers}\label{wxxmlresourceclearhandlers} - -\func{void}{ClearHandlers}{\void} - -Removes all handlers and deletes them (this means that any handlers added using -\helpref{AddHandler}{wxxmlresourceaddhandler} must be allocated on the heap). - - -\membersection{wxXmlResource::CompareVersion}\label{wxxmlresourcecompareversion} - -\constfunc{int}{CompareVersion}{\param{int }{major}, \param{int }{minor}, \param{int }{release}, \param{int }{revision}} - -Compares the XRC version to the argument. Returns -1 if the XRC version -is less than the argument, +1 if greater, and 0 if they equal. - - -\membersection{wxXmlResource::Get}\label{wxxmlresourceget} - -\func{wxXmlResource*}{Get}{\void} - -Gets the global resources object or creates one if none exists. - - -\membersection{wxXmlResource::GetFlags}\label{wxxmlresourcegetflags} - -\func{int}{GetFlags}{\void} - -Returns flags, which may be a bitlist of wxXRC\_USE\_LOCALE and wxXRC\_NO\_SUBCLASSING. - - -\membersection{wxXmlResource::GetVersion}\label{wxxmlresourcegetversion} - -\constfunc{long}{GetVersion}{\void} - -Returns version information (a.b.c.d = d+ 256*c + 256\textasciicircum2*b + 256\textasciitilde3*a). - - -\membersection{wxXmlResource::GetXRCID}\label{wxxmlresourcegetxmlid} - -\func{int}{GetXRCID}{\param{const wxString\& }{str\_id}, \param{int }{value\_if\_not\_found = -2}} - -Returns a numeric ID that is equivalent to the string ID used in an XML -resource. If an unknown \arg{str\_id} is requested (i.e. other than wxID\_XXX -or integer), a new record is created which associates the given string with -a number. If \arg{value\_if\_not\_found} is \texttt{wxID\_NONE}, the number is obtained via -\helpref{wxNewId()}{wxnewid}. Otherwise \arg{value\_if\_not\_found} is used. -Macro {\tt XRCID(name)} is provided for convenient use in event tables. - -\membersection{wxXmlResource::InitAllHandlers}\label{wxxmlresourceinitallhandlers} - -\func{void}{InitAllHandlers}{\void} - -Initializes handlers for all supported controls/windows. This will -make the executable quite big because it forces linking against -most of the wxWidgets library. - - -\membersection{wxXmlResource::Load}\label{wxxmlresourceload} - -\func{bool}{Load}{\param{const wxString\& }{filemask}} - -Loads resources from XML files that match given filemask. -This method understands VFS (see filesys.h). - - -\membersection{wxXmlResource::LoadBitmap}\label{wxxmlresourceloadbitmap} - -\func{wxBitmap}{LoadBitmap}{\param{const wxString\& }{name}} - -Loads a bitmap resource from a file. - - -\membersection{wxXmlResource::LoadDialog}\label{wxxmlresourceloaddialog} - -\func{wxDialog*}{LoadDialog}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a dialog. {\it dlg} points to a parent window (if any). - -\func{bool}{LoadDialog}{\param{wxDialog* }{dlg}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a dialog. {\it dlg} points to parent window (if any). - -This form is used to finish creation of an already existing instance (the main reason -for this is that you may want to use derived class with a new event table). - -Example: - -\begin{verbatim} - MyDialog dlg; - wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog"); - dlg.ShowModal(); -\end{verbatim} - - -\membersection{wxXmlResource::LoadFrame}\label{wxxmlresourceloadframe} - -\func{bool}{LoadFrame}{\param{wxFrame* }{frame}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a frame. - - -\membersection{wxXmlResource::LoadIcon}\label{wxxmlresourceloadicon} - -\func{wxIcon}{LoadIcon}{\param{const wxString\& }{name}} - -Loads an icon resource from a file. - - -\membersection{wxXmlResource::LoadMenu}\label{wxxmlresourceloadmenu} - -\func{wxMenu*}{LoadMenu}{\param{const wxString\& }{name}} - -Loads menu from resource. Returns \NULL on failure. - - -\membersection{wxXmlResource::LoadMenuBar}\label{wxxmlresourceloadmenubar} - -\func{wxMenuBar*}{LoadMenuBar}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -\func{wxMenuBar*}{LoadMenuBar}{\param{const wxString\& }{name}} - -Loads a menubar from resource. Returns \NULL on failure. - - -\membersection{wxXmlResource::LoadObject}\label{wxxmlresourceloadobject} - -\func{wxObject*}{LoadObject}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}, \param{const wxString\& }{classname}} - -\func{bool}{LoadObject}{\param{wxObject* }{instance}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}, \param{const wxString\& }{classname}} - -Load an object from the resource specifying both the resource name and the -class name. - -The first overload lets you load nonstandard container windows and returns \NULL -on failure. The second one lets you finish the creation of an existing -instance and returns \false on failure. - - -\membersection{wxXmlResource::LoadPanel}\label{wxxmlresourceloadpanel} - -\func{wxPanel*}{LoadPanel}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a panel. {\it panel} points to parent window (if any). - -\func{bool}{LoadPanel}{\param{wxPanel* }{panel}, \param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a panel. {\it panel} points to parent window (if any). This form -is used to finish creation of an already existing instance. - - -\membersection{wxXmlResource::LoadToolBar}\label{wxxmlresourceloadtoolbar} - -\func{wxToolBar*}{LoadToolBar}{\param{wxWindow* }{parent}, \param{const wxString\& }{name}} - -Loads a toolbar. - - -\membersection{wxXmlResource::Set}\label{wxxmlresourceset} - -\func{wxXmlResource*}{Set}{\param{wxXmlResource* }{res}} - -Sets the global resources object and returns a pointer to the previous one (may be \NULL). - - -\membersection{wxXmlResource::SetFlags}\label{wxxmlresourcesetflags} - -\func{void}{SetFlags}{\param{int }{flags}} - -Sets flags (bitlist of wxXRC\_USE\_LOCALE and wxXRC\_NO\_SUBCLASSING). - - -\membersection{wxXmlResource::Unload}\label{wxxmlresourceunload} - -\func{bool}{Unload}{\param{const wxString\& }{filename}} - -This function unloads a resource previously loaded by -\helpref{Load()}{wxxmlresourceload}. - -Returns \true if the resource was successfully unloaded and \false if it hasn't -been found in the list of loaded resources. - - - -\membersection{wxXmlResource::GetDomain}\label{wxxmlresourcegetdomain} - -\func{wxChar*}{GetDomain}{} - -Returns the domain (message catalog) that will be used to load -translatable strings in the XRC. - - -\membersection{wxXmlResource::SetDomain}\label{wxxmlresourcesetdomain} - -\func{wxChar*}{SetDomain}{\param{const wxChar* }{domain}} - -Sets the domain (message catalog) that will be used to load -translatable strings in the XRC. - diff --git a/docs/latex/wx/xmlresh.tex b/docs/latex/wx/xmlresh.tex deleted file mode 100644 index 3ae6789bf7..0000000000 --- a/docs/latex/wx/xmlresh.tex +++ /dev/null @@ -1,241 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% xmlres.h at 22/Jan/02 23:08:28 -% - -\section{\class{wxXmlResourceHandler}}\label{wxxmlresourcehandler} - -wxXmlResourceHandler is an abstract base class for resource handlers -capable of creating a control from an XML node. - -See \helpref{XML-based resource system overview}{xrcoverview} for details. - -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxXrc}{librarieslist} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxXmlResourceHandler::wxXmlResourceHandler}\label{wxxmlresourcehandlerctor} - -\func{}{wxXmlResourceHandler}{\void} - -Default constructor. - -\membersection{wxXmlResourceHandler::\destruct{wxXmlResourceHandler}}\label{wxxmlresourcehandlerdtor} - -\func{}{\destruct{wxXmlResourceHandler}}{\void} - -Destructor. - -\membersection{wxXmlResourceHandler::AddStyle}\label{wxxmlresourcehandleraddstyle} - -\func{void}{AddStyle}{\param{const wxString\& }{name}, \param{int }{value}} - -Add a style flag (e.g. wxMB\_DOCKABLE) to the list of flags -understood by this handler. - -\membersection{wxXmlResourceHandler::AddWindowStyles}\label{wxxmlresourcehandleraddwindowstyles} - -\func{void}{AddWindowStyles}{\void} - -Add styles common to all wxWindow-derived classes. - -\membersection{wxXmlResourceHandler::CanHandle}\label{wxxmlresourcehandlercanhandle} - -\func{bool}{CanHandle}{\param{wxXmlNode* }{node}} - -Returns true if it understands this node and can create -a resource from it, false otherwise. - -\wxheading{Note} - -You must {\bf not} call any wxXmlResourceHandler methods except -\helpref{IsOfClass}{wxxmlresourcehandlerisofclass} from this method! The instance -is not yet initialized with node data at the time CanHandle is called and it is only -safe to operate on {\it node} directly or to call IsOfClass. - -\membersection{wxXmlResourceHandler::CreateChildren}\label{wxxmlresourcehandlercreatechildren} - -\func{void}{CreateChildren}{\param{wxObject* }{parent}, \param{bool }{this\_hnd\_only = false}} - -Creates children. - -\membersection{wxXmlResourceHandler::CreateChildrenPrivately}\label{wxxmlresourcehandlercreatechildrenprivately} - -\func{void}{CreateChildrenPrivately}{\param{wxObject* }{parent}, \param{wxXmlNode* }{rootnode = NULL}} - -Helper function. - -\membersection{wxXmlResourceHandler::CreateResFromNode}\label{wxxmlresourcehandlercreateresfromnode} - -\func{wxObject*}{CreateResFromNode}{\param{wxXmlNode* }{node}, \param{wxObject* }{parent}, \param{wxObject* }{instance = NULL}} - -Creates a resource from a node. - -\membersection{wxXmlResourceHandler::CreateResource}\label{wxxmlresourcehandlercreateresource} - -\func{wxObject*}{CreateResource}{\param{wxXmlNode* }{node}, \param{wxObject* }{parent}, \param{wxObject* }{instance}} - -Creates an object (menu, dialog, control, ...) from an XML node. -Should check for validity. {\it parent} is a higher-level object (usually window, dialog or panel) -that is often necessary to create the resource. -If {\bf instance} is non-NULL it should not create a new instance via 'new' but -should rather use this one, and call its Create method. - -\membersection{wxXmlResourceHandler::DoCreateResource}\label{wxxmlresourcehandlerdocreateresource} - -\func{wxObject*}{DoCreateResource}{\void} - -Called from CreateResource after variables -were filled. - -\membersection{wxXmlResourceHandler::GetAnimation}\label{wxxmlresourcehandlergetanimation} - -\func{wxAnimation}{GetAnimation}{\param{const wxString\& }{param = wxT("animation")}} - -Creates a \helpref{animation}{wxanimation} from the filename specified in \arg{param}. - -\membersection{wxXmlResourceHandler::GetBitmap}\label{wxxmlresourcehandlergetbitmap} - -\func{wxBitmap}{GetBitmap}{\param{const wxString\& }{param = wxT("bitmap")}, \param{wxSize }{size = wxDefaultSize}} - -Gets a bitmap. - -\membersection{wxXmlResourceHandler::GetBool}\label{wxxmlresourcehandlergetbool} - -\func{bool}{GetBool}{\param{const wxString\& }{param}, \param{bool }{defaultv = false}} - -Gets a bool flag (1, t, yes, on, true are true, everything else is false). - -\membersection{wxXmlResourceHandler::GetColour}\label{wxxmlresourcehandlergetcolour} - -\func{wxColour}{GetColour}{\param{const wxString\& }{param}, \param{const wxColour\& }{default = wxNullColour}} - -Gets colour in HTML syntax (\#RRGGBB). - -\membersection{wxXmlResourceHandler::GetCurFileSystem}\label{wxxmlresourcehandlergetcurfilesystem} - -\func{wxFileSystem\&}{GetCurFileSystem}{\void} - -Returns the current file system. - -\membersection{wxXmlResourceHandler::GetDimension}\label{wxxmlresourcehandlergetdimension} - -\func{wxCoord}{GetDimension}{\param{const wxString\& }{param}, \param{wxCoord }{defaultv = 0}} - -Gets a dimension (may be in dialog units). - -\membersection{wxXmlResourceHandler::GetFont}\label{wxxmlresourcehandlergetfont} - -\func{wxFont}{GetFont}{\param{const wxString\& }{param = wxT("font")}} - -Gets a font. - -\membersection{wxXmlResourceHandler::GetID}\label{wxxmlresourcehandlergetid} - -\func{int}{GetID}{\void} - -Returns the XRCID. - -\membersection{wxXmlResourceHandler::GetIcon}\label{wxxmlresourcehandlergeticon} - -\func{wxIcon}{GetIcon}{\param{const wxString\& }{param = wxT("icon")}, \param{wxSize }{size = wxDefaultSize}} - -Returns an icon. - -\membersection{wxXmlResourceHandler::GetLong}\label{wxxmlresourcehandlergetlong} - -\func{long}{GetLong}{\param{const wxString\& }{param}, \param{long }{defaultv = 0}} - -Gets the integer value from the parameter. - -\membersection{wxXmlResourceHandler::GetName}\label{wxxmlresourcehandlergetname} - -\func{wxString}{GetName}{\void} - -Returns the resource name. - -\membersection{wxXmlResourceHandler::GetNodeContent}\label{wxxmlresourcehandlergetnodecontent} - -\func{wxString}{GetNodeContent}{\param{wxXmlNode* }{node}} - -Gets node content from wxXML\_ENTITY\_NODE. - -\membersection{wxXmlResourceHandler::GetParamNode}\label{wxxmlresourcehandlergetparamnode} - -\func{wxXmlNode*}{GetParamNode}{\param{const wxString\& }{param}} - -Finds the node or returns NULL. - -\membersection{wxXmlResourceHandler::GetParamValue}\label{wxxmlresourcehandlergetparamvalue} - -\func{wxString}{GetParamValue}{\param{const wxString\& }{param}} - -Finds the parameter value or returns the empty string. - -\membersection{wxXmlResourceHandler::GetPosition}\label{wxxmlresourcehandlergetposition} - -\func{wxPoint}{GetPosition}{\param{const wxString\& }{param = wxT("pos")}} - -Gets the position (may be in dialog units). - -\membersection{wxXmlResourceHandler::GetSize}\label{wxxmlresourcehandlergetsize} - -\func{wxSize}{GetSize}{\param{const wxString\& }{param = wxT("size")}} - -Gets the size (may be in dialog units). - -\membersection{wxXmlResourceHandler::GetStyle}\label{wxxmlresourcehandlergetstyle} - -\func{int}{GetStyle}{\param{const wxString\& }{param = wxT("style")}, \param{int }{defaults = 0}} - -Gets style flags from text in form "flag | flag2| flag3 |..." -Only understands flags added with AddStyle. - -\membersection{wxXmlResourceHandler::GetText}\label{wxxmlresourcehandlergettext} - -\func{wxString}{GetText}{\param{const wxString\& }{param}} - -Gets text from param and does some conversions: - -\begin{itemize}\itemsep=0pt -\item replaces $\backslash$n, $\backslash$r, $\backslash$t by respective characters (according to C syntax) -\item replaces {\tt\$} by {\tt\&} and {\tt\$\$} by {\tt\$} (needed for {\tt\_File} to {\tt\&File} -translation because of XML syntax) -\item calls wxGetTranslations (unless disabled in wxXmlResource) -\end{itemize} - -\membersection{wxXmlResourceHandler::HasParam}\label{wxxmlresourcehandlerhasparam} - -\func{bool}{HasParam}{\param{const wxString\& }{param}} - -Check to see if a parameter exists. - -\membersection{wxXmlResourceHandler::IsOfClass}\label{wxxmlresourcehandlerisofclass} - -\func{bool}{IsOfClass}{\param{wxXmlNode* }{node}, \param{const wxString\& }{classname}} - -Convenience function. Returns true if the node has a property class equal to classname, -e.g. . - -\membersection{wxXmlResourceHandler::SetParentResource}\label{wxxmlresourcehandlersetparentresource} - -\func{void}{SetParentResource}{\param{wxXmlResource* }{res}} - -Sets the parent resource. - -\membersection{wxXmlResourceHandler::SetupWindow}\label{wxxmlresourcehandlersetupwindow} - -\func{void}{SetupWindow}{\param{wxWindow* }{wnd}} - -Sets common window options. - diff --git a/docs/latex/wx/zipstrm.tex b/docs/latex/wx/zipstrm.tex deleted file mode 100644 index 7713a90a6d..0000000000 --- a/docs/latex/wx/zipstrm.tex +++ /dev/null @@ -1,751 +0,0 @@ -% -% automatically generated by HelpGen $Revision$ from -% wx/zipstrm.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxZipClassFactory}}\label{wxzipclassfactory} - -Class factory for the zip archive format. See the base class -for details. - -\wxheading{Derived from} - -\helpref{wxArchiveClassFactory}{wxarchiveclassfactory}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{Generic archive programming}{wxarcgeneric}\\ -\helpref{wxZipEntry}{wxzipentry}\\ -\helpref{wxZipInputStream}{wxzipinputstream}\\ -\helpref{wxZipOutputStream}{wxzipoutputstream} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/zipstrm.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxZipEntry}}\label{wxzipentry} - -Holds the meta-data for an entry in a zip. - -\wxheading{Derived from} - -\helpref{wxArchiveEntry}{wxarchiveentry}\\ -\helpref{wxObject}{wxobject} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} - -Constants for \helpref{Get/SetMethod}{wxzipentrymethod}: - -\begin{verbatim} -// Compression Method, only 0 (store) and 8 (deflate) are supported here -// -enum wxZipMethod -{ - wxZIP_METHOD_STORE, - wxZIP_METHOD_SHRINK, - wxZIP_METHOD_REDUCE1, - wxZIP_METHOD_REDUCE2, - wxZIP_METHOD_REDUCE3, - wxZIP_METHOD_REDUCE4, - wxZIP_METHOD_IMPLODE, - wxZIP_METHOD_TOKENIZE, - wxZIP_METHOD_DEFLATE, - wxZIP_METHOD_DEFLATE64, - wxZIP_METHOD_BZIP2 = 12, - wxZIP_METHOD_DEFAULT = 0xffff -}; - -\end{verbatim} - -Constants for \helpref{Get/SetSystemMadeBy}{wxzipentrysystemmadeby}: - -\begin{verbatim} -// Originating File-System. -// -// These are Pkware's values. Note that Info-zip disagree on some of them, -// most notably NTFS. -// -enum wxZipSystem -{ - wxZIP_SYSTEM_MSDOS, - wxZIP_SYSTEM_AMIGA, - wxZIP_SYSTEM_OPENVMS, - wxZIP_SYSTEM_UNIX, - wxZIP_SYSTEM_VM_CMS, - wxZIP_SYSTEM_ATARI_ST, - wxZIP_SYSTEM_OS2_HPFS, - wxZIP_SYSTEM_MACINTOSH, - wxZIP_SYSTEM_Z_SYSTEM, - wxZIP_SYSTEM_CPM, - wxZIP_SYSTEM_WINDOWS_NTFS, - wxZIP_SYSTEM_MVS, - wxZIP_SYSTEM_VSE, - wxZIP_SYSTEM_ACORN_RISC, - wxZIP_SYSTEM_VFAT, - wxZIP_SYSTEM_ALTERNATE_MVS, - wxZIP_SYSTEM_BEOS, - wxZIP_SYSTEM_TANDEM, - wxZIP_SYSTEM_OS_400 -}; - -\end{verbatim} - -Constants for \helpref{Get/SetExternalAttributes}{wxzipentryexternalattributes}: - -\begin{verbatim} -// Dos/Win file attributes -// -enum wxZipAttributes -{ - wxZIP_A_RDONLY = 0x01, - wxZIP_A_HIDDEN = 0x02, - wxZIP_A_SYSTEM = 0x04, - wxZIP_A_SUBDIR = 0x10, - wxZIP_A_ARCH = 0x20, - - wxZIP_A_MASK = 0x37 -}; - -\end{verbatim} - -Constants for \helpref{Get/SetFlags}{wxzipentrygetflags}: - -\begin{verbatim} -// Values for the flags field in the zip headers -// -enum wxZipFlags -{ - wxZIP_ENCRYPTED = 0x0001, - wxZIP_DEFLATE_NORMAL = 0x0000, // normal compression - wxZIP_DEFLATE_EXTRA = 0x0002, // extra compression - wxZIP_DEFLATE_FAST = 0x0004, // fast compression - wxZIP_DEFLATE_SUPERFAST = 0x0006, // superfast compression - wxZIP_DEFLATE_MASK = 0x0006, - wxZIP_SUMS_FOLLOW = 0x0008, // crc and sizes come after the data - wxZIP_ENHANCED = 0x0010, - wxZIP_PATCH = 0x0020, - wxZIP_STRONG_ENC = 0x0040, - wxZIP_UNUSED = 0x0F80, - wxZIP_RESERVED = 0xF000 -}; - -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxZipInputStream}{wxzipinputstream}\\ -\helpref{wxZipOutputStream}{wxzipoutputstream}\\ -\helpref{wxZipNotifier}{wxzipnotifier} - -\wxheading{Field availability} - -When reading a zip from a stream that is seekable, - \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns -a fully populated wxZipEntry object except for - \helpref{wxZipEntry::GetLocalExtra()}{wxzipentrylocalextra}. GetLocalExtra() -becomes available when the entry is opened, either by calling - \helpref{wxZipInputStream::OpenEntry}{wxzipinputstreamopenentry} or by -making an attempt to read the entry's data. - -For zips on \helpref{non-seekable}{wxarcnoseek} streams, the following -fields are always available when GetNextEntry() returns: - -\helpref{GetDateTime}{wxarchiveentrydatetime}\\ -\helpref{GetInternalFormat}{wxarchiveentrygetinternalformat}\\ -\helpref{GetInternalName}{wxzipentrygetinternalname}\\ -\helpref{GetFlags}{wxzipentrygetflags}\\ -\helpref{GetLocalExtra}{wxzipentrylocalextra}\\ -\helpref{GetMethod}{wxzipentrymethod}\\ -\helpref{GetName}{wxarchiveentryname}\\ -\helpref{GetOffset}{wxarchiveentrygetoffset}\\ -\helpref{IsDir}{wxarchiveentryisdir} - -The following fields are also usually available when GetNextEntry() -returns, however, if the zip was also written to a non-seekable stream -the zipper is permitted to store them after the entry's data. In that -case they become available when the entry's data has been read to Eof(), -or \helpref{CloseEntry()}{wxarchiveinputstreamcloseentry} has been called. -{\tt (GetFlags() \& wxZIP\_SUMS\_FOLLOW) != 0} indicates that one or -more of these come after the data: - -\helpref{GetCompressedSize}{wxzipentrygetcompressedsize}\\ -\helpref{GetCrc}{wxzipentrygetcrc}\\ -\helpref{GetSize}{wxarchiveentrysize} - -The following are stored at the end of the zip, and become available -when the end of the zip has been reached, i.e. after GetNextEntry() -returns NULL and Eof() is true: - -\helpref{GetComment}{wxzipentrycomment}\\ -\helpref{GetExternalAttributes}{wxzipentryexternalattributes}\\ -\helpref{GetExtra}{wxzipentryextra}\\ -\helpref{GetMode}{wxzipentrymode}\\ -\helpref{GetSystemMadeBy}{wxzipentrysystemmadeby}\\ -\helpref{IsReadOnly}{wxarchiveentryisreadonly}\\ -\helpref{IsMadeByUnix}{wxzipentryismadebyunix}\\ -\helpref{IsText}{wxzipentryistext} - - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxZipEntry::wxZipEntry}\label{wxzipentrywxzipentry} - -\func{}{wxZipEntry}{\param{const wxString\& }{name = wxEmptyString}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}} - -Constructor. - -\func{}{wxZipEntry}{\param{const wxZipEntry\& }{entry}} - -Copy constructor. - - -\membersection{wxZipEntry::Clone}\label{wxzipentryclone} - -\constfunc{wxZipEntry*}{Clone}{\void} - -Make a copy of this entry. - - -\membersection{wxZipEntry::Get/SetComment}\label{wxzipentrycomment} - -\constfunc{wxString}{GetComment}{\void} - -\func{void}{SetComment}{\param{const wxString\& }{comment}} - -A short comment for this entry. - - -\membersection{wxZipEntry::GetCompressedSize}\label{wxzipentrygetcompressedsize} - -\constfunc{off\_t}{GetCompressedSize}{\void} - -The compressed size of this entry in bytes. - - -\membersection{wxZipEntry::GetCrc}\label{wxzipentrygetcrc} - -\constfunc{wxUint32}{GetCrc}{\void} - -CRC32 for this entry's data. - - -\membersection{wxZipEntry::Get/SetExternalAttributes}\label{wxzipentryexternalattributes} - -\constfunc{wxUint32}{GetExternalAttributes}{\void} - -\func{void}{SetExternalAttributes}{\param{wxUint32 }{attr}} - -The low 8 bits are always the DOS/Windows file attributes for this entry. -The values of these attributes are given in the -enumeration {\tt wxZipAttributes}. - -The remaining bits can store platform specific permission bits or -attributes, and their meaning depends on the value -of \helpref{SetSystemMadeBy()}{wxzipentrysystemmadeby}. -If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then the -high 16 bits are unix mode bits. - -The following other accessors access these bits: - -\helpref{IsReadOnly/SetIsReadOnly}{wxarchiveentryisreadonly}\\ -\helpref{IsDir/SetIsDir}{wxarchiveentryisdir}\\ -\helpref{Get/SetMode}{wxzipentrymode} - - -\membersection{wxZipEntry::Get/SetExtra}\label{wxzipentryextra} - -\constfunc{const char*}{GetExtra}{\void} - -\constfunc{size\_t}{GetExtraLen}{\void} - -\func{void}{SetExtra}{\param{const char* }{extra}, \param{size\_t }{len}} - -The extra field from the entry's central directory record. - -The extra field is used to store platform or application specific -data. See Pkware's document 'appnote.txt' for information on its format. - - -\membersection{wxZipEntry::GetFlags}\label{wxzipentrygetflags} - -\constfunc{int}{GetFlags}{\void} - -Returns a combination of the bits flags in the enumeration {\tt wxZipFlags}. - - -\membersection{wxZipEntry::GetInternalName}\label{wxzipentrygetinternalname} - -\constfunc{wxString}{GetInternalName}{\void} - -Returns the entry's filename in the internal format used within the -archive. The name can include directory components, i.e. it can be a -full path. - -The names of directory entries are returned without any trailing path -separator. This gives a canonical name that can be used in comparisons. - -\func{wxString}{GetInternalName}{\param{const wxString\& }{name}, \param{wxPathFormat }{format = wxPATH\_NATIVE}, \param{bool* }{pIsDir = NULL}} - -A static member that translates a filename into the internal format used -within the archive. If the third parameter is provided, the bool pointed -to is set to indicate whether the name looks like a directory name -(i.e. has a trailing path separator). - -\wxheading{See also} - -\helpref{Looking up an archive entry by name}{wxarcbyname} - - -\membersection{wxZipEntry::Get/SetLocalExtra}\label{wxzipentrylocalextra} - -\constfunc{const char*}{GetLocalExtra}{\void} - -\constfunc{size\_t}{GetLocalExtraLen}{\void} - -\func{void}{SetLocalExtra}{\param{const char* }{extra}, \param{size\_t }{len}} - -The extra field from the entry's local record. - -The extra field is used to store platform or application specific -data. See Pkware's document 'appnote.txt' for information on its format. - - -\membersection{wxZipEntry::Get/SetMethod}\label{wxzipentrymethod} - -\constfunc{int}{GetMethod}{\void} - -\func{void}{SetMethod}{\param{int }{method}} - -The compression method. The enumeration {\tt wxZipMethod} lists the -possible values. - -The default constructor sets this to wxZIP\_METHOD\_DEFAULT, -which allows \helpref{wxZipOutputStream}{wxzipoutputstream} to -choose the method when writing the entry. - - -\membersection{wxZipEntry::Get/SetMode}\label{wxzipentrymode} - -\constfunc{int}{GetMode}{\void} - -If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then -returns the unix permission bits stored in - \helpref{GetExternalAttributes()}{wxzipentryexternalattributes}. -Otherwise synthesises them from the DOS attributes. - -\func{void}{SetMode}{\param{int }{mode}} - -Sets the DOS attributes -in \helpref{GetExternalAttributes()}{wxzipentryexternalattributes} -to be consistent with the {\tt mode} given. - -If \helpref{IsMadeByUnix()}{wxzipentryismadebyunix} is true then also -stores {\tt mode} in GetExternalAttributes(). - -Note that the default constructor -sets \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} to -wxZIP\_SYSTEM\_MSDOS by default. So to be able to store unix -permissions when creating zips, call SetSystemMadeBy(wxZIP\_SYSTEM\_UNIX). - - -\membersection{wxZipEntry::SetNotifier}\label{wxzipentrynotifier} - -\func{void}{SetNotifier}{\param{wxZipNotifier\& }{notifier}} - -\func{void}{UnsetNotifier}{\void} - -Sets the \helpref{notifier}{wxzipnotifier} for this entry. -Whenever the \helpref{wxZipInputStream}{wxzipinputstream} updates -this entry, it will then invoke the associated -notifier's \helpref{OnEntryUpdated}{wxzipnotifieronentryupdated} -method. - -Setting a notifier is not usually necessary. It is used to handle -certain cases when modifying an zip in a pipeline (i.e. between -non-seekable streams). - -\wxheading{See also} - -\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ -\helpref{wxZipNotifier}{wxzipnotifier} - - -\membersection{wxZipEntry::Get/SetSystemMadeBy}\label{wxzipentrysystemmadeby} - -\constfunc{int}{GetSystemMadeBy}{\void} - -\func{void}{SetSystemMadeBy}{\param{int }{system}} - -The originating file-system. The default constructor sets this to -wxZIP\_SYSTEM\_MSDOS. Set it to wxZIP\_SYSTEM\_UNIX in order to be -able to store unix permissions using \helpref{SetMode()}{wxzipentrymode}. - - -\membersection{wxZipEntry::IsMadeByUnix}\label{wxzipentryismadebyunix} - -\constfunc{bool}{IsMadeByUnix}{\void} - -Returns true if \helpref{GetSystemMadeBy()}{wxzipentrysystemmadeby} -is a flavour of unix. - - -\membersection{wxZipEntry::IsText/SetIsText}\label{wxzipentryistext} - -\constfunc{bool}{IsText}{\void} - -\func{void}{SetIsText}{\param{bool }{isText = true}} - -Indicates that this entry's data is text in an 8-bit encoding. - - -\membersection{wxZipEntry::operator=}\label{wxzipentryoperatorassign} - -\func{wxZipEntry\& operator}{operator=}{\param{const wxZipEntry\& }{entry}} - -Assignment operator. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/zipstrm.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxZipInputStream}}\label{wxzipinputstream} - -Input stream for reading zip files. - -\helpref{GetNextEntry()}{wxzipinputstreamgetnextentry} returns an - \helpref{wxZipEntry}{wxzipentry} object containing the meta-data -for the next entry in the zip (and gives away ownership). Reading from -the wxZipInputStream then returns the entry's data. Eof() becomes true -after an attempt has been made to read past the end of the entry's data. -When there are no more entries, GetNextEntry() returns NULL and sets Eof(). - -Note that in general zip entries are not seekable, and -wxZipInputStream::SeekI() always returns wxInvalidOffset. - -\wxheading{Derived from} - -\helpref{wxArchiveInputStream}{wxarchiveinputstream}\\ -\helpref{wxFilterInputStream}{wxfilterinputstream}\\ -\helpref{wxInputStream}{wxinputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{Data structures} -\begin{verbatim} -typedef wxZipEntry entry_type -\end{verbatim} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxZipEntry}{wxzipentry}\\ -\helpref{wxZipOutputStream}{wxzipoutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxZipInputStream::wxZipInputStream}\label{wxzipinputstreamwxzipinputstream} - -\func{}{wxZipInputStream}{\param{wxInputStream\& }{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} - -\func{}{wxZipInputStream}{\param{wxInputStream*}{stream}, \param{wxMBConv\& }{conv = wxConvLocal}} - -Constructor. In a Unicode build the second parameter {\tt conv} is -used to translate the filename and comment fields into Unicode. It has -no effect on the stream's data. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - -\func{}{wxZipInputStream}{\param{const wxString\& }{archive}, \param{const wxString\& }{file}} - -Compatibility constructor (requires WXWIN\_COMPATIBILITY\_2\_6). - -When this constructor is used, an emulation of seeking is -switched on for compatibility with previous versions. Note however, -that it is deprecated. - - -\membersection{wxZipInputStream::CloseEntry}\label{wxzipinputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Closes the current entry. On a non-seekable stream reads to the end of -the current entry first. - - -\membersection{wxZipInputStream::GetComment}\label{wxzipinputstreamgetcomment} - -\func{wxString}{GetComment}{\void} - -Returns the zip comment. - -This is stored at the end of the zip, therefore when reading a zip -from a non-seekable stream, it returns the empty string until the -end of the zip has been reached, i.e. when GetNextEntry() returns -NULL. - - -\membersection{wxZipInputStream::GetNextEntry}\label{wxzipinputstreamgetnextentry} - -\func{wxZipEntry*}{GetNextEntry}{\void} - -Closes the current entry if one is open, then reads the meta-data for -the next entry and returns it in a \helpref{wxZipEntry}{wxzipentry} -object, giving away ownership. The stream is then open and can be read. - - -\membersection{wxZipInputStream::GetTotalEntries}\label{wxzipinputstreamgettotalentries} - -\func{int}{GetTotalEntries}{\void} - -For a zip on a seekable stream returns the total number of entries in -the zip. For zips on non-seekable streams returns the number of entries -returned so far by \helpref{GetNextEntry()}{wxzipinputstreamgetnextentry}. - - -\membersection{wxZipInputStream::OpenEntry}\label{wxzipinputstreamopenentry} - -\func{bool}{OpenEntry}{\param{wxZipEntry\& }{entry}} - -Closes the current entry if one is open, then opens the entry specified -by the {\it entry} object. - -{\it entry} should be from the same zip file, and the zip should -be on a seekable stream. - -\wxheading{See also} - -\helpref{Looking up an archive entry by name}{wxarcbyname} - - -% -% automatically generated by HelpGen $Revision$ from -% wx/zipstrm.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxZipNotifier}}\label{wxzipnotifier} - -If you need to know when a \helpref{wxZipInputStream}{wxzipinputstream} -updates a \helpref{wxZipEntry}{wxzipentry}, -you can create a notifier by deriving from this abstract base class, -overriding \helpref{OnEntryUpdated()}{wxzipnotifieronentryupdated}. -An instance of your notifier class can then be assigned to wxZipEntry -objects, using \helpref{wxZipEntry::SetNotifier()}{wxzipentrynotifier}. - -Setting a notifier is not usually necessary. It is used to handle -certain cases when modifying an zip in a pipeline (i.e. between -non-seekable streams). -See '\helpref{Archives on non-seekable streams}{wxarcnoseek}'. - -\wxheading{Derived from} - -No base class - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archives on non-seekable streams}{wxarcnoseek}\\ -\helpref{wxZipEntry}{wxzipentry}\\ -\helpref{wxZipInputStream}{wxzipinputstream}\\ -\helpref{wxZipOutputStream}{wxzipoutputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxZipNotifier::OnEntryUpdated}\label{wxzipnotifieronentryupdated} - -\func{void}{OnEntryUpdated}{\param{wxZipEntry\& }{entry}} - -Override this to receive notifications when -an \helpref{wxZipEntry}{wxzipentry} object changes. - - -% -% automatically generated by HelpGen $Revision$ from -% wx/zipstrm.h at 16/Sep/04 12:19:29 -% - -\section{\class{wxZipOutputStream}}\label{wxzipoutputstream} - -Output stream for writing zip files. - -\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} is used to create -a new entry in the output zip, then the entry's data is written to the -wxZipOutputStream. Another call to PutNextEntry() closes the current -entry and begins the next. - -\wxheading{Derived from} - -\helpref{wxArchiveOutputStream}{wxarchiveoutputstream}\\ -\helpref{wxFilterOutputStream}{wxfilteroutputstream}\\ -\helpref{wxOutputStream}{wxoutputstream}\\ -\helpref{wxStreamBase}{wxstreambase} - -\wxheading{Include files} - - - -\wxheading{Library} - -\helpref{wxBase}{librarieslist} - -\wxheading{See also} - -\helpref{Archive formats such as zip}{wxarc}\\ -\helpref{wxZipEntry}{wxzipentry}\\ -\helpref{wxZipInputStream}{wxzipinputstream} - -\latexignore{\rtfignore{\wxheading{Members}}} - - -\membersection{wxZipOutputStream::wxZipOutputStream}\label{wxzipoutputstreamwxzipoutputstream} - -\func{}{wxZipOutputStream}{\param{wxOutputStream\& }{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}} - -\func{}{wxZipOutputStream}{\param{wxOutputStream*}{stream}, \param{int }{level = -1}, \param{wxMBConv\& }{conv = wxConvLocal}} - -Constructor. {\tt level} is the compression level to use. -It can be a value between 0 and 9 or -1 to use the default value -which currently is equivalent to 6. - -If the parent stream is passed as a pointer then the new filter stream -takes ownership of it. If it is passed by reference then it does not. - -In a Unicode build the third parameter {\tt conv} is used to translate -the filename and comment fields to an 8-bit encoding. It has no effect on the -stream's data. - - -\membersection{wxZipOutputStream::\destruct{wxZipOutputStream}}\label{wxzipoutputstreamdtor} - -\func{}{\destruct{wxZipOutputStream}}{\void} - -The destructor calls \helpref{Close()}{wxzipoutputstreamclose} to finish -writing the zip if it has not been called already. - - -\membersection{wxZipOutputStream::Close}\label{wxzipoutputstreamclose} - -\func{bool}{Close}{\void} - -Finishes writing the zip, returning true if successful. -Called by the destructor if not called explicitly. - - -\membersection{wxZipOutputStream::CloseEntry}\label{wxzipoutputstreamcloseentry} - -\func{bool}{CloseEntry}{\void} - -Close the current entry. It is called implicitly whenever another new -entry is created with \helpref{CopyEntry()}{wxzipoutputstreamcopyentry} -or \helpref{PutNextEntry()}{wxzipoutputstreamputnextentry}, or -when the zip is closed. - - -\membersection{wxZipOutputStream::CopyArchiveMetaData}\label{wxzipoutputstreamcopyarchivemetadata} - -\func{bool}{CopyArchiveMetaData}{\param{wxZipInputStream\& }{inputStream}} - -Transfers the zip comment from the \helpref{wxZipInputStream}{wxzipinputstream} -to this output stream. - - -\membersection{wxZipOutputStream::CopyEntry}\label{wxzipoutputstreamcopyentry} - -\func{bool}{CopyEntry}{\param{wxZipEntry* }{entry}, \param{wxZipInputStream\& }{inputStream}} - -Takes ownership of {\tt entry} and uses it to create a new entry -in the zip. {\tt entry} is then opened in {\tt inputStream} and its contents -copied to this stream. - -CopyEntry() is much more efficient than transferring the data using -Read() and Write() since it will copy them without decompressing and -recompressing them. - -For zips on seekable streams, {\tt entry} must be from the same zip file -as {\tt stream}. For non-seekable streams, {\tt entry} must also be the -last thing read from {\tt inputStream}. - - -\membersection{wxZipOutputStream::Get/SetLevel}\label{wxzipoutputstreamlevel} - -\constfunc{int}{GetLevel}{\void} - -\func{void}{SetLevel}{\param{int }{level}} - -Set the compression level that will be used the next time an entry is -created. It can be a value between 0 and 9 or -1 to use the default value -which currently is equivalent to 6. - - -\membersection{wxZipOutputStream::PutNextDirEntry}\label{wxzipoutputstreamputnextdirentry} - -\func{bool}{PutNextDirEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}} - -Create a new directory entry -(see \helpref{wxArchiveEntry::IsDir()}{wxarchiveentryisdir}) -with the given name and timestamp. - -\helpref{PutNextEntry()}{wxzipoutputstreamputnextentry} can -also be used to create directory entries, by supplying a name with -a trailing path separator. - - -\membersection{wxZipOutputStream::PutNextEntry}\label{wxzipoutputstreamputnextentry} - -\func{bool}{PutNextEntry}{\param{wxZipEntry* }{entry}} - -Takes ownership of {\tt entry} and uses it to create a new entry -in the zip. - -\func{bool}{PutNextEntry}{\param{const wxString\& }{name}, \param{const wxDateTime\& }{dt = wxDateTime::Now()}, \param{off\_t }{size = wxInvalidOffset}} - -Create a new entry with the given name, timestamp and size. - - -\membersection{wxZipOutputStream::SetComment}\label{wxzipoutputstreamsetcomment} - -\func{void}{SetComment}{\param{const wxString\& }{comment}} - -Sets a comment for the zip as a whole. It is written at the end of the -zip. - -- 2.45.2